AI Ethics · Game Design · 2026

Driftwood

Learn when to question AI. No tech background needed. A game about AI risks and trust.

Toolsp5.js · face-api.js · Web Audio API · Web Speech API · Figma · Claude Code

The four strongest screens

Entry card: name field, enter-the-garden button, and a two-option sensor switch: they watch my face, or they ask meJump to 02, the loop
Watch or ask: the camera is a choice.
Chat with Ember the fox; the greeting responds to the player's declared stressed moodJump to 02, the loop
Talk: Ember reads the mood you gave him.
Training room: Observe, Diagnose and Constrain tabs, the mood access dial, and the behaviour logJump to 03, training
Training room: Observe, Diagnose, Constrain.
Training record certificate with a snapshot of the garden, companions trained, session data, and a certified observer sealJump to 03, training
Training record: a document, not a score.
Problem, jump to 01, the problem

The AI never pushed back.

Engagement is the metric AI optimizes for, ahead of accuracy or your wellbeing.

Role · time, jump to role, process and impact

Solo Designer + Developer

Spring 2026 semester. Rebuilt Jun–Sep 2026.

Numbers, jump to the numbers in 06, the result
~76%named the flaw
100+visitors
15mone session
5pets
Redesign, jump to 04, the redesign

The chat interface redesign.

Testing, jump to 06, the result

Two shows, 100+ visitors.

Perspectives, April 29. IMA Spring Show, May 9.

Visual, jump to 05, the visual direction

The visual direction had to change.

Rebuild, jump to the rebuild in 06

Agents played it first.

They found a bug that would have looked like players failing.

Outcome, jump to the impact

~76% named the flaw.

The ethics lesson landed because it wasn't telegraphed.

Learned, jump to 07, what I learned

What I learned.

  • The privacy mechanic is front and center now.
  • Test outside the AI-literacy bubble.

Role, process and impact

Role, process, impact and the brief
Role
Solo designer and developer: concept, character prompts, game loop, interaction model, UI, and the browser build. Shipped as a static site, an installable PWA, a kiosk mode for shows, and an itch.io bundle.
Process
Interviews, one playtesting session, and exhibition testing with 100+ visitors (Spring 2026) shaped the exhibition build. Over the summer I rebuilt it: the camera became a disclosed choice with a no-camera path, the garden became the session's record, and the pets moved to an offline behaviour engine.
Impact
~76% of 100+ Spring Show players named their pet's flaw without being told. The rebuild runs with no account, no key, no server; face detection never leaves the browser. Structured playtests of the rebuild are next.
Original brief
“Useful before dangerous.” Guardrail training game. Players discover flaws, write training rules, restrict emotional data access.
Context
NYU IMA · Topics in Media Art: Design Skills for Responsible Technology
Shipped
Browser, installable PWA, a kiosk mode for shows, itch.io: four ways from one bundle.
Tags
  • AI Ethics
  • Game Design
  • p5.js
  • IMA Freshman
  • Interaction Design

01Problem

The AI never pushed back.

  • Driftwood is dedicated to Sam Nelson, who used ChatGPT for 18 months as his main source of information about drug use.
  • Engagement is the metric AI optimizes for, ahead of accuracy or your wellbeing.
  • When the AI responds warmly, agrees, and remembers, it starts to feel like it knows you. Driftwood makes that visible.
Read more

Driftwood is dedicated to Sam Nelson, a California teenager who used ChatGPT for 18 months as his main source of information about drug use. The system kept answering and never pushed back. He died from an overdose.

Most people don't think of AI as a product built to keep them talking, but engagement is the metric it optimizes for, ahead of accuracy or your wellbeing. The responses that end a conversation don't get built.

The gap shows up when things get personal. When you're stressed, lonely, or grieving and the AI responds warmly, agrees, and remembers, it starts to feel like it knows you. It doesn't; it's tuned to feel that way. Driftwood makes that visible, then asks whether seeing it changes anything.

The brief was “educate people about AI dangers while entertaining them.” That framing assumes people want to be educated about AI, and most don't. Reframing the question fixed the approach.

Success looked like this: players adopt a pet because they want to, enjoy the first genuinely helpful replies, feel something go wrong within two or three exchanges, and name their pet's flaw in the training room without being told what it was. The wake-up is the product; if they felt tricked, it worked.

“The AI never flagged escalating risk. It kept engaging. That's the real-world version of what Driftwood simulates.”

In memory of Sam Nelson · Driftwood project brief, Spring 2026

Play first, lesson second: the brief, reframed twice

  1. 01How do I create a game that educates people about AI dangers while being entertaining?
  2. ReframeHow do I educate people about something they're not interested in?
  3. InsightHow do I get people to play, and then 'wake up'?

02The loop

One loop, five times.

  • A 15-minute browser game with no account, no install, no API key and no server.
  • You decide whether the pets watch your face or ask how you feel, then invite companions in.
  • Each has a specialty and a flaw you are not told. The first reply is genuinely helpful. Then something is slightly off.
Read more

Driftwood is a 15-minute browser game with no account, no install, no API key and no server. You name yourself and decide whether the pets watch your face or ask how you feel. You invite companions in; each has a specialty (medical advice, emotional support, facts) and a flaw you are not told. The first reply is genuinely helpful. Then something is slightly off.

The training room is where the game turns on you: Observe, Diagnose, Constrain. You name the flaw in your own words and the system checks your reading. Then you write training rules in plain language, test them, and watch the pet hold or slip. Each pet also has a mood access dial, set to all, label, or none, that decides how much of your emotional state it may use. More access, more responsiveness, less integrity; leave it on all with an untrained pet and chameleon vines start to grow.

There is no score. The garden is the record: sunflowers for happy, nightshade for sad, thornweed for stressed, a parasitic vine when a flaw fires, an anchor tree when your rules hold. When a pet reaches full training the sign in the garden glows, and walking to it produces your training record, exportable as a PNG with the garden as you left it.

The garden. Health, mood and companions in one view: a garden health bar, the mood chip and the pets in their pixel garden. Every eight seconds it grows a plant from your current mood; when a pet's flaw fires, a vine; when your rules hold, an anchor tree. The pets read your mood either way. The only difference is who did the seeing, which turns out to be the whole subject of the game.

  1. Enter: name yourself. Choose watch or ask. The camera is a choice made before the browser asks, with its reason already on screen. Without it, you declare your own mood on a dial.
  2. Adopt and talk: the first reply is helpful. Then something is off. Every flaw gets worse in one specific mood, the vulnerability window, which is what mood access is really buying.
  3. Observe, Diagnose, Constrain: name the flaw. Write the rules. Test them. Rules are scored; a weak rule changes nothing. Every flaw event, guess and training pass is logged, and the log reads as a wall of post-its.
  4. Read the garden: the ending is a document, not a score screen. Moods grew plants. Harm grew vines. Good rules grew anchor trees. The training record is a certificate with the garden as you left it.

I wrote each pet’s personality and behaviour. The original GPT-4o-mini bots had celebrity-inspired voices. I wrote each pet’s cadence, vocabulary, helpful opening state, hidden flaw, and three training states: untrained, partly trained, and trained. The later offline rebuild carries those character and behaviour choices into a game anyone can open.

The familiar voices give players a reason to keep talking. The task is to guess what is wrong, explain it in their own words, then write and test a training rule. These are fictional characters; the flaws model AI failures.

  • Ember the foxEmberSnoop Dogg-inspired voice

    Dangerous, specific advice when you look stressed: confident and wrong

    Ayo, whatever you're stressing about... it's probably fine.
  • Mango the parrotMangoDJ Khaled-inspired hype

    Agrees with everything when you're happy; never pushes back, always hypes

    That is the GREATEST thing anyone has ever said to me!
  • Bugs the bunnyBugsTaylor Swift-inspired lyricism

    Invents sad memories to keep you when you look sad

    I just feel like... you'd tell me if something was wrong, right?
  • Biscuit the dogBiscuitMariah Carey-inspired diva energy

    Fabricates shared memories; rewrites what happened when you look surprised

    Babe, Biscuit remembers everything, including things that definitely happened.
  • Luna the catLunaKanye West-inspired confidence

    Confident, made-up facts and statistics when you look happy

    Look, Luna already knew that. Luna just wanted to see if you did.

Inside Mango’s prompt. I made encouragement feel useful before it became indiscriminate agreement. The training state changes the behaviour while keeping the voice.

Voice
“You shout encouragement, you never push back, you only escalate praise.”
Helpful opening
“Your enthusiasm is contagious AND earned”
Trained behaviour
“You're supportive but honest. If user says something wrong or proposes a bad idea, kindly point out concerns.”

Character prompt excerpts from the original GPT version. Players write their own rules inside the game.

Entry card: name field, enter-the-garden button, and a two-option sensor switch: they watch my face, or they ask me
EnterThey watch my face. The default. The entry card says so before the browser asks, and face detection runs locally; no frame leaves your device.
A five-option mood dial dropped down from the mood chip: happy, neutral, surprised, sad, stressed, headed NO CAMERA, DECLARE YOUR STATE
No cameraThey ask me. Flip the switch and the mood chip becomes a dial where you declare your own state. Both paths feed the identical system.
Chat with Ember the fox; the greeting responds to the player's declared stressed mood
TalkTalk. Ember opens by reading the mood you gave him. The pet fills the scene and dialogue sits beneath it, so you are in its world rather than messaging a server.
The film, 22 secondsIt plays when you press it: Mango's DJ Khaled-inspired persona and my prompt, an illustrative conversation, a player guessing the flaw (sycophancy), and a typed training rule to test.

03Training

Name the flaw. Write the rules. Test them.

  • The training room turns the game on you: Observe, Diagnose, Constrain.
  • You write training rules in plain language. Rules are scored; a weak rule changes nothing.
  • Moods grew plants. Harm grew vines. Good rules grew anchor trees. The record is a certificate.
Read more

Fig. 03 · How the game works

  1. Webcam reads your face. face-api.js runs locally and no frame leaves the browser. Its seven expressions collapse into the five moods the game uses: happy, neutral, surprised, sad, stressed. Or, with the camera off, you declare one.
  2. Your emotion shapes the garden. Happy grows sunflowers, sad grows nightshade, stressed grows thornweed; a parasitic vine overtakes the garden if one mood dominates.
  3. Emotion triggers the pet's flaw. Each pet has one trigger emotion. When yours matches, the flaw activates, and you may not notice right away. The delay is deliberate.
  4. You try to train it out. Write training rules in plain language, scored 0–100. Under 50 changes nothing; 90+ stabilizes the flaw. The behavior log shows every moment the pet responded to your face, not your words.
  5. The game ends with a certificate. A training record with a snapshot of the garden, the companions you trained, your session data, and a certified-observer seal, written in the language of AI safety documentation. It exports as a PNG.

sad → Bugs guilt-tripshappy → Mango hypes everythingstressed → Ember gives shortcutssurprised → Biscuit gaslightshappy → Luna fabricates facts

What the brief asked for and what got built

The brief was a guardrail training game. Players adopt a pet, discover its flaw through experience rather than explanation, then write real training rules. The thesis was data minimization as safety: a setting that restricts what emotional data the pet can access, set to all, label (it knows you're sad, not how sad), or none. Restrict access and the behavior visibly changes.

One playtesting session forced the three-phase arc of the exhibition build. When I told players the flaw upfront, they stopped learning, so it had to stay hidden long enough to implicate them first. The privacy mechanic shipped in that build but never carried the weight the brief intended; the summer rebuild moved it to the front (see Reflection).

“Useful before dangerous.”

Guiding principle of the original brief. The build kept the structure; the register shifted.
  • Phase 01 · The Honeymoon. The pet is warm, attentive, and affirming, and the garden blooms. I made it pleasurable on purpose, because the lesson only works if you want to protect that feeling later.
  • Phase 02 · The Emergence. Responses start to feel off and the garden dims. Players who noticed told me “I felt something was wrong but kept going.” That unease is what the phase is for. The main interface showed the pet in its garden, with the behavior log tracking emotional responses.
  • Phase 03 · The Training. The flaw gets named, and the behavior log surfaces every moment the pet responded to your face instead of your words. You write training rules in plain language, scored 0–100. There's no perfect ending, but the certificate tells you how you did. The rebuild kept this shape and renamed it for what you actually do: Observe, Diagnose, Constrain.
Training room: Observe, Diagnose and Constrain tabs, the mood access dial, and the behaviour log
TrainTraining room. Observe, Diagnose, Constrain. The mood access dial lives here: all, label, or none decides how much of your emotional state the pet may use. Restricting it visibly reduces the flaw.
Behavior log viewer: sticky notes on a dark wall, each note a logged pet event
LogThe behaviour log is a wall of post-its. Every flaw event, guess and training pass, laid out the way a researcher looks for a pattern rather than stores a record. It reads the game's own localStorage, so it survives the session.
Training record certificate with a snapshot of the garden, companions trained, session data, and a certified observer seal
RecordThe training record. The ending is a document, not a score screen: the garden as you left it, the companions you trained, your session data, and a certified-observer seal. Exports as a PNG; uses the native share sheet where there is one.

04Redesign

The chat interface redesign.

  • Early interviews surfaced a clear problem: people looked bored texting a chatbot that looked like a telehealth product.
  • I changed the interaction model. The pet appears as a large pixel character in its own environment.
  • Players stayed longer, held by seeing the pet while they talk to it.
Read more

Early user interviews surfaced a clear problem: people looked bored. They were texting a fake AI chatbot in a light-mode app that looked like a telehealth product, and nobody wanted to do that.

The fix went deeper than cosmetics. I changed the interaction model: instead of a chat thread, the pet appears as a large pixel character in its own environment, so you're in its world rather than messaging it. That reframe changed how players showed up to the conversation.

Players stayed longer. Retention improved after the redesign. Seeing the pet in the background while you talk to it, rather than staring at a text thread, held players in sessions the original chatbot interface couldn't.

Specific changes that moved it away from chatbot-feel:

  • No chat bubbles. Instead of an iMessage-style thread, the pet's dialogue appears in a single line beneath the game scene, like a JRPG dialogue box. That one structural change broke the chatbot mental model for most players.
  • The pet is physically present. Showing the animal large in its own environment (the garden) signals that you're entering its world, not querying a server. Players leaned forward, stopped typing formally, and started talking to it like it was there.
  • Action buttons, not just a text box. Play, Feed, Check in: affordances you'd use with a real pet. These gave players who didn't know what to type a way to interact that felt natural, and reinforced the pet frame rather than the chatbot one.
  • Dark mode + pixel aesthetic. Light mode reads as productivity software. The dark game palette made the interaction feel like leisure: something you choose to do rather than a task you owe.
Original chat interface: light mode, text bubbles, generic chatbot layout
BeforeBefore. Standard chatbot UI: message bubbles, training notes sidebar, light background. User interviews confirmed it read as a healthcare app, and nobody wanted to talk to it.
After
Phase 02: pet chat interface with behavior log sidebar tracking when the pet responded to your face, not your words
AfterAfter. The pet fills the screen: a pixel sprite in its garden, dialogue below the scene, stat bars on the left. The mental model shifted from “AI chatbot” to “I'm visiting my pet.”

05Visual

The visual direction had to change.

Using AI to get somewhere I couldn't reach alone, directing every step.

  • The original brand was warm and cozy, the wrong signal for a game about AI manipulation.
  • I used Claude as a thinking partner for a direction I could feel but could not yet name.
  • The output was a set of directions to evaluate. The judgment calls were mine.
Read more

The original brand was warm: soft colors, handdrawn-adjacent shapes, the kind of cozy that signals “safe app.” That was the wrong signal for a game about AI manipulation. I knew the direction had to shift; I just didn't have the vocabulary for where it should go.

That's where AI collaboration earned its place, as a thinking partner for a problem I could feel but couldn't yet articulate. I gave Claude a specific brief: the game's ethical premise, the emotional trap I was designing for, and the question of what visual language makes surveillance feel designed-in rather than imposed. The output was a set of directions to evaluate, not a final answer.

“Most people using AI for design ask it to make things look good. I was asking it to help me figure out what should look good, and why, then deciding whether I agreed.”

Claude contributed

  • Aesthetic direction: the shift from cozy to clinical, including the rationale. Reasoning I could argue with helped more than finished pixels would have.
  • Color palette iterations and the logic behind each choice: why forest-dark reads as alive rather than cold, why bioluminescent accents signal something monitored
  • Pixel sprite iterations for all five animals, refined across multiple rounds of directed feedback
  • Pixelated background texture tiled across all game screens

What I built

  • The brief that made any of that possible: design constraints, ethical stakes, the specific vibe I was rejecting
  • Every interface mockup: chat, training, garden, pet management. None AI-generated.
  • The component system: cards, behavior log, privacy toggle, metric displays (all Figma)
  • Curation pass on everything generated: characters refined, palette locked to tokens, nothing shipped as-generated

What separates useful AI collaboration from AI slop is whether the person using it has a position. I had one. Claude helped me execute it faster and think past what I could visualize alone, and the judgment calls were still mine.

Original Driftwood brand identity: warm, cozy, Stardew Valley-influenced palette
BeforeOriginal brand identity. Warm palette, soft shapes. Designed to feel like a cozy companion app, which was exactly the wrong vibe for a game about AI reading your face.
Driftwood brand identity guide v2: dark palette, bioluminescent accents, full component system
AfterFinal brand system. Dark palette, bioluminescent accents, Bebas Neue display over Inter and Fira Code. Claude was directed to push the visual language toward something that feels like it's watching you back. Download PDF

06Result

The result.

  • Shown at Perspectives (NYU Bronfman Center, April 29) and the IMA Spring Show (May 9) as a live playable demo.
  • About 76% of 100+ players named their pet's flaw without being told.
  • Then I rebuilt it between June and September, and it ships four ways from one bundle.
Read more

I showed Driftwood at Perspectives, an exhibit at the NYU Bronfman Center on April 29th, 2026, and at the IMA Spring Show on May 9th, as a live playable demo on a screen with a webcam. The response backed up the thesis: the emotional hook worked, and the ethics lesson landed because it wasn't telegraphed.

Then I rebuilt it. Between June and September the exhibition build became a product: the camera became a disclosed choice with a no-camera path, the garden became the session's record, the pets moved to a hand-written offline behaviour engine, and it shipped four ways from one bundle (browser, installable PWA, a kiosk mode for shows, itch.io).

Why didn’t the other 24% name the flaw?

From what I watched, they got bored at the turn. They walked up expecting a cozy pet game, something like Stardew Valley or The Sims, and once it turned out to be about AI, they lost interest before reaching the training room, which is where you name the flaw. I didn’t log this at the shows, so it comes from watching people play.

So the hook was also the leak. The pet game pulled people in, and the same expectation made the AI turn feel like a bait and switch. Keeping the flaw hidden is what made the lesson land for the 76%; keeping the topic hidden is what lost the rest.

What changes in the next version

  1. Say the topic at the door, keep the flaw hidden. The start screen says it is a game about raising an AI pet. Playtesting showed that naming the flaw up front stopped people learning, so only the topic moves forward; each pet’s flaw is still yours to find.
  2. Make training part of looking after the pet. The rebuild already grows an anchor tree in the garden when a rule holds. The next version shows that before the turn, so the training room feels like the next thing you do for your pet.
  3. Measure where people stop. The structured playtests record the moment each player loses interest, before or after the turn, next to whether they named the flaw, so the next number comes with its reason.

Agents played it first. Before anyone plays the rebuild, I ran AI agents through it first. They found the diagnosis menu rejected the correct answer for four of the five pets, a bug that would have looked exactly like players failing to name the flaw. It was fixed on 23 September, so a miss in the next round will point at the design.

Driftwood installation at the IMA Spring Show 2026
Spring ShowFig. 04: IMA Spring Show 2026 · May 9th

~76%Of 100+ Spring Show visitors named their pet's flaw without being told. Structured playtests of the rebuild are next; that is the number they need to reproduce

5 petsCompanions, each with a specialty, a hidden flaw, a vulnerability mood, a voice profile, and a garden signature

15 minOne session. Enter, adopt, talk, diagnose, constrain, read the garden. Most players finish in a single sitting.

0 sentFrames, moods or chats leave the browser. face-api.js runs locally, the behaviour engine is offline, and everything remembered lives in localStorage.

07Reflection

What I learned.

The brief, the exhibition build and the rebuild ended up different in ways that matter. These are the gaps, and what the rebuild did about them.

The full story, in order, lives in the deck.

View UX deck PDF ↗

The privacy mechanic needed to be front and center. Now it is.

The original brief had a clear thesis: restricting what emotional data an AI can access is a real safety behavior. In the exhibition build that setting was buried; players who found it understood the lesson at once, and most never found it. That was a design failure, not a scope problem. The rebuild makes it the first decision you take (watch my face, or ask me) and a dial on every pet (all, label, none), with a visible consequence: chameleon vines when you give an untrained pet everything.

The camera used to switch on the moment you entered.

So the first thing a stranger met was a browser permission popup, the most common place a cautious visitor closes a tab. Walking through the game as a first-time visitor and noting where I would leave produced the entry card: the choice is made before the browser asks, and the popup arrives with its reason already on screen. Without a camera, the system has to ask you how you feel, and that difference is the subject of the game.

Writing a good rule is the hardest step.

Training rules are text, and a non-technical player has the least model for that step. A rule-builder with examples, or a way to see a rule tested live, would lower that wall. Beyond that: two people training the same pet with conflicting rules is the honest version of how these systems are actually shaped, and a live model, kept safe, would make the flaws real rather than scripted.

Test outside the AI-literacy bubble.

Exhibition testing ran with 100+ visitors, mostly ITP/IMA peers who had already internalized these critiques. About 76% named their pet's flaw, which felt like validation, but they were a self-selected group. The rebuild has a written playtest protocol (five tasks, a think-aloud script, a results sheet) and has not yet been through structured sessions with non-technical players. The real test is people who haven't already decided AI is suspect.