nx_rigbench_gate.nx
buildroot/runtime/nx_rigbench_gate.nx
about
nx_rigbench_gate.nx -- proves the REAL-CHARACTER REFEREE (nx_rigbench_lib) measures what it claims, then runs it on
the house rig control ref9d (an artist-rigged character with SKEL, SKIN and a POSE library) so the M2 numbers are
EMITTED for independent adjudication. Two layers: (1) the RULERS are proven on known answers with no file at all --
the artist-bone coverage bar is derived from a 3-joint skeleton whose bone lengths are declared, the SKIN L1 reads
exactly zero on identical rows and exactly the maximum on rows sharing no joint (the neg-control that pins the
scale); (2) the bench runs end to end on ref9d and every value it rests on is printed. This gate deliberately puts
NO BAR on the deformation deviation: an uncalibrated ruler reports numbers, never verdicts, and the bar is set once
the referee panel has graded the live surface. What it DOES assert is non-vacuity: the artist skeleton was read,
our skeleton reached at least one artist joint, our weights are not disjoint from the artist's, the served player
ran both rigs, and the mesh ruler judged them. SUBJECT: nx_rigbench_lib (rb_run, rb_mean_bone, rb_skin_l1), in-process.
SKIPS (exit 3) with a named absence when ref9d is not on this host -- a laptop has no house rig.
license_tier: ORIGINAL expect_exit: 0
dependencies 3 imports · 0 importers
imports: nx_syscalls.nxnx_gate_verdict.nxnx_rigbench_lib.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
| 17 | const RG_DIR: *u8 = "/tmp/nx_rigbench_gate" |
| 18 | const RG_MODE_DIR: i64 = 493 |
| 19 | const RG_REF: *u8 = "sites/nishifamily/world/ref9d.nxa" |
| 20 | const RG_POSE: i64 = 1 |
| 21 | const RG_CELLS: i64 = 96 |
| 22 | const RG_EXIT_SKIP: i64 = 3 |
| 24 | const RG_KAT_NJ: i64 = 3 |
| 25 | const RG_KAT_B1: i64 = 5000 |
| 26 | const RG_KAT_B2: i64 = 4000 |
| 27 | const RG_KAT_MEAN: i64 = 4500 |
| 28 | const RG_KAT_LEAVES: i64 = 1 |
| 30 | const RG_W_EQUAL: i64 = 1024 |
| 31 | const RG_L1_DISJOINT: i64 = 8192 |
| 32 | const RG_L1_DISJOINT_PERMIL: i64 = 2000 |
| 33 | const RG_SKIN_OTHER_BASE: i64 = 4 |
| 34 | const RG_KAT_NJ_SKIN: i64 = 8 |
functions
| 36 | func rgw(s: *u8) -> i64 { var n: i64=0; while s[n]!=(0 as u8){n=n+1} sys_write(1,s,n); return 0 } |
| 37 | func rg_exists(p: *u8) -> i64 { let fd: i64 = sys_openat_rd(p); if fd < 0 { return 0 } sys_close(fd); return 1 } |
| 39 | func rg_kat_skel() -> *i64 |
| 53 | func rg_kat_skin(base: i64) -> *i64 |
| 61 | func main() -> i64 |