Inspiration
Most eye-tracking games are built for people who could use their hands. We wanted one designed first for players who can't — people living with ALS, spinal cord injury, or anything else that makes a touchscreen hard — that is also calm and beautiful enough that anyone would want to play it.
What it does
You play by looking. Rest your eyes on a waiting star and it kindles; the line follows your gaze to the next one. Draw the figure, hear its myth, and watch it settle into the sky before the next one rises. There's no timer, no score to lose, and no way to fail. If you'd rather use touch, hold a finger where you'd look.
How we built it
- ARKit face tracking in a custom Expo native module (
expo-gaze) turns the TrueDepth camera into a gaze point. Nothing leaves the device. - three.js on WebGPU renders the night sky, the procedural textures and the map of everything you've drawn.
- A pure-TypeScript dwell state machine runs headless, so the rules that keep play gentle are enforced by tests:
- Only one star is live at a time, so gaze error can never pick the wrong target.
- Blinks are free. A closed eye holds the target instead of dropping it.
- Dwell decays when you look away but never resets.
- Stars stay at least 95 pt apart on screen (about twice ARKit's best-case error), checked across every drifting star's whole orbit.
- Self-calibration makes the game measurably more accurate at the end of the first chapter than at the start.
- RevenueCat serves one unlock at three prices.
Challenges
Our first attempt was a gaze-controlled lane-defence game, and it was miserable to play. It punished blinking, demanded constant fixation, and made you look away from the information you needed in order to act. Constellations reverses all three. We also went through App Review questions about the TrueDepth API, and answered them with a privacy policy that says exactly what the camera data is used for.
What we learned
With gaze input, the design is the accessibility. You can't bolt accessibility onto a game that fights the eye's reflexes.
What's next
More chapters, iPad support, and testing sessions with ALS community groups.
Built With
- arkit
- expo.io
- react-native
- revenuecat
- swift
- three.js
- typescript
- webgpu

Log in or sign up for Devpost to join the conversation.