Material Studies  /  No. 010

JellyMan.

A soft little man.
Shaken by small things.
Learning to hold his shape.

WebGPU · starting
Inside the experiment

A body made of tetrahedra

He is a volumetric soft body: a few thousand tetrahedra on — particles, cut from a lattice around an implicit (SDF) figure. The glossy skin you see (— vertices), the amber core, the face beads and the air bubbles are not simulated separately — each point is embedded in a tet with barycentric coordinates, so it moves, stretches and rotates with the jelly around it.

The solver

XPBD on the GPU in WGSL compute shaders: 720 substeps per second, each tet carrying a deviatoric (shape) constraint and a volume constraint, solved Gauss–Seidel in — graph colours so no two threads touch the same particle. Volume stays within a few percent; a strain limit keeps him from tearing; a NaN guard and inversion-safe volume term keep him whole.

Stiffness and damping are the plot

Every story beat is a uniform: per-region compliance (core vs. flesh), damping, gravity, shiver, flinch and a blend of three precomputed rest poses (tense, slumped, upright). In I damping is nearly zero, so a poke rings for seconds. In II he is soft and heavily damped under 1.5 g: no rebound, just ooze. Each session in III moves one “set” value. In IV his core is about ten times stiffer than his skin and damping is close to critical: one or two wobbles, then stillness.

Rendering

A back-face pass gives thickness; the front pass refracts the studio behind him, applies Beer–Lambert absorption and in-scattering, lets light through thin hands, feet and the rim of his head, and adds Fresnel studio reflections. The core is a cloudy amber volume seen through the jelly. Contact shadows are percentage-closer soft shadows, tinted by the light passing through him.

If this feels familiar, talking to someone helps.