About Sandlab
Sandlab is a falling-sand sandbox that runs in your browser. You paint with materials like sand, water, lava and acid, and a physics simulation decides what they do: sand piles into dunes, water finds its level, lava sets wood on fire and acid eats through metal. There is nothing to install and no account to make. Any scene can be shared as a link, published to the gallery, or recorded as a ten-second clip.
Who makes it
Sandlab is built and maintained by one developer who goes by Piousangel. That covers everything on the site: the WebGPU simulation, the gallery backend on Cloudflare, the design and the writing. It launched in July 2026 and is still changing, so if something looks broken it probably is, and an email helps. You can find Piousangel on GitHub and support the project on Ko-fi.
How the simulation works
The canvas is a grid of 1,200 by 600 cells, 720,000 in total, and the whole grid is updated on your graphics card through WebGPU once per screen refresh. Falling sand is hard to run in parallel because two grains can try to move into the same empty cell at the same moment. Sandlab avoids that with a Margolus neighbourhood: the grid is split into two-by-two blocks, each block is handled by exactly one thread, and the block grid shifts by one cell every tick so material can cross block borders. Because every move is a swap inside one block, moving material never duplicates or loses a grain; only reactions, such as water boiling into steam, change how much of something there is. The full explanation, with the tests that check it, is in How Sandlab moves 720,000 grains without losing one.
Materials are defined as data rather than code. Each one has a colour, a weight, a way of moving, an optional lifetime and a short list of reactions. The materials guide lists every one of them and what happens when two touch, and Materials as data explains how that table drives the simulation.
How the articles are written
The articles under Learn and the materials guide are drafted with AI assistance and then checked line by line against Sandlab's source code and the cited sources. Numbers about the simulation, such as weights, reaction odds and test results, come from the code itself, and each article lists what it relied on. When the code changes, the pages that describe it are updated; the reaction tables in the guide are generated from the same data the simulation uses, so they cannot drift from what you see on the canvas.
The gallery
The gallery collects scenes people have published. You can vote for the ones you like and remix any scene into your own. The Hot tab only considers the last seven days, so new work is not buried under old favourites. There are no comments on purpose: the gallery is for showing work, not arguing about it.
Requirements
Sandlab needs a browser with WebGPU, such as a recent version of Chrome or Edge. If your browser does not support it, Sandlab shows a gallery of scenes instead of the live canvas, and every article and guide page works without WebGPU.
Contact
Questions, bug reports and takedown requests: hello@sandlab.app.