Material Studies / No. 009
JellyGarden
A slice of summer.A little wobble.Too soft to share.
Renderer unavailable
This specimen needs WebGPU.
Jelly Garden is drawn with native WebGPU and WGSL shaders, and it deliberately does not fall back to a substitute renderer.
Try a current version of Chrome or Edge (113+), Safari 26+, or Firefox 141+ on Windows, with hardware acceleration turned on.
Grab any fruit anywhere: the tip, a corner, the flesh, the rind or the leaves. Pull to stretch, lift or bend it, then let go and watch it wobble. Scroll, press Q / E, or add a second finger while holding to twist. Drag the background to turn the view.
- Mass
- —
- Volume
- —
- Kinetic energy
- —
Illustrative units, derived from the live simulation: 1 scene unit ≈ 4 cm, jelly density 1.05 g/cm³. Volume is relative to the rest shape. Gravity is softened for legibility.
Inside the experiment
The body
The slice is a lattice of tetrahedra. An XPBD solver gives each one two constraints from a stable Neo-Hookean model: a deviatoric term that resists change of shape and a hydrostatic term that holds its volume. Steps are fixed and short (720 per second), with a cap on how many run per frame.
The rind’s elements are about 2.4× firmer than the flesh. Damping acts on strain rate and on wobble relative to the slice’s rigid motion, so falls and tumbles stay natural while the jiggle dies away. The floor uses position projection with Coulomb friction. Collapsed elements are restored by shape matching.
The knife
A swipe defines a plane through your eye and the stroke. It is carried into the piece’s rest shape by a best-fit rotation, and the lattice is split along it into two independent bodies. Elements within a hair of the cut go to both halves, so the surface at the cut is always simulated. Each half is then clipped exactly in the shader. Where you look into an opening, the cut face is drawn as fresh flesh with the same absorption and refraction as the rest. Juice droplets fly ballistically and leave stains where they land.
The garden
The strawberry comes in three varieties: classic red, a Japanese sakura berry that is pinkish white, and a white berry with red seeds. Only the jelly’s absorption, scattering and glow change; its shape and physics stay the same. Blueberries are small, firm lattices of their own, with a dusty bloom on the skin and a pale heart inside. Each fruit remembers how much of it has been cut away. Once less than 30% is left in any one piece, a fresh fruit is summoned and the leftovers fade.
The image
Each frame, a WGSL compute pass skins the smooth surface, seeds and bubbles onto the moving lattice, and a second pass rebuilds normals. Seeds are rigid and rotate with the local flesh.
Rendering takes four WebGPU passes. A top-down height map gives soft, ruby-tinted contact shadows. Then the studio floor and seeds are drawn, then the jelly’s back faces to measure thickness. Last come the front faces: they refract the scene behind them, absorb it by Beer–Lambert over that thickness, add scattered and edge-transmitted light, and take Fresnel reflections of three softboxes.