✓ Two crowns ✓ Same mass, different density ✓ Vertical slider ✓ Slider works ✓ Slider controls crowns — Slider direction correct ✓ Full slider range — Fall animation ✓ Water displacement ✓ Rising water level ✓ Splash effects — Physics correct — Live mass value — Live volume value — Live density value ✓ Live displaced water ✓ Gilded displaces more ✓ Heureka animation ✓ No external deps ✓ Light bg / dark text ✓ Self-contained HTML
Slider direction is inverted (label says top=air/bottom=water but slider min=0 maps to top/air and value=100 maps to bottom/water which is correct per label, however the crown movement math pushes crowns DOWN as value increases which is correct, yet the vertical slider's physical top position in the browser corresponds to max value not min — direction is browser-implementation-dependent and ambiguous); mass/volume/density values are static (not live); water height increase formula uses a non-physical scaling factor (dividing volume by tank width in px rather than area, then multiplying by an arbitrary ratio) making displacement values unrealistic; no smooth fall animation, only instant position teleportation; splash particle keyframe is overwritten each call and always identical.
Slider direction is inverted (label says top=air/bottom=water but slider min=0 maps to top/air and value=100 maps to bottom/water which is correct per label, however the crown movement math pushes crowns DOWN as value increases which is correct, yet the vertical slider's physical top position in the browser corresponds to max value not min — direction is browser-implementation-dependent and ambiguous); mass/volume/density values are static (not live); water height increase formula uses a non-physical scaling factor (dividing volume by tank width in px rather than area, then multiplying by an arbitrary ratio) making displacement values unrealistic; no smooth fall animation, only instant position teleportation; splash particle keyframe is overwritten each call and always identical.