This is not a 3D machine viewed from above — the rotating field and the rotor speed are each computed by an independent 2D calculation, run every frame:
1) Rotating field, from real 3-phase currents (Clarke-style vector sum):
i_a = I·cos(θe) θe = ∫ωe dt, ωe = 2π·f
i_b = I·cos(θe−120°)
i_c = I·cos(θe+120°)
F = i_a·â + i_b·b̂ + i_c·ĉ (â,b̂,ĉ = unit vectors at 0°,120°,240°)
→ |F| is provably constant (=1.5·I) and arg(F) = θe, for ANY t
The stator coil brightness you see is driven by these same three instantaneous currents — the arrow is not animated by assumption, it is literally the vector sum, recomputed every frame, of the three phase axes weighted by their instantaneous currents. Mechanical field angle = θe / p, which is exactly why ns = 60f/p.
2) Rotor speed, from Newton's law for rotation (real ODE, not an eased target):
J·dωr/dt = T_dev(s) − T_load s = (ωs − ωr)/ωs
T_dev(s) = 3V²·(R₂/s) / { ωs·[(R₁+R₂/s)² + (X₁+X₂)²] } (equivalent circuit)
integrated with 8 sub-steps per animation frame for stability
Integrating the real equation of motion (rather than solving for the steady-state slip and easing toward it, as a simpler model might) captures something the steady-state view misses: if the locked-rotor torque T_dev(s=1) is below Tload, the rotor never leaves standstill — even though a stable low-slip operating point exists on paper. Try a high load with a low voltage: the "Breakdown Tmax" readout can stay comfortably above your load torque while the motor still won't start, because it never gets past that first instant at s=1. That's a real, textbook phenomenon (motors are rated for starting torque separately from breakdown torque) that a model which only ever searches for the stable equilibrium slip would not show.
The torque-slip curve below the machine is plotted directly from T_dev(s) above, over the whole range s∈(0,1], with the live operating point marked — so you can watch the rotor's dot climb the curve in real time as it accelerates.
- Frequency / pole pairs — set ωe and hence the synchronous speed ns = 60f/p the field vector spins at.
- Voltage — torque scales with V², so a small sag costs a lot of torque (and can be the difference between starting and stalling).
- Load torque — resisting torque the shaft must overcome; the ODE finds wherever T_dev(s) and T_load actually balance, if that point is reachable from rest.