Touch: tap a material in the palette, then draw on the glass to place it; drag to paint a stroke; the menu, mute, pause and reset buttons sit along the top bar · Keyboard: 1–9 pick a material (Erase included); Space or P pause; R resets the tray; M mutes. With a mouse, click a material then draw on the glass; drag to paint.
About:
A deterministic falling-sand puzzle in the spirit of the turn-of-the-century browser sandboxes, made in-house for Leetdom. Every board is a small glass tray holding soil, stone and a sleeping seed. You pick a material from the palette and draw it on the glass: sand slides and piles, water flows and pools and soaks downward, embers fall and set dry things alight, and steam rises when fire meets water and cools back to droplets high in the tray. Touch water to a buried seed and it wakes; its vine then climbs, cell by cell, toward the nearest glowing bud, drinking from wet soil and recoiling from fire. Light every bud before the tray's tick limit and the terrarium comes into bloom.
The ten boards teach one idea at a time and then fold them together. Early trays are about little more than wetting the soil; later ones ask you to quench an ember wall before it reaches the sprout, raise a sand bridge across a gap so a vine can cross, trap steam to water a bud that hangs out of reach, and keep a second sprout cool while the first one climbs through heat. The simulation is a fixed-step cellular automaton with a seeded generator, so the same pour always plays out the same way, every board has an automated solver that wins it under par, and nothing drifts between a phone and a desktop. Clear the campaign or just open the Sandbox to play with every material and an unlimited supply.
All names, boards, text, art and sound are original. The terrarium is drawn procedurally on a canvas, pixel by simulated pixel, and the soft chimes and water-and-ember effects are synthesised live with WebAudio; there are no image, audio, font or network assets of any kind. A mute button sits on the title and in every tray.
Credits:
Made by Leetdom, 2026. Written for Leetdom, and it lives here.
Phone check: 2026-10-03: staging build for queue #54. The rules live in sim.js, a 42x56 fixed-step cellular automaton seeded with mulberry32. Node suite: 26 of 26 pass — all ten authored levels are won by a scripted pour under par (e.g. L0 at 90 ticks, L8 'Sand Bridge' at 306, L9 'The Grand Terrarium' at 144/6000), plus invariant tests for mass-conserving sand/water settling, fire-meets-water to steam and back to droplets, embers burning a seed to a loss, and bit-identical replays from the same seed. Serialized Chromium QA via /usr/bin/chromium-browser over a minimal CDP client (no external deps): 14 of 14 checks pass — boots with the test hook present and zero console errors; level 0 won by real touch painting; one-tap Replay resets; an induced ember loss raises the Withered overlay and one-tap Try again restarts; the simulation freezes while the tab is hidden and resumes when visible; keyboard material switching and Space pause; mouse-drag painting; a 390x844 portrait phone, an 844x390 landscape phone and a 1280x800 desktop all fit the tray; only 127.0.0.1 requests, no external network; and it still boots and plays with localStorage throwing on every call. Title, start, bloom, desktop and landscape screenshots inspected by hand. The 30 s offline WebAudio mix measured -14.3 dBFS peak; SFX RMS -35.0 dBFS and music RMS -46.5 dBFS (11.5 dB lower); high-band RMS 35 dB below the full mix; the silent render is exactly zero (no noise floor); and the music's two halves correlate at -0.17 with 0.43 loudness variation, so it does not drone or loop.
Rate this game:
One vote per game each month.
Play next:
Poke the WispMote is a glowing wisp that lives in a little glass well, and it loves to be played with. Flick it, fan it, draw ramps for it to roll down and drop balls, bubbles and balloons for it to bonk. Fill its Glee meter however you like — there is no way to hurt it and nothing to lose, just a soft room of toys and happy accidents.
Tea Tray PenguinDraw a chalk slope, press play, and watch Pip the penguin ride it on a tea tray. Get him to the flag, grab the stars, and try not to wipe out.
Bug TrafficBees, bumblebees, dragonflies and ladybirds drift into the garden. Draw each one a path home to the flowers of its colour, and never let two of them bump.
Chain BloomSeeds of light drift across a quiet pond. You get one tap. It opens a bloom, and every seed that touches a bloom opens too. Chain enough of them to clear the level.