PULSED OFFSET GYRO
Counter-rotating masses on offset circular race tracks, pulsed at three cycles per revolution. The time-asymmetric centripetal force produces a net directional bias on the housing.
Adjust the parameters and press START. Set pulse to zero to see the control case — no bias without time-asymmetric forcing.
The LEDGER toggle opens the simulation's bookkeeping. Its job is honesty: if the model quietly leaked energy or momentum through numerical error, the force bias on screen would be worthless. A healthy ledger reads like this:
KE masses — kinetic energy of the eighteen balls at this instant. It swings with the pulse; that is expected.
Cons. resid — the change in kinetic energy minus the integrated work of the track forces along the path actually traversed. These are computed independently, so agreement is a real check: the residual should hover near zero (green below 1% of peak KE) at any RPM and pulse. If it grows, that is integration error, not physics.
|p| inst — the combined momentum of the balls right now. Non-zero by design: this is the mechanism itself, the imbalance the housing reacts against. It carries no pass/fail flag.
|p| cyc avg — the same momentum averaged over one full pattern cycle. This one must return to near zero (green below 0.5% of its own peak): the balls end each cycle back in the pattern they started, so no net momentum accumulates inside the box. Any sustained push on the housing has to be paid for through an external contact — track friction, drag, the floor.
Impulse Y — the vertical impulse the internal forces have delivered to the housing since reset, accumulated without smoothing.
Moving a slider rebases the books automatically — changing parameters changes the energy of the system without any work being done inside the model, so the ledger restarts from the new state rather than reporting a false residual. RESET clears everything.