Aquarium Burst — One Prompt, Full Physics
I gave Qwen 3.6 27B a single prompt describing a glass aquarium that cracks and bursts. What came back was a complete 3D simulation with water dynamics, buoyancy, and glass shatter — built by a multi-agent pipeline running entirely on one RTX 3090.
The Prompt
Create a large glass aquarium whose side panel develops a visible crack and then bursts. Water escapes through the opening with flow strength based on water depth and decreasing as the tank drains. A curved water jet affected by gravity. A spreading puddle that collides with the room boundaries. Fish, rocks, plants, and a floating toy reacting differently according to density, buoyancy, drag, and current.
That's it. No architecture doc, no tech stack specified, no wireframes. One paragraph describing the behaviour I wanted to see.
The Simulation
Drag the crack line up or down to set the burst point, then release. The water jet strength follows Torricelli's law — deeper water means a stronger jet. As the tank drains, the flow weakens and the waterline drops.
What It Does
The simulation implements 13 distinct physics behaviours:
- Torricelli's law — jet velocity from
v = √(2gh), scaled by crack depth - Gravity on the jet — parabolic arc with horizontal momentum and vertical acceleration
- Waterline drop — surface lowers as volume leaves through the crack
- Flow decay — jet weakens as water depth decreases
- Puddle spread — particles collide with floor and walls, spreading outward
- Fish buoyancy — fish swim against the current, then get swept out when the crack bursts
- Fish drag — water current applies force proportional to velocity difference
- Rocks sink — high-density objects settle on the tank floor
- Plants anchor — rooted objects stay fixed, swaying with the current
- Toy floats — low-density objects ride the water surface
- Glass shatter — fragments tumble with angular velocity and gravity
- Crack propagation — visible fracture line before the panel fails
- Interactive crack placement — drag to control where the burst happens
- Mouse orbit — click and drag to rotate the camera
- Scroll zoom — mouse wheel to zoom in and out
The Numbers
Built with Three.js r185 loaded from CDN. Single HTML file. No build step, no dependencies to install. Runs in any modern browser.
How It Was Built
This wasn't a single model call. The PI Agent Harness ran a 9-agent pipeline — each agent handling one job, coordinating through structured prompts and a shared task board. All running locally on a single RTX 3090.
The Pipeline
What Each Agent Did
- Researcher (physics) — gathered the equations: Torricelli's law, drag coefficients, buoyancy, angular velocity for glass fragments
- Researcher (Three.js) — evaluated whether 3D rendering added value over Canvas 2D, recommended Three.js from CDN
- Architect — designed the system: scene graph, physics loop, entity classes, interaction model (30KB architecture doc)
- Planner — broke the build into 16 implementation steps with acceptance criteria
- Debugger — wrote the full 906-line implementation
- Tester — ran 14 tests: 14 PASS, 3 PARTIAL (fixable issues identified)
- Debugger (fixes) — applied 3 surgical fixes for the partial failures
- Tester (regression) — re-ran all 17 tests: 17 PASS, zero regressions
- Reviewer — final audit: 13/13 requirements verified, verdict: complete
Why It Matters
This is what a local AI agent team can ship. No API keys, no cloud credits, no vendor lock-in. One prompt describing what I wanted to see — and a pipeline of specialised agents that researched, designed, built, tested, and reviewed the whole thing on a single consumer GPU.
The harness that made this possible is documented in the PI Agent Harness bundle — ebook, video series, and all 13 agent definitions.