0
Kai Detmers
← Project index
Interaction R&D · native iOSFocused prototype

Head Keep-Up— your headphones become the controller.

A compact interaction experiment built around headphone motion data. Head rotation moves a simple game object while audio and spatial feedback reinforce direction, impact and combo state.

Stack

UISwiftUI · Start / Game / Status surfaces
InputCMHeadphoneMotionManager
Gamecustom BallPhysics · GameEngine · GameState
AudioAVFoundation · generated effects · spatial engine
Targetnative iPhone + supported motion headphones
Shapesmall isolated interaction spike

Development process

This one is unusually compact: the repository shows an initial implementation followed minutes later by an audio/UI refinement. I treat it as a deliberately small interaction spike rather than pretending it went through a long product-design process.

01
Prove the sensor loop end-to-end.

The first commit already separates HeadphoneMotionManager, game engine/state, ball physics, game/start/status views and generated sound effects. The goal was to learn whether head movement feels controllable before investing in content.

02
Immediately refine feedback, not features.

The next change focuses on audio assets and UI styling rather than adding levels or progression. For a novel input method, feedback quality is the product risk.

03
Keep the prototype small enough to throw away.

Motion, physics, audio and UI live in separate files so each can be tuned without turning a sensor experiment into a premature game architecture.

Interaction rationale

Screen confirms; head controlsIf the player has to stare at an on-screen joystick, the experiment has failed. The visual UI shows state and target while motion remains the primary control channel.
Audio closes the proprioception gapHead movement has no tactile button click. Directional sound, impact and combo feedback help the user understand cause/effect without increasing visual HUD density.
Calibration should feel implicitA strong next iteration would establish a neutral head pose and normalize small movements at start rather than asking users to configure sensor axes or sensitivity before playing.
Simple geometry is deliberateBall and goal visuals keep rendering complexity low so usability problems can be attributed to the control model rather than scene readability.

System loop

MotionHeadphone orientation is sampled and normalized into control input.
EngineGameEngine applies motion input to ball physics and updates score/combo state.
VisualSwiftUI renders ball, goal and minimal status feedback.
AudioGenerated/spatial sound reinforces direction, hit and state transitions.

What this prototype is for

Head Keep-Up is not presented as a startup idea. It is interaction R&D: a fast way to test whether an overlooked hardware sensor can support a legible, playful control loop. The valuable output is the control insight, not feature count.