The prototyping practice.
Embedded consulting: a team brings a question they are stuck on, and it comes back as a tested artifact within days to weeks. Three recent builds below — paper and projection, tangible robots, voice in a plush. Every one was put in front of kids, and every one fed a real product decision.
the bench · all three builds
Scribble Engine
Draw a creature on paper. It climbs off the page onto the wall and meets everyone else's. Vision, generative rigging, a projector, and floor-to-ceiling paper.
If kids make the content in the world instead of us, do they play longer? Do they play together?
2 wks → 8 days
to first kid testA studio exploring user-generated worlds for 5 to 9 year olds.
Kid-made content pipeline vs. authored content with customization.
A sheet of printer paper on a cafe table: a scribbled monster, an arrow to a wall, the same monster on the wall with two hasty legs, and "it walks over to Maya's monster and they argue."
The path chosenTablet drawing app; creatures live on the tablet. Rejected — a tablet is a single-kid device.
Chosen: paper and marker, phone camera, projector on a wall. Paper is the interface every kid already knows, and a wall is shared by default.
AR headsets. Rejected on cost, latency, and no shared view.
fig. 01 · the sketch, printer paper, dated
v1 · phone on books, laptop did the work
v4 scan station next to v3, which let paper curl
Phone photo, laptop segments the drawing, drops it on the wall as a static sprite. Kids could see their thing. Enough for round 1.
Auto-rigging. A vision model finds "legs" and "head," a generic skeleton animates it. Ugly walk cycles were funnier than good ones. We kept the ugly.
Creatures notice each other: approach, bump, chase, hide. A small LLM writes a one-line reaction when two meet ("your bird is scared of my toaster").
Scan station: laser-cut plywood tray, phone on an arm, one big red arcade button. Kids run it themselves.
Physical setup: projector on a tripod, floor-to-ceiling paper on the wall so kids draw ground and obstacles directly. The loop: button press → segment → rig → drop into the Unity world in under 10 seconds, or kids leave.
Static sprites only. 40 minutes at the wall. Within a minute kids were drawing for the wall. The paper stopped mattering.
Rigged walking. The rig failed on anything without limbs. Kids started drawing legs onto suns and cars to make them walk.
This age wanted their creature to do something to another creature. Added bump and chase.
Older kids drew "traps" on the wall paper. Projected creatures ignored them. Broke the illusion. Fixed in v4 by scanning the wall paper as terrain.
Unsupervised. 26 drawings. Two kids merged their creatures by drawing a third one "that is both."
round 1 · four kids, one wall, shot from behind
round 2 · legs on the sun so it can walk
- The client stopped funding a customization system for authored characters and funded a kid-made-content pipeline instead.
- The loop was other kids seeing it. Animation quality barely registered, so rendering fidelity got deprioritized.
- Constraint set: any kid input appears in the world in under 10 seconds.
Next: two walls in two rooms, networked. Do creatures traveling between rooms make kids visit each other?
Jetson Orin Nano · on-device segmentation + VLM · generic 2D skeleton rig · Unity · local LLM · short-throw projector · laser-cut ply · arcade button
My roleEverything technical and physical. A collaborator did the sound.
Cardbots
Three palm-sized dome robots programmed by laying wooden cards on the floor. No screen anywhere in it. Tangible coding for kids who cannot read yet. The "hug" card carried the whole thing.
Can kids who cannot read yet program a robot, and does it stay play or turn into a lesson?
3 wks → 16 days
first test · 5 weeks over 3 versions24 min
median floor time · 19 min pre-readers, 31 for 6–8Does tangible programming belong in a pre-reader line, or get pushed to 8+?
Printer paper on the kitchen counter: three boxes in a row (arrow, spin, heart) and a lopsided circle robot at the end. "it reads the row and does the row."
The path chosenApp with drag-and-drop blocks and a Bluetooth bot. Rejected — screen dependency, and the market has it already.
Chosen: laser-cut birch tiles with NFC tags, a bot that reads them in sequence as it drives over them. Kids lay the program out on the floor.
Ceiling camera reading card layouts. Held as the v3 idea.
understood by 4-year-olds
drives to another bot — the card that mattered
meant nothing until it was a loop of footprints · 5+
read as broken — cut
fig. 02 · the program is on the floor
ESP32 · two N20 motors · NFC on the belly
v1 drove off the table in 8 minutes. keep the corpse.
4 sessions, 11 kids, ages 4–8, in a home and a friend's preschool after hours. Protocol: bots and cards on the floor, no instructions. Observer notes every minute. A session ends when the kid leaves.
Median time on the floor: 24 minutes. Pre-readers 4–5: 19 minutes. Older kids: 31 minutes — and they started writing programs for each other to guess.
Surprise: kids built programs whose only point was getting bots to meet. Broke: "wait" read as broken, so it was removed. "Repeat" landed with 5-year-olds and up.
session 3 · preschool rug, after hours, shot from behind
- Tangible programming stayed on the pre-reader roadmap with a scope note: social verbs first, logic verbs later.
- The card icon set became its own workstream with an illustrator. Three generations of "repeat" before a 4-year-old got it.
- Age split defined by evidence: 4–5 gets 6 cards, 6–8 gets all 12.
- The behavior-authoring web tool — a designer changes what a card does live during a test — took 3 hours and was the highest-leverage part of the kit.
Next: ceiling camera so a layout is read without the bot driving over it. Then kids record their own sound for the "sing" card.
ESP32 · PN532 NFC · N20 gear motors · WS2812 face · PLA three-part shell · laser-cut birch tiles · ESP-NOW bot-to-bot · web UI over websockets
Role: all hardware and firmware; icons v1–v2 by me, illustrator for v3; sessions run by me, notes by a second adult.
Yes-And
A voice character inside a thrift-store plush fox that plays improv with a kid, with the guardrails a parent would actually want. Squeeze the paw to talk. Parent watches the transcript from the doorway.
Can an AI character do improv with a young kid in a way that keeps the kid leading — and would a parent leave the room?
10 days → 7 days
to first kid test4 of 6
parents would leave the room — because of the transcript pageIs a conversational character viable for under-7s, or parked until models and policy mature?
A lumpy fox with "spkr" scrawled on its chest, a speech bubble that says "and THEN what happened?", and a stick-figure parent in a doorway holding a phone. The parent in the doorway was in the sketch from the start; it ended up deciding the project.
The path chosenTablet app with an animated character. Rejected — a screen pulls kids into watching. We needed talking.
Chosen: speaker and mic inside a thrift-store plush, brain on a Raspberry Pi in the wooden base. Kids already talk to plush toys.
Full custom toy. Later.
the mic is off until the paw is squeezed; kids got it instantly
one question, then a statement; never end the scene
nothing scary the kid did not bring in
no cloud audio, no memory across sessions by default
fig. 03 · the fox, the base, the parent's phone
Pi 5 · mic array · speaker · squeeze sensor in the paw
the sketch · parent in the doorway from day one
Kids led scenes fine. The character asked two questions in a row and kids stalled. Prompt fix: one question, then a statement.
4 of 6 said they would leave the room — every one pointed at the transcript page rather than the character. 2 said no under any condition; both cited privacy, neither mentioned content.
A 14-minute scene about a bakery for dogs. The character never introduced a plot point. The kid did all of it. Broke: 4-year-olds squeezed the paw and said nothing. Added a gentle prompt after 3 seconds of silence.
round 3 · kid leads, parent in the doorway
the parent surface · built in an afternoon
debrief · round / n / broke / fix
- The character moved forward for 5–8 with one hard rule: the parent transcript is a launch requirement.
- Under-5 parked. Safety was fine; stamina was the problem — they do not sustain a scene without an adult.
- The team wrote its first kid-AI design principles from this test's notes.
Next: two plushes, two kids, one scene. Can the character referee without taking over?
Raspberry Pi 5 · ReSpeaker mic array · on-device VAD · streaming STT + TTS · LLM with a strict improv system prompt · squeeze sensor · thrift-store plush · one-page web app for parents
My roleEverything. A voice-actor friend recorded the fallback lines.