An averaged permanent-magnet brushed DC model; the three-coil drawing illustrates commutation but does not calculate individual coil currents or magnetic fields.
No supply switching transient, inductance, saturation, brush wear or thermal model. A condition change restarts from rest.
The 3D shaft turns at 1/30 of calculated angular motion for visibility. Speed readouts remain physical model values; camera motion is separate.
Three.js geometry is original and schematic, not manufacturer CAD. The application marker is not an aerodynamic simulation.
A coupled model: I = (V − kω)/R; τ = kI; J dω/dt = τ − bω. Here k = 0.03 N·m/A = 0.03 V·s/rad, R = 2 Ω and J = 0.002 kg·m². These are illustrative constants. Inductance, brush drop and torque ripple are omitted.
A solution you can inspect: For a start from rest, ω∞ = (kV/R)/(b + k²/R) and T = J/(b + k²/R). Then ω(t) = ω∞(1 − exp(−t/T)). The shaft angle is the integral of this expression. Negative supply produces the mirrored response.
Power has destinations: VI = I²R + τω. Mechanical power changes rotational kinetic energy and is dissipated by drag. The steady balance is kI = bω. A stalled real motor can overheat; this model does not calculate temperature or safe operation.
What has been checked
Analytical reference cases, conservation or transition invariants, finite drawing commands, bounded setup parsing, discovery and route integrity are checked automatically. These checks do not establish anatomical fidelity, learner outcomes or browser/device compatibility. Independent subject review, learner trials, comprehensive accessibility review and browser video encoding checks remain pending.
Each source supports the associated claim. Sources do not certify this implementation or its visuals.