Dragon Time
Dragon is an AI character that 1,000+ users talk to over FaceTime and iMessage, built at Opponent Systems, the studio founded by artist Ian Cheng.
Dozens of daemons, small processes running in parallel, decide what Dragon says, and its memory fills with what it learns about each family, but none of it was visible during a call. On a team of 10, I owned the frontend and designed and built the console that let the team watch it live.
- Timeline
- Apr 2025 – Feb 2026
- Team
- Opponent Systems · team of 10
- Role
- Design Engineer
- Stack
- Next.js, React, D3, Socket.IO, Zustand, Node, Python
Default tool the team used to debug a call
4 engineers built their own views on top of it
Product team used the memory map to steer what Dragon pays attention to, and to catch regressions in its memory
Live call console
I designed and built this dashboard in Next.js. It streams a live call from Dragon's Python backend over Socket.IO, so the team can watch it as it happens.
Each daemon proposes what Dragon should say next. The dashboard ranks them, shows which one won, and shows why.
Problem
Dragon runs dozens of daemons at once, and any of them can send a message at any time. In a plain transcript, there's no way to tell which daemon sent what.
Color by daemon
I gave each daemon its own color, so every message in the thread is tagged by the process that sent it. Click a message to see its origin and what Dragon knew when it sent it.
Testing
The same phone is the test tool. You type as the family, attach a photo or start a simulated call, and Dragon answers as it would on a real device.
Memory map
I designed and built this map of what Dragon learns about a family. People, places and things are circles, facts are lines between them, and the facts coming in right now are green. Every fact keeps its provenance, so you can trace it back to the session it came from.
The product team used it to decide what Dragon should pay attention to, and engineers used it to spot when memory ingestion degraded.
Drag a circle or click one for its facts · pinch to zoom
Live research and follow-up texts
I also built Dragon's live research. When a family mentions something, Dragon looks it up during the call, and after the call it texts them an article. Those texts raised weekly active sessions 27%.