DragonHome
Dragon's memory filling in live as we talk about the Super Bowl. Built with React and D3.

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.

0 of 22 facts

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%.