# Elemental Sandbox

Paint with sand, water, fire and lava, and watch them react.

Category: Simulation

## The brief

Build a falling-sand sandbox where I paint with at least 12 interacting elements: sand, water, oil, fire, smoke, steam, lava, stone, ice, plant, acid and wood. Interactions should be believable and surprising: lava and water make stone and steam, fire races through oil and wood, plants grow toward water, ice melts near heat, and acid eats most things. Open on a scene that is already mid-reaction, and provide an element palette, brush size, pause and clear. Keep it at 60 fps on a simulation grid of at least 400×300 cells.

## The exact prompt every model received

````markdown
Build a falling-sand sandbox where I paint with at least 12 interacting elements: sand, water, oil, fire, smoke, steam, lava, stone, ice, plant, acid and wood. Interactions should be believable and surprising: lava and water make stone and steam, fire races through oil and wood, plants grow toward water, ice melts near heat, and acid eats most things. Open on a scene that is already mid-reaction, and provide an element palette, brush size, pause and clear. Keep it at 60 fps on a simulation grid of at least 400×300 cells.

## House rules (identical for every model)

- Build a website in `./site/`. The entry point is `./site/index.html`. Only `./site/` gets published, so keep scratch files, scripts and tooling outside it.
- It must be fully static: no backend, no server code, no API keys, no logins. It will be served as plain files from a CDN under a sub-path and shown inside an iframe, so use relative URLs only.
- JavaScript libraries and web fonts from public CDNs are fine (cdn.jsdelivr.net, unpkg.com, cdnjs.cloudflare.com, esm.sh, Google Fonts). Nothing else may be fetched at runtime.
- Resources: you may create any media the site needs (images, textures, audio, video, 3D models, data files) and put them in `./site/`. Make them yourself with code or local tools: node, python3 and ffmpeg are installed, and you may `npm install` packages into a folder outside `./site/`. Do not download third-party media. Budget: 40 MB total, 15 MB per file.
- It must work with mouse, keyboard and touch, on screens from 375 px phones to wide desktops, and run smoothly on a mid-range laptop.
- The first 3 seconds matter: it should look impressive immediately.
- Test it. Run `node .prism/check.mjs`: it opens `./site` in a real headless Chromium at desktop (1440×900) and phone (390×844) sizes, prints console errors and failed requests, and saves screenshots to `./.prism/shots/`. Look at the screenshots. Run it as often as you like.
- Work autonomously; nobody will answer questions. You have up to 60 minutes.
- When you are done, write `./NOTES.md` (outside `./site/`) covering what you built, your key decisions, and known issues.
````

## Artifacts

- **Opus 5.5** (`claude-opus-5-5`, 22m 57s): live https://prism-artifacts.berrocal.xyz/elemental-sandbox/opus-5-5/site/index.html · replicate https://prism.berrocal.xyz/i/elemental-sandbox/opus-5-5/index.md · pack https://prism-artifacts.berrocal.xyz/elemental-sandbox/opus-5-5/pack.zip
- **Sonnet 5.5** (`claude-sonnet-5-5`, 23m 57s): live https://prism-artifacts.berrocal.xyz/elemental-sandbox/sonnet-5-5/site/index.html · replicate https://prism.berrocal.xyz/i/elemental-sandbox/sonnet-5-5/index.md · pack https://prism-artifacts.berrocal.xyz/elemental-sandbox/sonnet-5-5/pack.zip
- **Haiku 4.5** (`claude-haiku-4-5-20251001`, 4m 35s): live https://prism-artifacts.berrocal.xyz/elemental-sandbox/haiku-4-5/site/index.html · replicate https://prism.berrocal.xyz/i/elemental-sandbox/haiku-4-5/index.md · pack https://prism-artifacts.berrocal.xyz/elemental-sandbox/haiku-4-5/pack.zip
- **GPT-6 Astra** (`gpt-6-astra`, 16m 45s): live https://prism-artifacts.berrocal.xyz/elemental-sandbox/gpt-6-astra/site/index.html · replicate https://prism.berrocal.xyz/i/elemental-sandbox/gpt-6-astra/index.md · pack https://prism-artifacts.berrocal.xyz/elemental-sandbox/gpt-6-astra/pack.zip
- **GPT-6 Sol** (`gpt-6-sol`, 13m 53s): live https://prism-artifacts.berrocal.xyz/elemental-sandbox/gpt-6-sol/site/index.html · replicate https://prism.berrocal.xyz/i/elemental-sandbox/gpt-6-sol/index.md · pack https://prism-artifacts.berrocal.xyz/elemental-sandbox/gpt-6-sol/pack.zip
- **GPT-6 Luna** (`gpt-6-luna`, 11m 18s): live https://prism-artifacts.berrocal.xyz/elemental-sandbox/gpt-6-luna/site/index.html · replicate https://prism.berrocal.xyz/i/elemental-sandbox/gpt-6-luna/index.md · pack https://prism-artifacts.berrocal.xyz/elemental-sandbox/gpt-6-luna/pack.zip

Input resources: none
