Skip to main content

Input

Keyboard, Xbox controller, and iPhone IMU input nodes all exist. Keyboard and iPhone IMU are real, running code on the current Spine transport, verified as part of the live keyboard-controller/iphone_imuKinematic EngineCrackHead pipeline. Xbox Controller is documented here on the same assumption as the other two — a [4][4]float64 delta transform — though unlike the other two, there's no code for it in this checkout to confirm that against.

What each one publishes

NodePublishesNotes
Keyboard[4][4]float64Direct translation deltas from held keys
iPhone IMU[4][4]float64Computed rotation-only delta from consecutive orientation readings
Xbox Controller[4][4]float64 (assumed)No code exists here to confirm against — documented on the same shape as the other two for consistency, not verified

All three publish (or are assumed to publish) the same shape, matching the Architecture page's target of every input node normalizing to one transform before it reaches Purifier.

Current API

Keyboard and iPhone IMU both use the current spine.CreateNode/spine.NewPublisher API (see spine-go) — the actual input-capture logic (the ebiten window loop for keyboard, the UDP listener for iPhone IMU) is unchanged from earlier, only the Spine wiring was ported. Both default to namespace "rime", not "common" — see Troubleshooting for what that means.

See also

  • Architecture — how filtered input is meant to reach the Robot Controller
  • Purifier — the planned downstream consumer