Docs
Build a teaching series
Create lens, lamp and swing comparisons by changing one physical fact at a time.
Start with a question, keep the controls fixed, and change one physical fact. Open each model in Studio to edit its source. Save each state as a .phys file or share link; export SVG for slides and PNG for worksheets.
1. Where does the candle image form?
Keep the focal length at 10 cm and the candle height at 4 cm. Change only the final distance in candle -> L 30cm. There is deliberately no animate: each export is a still comparison, not a moving target.
Diagram description
Static physics diagram: Candle image at 30 cm.
| Object distance | Image distance | Magnification | Image |
|---|---|---|---|
| 30 cm | 15 cm | -0.5 | Inverted, smaller |
| 20 cm | 20 cm | -1 | Inverted, same size |
| 15 cm | 30 cm | -2 | Inverted, larger |
The minus sign means inversion. These predictions use the thin-lens approximation with the object beyond the focal point. Keep the lens’s 10cm focal length unchanged: changing it would test a different question. At the focal point there is no finite image distance.
2. Why are identical lamps dimmer in series?
Both lamps are rated 6 V / 3 W. Keep their declarations and the source unchanged. Replace only V <-> A <-> B <-> V with V <-> (A <=> B) <-> V to compare parallel wiring.
Diagram description
Static physics diagram: Two lamps in series.
| Connection | Voltage per lamp | Current per lamp | Power per lamp | Source current |
|---|---|---|---|---|
| Series | 3 V | 0.25 A | 0.75 W | 0.25 A |
| Parallel | 6 V | 0.5 A | 3 W | 1 A |
The lamp model uses fixed hot resistance R = U²/P = 12 ohm. Glow communicates relative solved power; it is not a calibrated light meter or a filament warm-up simulation. The shape and labels still identify a lamp in a grayscale print. Moving current dots are unnecessary for this comparison.
lamp A, B 6V 3W declares two distinct lamps with the same ratings. Change the shared declaration to change both, or split it into separate lamp A and lamp B lines to test unequal lamps. The source voltage remains an independent fact; equal ratings do not connect components automatically.
3. How does swing length change the period?
Use the same support and release angle. The three pendulums are independent, not linked pendulums that exchange energy. Lengths in the ratio 1:4:9 give periods in the ratio 1:2:3 in the small-angle approximation.
Diagram description
Animated physics diagram: Three swing periods; showing time.
With the default g = 9.80665 m/s², the small-angle periods are approximately 1.00 s, 2.01 s and 3.01 s. This model uses the small-angle approximation and is not a large-angle pendulum simulation. Change only pendulum B 1m to pendulum B 0.25m: A and B should now stay in step, while C is unchanged.
Adding a fourth pendulum requires only its declaration and support connection. animate duration=3s speed=0.5 observes all pendulums for three experiment seconds at half speed. $release_angle explicitly keeps all initial angles equal for this comparison; changing its definition changes all three. Replace one reference with 5deg to give only that swing a different initial angle. Neither a shared support nor a shared parameter couples their motion. To inspect one pendulum through its complete cycle instead, replace the animation line with animate A speed=0.5.
A repeatable authoring check
- Open the baseline in Studio and change the one indicated value or connection.
- Compare the result with the table or period prediction before exporting.
- Download the
.physsource with a distinct filename for each state. SVG and PNG preserve the chosen appearance, not a separate physical model. - Open the share link in a fresh tab and confirm the edited source and result. Sharing needs no external template or library file.
Use the existing Classic, Modern or Sketch theme to change presentation. Subject skins draw familiar objects; component skins retain circuit symbols and terminals. Neither changes the equations. Browser printing uses a white diagram background even from dark mode; check the exported result at its intended size.
Use grouped declarations for identical components, and let with explicit $name references when one numeric control is reused across declarations. Values with different physical meanings stay independent, even when their numbers happen to match. These tasks need neither loops nor macros. See DSL basics for parameter scope and validation.