code wiki / (root) / nx_dyna_bind_skin_gate.nx

nx_dyna_bind_skin_gate.nx

buildroot/runtime/nx_dyna_bind_skin_gate.nx

20685 B362 linesdepth 3pulls 4 transitivereach 0 importersview sourcekind gate/proof
docsdependenciesstructsconstsfunctions

about

nx_dyna_bind_skin_gate.nx -- THE MOTION GATE: one tooth per NAMED failure mode, every bound READ FROM knowledge/gamefeel_oracle.conf, never written here. WHY THE TEETH ARE SHAPED THIS WAY. The operator's bar is that the motion be best-of-breed and that previous attempts were awful. "Awful" is not one thing, so a single "it deformed" tooth would pass the exact solver we are trying to beat. Each recognisable way secondary motion reads as wrong therefore gets its OWN tooth with its OWN derived bound: dead -- no visible secondary motion. Tooth: the excitation must actually reach the plant. jelly -- under-damped, never settles. Tooth: residual excursion must decay. buzzing -- unstable at the substep. Tooth: the measured natural frequency must be far below the sampling rate; a plant that "oscillates" AT the sample rate is quantization chatter, which is exactly the defect this lane hit and fixed on 2026-08-23. unobservable -- a profile whose response does not complete a period inside the window. Tooth: that must report UNOBSERVABLE and must NOT be scored as a pass. An instrument that cannot see must abstain, never acquit. swimming/symmetry -- the binding must DISCRIMINATE: some skin vertices bound to a region and some skin-locked. Both signals present at once, or the tooth proves nothing. The plant-vs-subject comparison (fn, zeta) is REPORTED against the cited bands. It is deliberately NOT a pass/fail tooth in this gate: knowledge/gamefeel_oracle.conf itself records that our two shipped profiles bracket the human band, so failing the build on it would be failing on a modelling result rather than on a regression. The numbers are printed every run so the movement is visible, and the ratchet belongs in the profile lane that owns those constants. SUBJECT: ./nx_dyna_bind_skin.elf -- the promoted binary, forked. Subprocess capture comes from nx_gatekit_lib because a hand-rolled pipe DEADLOCKED a sibling gate in production today (pid 2240, 50+ minutes in pipe_wait). Never re-roll that plumbing. license_tier: ORIGINAL No hw writes (Rule 26). expect_exit: 0

dependencies 3 imports · 0 importers

nx_syscalls.nx nx_gate_verdict.nx nx_gatekit_lib.nx nx_dyna_bind_skin_gate.nx

imports: nx_syscalls.nxnx_gate_verdict.nxnx_gatekit_lib.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_puts sys_write ↻ sys_mmap ↻ sys_read_file sys_openat_rd sys_lseek sys_mmap ↻ sys_read sys_munmap sys_close gv_check gv_puts ↻ dg_band dg_slen gv_num sys_mmap ↻ sys_write ↻ sys_munmap ↻ dg_ringdown gk_run_capture gk_run_cap2 gk_run_cap3 sys_mmap ↻

structs

none

consts

32const DG_ELF: *u8 = "./nx_dyna_bind_skin.elf"
33const DG_CONF: *u8 = "knowledge/gamefeel_oracle.conf"
34const DG_CAP: i64 = 65536
35const DG_AMP_CMM: i64 = 3200
40const DG_DT_US: i64 = 4167
41const DG_US_PER_S: i64 = 1000000
42const DG_MHZ: i64 = 1000
48const DG_CROSS_FOR_PERIOD: i64 = 3

functions

50func dg_slen(s: *u8) -> i64 { var n: i64 = 0; while s[n] != (0 as u8) { n = n + 1 } return n }
called by 2: dg_banddg_after
55func dg_band(b: *u8, n: i64, key: *u8, out: *i64) -> i64
called by 1: main calls 1: dg_slen
120func dg_after(buf: *u8, n: i64, key: *u8) -> i64
called by 1: main calls 1: dg_slen
153func dg_ringdown(prof: *u8, buf: *u8, blen: *i64) -> i64
called by 1: main calls 1: gk_run_capture
157func dg_ringdown_amp(prof: *u8, amp: *u8, buf: *u8, blen: *i64) -> i64
called by 1: main calls 1: gk_run_capture
161func main(argc: i64, argv: *i64) -> i64