Gummy bears
Build a single self-contained HTML file (no libraries, no assets) using raw WebGL2 with a raymarched SDF fragment shader, inside a square canvas. Scene: 15 translucent gummy bears of varied sizes (0.55x–1.3x), chubby with round bellies, round heads, small raised bead eyes, a muzzle and a nose bump, floating on a soft light baby-blue gradient backdrop. Bears start at random orientations and slowly, constantly wander in random directions. Material: frosted, waxy gelatin. Diffuse soft lighting, broad gentle highlights, blurred reflections, subsurface glow (thin parts pale, thick parts deep), fine bumpy skin texture, color from Beer-Lambert absorption. Palette: cream (pale yellow, never white), golden, lime, green, teal, cola brown, red, crimson, tomato, orange, amber, caramel. Physics (JS): soft spring-damper contacts so bears visibly compress into each other and the canvas edges, then push off; volume-preserving squash plus a jelly sway wobble; heavier wobble for bigger bears; mass by size; low-energy bounces; spin only from off-center hits. Interaction: mouse hover gently pushes bears (eased in, capped, never jittery); hold and drag to orbit the camera; click to shuffle all colors with a small hop rippling out from the click; scroll or pinch to zoom. Sound (Web Audio, generated): a soft deep "bloop" on collisions, with pitch based on bear size, plus a mute button. Polish: ambient occlusion and contact shadows, colored light bleeding through overlapping bears, subtle depth of field, light bloom, vignette, gentle grade and fine film grain. For performance, per pixel march only the bears whose bounding spheres the ray hits, store per-bear data in a float texture, and adapt the resolution to frame rate.

