✓ 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 (min=0 top means crowns in air, but HTML vertical range with writing-mode bt-lr means dragging up increases value, making physical direction ambiguous/wrong in most browsers); water level rise calculation divides by pixel-area × 1000 rather than a physically meaningful container cross-section, producing near-zero rise; buoyancy formula (displaced × 1 × 10 / 1000) yields ~0.51 N for full immersion of a 51.75 cm³ gold crown instead of the correct ~0.507 N which is numerically close but the partial-immersion scaling assumes linear volume submerged which is wrong for a sphere; density values are plausible but the "silver" crown is mislabeled throughout the code as silverCrown/SILVER_DENSITY yet uses ALLOY_DENSITY (9.12 g/cm³), causing internal inconsistency.
Slider direction is inverted (min=0 top means crowns in air, but HTML vertical range with writing-mode bt-lr means dragging up increases value, making physical direction ambiguous/wrong in most browsers); water level rise calculation divides by pixel-area × 1000 rather than a physically meaningful container cross-section, producing near-zero rise; buoyancy formula (displaced × 1 × 10 / 1000) yields ~0.51 N for full immersion of a 51.75 cm³ gold crown instead of the correct ~0.507 N which is numerically close but the partial-immersion scaling assumes linear volume submerged which is wrong for a sphere; density values are plausible but the "silver" crown is mislabeled throughout the code as silverCrown/SILVER_DENSITY yet uses ALLOY_DENSITY (9.12 g/cm³), causing internal inconsistency.