site logo Advanced Physics Projects for School & Home
open source science on a budget
Home Projects Blog Downloads About

Building Tiny Worlds

A computational approach to mastering pre-university physics

Under active development - target release summer 2022 - probably as a commercial project. Concept here is a broad enrichment course exposing students to core concepts in pre-university physics via learning to code.

For 20 years or so I have run extra-curricula clubs in schools and 6th form colleges. One of the most popular was 'Building Little Worlds' - Programming for Physicists' which inspired this course. I introduced students to programming from the stance of a computational scientist rather than a traditional computer programmer. This can greatly enhance a student's understanding of and ability to relate to dynamic physics scenarios. I feel that this was rather successful, with a number of students reporting university interviews dominated by discussion of their experience.

Computational Physics Course
Early Development - motion under gravity, balls falling in viscous medium with drag calculated via Stoke's Law. Left ball larger and less dense than green so tends to terminal velocity faster.

An early snapshot. Deciding that jumping straight into proton precession was a bit heavy in novel concepts I started with modelling a gyroscope - one of the harder concepts in A-level/early degree physics. I'm rather impressed with this approach. Personally I now 'get' gyroscopes with the maths seeming intuitive - not sure I did before. Learning physics through coding may well be the way to go.

B.t.w. this is an ab-initio simulation. Only input values are g, rotor mass, rotor radius, starting angle from vertical and angular velocity. Moment of intertia and angular momentum are then calculated. Resulting motion arises from resolving the moments on the pivot all realised in vector form .. chuffed.

I may add a couple of extra features, some stripe to indicate rotor rotation, maybe sliders to change g, mass, angular velocity. Need to think on nutation as well.