---
id: spatial-interfaces
status: active
supersededBy: []
lang: en
title: Spatial and alternative interfaces
description: >-
  Spatial and specialized input requires calibration, clear action confirmation
  and a way to continue after signal loss.
intro: >-
  Spatial and specialized input requires calibration, clear action confirmation
  and a way to continue after signal loss. Each overview separates player
  actions, state changes and alternative rules. Examples are hypothetical design
  scenarios, not claims about a named game. A prototype check states an
  observable question for the next iteration. Existing detailed references
  remain separately linked from the direction map.
updatedAt: '2026-10-21'
sources:
  - title: 'Khronos: OpenXR'
    url: 'https://www.khronos.org/openxr/'
    description: >-
      Primary XR interface standard. Hand-tracking and extension support depend
      on the runtime; the standard does not guarantee arbitrary biosignals or
      NFC.
  - title: 'MDN: WebXR Device API'
    url: 'https://developer.mozilla.org/en-US/docs/Web/API/WebXR_Device_API'
    description: >-
      Documentation of web XR interfaces and compatible-device discovery;
      browser and capability availability is limited.
  - title: 'Android Developers: Sensors overview'
    url: >-
      https://developer.android.com/develop/sensors-and-location/sensors/sensors_overview
    description: >-
      Sensor-type context, including heart-rate signals with suitable hardware;
      not a promise of biosignal access in a browser.
  - title: 'W3C: Web MIDI API'
    url: 'https://www.w3.org/TR/webmidi/'
    description: >-
      Primary draft standard for MIDI events, inputs and outputs. Actual access
      and controller format require separate checks.
  - title: 'MDN: Gamepad API'
    url: 'https://developer.mozilla.org/en-US/docs/Web/API/Gamepad_API'
    description: >-
      Device-axis and button context; not a guarantee of arbitrary wheel, pedal
      or force-feedback support.
  - title: 'OpenCV: Geometric transformations'
    url: >-
      https://docs.opencv.org/4.x/da/d6e/tutorial_py_geometric_transformations.html
    description: >-
      Primary image-coordinate transformation documentation, including
      perspective transforms; part of surface-calibration context.
  - title: 'Android Developers: NFC basics'
    url: 'https://developer.android.com/develop/connectivity/nfc/nfc'
    description: >-
      Primary Android NFC-tag documentation; not a claim of NFC availability in
      every phone or web application.
  - title: Inform 7
    url: 'https://github.com/ganelson/inform'
    description: >-
      Primary open-source interactive-fiction and text-action language project;
      context for constrained command vocabularies.
counts:
  families: 8
  branches: 8
  variants: 32
url: 'https://gamemechanics.pro/en/mechanics/spatial-interfaces/'
markdownUrl: 'https://gamemechanics.pro/content/mechanics/en/spatial-interfaces.md'
license: CC-BY-4.0
codeLicense: MIT
attribution: gamemechanics.pro contributors
provenance: >-
  Original bilingual editorial overviews authored for gamemechanics.pro on
  2026-10-20 and reviewed on 2026-10-21. Scenarios are hypothetical design
  examples; prototype checks describe work to perform, not completed playtests.
  Primary sources support the stated techniques and implementation context, not
  every proposed variant.
---
# Spatial and alternative interfaces

Spatial and specialized input requires calibration, clear action confirmation and a way to continue after signal loss. Each overview separates player actions, state changes and alternative rules. Examples are hypothetical design scenarios, not claims about a named game. A prototype check states an observable question for the next iteration. Existing detailed references remain separately linked from the direction map.

## Mechanics and variants

<a id="mechanics"></a>

### 1. VR grabbing, gestures and hand manipulation

<a id="t299"></a>
id: t299
canonicalId: spatial-interfaces--t299
url: https://gamemechanics.pro/en/mechanics/spatial-interfaces/#t299

Spatial grabbing links hand pose to a virtual object through contact start, holding and release rules.

#### Mechanic variants

<a id="t299-variants"></a>
- Direct grabbing requires close contact. <a id="t299-v1"></a>
- Distant rays select remote objects. <a id="t299-v2"></a>
- Two-handed actions derive orientation from two points. <a id="t299-v3"></a>
- Release transfers an estimated throwing velocity. <a id="t299-v4"></a>

Design example: A player holds a housing with one hand and turns an axis-constrained crank with the other.

Prototype check: Test lost hand tracking and controller alternatives so objects do not launch unexpectedly when tracking returns.

- [Khronos: OpenXR](https://www.khronos.org/openxr/)
- [MDN: WebXR Device API](https://developer.mozilla.org/en-US/docs/Web/API/WebXR_Device_API)

### 2. VR locomotion, bodies and room-scale space

<a id="t300"></a>
id: t300
canonicalId: spatial-interfaces--t300
url: https://gamemechanics.pro/en/mechanics/spatial-interfaces/#t300

VR locomotion connects physical pose to virtual routes while maintaining understandable space boundaries and turning methods.

#### Mechanic variants

<a id="t300-variants"></a>
- Teleportation selects a validated destination. <a id="t300-v1"></a>
- Continuous movement assigns speed to a separate axis. <a id="t300-v2"></a>
- Snap turning changes orientation in steps. <a id="t300-v3"></a>
- Room-scale movement uses the available physical area. <a id="t300-v4"></a>

Design example: A player inspects a bench by stepping physically and travels between rooms using selected teleport controls.

Prototype check: Test seated play, recentering and tracking-boundary changes without requiring a physical step for completion.

- [Khronos: OpenXR](https://www.khronos.org/openxr/)
- [MDN: WebXR Device API](https://developer.mozilla.org/en-US/docs/Web/API/WebXR_Device_API)

### 3. Breathing, pulse and biosignals

<a id="t304"></a>
id: t304
canonicalId: spatial-interfaces--t304
url: https://gamemechanics.pro/en/mechanics/spatial-interfaces/#t304

Biosignal or breathing input changes a game parameter from a measured feature while preserving calibration and voluntary opt-out.

#### Mechanic variants

<a id="t304-variants"></a>
- Breathing rhythm controls a fictional object's expansion. <a id="t304-v1"></a>
- Pulse input uses an actually available sensor. <a id="t304-v2"></a>
- Smoothing reduces random measurement jumps. <a id="t304-v3"></a>
- Manual substitutes preserve play without biosignals. <a id="t304-v4"></a>

Design example: A virtual sail opens with a comfortable breathing rhythm that can be replaced by holding a button.

Prototype check: Test consent, signal loss and personal calibration; a game indicator must not present medical conclusions.

- [Android Developers: Sensors overview](https://developer.android.com/develop/sensors-and-location/sensors/sensors_overview)

### 4. Musical instruments and specialized controllers

<a id="t305"></a>
id: t305
canonicalId: spatial-interfaces--t305
url: https://gamemechanics.pro/en/mechanics/spatial-interfaces/#t305

Specialized controllers translate familiar performance gestures into game actions through explicit event mappings.

#### Mechanic variants

<a id="t305-variants"></a>
- Notes select actions through a mapping table. <a id="t305-v1"></a>
- Event strength modulates values when supported. <a id="t305-v2"></a>
- Pedals change modes or sustain effects. <a id="t305-v3"></a>
- Calibration aligns input latency with music. <a id="t305-v4"></a>

Design example: A music controller's keys open gates in sequence while a pedal holds an opened passage.

Prototype check: Test actual event formats, simultaneously held notes and a keyboard substitute when the controller is absent.

- [W3C: Web MIDI API](https://www.w3.org/TR/webmidi/)

### 5. Steering wheels, pedals, joysticks and cockpits

<a id="t306"></a>
id: t306
canonicalId: spatial-interfaces--t306
url: https://gamemechanics.pro/en/mechanics/spatial-interfaces/#t306

Cockpit input distributes control across axes, pedals and switches with consistent ranges and neutral states.

#### Mechanic variants

<a id="t306-variants"></a>
- Wheels set angles within their supported range. <a id="t306-v1"></a>
- Pedals expose separate or combined values. <a id="t306-v2"></a>
- Levers preserve an absolute parameter position. <a id="t306-v3"></a>
- Profiles map functions to a specific device. <a id="t306-v4"></a>

Design example: A game truck uses a wheel and two pedals while buttons replace a missing third axis.

Prototype check: Test end-stop calibration, combined axes and multiple devices; force feedback needs separate capability support.

- [MDN: Gamepad API](https://developer.mozilla.org/en-US/docs/Web/API/Gamepad_API)

### 6. Light, projections, surfaces and interactive installations

<a id="t308"></a>
id: t308
canonicalId: spatial-interfaces--t308
url: https://gamemechanics.pro/en/mechanics/spatial-interfaces/#t308

Installations connect participant positions and physical surfaces to projected responses through stable spatial alignment.

#### Mechanic variants

<a id="t308-variants"></a>
- Calibration aligns camera and projection coordinates. <a id="t308-v1"></a>
- Touch selects a region on a physical surface. <a id="t308-v2"></a>
- Shadows become controllable play objects. <a id="t308-v3"></a>
- Several participants share one interaction area. <a id="t308-v4"></a>

Design example: A projected river crosses a table and moving physical blocks changes its virtual water route.

Prototype check: Test projector movement, camera occlusion and lighting changes with an explicit recalibration mode.

- [OpenCV: Geometric transformations](https://docs.opencv.org/4.x/da/d6e/tutorial_py_geometric_transformations.html)

### 7. Physical objects, markers, NFC and QR

<a id="t307"></a>
id: t307
canonicalId: spatial-interfaces--t307
url: https://gamemechanics.pro/en/mechanics/spatial-interfaces/#t307

Physical tokens provide identifiers or poses that a game maps to a specific object and permitted action.

#### Mechanic variants

<a id="t307-variants"></a>
- QR codes select records by a read identifier. <a id="t307-v1"></a>
- NFC requires a supported reader and accessible channel. <a id="t307-v2"></a>
- Geometric markers provide observed poses. <a id="t307-v3"></a>
- Physical figures can encode a limited property set. <a id="t307-v4"></a>

Design example: A QR card adds an item to a local collection and rescanning opens its existing record.

Prototype check: Test unknown tags, repeat reads and missing NFC access in the target environment with an explicit selection alternative.

- [Android Developers: NFC basics](https://developer.android.com/develop/connectivity/nfc/nfc)

### 8. Text input, commands and conversational interfaces

<a id="t309"></a>
id: t309
canonicalId: spatial-interfaces--t309
url: https://gamemechanics.pro/en/mechanics/spatial-interfaces/#t309

Command interfaces translate text or speech into constrained actions and expose interpreted intent and execution results.

#### Mechanic variants

<a id="t309-variants"></a>
- Grammars define supported verbs and objects. <a id="t309-v1"></a>
- Clarification resolves ambiguous target names. <a id="t309-v2"></a>
- Confirmation separates recognition from important actions. <a id="t309-v3"></a>
- History permits repeating or correcting a command. <a id="t309-v4"></a>

Design example: “open the airlock” requests a choice between two airlocks instead of randomly executing one interpretation.

Prototype check: Test unknown commands and misinterpretations; free wording should not hide actual action limits.

- [Inform 7](https://github.com/ganelson/inform)

## Sources and examples

Sources support particular techniques or methodology, not every family variant. Design examples and mechanic combinations are illustrative.

- [Khronos: OpenXR](https://www.khronos.org/openxr/): Primary XR interface standard. Hand-tracking and extension support depend on the runtime; the standard does not guarantee arbitrary biosignals or NFC.
- [MDN: WebXR Device API](https://developer.mozilla.org/en-US/docs/Web/API/WebXR_Device_API): Documentation of web XR interfaces and compatible-device discovery; browser and capability availability is limited.
- [Android Developers: Sensors overview](https://developer.android.com/develop/sensors-and-location/sensors/sensors_overview): Sensor-type context, including heart-rate signals with suitable hardware; not a promise of biosignal access in a browser.
- [W3C: Web MIDI API](https://www.w3.org/TR/webmidi/): Primary draft standard for MIDI events, inputs and outputs. Actual access and controller format require separate checks.
- [MDN: Gamepad API](https://developer.mozilla.org/en-US/docs/Web/API/Gamepad_API): Device-axis and button context; not a guarantee of arbitrary wheel, pedal or force-feedback support.
- [OpenCV: Geometric transformations](https://docs.opencv.org/4.x/da/d6e/tutorial_py_geometric_transformations.html): Primary image-coordinate transformation documentation, including perspective transforms; part of surface-calibration context.
- [Android Developers: NFC basics](https://developer.android.com/develop/connectivity/nfc/nfc): Primary Android NFC-tag documentation; not a claim of NFC availability in every phone or web application.
- [Inform 7](https://github.com/ganelson/inform): Primary open-source interactive-fiction and text-action language project; context for constrained command vocabularies.
