This is an independent 2D re-derivation, not a flattened copy of the 3D model: instead of reading force off a fixed lookup table, it numerically integrates A.F. Huxley's 1957 two-state cross-bridge kinetics every frame, so force is a genuine emergent output of attachment/detachment rate equations, not a stored curve.
Each myosin head is treated as a spring with strain s (nm) relative to its unstrained attachment point. Attachment/detachment obey:
dn/dt = f(s)·(1−n) − g(s)·n − v·∂n/∂s
f(s) = f₁·s/h for 0 ≤ s ≤ h (else 0)
g(s) = g₁·s/h for s ≥ 0
g(s) = g₂ for s < 0 (g₂ ≫ g₁, fast release)
The engine discretizes s into 60 bins and advances each frame by operator splitting: advect the population by the imposed sliding velocity v, then solve the (now-linear) reaction step exactly with n → n_ss + (n−n_ss)·e^(−(f+g)dt). Force is the population-weighted spring extension, F ∝ Σ n(s)·s.
Geometric overlap is derived from filament lengths directly (thick 1.60 μm, thin 1.05 μm, bare zone 0.10 μm each side of the M-line) — including two effects a simple "zones intersect" integral misses: double overlap (opposing thin filaments overlapping each other below SL≈2.10 μm) and Z-disc jamming (the rigid thick filament crumpling once SL<1.60 μm). Both subtract directly from the productive overlap length.
Ca²⁺ gates the attachment rate f₁ through a cooperative Hill equation, activation = [Ca]²/(K_d²+[Ca]²), not a linear scale factor — reflecting how troponin/tropomyosin regulation is sigmoidal in real muscle, not proportional.
The force-velocity panel is new physics the 3D original doesn't have at all: at the current length and activation, the sim solves the same ODE to steady state across a sweep of imposed shortening velocities, reproducing the classic Hill (1938) hyperbolic force-velocity decline as an emergent result of the underlying kinetics.