Sandfall
A falling-sand world on the GPU. Pour sand, water, lava and fire, and watch them react.
Draw anywhere
Brush
Time
History
1x
World
Featured
How it's built
- Margolus automatonThe grid is cut into 2×2 blocks, offset every tick, so every block updates independently: no write conflicts, same result everywhere.
- Runs on the GPUThe rules are a WebGL2 fragment shader over integer textures: 262,144 cells, 120 ticks a second.
- A bit-identical twinThe same rules in TypeScript run in Node and in a Web Worker. All three give the same world hash after thousands of ticks.
- Zero dependenciesRaw WebGL2, no framework, and the engine loads after first paint.
- Undo rewinds timeSnapshots every few seconds let undo and redo jump back and forward without breaking the stroke log, so shared replays stay exact.
- Every creation is a logA share link holds only your strokes and when you made them; replaying them rebuilds the same world on any device. Press I to see which cells moved this tick.