code wiki / _hdl_build / nx_engorge_gate.nx
nx_engorge_gate.nx
buildroot/runtime/_hdl_build/nx_engorge_gate.nx
about
nx_engorge_gate.nx -- TISSUE SWELLS BECAUSE ITS REST STATE GREW (softbody SB16, 2026-08-25).
THE CROSS-BOARD CONTRACT THIS CLOSES. procgen's arousal row names its own blocker: "a pure normal
push is not volume-conserving, which the conservation gate above would refuse." That gate is
ours, and it is right to refuse -- displacing surface vertices leaves every rest length and rest
volume untouched, so the constraints are all violated and the next substep pulls the tissue back.
The tissue never swells; it fights. Growing the REST STATE instead lets the solver find the new
equilibrium with every constraint satisfied the whole way.
THE ORACLE IS GEOMETRY, NOT AN OPINION. Isotropic linear growth by s must scale measured volume
by s^3. That is a closed-form prediction, so this gate does not ask whether the tissue "looks
bigger" -- it asks whether the measured volume ratio matches the cube of the commanded factor.
A model that merely pushed the surface outward would move the skin without tracking s^3.
⚠ SCOPE: the MECHANISM only. How much any real tissue engorges, and how fast, is a measurement
nobody in this estate has mirrored, so the factor is the caller's and no band is invented here --
the same cite-or-abstain split the friction coefficient ships under.
license_tier: ORIGINAL No hw writes (Rule 26). expect_exit: 0
dependencies 3 imports · 0 importers
imports: nx_syscalls.nxnx_softtissue.nxnx_gate_verdict.nx
imported by: nobody (leaf or entry point)
call flow from main pre-order; caps 40 nodes / depth 6 declared; ↻ = already shown
structs
| none |
consts
| 23 | const EG_G: i64 = 9800 |
| 24 | const EG_ITERS: i64 = 8 |
| 25 | const EG_SETTLE: i64 = 40 |
| 26 | const EG_H_MM: i64 = 10 |
| 27 | const EG_GROW: i64 = 1200 // +20% linear, well inside integer range at s^3 |
| 28 | const EG_REST: i64 = 1000 // unity: the pristine rest state |
| 33 | const EG_TOL_PERMIL: i64 = 120 |
functions
| 35 | func eg_settled(prof: i64) -> *i64 |
| 43 | func eg_vol(W: *i64) -> i64 |
| 49 | func main() -> i64 |