nishi code wiki / research / soft-tissue dynamics

Soft-tissue dynamics: the plant, the drive, and the difference that reorders the work

Published · lineage: forks off the cloth and soft tissue brief, which established that material realism is not the bottleneck and that we must gate on ratios and kinematics · context: a browser WebGL2 engine with integer-deterministic fixed-point physics, shipping characters whose chest motion is already tuned and already measured

One distinction reorders everything below. A soft-tissue system has a plant (the tissue's own spring, described by a natural frequency and a damping ratio) and a drive (the body motion that shakes it, described by step frequency). The literature publishes both, roughly a factor of two apart: measured braless natural modes sit near 4.9–5.0 Hz while walking and running drive at 1.5–5.0 Hz, 2–3 Hz at ordinary gait. We had been treating them as one number. Our shipped chest spring has a natural frequency of 2.75 Hz and is driven at 2.5 Hz — the plant is sitting on top of its own drive, which is the definition of resonance. The amplitude we ship is inside the published band, but it is produced by a resonance artifact rather than by tissue mass: the right number by the wrong mechanism.

1. The plant and the drive are different quantities

QuantityPublished valueWhat it describes
Natural frequency (plant)mediolateral 4.87–4.91 Hz, vertical 4.99–5.02 Hz, braless, single subjecta property of the tissue and its suspension alone; visible only when the drive stops
Damping ratio (plant)ζ = 0.475 ± 0.062, n = 1how fast the oscillation dies; governs jiggle decay
Drive frequency1.5–5.0 Hz step rate; 2–3 Hz at gaitthe forcing term, a property of locomotion, not of tissue

The two overlap at the top of the running range, and that overlap is the physiological resonance mechanism. They are not two estimates of one thing and must never be reconciled into a single number. Sources: first ten natural frequencies, single subject (secondary table; primary not pinned) · Haake & Scurr, Sports Engineering 12(4):189–197 (2010) · same, institutional record

2. Our own plant, derived from our own shipped constants

Our solver is semi-implicit Euler with stiffness K and damping C expressed per-1024, stepped at a fixed 60 Hz. That yields closed forms for both plant quantities: f_n = sqrt(K/1024) · 60 / 2π and ζ = C / (2·sqrt(1024·K)).

The formula validates against the source's own stated number before it is used on anything else. Our non-bred chest constant is K = 85, and the formula returns 2.75 Hz — exactly the figure written in the engine's own comment, independently. Only then is it applied to the bred range.
Firmness stopKCf_n (Hz)ζ
0 (softest bred)601002.310.202
3 (firmest bred)1351483.470.199
published human4.0–5.20.475

The gap, stated as numbers: our natural frequency is 1.4–2.2× too low and our damping ratio is 2.4× too low — our tissue is both too soft and too bouncy. Because a lightly damped plant driven at its own natural frequency amplifies by roughly 1/(2ζ), ζ = 0.20 predicts about 2.5× resonant gain, and the engine's own measurement comment independently records ~2.6×. Two derivations agreeing is why we state this as a finding rather than a suspicion.

The root cause is traceable to a single citation string. Our banked stiffness band cites scurr2011-breast-kinematics-2to3hz-gait; jigglephysics-naelstrof-defaults — a human gait figure (a drive) sitting beside a game mod's spring defaults, and the plant was then tuned until it sat at the drive frequency. A citation that mixes a subject measurement with a tooling default will silently license a wrong constant, because every later reader sees a citation and stops asking. The fix is structural: subject truth and solver tunables now live in separate row families that may not be compared until an instrument reports in both units.

3. The identified parameters worth adopting

FindingValueWhy it is adoptable
Piecewise asymmetric stiffnessk above equilibrium 73.5 N/m; k below 658 N/m (~9×); c 1.83 and 2.07 N·s/mvalidated at ≤2.6% RMSE against real running kinematics; one sign test on displacement selects the branch, which is exact in integer arithmetic and costs nothing
Per-axis ranges, no bravertical 0.057 m, mediolateral 0.034, front-back 0.035; breast mass 0.747 kg; tissue density 945 kg/m³CC-BY, commercially usable. Yields anisotropy 1 : 0.61 : 0.60, which independently confirms our banked 1 : 0.62 and corrects our lateral figure upward from 0.55
Cup-size scaling A→Gvertical 4.2 → 9.9 cm; unsupported resultant 4.2±1.0 cm walking → 15.2±4.2 cm runninggives the per-size sub-band we had flagged as future work actual numbers
Node budget9 masses, 16 springs, 16 dampers per breasta published, peer-reviewed topology an order of magnitude inside our budget
Accuracy parity bar7.05 mm mean surface error, offline multi-component FE vs 4D scananything inside this is at parity with the offline state of the art, and we can say so with a citation

Sources: Cai et al., J Biomech 67:137–143 (2018), piecewise mass-spring-damper · Mills et al., Eur J Sport Sci (2025), CC-BY · multiplanar breast kinematics across cup sizes · Liang et al. (2026), multi-directional nonlinear MSD · Chen et al., Biomech Model Mechanobiol (2024), CC-BY

Every verifiable mechanical study in this field is n = 1. Haake & Scurr is one runner; Mills is one subject at 34DD; the 4D-scan validation is one subject. The parameters above are the best published numbers in existence and they are still single-subject fits. Adopt them as centres with wide bands, never as constants.

4. Contested and unresolved: Cooper's ligament stiffness

The structure that controls motion amplitude carries an unresolved measurement disagreement. Cadaver uniaxial testing gives 5.8 ± 4.2 MPa across n = 28 ligaments with a mode at 3.0 MPa; simulation practice uses 100 kPa; and historical extrapolation from other ligamentous structures gave 80–400 MPa. A 2026 patient-specific finite-element study reports that anatomically informed ligaments reduce displacement by 38% and that stiffening yields limited benefit above 2 MPa.

We therefore adopt 1–2 MPa as the behaviourally relevant window only, record the cadaver figure alongside it, and do not average the two. Sources: ex-vivo Cooper's ligament characterisation · Biomech Model Mechanobiol (2022) · Med Eng Phys (2026), ligament networks · the 100 kPa simulation baseline, CC-BY

5. Controllability: the parameterisation is the interface

A sweep of the 2025–26 literature and the SIGGRAPH 2026 index found no published framework for exposing soft-tissue behaviour as designer-facing parameters with physical meaning — only raw stiffness and damping sliders in tool forums. That absence is itself the answer: the mass-spring-damper parameterisation is the designer contract, because (k_up, k_down, c_up, c_down) per axis are four numbers a biomechanics paper also reports, which is the only property that makes them gateable at all. A learned latent would be more expressive and completely ungateable.

Our adopted rule: a setting may leave the human band, but never silently. An asset resolves to PHYSICAL (every parameter in band), STYLIZED (out of band and carrying an explicit declaration naming which axes), or RED (out of band with no declaration). Only the third is a failure, and it is a failure of honesty rather than taste: an undeclared out-of-band value is a physical claim the asset cannot support. Hard clamping was rejected because it silently rewrites authorial intent; a free-for-all was rejected because it makes "our physics is accurate" unfalsifiable.

6. What this changes in our build

The instrument comes first. Every probe we had measured the forced response, which confounds plant with drive; the two numbers the literature publishes are only visible once the drive stops. Our characters ring down every time they stop walking, so a free pluck test was already happening in the game and nobody was recording it — which means measuring our own tissue needs no reference footage and no capture session at all. The ringdown probe reads the tissue-vs-bone channel (correct because respiration at 0.233 Hz is tracked quasi-statically, so the relative offset decays toward zero and what remains is the free response), detects extrema rather than zero crossings (crossings give period but say nothing about amplitude, and amplitude decay is the damping), and refuses any window with fewer than three peaks above two quantisation units.

A correction, caught while implementing — our two channels have different quanta and had been treated as one. The drive channel (the anchor, in world q8) has a quantum of 0.39 cm. The response channel (tissue-vs-bone offset, in model q8, where one model unit is 1.56 cm) has a quantum of 0.061 mm — sixty-four times finer. Our own ruler registry had recorded the coarse figure as the soft-tissue instrument's floor, understating the response channel by that factor, and this brief asserted the same thing before the arithmetic was done properly. The consequence is favourable and worth stating plainly: the ringdown is not quantum-limited and resolves well below a millimetre, while the breathing probe, which necessarily reads the anchor, genuinely is. The very conflation this brief is about — plant versus drive — had quietly produced a second one in the instrument's own units. Two channels, two scales, one symbol: q8 meant different things in the two files and nobody had converted.

UNVERIFIED / declared gaps