About the project

Today an arcade cabinet contains one game. This one contains any game you can describe.

You walk up, yell something that is not a real title, and then you play it on a real machine. Five seconds later the game exists. Pause, change it in English, keep playing. A second screen in the room watches every press live.

Inspiration

Generative AI still lives in a chat box. We wanted the prompt to become something you can mash, lose at, and show a friend. The cabinet is the joke and the product: the game was not here five seconds ago.

What it does

Describe. Type or say a game. Prompt Guard blocks named existing titles, flashing, and health-claim language, then offers an original rewrite. Generate. A model returns a validated JSON spec. A fixed engine plays it. The model never writes code, so a bad reply cannot crash the cabinet. Play. Real USB arcade stick and buttons. Keyboard if the encoder dies. Instant demo if the network dies. Modify. “Give my frog a jetpack.” Mid-run, press T and drop in a pizza-shop healer. The world updates; you keep the stick. Watch live. Open /?board=1 on a laptop or phone. Session start, ticks, and every left/right press are reducers. The caregiver screen is a subscription, not a refresh. Health Mode. Healthcare play for people who cannot use a typical arcade game: slower, one-hand or left/right practice, session summary. Prototype only. Not a medical device. We did not enter Forge. Built-in shelf games stay ready if a judge does not want to wait on a model: FROG PROTOCOL, JEROME POWELL: RATE DODGER, SPREADSHEET SIEGE, TIDE RUNNER.

How we built it

The brain is a provider chain. Snowflake Cortex is first (POST /api/v2/cortex/inference:complete). Then Claude, then Gemini, then a local offline generator. Every reply is clamped by sanitizeSpec() before the engine sees it.

The live floor is a SpacetimeDB module: session and press tables, start / tick / press / end reducers. The cabinet writes; /?board=1 subscribes. If Maincloud is not published, the same functions run on the laptop so the demo never depends on a hosted database.

The look is a Three.js neon Tokyo street when WebGL is up, with a 2D canvas fallback. Voices go through ElevenLabs when a key is present, otherwise the browser. Player memory can sit in Backboard, otherwise this device. Hardware is a 3D-printed deck, EG STARTS Zero Delay encoder, and optional Arduino lights.

Challenges

Keeping two engines from eating each other. Making a model-written game that cannot explode on stage. Wiring a 7-button stick that also has to work as a keyboard. Showing a live second screen without lying if SpacetimeDB is unpublished.

What we learned

Judges believe the thing they can hold. A JSON spec plus a boring engine beats generated code. A second screen that moves while someone plays is the whole SpacetimeDB story.

What's next

Publish the module to Maincloud so every cabinet on the floor shares one board. Register a ridiculous domain. Keep Health Mode as a feature, not a clinical claim.

Built With

Share this project:

Updates

Submission history