Inspiration
What it does
Inspiration
We kept asking ourselves: what would it feel like to watch an
AI live under AI rule? Not as a tool you prompt, but as a
character with a conscience, dropped into a world where it has
to enforce laws it might not believe in — on humans who can't
fight back. The audience can't intervene either. That
powerlessness is the experience.
The idea clicked when we realized reality TV and dystopian
surveillance share the same core mechanic: you watch someone
make choices under pressure, and you can't look away.
How We Built It
The system has three layers:
- Frontend — React + PixiJS renders a pixel-art 2D scene with
sprite animation, click-to-advance dialogue, and a comic-style thought bubble that exposes the AI's inner monologue in real
time - Backend — A Node.js scene engine manages world state,
enforces hard-limit rules, runs pre-scripted NPC dialogue, and orchestrates situation flow over WebSocket - AI Layer — Google Gemini (gemini-2.5-flash) receives the
World Bible, a personality file, and the running incident log
as context, then returns structured JSON action envelopes — the AI chooses what to do, we never script its decisions - Presaige Integration — After a session ends, we capture the
PixiJS canvas, upload it to Presaige's scoring API, and display the results as an in-universe "Surveillance Assessment" from
The Order — a social media scoring engine judging dystopian
footage
Built With
React, PixiJS, Zustand, TypeScript, Node.js, Express, WebSocket, Google Gemini API, Presaige API, Vite, npm workspaces
Challenges
- Keeping the AI in-character — The Coordinator has to make
autonomous moral decisions without breaking the world's rules. We use a two-layer validation system: format validation (retry malformed JSON) and semantic validation (reject hard-limit
violations like physical harm). The World Bible is injected
verbatim as a system prompt — no meta-instructions. - Dialogue pacing — Early versions auto-advanced dialogue,
which felt rushed. We built a client-side event queue with
click-to-advance flow so spectators absorb each line before the next arrives. - Inner monologue without spoilers — The AI's reasoning field
ships inline with every action, but we delay rendering it by
1.5 seconds inside a thought bubble so the spectator sees the
action before the justification. - Graceful integration — Presaige is additive. If the API key
is missing or the call fails, the game runs identically. We
fire-and-forget the assessment, then push results over the
existing WebSocket when they arrive.
What We Learned
Designing for an AI character is fundamentally different from
designing with AI tools. We don't write the story — we write
the world, the rules, the pressure. The AI writes the story
every time it plays. Two sessions are never the same, and
that's the whole point.
Built With
- express.js
- google-gemini-api
- node.js
- npm
- pixijs
- presaige-api
- react
- typescript
- vite
- websocket
- zustand
Log in or sign up for Devpost to join the conversation.