Every lesson in this lab states falsifiable claims and lets you check them. This page turns the lab into a course: what to learn in each unit, exercises whose answers you can earn on the pages, and — for the last rung of each — the tests that hold the claims to account. Predict first, then move the slider. The order below is a suggestion; the physics does not mind.
The method, once. For every lesson: read its claims box; play until the claims stop being surprising; use the dissection steps where they exist; then verify — the readouts are live claims, python3 checks/run.py is the independent implementation, and cargo test runs the very crates the pages run. The final exercise of every unit is to break a claim on purpose and watch physics disagree with you. Setup for the tooling rungs is two clones, side by side — see the README ladder.
Infinitely Many Bounces · objectives: restitution as a speed fraction · energy goes as speed squared · a convergent geometric series of bounces
h₀ = 3, e = 0.6. Predict the third apex height before looking, then check.
h₃ = e⁶·h₀ = 0.6⁶·3 = 0.140 m. If you predicted e³ instead of e⁶, you conflated speed with energy — the most common miss in this unit.
e that makes a 4 m drop rest at exactly 10 s on Earth.
Solve √(2h₀/g)·(1+e)/(1−e) = 10 → (1+e)/(1−e) = 11.07 → e ≈ 0.834.
All times scale as 1/√g; every apex height is invariant — hₙ = e²ₙh₀ has no g in it.
One Fall, Three Mechanics · objectives: F = ma, δS = 0 and Hamiltonian flow as one motion · conservation and exactly where it ends
At the apex all of H is potential: h = H/g (unit mass).
e from the pair.
e = √(Hₙ₊₁/Hₙ) — the staircase is a measurement instrument.
ε? What would an asymmetric curve tell you about the flown path?
The linear term of S(ε) is the Euler–Lagrange expression integrated against the perturbation; it vanishes because the flown path obeys Newton. An asymmetric (linear) term would mean the reference path was not a true trajectory.
e * e to e. Predict the failing test and the measured ratio it will print, then run cargo test -p lesson-three-mechanics.Projectile Range · objectives: the τ/8 maximum · complementary angles · natural units and scale invariance
sin(2θ).Both go as 1/g at fixed v: range v²sin2θ/g, time 2v sinθ/g. (Apex too.)
Deriving the Wave Equation · objectives: second difference as curvature · the sin→tan budget · dispersion and the continuum limit · superposition
c = 1.5, then scrub to it.
Distance 3 at speed 1.5 → t = 2.0 s.
error ≈ slope²/2 and check it explains your number.The centre bead: its two neighbours mirror each other, so the second difference vanishes there for every symmetric mode the pluck excites.
Dispersion: short-wavelength modes lag (their speed pins at 4/τ of c). A smooth pluck puts ever less energy into them as N grows — that is exactly what the fidelity readout measures.
Two Mirrors Make a Rotation · objectives: reflection as a sandwich · rotors as reflection pairs · angle doubling · independence from the rotated vector
Δ = 1/6 τ — half the rotation, always.
⟨R⟩₀ goes negative. What does a negative scalar part mean for the rotor, and does the rotation care?
⟨R⟩₀ = cosΔ < 0 past a quarter turn; R and −R implement the same rotation (the double cover) — the motion is oblivious.
Odd count → orientation reverses → it is a reflection (about some line), never a rotation. Parity of reflections is the deepest invariant in the unit.
Real or Virtual · objectives: the five converging cases · the sign of f as the true category · where real images can be caught
f = 2, find the object distance where the image is real and exactly life-size, for the lens and for the concave mirror. Compare.
dₒ = 2f = 4 in both — same equation, same case structure; only the side the image lands on differs.
dₒ = f slowly and describe what happens to the image on both sides of the crossing.For instructors. Every exercise above is anchored to a claim with a named test, so grading can be mechanical where you want it: a student's "break it" homework is a diff plus the failing test's output. The lab re-proves all claims in public CI on every push; fork the repo and your students' pull requests get the same treatment. To assign new exercises, add tryThis entries to a lesson's manifest — or have students build whole lessons: that is the authoring guide.