P31 P31 Labs
๐ŸŽฎ
๐Ÿ”ต PROTOTYPE

SIGNAL

Stim Room & Mini Games โ€” Sensory Regulation Architecture

01. Sensory Integration Framework

SIGNAL is rooted in Ayres Sensory Integration theory and Kapp et al.'s (2019) research demonstrating that stimming is a primary mechanism for autistic self-regulation โ€” not a behavior to be extinguished. Crucially, all activities adhere to Csikszentmihalyi's Autotelic Flow โ€” they have no external goals, no high scores, and no failure states. The value is strictly in the doing of the activity.

Anti-Pattern Audit

  • โ†’ No "cookie clicker" infinite dopamine loops โ€” these exploit ADHD hyperfocus and cause burnout.
  • โ†’ No high-contrast or strobing visuals โ€” low-albedo palette only (pastel/neon on deep black).
  • โ†’ The UI must not turn red, flash, or look "angry" when spoons reach zero.
  • โ†’ No auto-playing audio. Every sound is user-initiated.

02. Stim Bank

All stim tools cost 0 spoons. Always available regardless of spoon state.

WebGL FBO Viscoelastic Haptic Fluid

Navier-Stokes fluid via FBO (Framebuffer Object) ping-ponging โ€” the only technique that achieves 60fps on a Snapdragon 680 for fluid simulation. Swirling the fluid rapidly triggers navigator.vibrate([30, 20, 30, 20]) โ€” a low rolling haptic rumble matching visual intensity. Batched to avoid Android OS thermal throttling.

Uint8Array ยท Web Worker Infinite Cellular Sand

1D typed array cellular automaton executing in a Web Worker โ€” keeping the UI thread completely unblocked. Features vertically looping boundaries so the falling sand never fills the screen, enabling infinite continuous stimming. Materials: sand, water, neon gas. The grid loops; the stim never ends.

Canvas 2D Fiber Optics Drag + Bubble Wrap

Touch-drag glowing strands that follow with elastic lag. Bubble wrap: infinite grid, each tap pops one with a soft audio + navigator.vibrate([30]). Bubbles regenerate slowly. No counter, no progress bar โ€” just the infinite satisfying grid.

03. The Spoon Reservoir

Miserandino's Spoon Theory visualized as a physics object. 12 glowing orbs in a glass jar, rendered with Rapier.js. Dragging one out shatters it into sand particles โ€” satisfying, irreversible, non-judgmental. When the jar empties, the interface shifts to a soft ambient "Rest Mode" palette. No warnings. No red. No "Game Over." The UI neutrally reflects the user's current energy state and the stim bank remains fully available.

04. Mini Games

Each costs 1 spoon. Short sessions with defined endpoints.

Kenosis Hop

7-platform 2D platformer โ€” each platform is one NANO-07 mesh node. If a node is "offline" (randomly selected), reroute. No timer. Win by landing on all active nodes.

Element Match

Flip cards to match element symbols to 3D atom models. Uses BONDING's elements.ts. 8-card grid. No timer, no move count.

Resonance Catch

Balls bounce at 863 Hz timing intervals. Catch with palm-press. The ยณยนP Larmor tone plays on catch. Slow-moving, no fail state for missing.

Sierpinski Builder

Tap any triangle to subdivide. Fractal grows recursively. No win condition. No depth limit displayed. Exit any time.

Status

๐ŸŽฎ
In Design
Post-research phase

Dynamic devicePixelRatio scaling if FPS drops below 55. Haptic batched to prevent Android suppression.

Spoon Costs

Fluid Pool0
Sand Mandala0
Bubble Wrap0
Fiber Optics0
Kenosis Hop1
Element Match1
Resonance Catch1
Sierpinski Builder1

Technical Stack

Fluids
Raw WebGL Shaders โ€” FBO ping-pong, GPU-only
Sand Automaton
Uint8Array in Web Worker โ†’ Canvas ImageData
Spoon Physics
Rapier.js (WASM) โ€” physical orb objects
Haptics
navigator.vibrate() โ€” batched pattern arrays
Perf Guard
Dynamic devicePixelRatio scaling below 55fps