WebGPU is unavailable here.

This study renders with a real WebGPU device and WGSL shaders — nothing is faked. On Windows use Chrome or Edge 113+, on macOS/iOS Safari 26+, on Linux Chrome with --enable-unsafe-webgpu. A headless or GPU-blocked browser will not expose an adapter.

Material Studies  /  No. 009

MelonJelly.

A slice of summer.
A little wobble.
Too soft to share.
WEBGPU · CHECKING

The Specimen

Firmness34
Internal damping30
Grab the tip, a corner, the flesh or the rind.
Drag anywhere on the slice to grab it. Pull, twist, let go — it will wobble and settle.
Mass
—
Volume
—
Kinetic energy
—
Illustrative values: 1 simulation unit ≈ 6 cm, jelly density ≈ 1.1 g/cm³, gravity softened to about a tenth of real g so the wobble stays legible. Volume is the total tet volume relative to rest.

Physics. The wedge is a volumetric tetrahedral mesh solved with XPBD: distance constraints on every edge, dihedral proxies through the shell, and a signed-volume constraint per tetrahedron so the jelly keeps its volume when you stretch it. The rind's edges and tets are several times stiffer than the flesh. A fixed timestep of 1/60 s is split into bounded substeps, with position-based ground contact, Coulomb friction and a small restitution.

Seeds. Each pip is skinned to the nearest tetrahedra with smooth MLS weights, so it translates and rotates with the flesh it is embedded in — never a decal, never a free body.

Rendering. Native WebGPU with WGSL. A front-face pass records the entry point and surface layer; a back-face pass integrates Beer–Lambert absorption through the exact rind, pale and flesh layers the ray crosses, plus in-scatter and a few hashed air bubbles. The final pass refracts through the surface, adds Fresnel reflections, a GGX key highlight and a PCF contact shadow on a shallow studio dish.