The game
Everyone holds their own board. Power one on near a match and it joins automatically — each board owns exactly one creature and broadcasts it to the others, peer-to-peer over ESP-NOW. There is no host: any board can drop out or wander off and the rest of the match doesn't care.
You play one of four creatures racing to grow. Roam a 3×3 grid of rooms,
grab
apples and
bamboo, and settle
down to eat. Every meal asks you a trivia question about your creature —
answer right and the food becomes XP. Level up, pick a perk, and be the first
to reach level 5.
Eating is the danger window. While you sit chewing, any rival that bumps you ruins the meal — and if that rival is the Trash Panda, it doesn't ruin your food, it takes it.
Red Panda
Omnivore
The only creature that digests both foods — every apple and every bamboo counts. Flexible forager, no bad rooms.
Trash Panda
Thief
Catch anyone mid-meal and the food is yours. Why forage when your rivals will do it for you?
Opossum
Resilient
Cannot be interrupted. Meals can't be ruined or stolen, and nobody can shove it out of a trivia question. Slow and steady.
Giant Panda
Heavyweight
Nothing blocks the panda. It shoves other creatures out of its path — and nobody shoves back.
Foraging, trivia, perks
- Food spawns with a bias. Each corner room grows its home creature's favorite (bamboo for the pandas, apples for the scavengers); edge rooms grow both neighbors' favorites; the center grows everything. A creature only gains XP from food it can digest — the Red Panda digests everything, the Giant Panda is strictly bamboo.
- Trivia adapts to you. Questions are themed to your creature and start easy; each one you master retires for the match and unlocks harder ones, while a wrong answer costs credit and pulls the difficulty back. Your board learns what you know.
- Perks on level-up. Each level offers a choice of two: Speed and Confidence stack; Resilient and Omnivore grant another creature's innate, once.
- First to level 5 wins. Every board converges on the same win screen; one tap resets the whole fleet into a fresh match.
Nobody sits out
All four creatures are always in the world — unclaimed ones play themselves. Pick up a board and press anything to take over an AI creature with all its progress; put the board down and after ten idle seconds the AI takes the wheel again. A match of four AIs will happily race itself.
How to play
- Power on near the other boards (USB power bank or cable — anything). The board finds the match on its own; there is nothing to pair, configure, or connect to.
- Pick your creature. Tap the arrows to browse, tap the portrait to claim. Creatures already claimed by other players are skipped. Wait ~20 seconds and the board picks for you and lets the AI drive until you touch it.
- Walk by touch. Tap where you want to go; tap a room edge to walk through the door there. On menus and trivia, press and slide to preview, release to commit.
- Forage. Walk over food to grab it, stand still a moment to eat, answer the trivia, grow. Watch your back while chewing.
A USB keyboard bridged over ESP-NOW (W/A/S/D + J/K/L) is also supported for the full couch-multiplayer rig — ask at the demo table.
Clone it to a new device
Forage is self-replicating: every board carries a copy of its own flasher, so a running board can clone the entire game — operating system, game, art, and the cloner itself — onto a blank board over a cable. Boards it creates can create more boards. No computer involved.
Method 1 — board-to-board clone (no PC)
You need a powered Forage board (the source), a blank ESP32
CYD/CYDE board (the target), and the 4-pin clone cable
(JST 1.25 mm, P1-to-P1, with the target-TX lead moved to the
source's IO35 header pin — details below).
- Cable the boards together: source
TXD→ targetRXD· targetTXD→ sourceIO35·5VandGNDstraight through. Power the source from USB; leave the target's USB unplugged — it draws power through the cable. - Put the target in bootloader mode: hold its
BOOTbutton, tapRESET, releaseBOOT. - Put the source in clone mode: hold a finger anywhere
on its touchscreen while tapping
RESET, and keep holding about a second. The "Stoner Clone Tester" screen appears. (No touch at boot = the game starts normally.) - Tap CLONE. The LED on the back glows blue while the full 4 MB flash copies (~3–4 minutes), then the source checks the copy's MD5 fingerprint. Green LED + "CLONE COMPLETE — MD5 OK" means done: the target reboots straight into Forage and joins the match. Red LED means re-seat the cable, redo step 2, and reset the source to try again.
- Reset the source to return it to the game.
Method 2 — flash over USB from this page
No second board handy? Flash a blank board from a computer instead. The image below is the complete board contents — the same bytes a board-to-board clone writes, cloner included.
Download forage-full.bin 4 MB · flash at offset 0x0 · MicroPython v1.24.0 + Forage + the cloner
In the browser (desktop Chrome or Edge): open
Kiln, connect the board over USB, and
flash forage-full.bin at offset 0x0.
Or with esptool:
pip install esptool
esptool --port COM5 --baud 921600 write_flash 0x0 forage-full.bin
If the board doesn't enter its bootloader automatically,
hold BOOT while plugging in USB. These boards use a CH340
USB-serial chip — most systems have the driver, older Windows may need it
installed.
The clone cable
Start from the stock 4-pin JST 1.25 mm P1-to-P1 cable that ships
with the boards, then move one lead: the wire arriving from the target's
TXD goes to the source's IO35 pin (the
3.3V/IO35/GND header in the top-left corner) instead of the
source's RXD. The source's own USB-serial chip sits on the
normal RX pin and shouts over the target's replies; IO35 has nothing else
attached, so the source can actually hear the board it's programming. On a
CYD (rather than CYDE) source the stock straight-through cable works as-is.
The hardware
Forage runs on the ESP32 "Cheap Yellow Display" — a
hobbyist board (model ESP32-2432S028R, or the Sunton
E32R28T variant) with a 2.8″ 320×240 color touchscreen, WiFi
radio, and 4 MB of storage, commonly sold for around $10–15. Search any
electronics marketplace for "ESP32 2.8 inch Cheap Yellow Display
2432S028R". Any 4 MB CYD/CYDE with the ILI9341 screen and XPT2046
resistive touch works — that's the standard configuration.
Everything on the board is driven by MicroPython. The multiplayer link is ESP-NOW — a connectionless WiFi-radio protocol — so a match needs no access point, router, or pairing; boards in radio range simply see each other.