Playable

Input that isn’t
a keyboard.


Eight pieces where the input is a voice, a hand, a drawn line, a face, or every phone in the room. They exist because a studio that claims it can build interaction should be able to hand you some and let you judge. Each tile below is running its own behaviour — no video, no screenshots, nothing downloaded.

Four have public URLs and say “Open it”. The other four do not, so they don’t claim to.

Typespace Type a word into the dark and it condenses out of drifting particles, holds as a constellation, then dissolves back over a minute or two. Built against the noise of a feed rather than for it. A phone can be paired in to send words to a screen across the room. 1,200 real stars from the HYG catalogue · Next.js · Firebase Open it Rakugaki Jam Scribble on your phone and throw it at the wall. A QR code joins a whole room of phones to one big screen in the browser they already have — no app, no install, no upper limit on how many people join. Drag inside this tile: you are drawing, and the stroke lands on the wall to the right. Snap Pair · Firebase Auth + RTDB + Functions Open it Resona The body becomes an instrument. Which fingers you raise is the chord — thirty-two per hand — and stopping your hand is not silence but a held note that blooms from where you stopped. Whole-body mode reads head, shoulders, elbows and wrists as separate voices. MediaPipe Hands · Web Audio · all on-device, no video leaves the browser Open it Marubatsu 2.0 Tic-tac-toe, rebuilt until the feel was right. A solved game is the honest place to work on nothing but touch, timing and weight, because none of the interest can come from the rules. Canvas · game feel Open it
Kao Game A game you play with your face. Pull the expression it asks for, and muscles you never deliberately train get a workout you actually want to repeat. Twenty-five games across three collections, and a lab mode that tells you exactly where the detection is failing instead of leaving you guessing. 478-point face mesh · runs without a camera too, on the keyboard No public URL yet
Koe Baku Shout, and your voice bursts into comic-book onomatopoeia across the screen. A VJ instrument the audience joins by QR code. Loudness is measured on each phone and only the result is sent — no audio ever leaves the device. Snap Pair · Web Audio · on-device measurement No public URL yet
EmojiDrop Ultimate An emoji-only arcade shooter for two players head to head. The scroll direction changes every stage, the difficulty reads how well you are actually doing, and the boss learns where you like to stand and starts shooting there. WebRTC peer-to-peer, no relay · single file, no build, no CDN No public URL yet
Werewolf The card game, dealt to the phones already in the room. Nobody passes anything to anybody, nobody sees a card that is not theirs, and the table does not need a moderator holding the deck. Snap Pair · shared screen + private hands No public URL yet

How these are built

Everything here is code, not footage.


Nothing to download

The eight animations on this page add zero bytes of media. They are drawn by about four hundred lines of JavaScript, which is less than one hero image would have cost.

They stop when you aren’t looking

Each tile halts when it scrolls off screen and when the tab is hidden, and runs at roughly 32fps rather than 60. A canvas loop left running is a phone getting hot in someone’s hand.

Reduced motion is honoured properly

A media query does not reach a JavaScript loop, so the loop checks it itself. If you have asked your system for less motion, each tile paints one frame and never animates.

The room is the interface

Rakugaki Jam, Koe Baku and Werewolf all run on Snap Pair, our own pairing engine — one screen, many phones, no install. It is open source.

Bring this to something you’re building