Interaction UI Index
Every interaction module is documented through the same atomic contract:
- Trigger: physical input or game event that starts it.
- Transaction owner: the system that owns input from down to release.
- Commit point: the moment economy or save state actually changes.
- Visual assets: PNG, sheet, bitmap font or code-drawn geometry.
- Timing: authored FPS, lifetime and scheduler frequency.
- Cancellation: movement threshold, ring exit, navigation, ambient and lost capture.
- Degradation: reduced-motion and ambient policy.
- Firmware mapping: the matching C++, dirty-region and hardware-service boundary.
Module matrix
| Module | Primary assets | Logic commit | Full motion | Reduced / ambient |
|---|---|---|---|---|
| Tap | Eight fx_tap frames | Pointer up | 24 FPS + particles | First frame / silent |
| Hold | Core charge/press + code ring | Release | Three stages + burst | Shortened / cancelled |
| Particles | Bitmap ASCII + code particles | After event | 8–48 particles | 3–8 / silent |
| Edge navigation | Code arcs and detent ticks | Each accumulated 45° | Continuous preview | Discrete result |
| SHOP orbit | Maker frames + TEAM lines | Stable release | Preview + fx_grow | First FX frame |
| Card swipe | Two-state icons + code clip | Release | Continuous offset | Discrete result |
| STAR launch | Ten fx_loop frames | Second confirmation | 18 FPS + particles | Key frames / unavailable in ambient |
| Tilt | 160×160 pixel bands | Every IMU sample | 30 Hz visual | 15 Hz / never wakes |
| Ambient | Six core_sleep_loop frames | Timeout | 2 FPS | Optional pure black |
Every GIF is deterministically assembled from frozen frames or historical screenshots by website/scripts/generate_media.py. They explain the production assets rather than inventing a second simulation.
