code wiki / _hdl_build / nx_contactfriction_gate.nx
nx_contactfriction_gate.nx
buildroot/runtime/_hdl_build/nx_contactfriction_gate.nx
about
nx_contactfriction_gate.nx -- FRICTION IS REAL AND ITS ABSENCE IS HONEST (softbody SB3, first leg).
WHAT THIS PROVES. Press a probe into the tissue, then DRAG it sideways, and measure how far the tissue
follows. With a high coefficient the surface is carried along; with mu 0 it slides and the surface stays.
That difference IS friction -- a normal-only contact cannot produce it, and neither can a blur.
THE THIRD STATE IS THE POINT. mu has three answers, not two: a number, ZERO, and UNSET. Zero is a
measured frictionless surface. UNSET means no citation exists and the solver declines to invent one --
and the estate has NO cited macroscopic skin-on-skin Coulomb mu whose bytes it has read (the two papers
fetched 2026-08-25 give a Frictiometer device index and microasperity values of 0.004/0.001; the quoted
0.2-0.5 band is from a review nobody here has read). So UNSET is today's honest production state, and
this gate proves it BEHAVES like frictionless rather than silently defaulting to some plausible number.
The mu used below is a FIXTURE VALUE for proving the mechanism, never a claim about skin.
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
| 19 | const CFR_G: i64 = 9800 |
| 20 | const CFR_ITERS: i64 = 8 |
| 21 | const CFR_SETTLE: i64 = 24 |
| 22 | const CFR_RAMP: i64 = 24 |
| 23 | const CFR_PROBE_R: i64 = 2500 |
| 24 | const CFR_DEEP: i64 = 2000 |
| 25 | const CFR_H_MM: i64 = 10 |
| 26 | const CFR_DRAG: i64 = 1500 // lateral sweep after the press, cmm |
| 27 | const CFR_DRAGSTEPS: i64 = 24 |
| 28 | const CFR_MU_STICK: i64 = 230 // FIXTURE ONLY (~0.9). Proves the mechanism; asserts nothing about skin. |
| 29 | const CFR_MU_MID: i64 = 64 // FIXTURE ONLY (~0.25). Exists to prove the cone is a CONTINUUM, not a switch. |
functions
| 32 | func cfr_surface_x(W: *i64) -> i64 called by 1: cfr_drag |
| 48 | func cfr_drag(mu: i64, out: *i64) -> i64 |
| 77 | func main() -> i64 |