code wiki / _hdl_build / nx_contactfriction_gate.nx

nx_contactfriction_gate.nx

buildroot/runtime/_hdl_build/nx_contactfriction_gate.nx

6745 B138 linesdepth 6pulls 9 transitivereach 0 importersview sourcekind gate/proof
docsdependenciesstructsconstsfunctions

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

nx_syscalls.nx nx_softtissue.nx nx_gate_verdict.nx nx_contactfriction_gate.nx

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

main gv_ctr sys_mmap nxa_die sys_write sys_exit nxa_lock_take nxa_lock_addr sys_write ↻ nxa_lock_give nxa_lock_addr ↻ nxa_report_overrun sys_write ↻ nxa_dump_printable sys_write ↻ nxa_dump_sizes sys_write ↻ gv_head gv_puts sys_write ↻ sys_mmap ↻ cfr_drag st_new sys_mmap ↻ st_profile st_profile_seeded st_hash pg_sample pg_has_bound pg_bound st_span st_hash ↻ st_profile ↻ st_inside st_wall_drop st_abs st_isqrt vm_isqrt st_six_vol st_div_r

structs

none

consts

19const CFR_G: i64 = 9800
20const CFR_ITERS: i64 = 8
21const CFR_SETTLE: i64 = 24
22const CFR_RAMP: i64 = 24
23const CFR_PROBE_R: i64 = 2500
24const CFR_DEEP: i64 = 2000
25const CFR_H_MM: i64 = 10
26const CFR_DRAG: i64 = 1500 // lateral sweep after the press, cmm
27const CFR_DRAGSTEPS: i64 = 24
28const CFR_MU_STICK: i64 = 230 // FIXTURE ONLY (~0.9). Proves the mechanism; asserts nothing about skin.
29const CFR_MU_MID: i64 = 64 // FIXTURE ONLY (~0.25). Exists to prove the cone is a CONTINUUM, not a switch.

functions

32func cfr_surface_x(W: *i64) -> i64
called by 1: cfr_drag
48func cfr_drag(mu: i64, out: *i64) -> i64
77func main() -> i64