Grain Garden: Six Terraces of Falling-Sand Puzzles

Paint soil, water, seeds, ember, magma, frost, acid and more into a live falling-sand simulation and solve six terraces, in one offline HTML file: drain a reservoir onto a dry bed, grow sprouts past a line, burn through a log gate, melt an ice plug, seal a leak and contain an acid spill, or play in a free garden. No terrace solves itself, and a gauge shows how close you are. Ported from sandspiel by Max Bittker (MIT), keeping its Rust/wasm cell simulation, with a new layout, palette, renderer and goals.

Grain Garden: Six Terraces of Falling-Sand Puzzles

Bring the terraces and their goals, and optionally the palette, the element tray, the layout and the text. The Skill returns a downloadable Skill (the simulation game project with its wasm core, a customize guide, headless verification) and one playable example run.

How it works

  1. Your coding agent copies the working game and follows the customize guide: level layouts and goal regions, the element list, brushes, wind, the palette and the UI copy in both languages.

  2. The simulation is a Rust cellular automaton compiled to WebAssembly and inlined into the page, so the game loads nothing and runs the same everywhere.

  3. The game is played headlessly under the sandbox policy: painting, opening a wall, water reaching the bed, solving and moving on, sprouting, burning, melting, acid, breeze, undo and reset, an idle check on every terrace, plus a phone game.

Frequently asked questions

Does it call a model or need a key?

No. The Skill gives your agent a working game, a customize guide and verification; the game itself makes no network calls and calls no model.

Why is the demo sandboxed?

The frame has an opaque origin and no network access, so the scene can’t read anything from this page or reach the internet.

Is this sandspiel?

It keeps sandspiel’s simulation core under its MIT licence and credits Max Bittker; the game around it, with terraces, goals, layout and look, is new.

Can I add an element?

Yes, if the wasm core already simulates it: add it to the element list and the tray picks it up. New physics need the Rust source rebuilt.

Does it work on mobile?

Yes: the tray and the header buttons are at least 44 px and a finger drag paints. Verified under touch emulation, not on real devices.

Why is there no online generation?

Building a new scene needs a model key inside the sandbox, which the backend doesn’t support yet. Run the Skill with your own agent for now.