code wiki / _hdl_build / nx_anthro_gate.nx

nx_anthro_gate.nx source

↩ module page · 154 lines · 7792 B

1// nx_anthro_gate.nx -- ★Q4 ANATOMY REFERENCE PASS (operator reality audit: "the multi-layered person has no 2// anatomical correctness in an IRL situation"). This gate MEASURES the being's proportions FROM ITS SDF (execution- 3// level -- what is actually there, not what the part table claims) and grades them against the BANKED anthropometric 4// canon (knowledge/anthropometry_banked.txt, fetched from the artistic-anatomy/anthropometry reference 2026-07-12): 5// stature = 7.5 head-heights +-8% | legs (sole->crotch) 0.47..0.53 of stature | arm ~0.40 of stature +-8% 6// shoulder/hip halfwidth 1.08..1.30 (men 1.18) | fingertips at mid-thigh when arms hang 7// T1 bank present. T2 the measurements (printed -- the tape measure). T3 the canon verdicts. T4 determinism. 8// license_tier: ORIGINAL expect_exit: 0 9import "nx_syscalls.nx" 10import "nx_bodyatlas.nx" 11 12func hw(s: *u8) -> i64 { var n: i64=0; while s[n]!=(0 as u8){n=n+1} sys_write(1,s,n); return 0 } 13func pn(v: i64) -> i64 { let b: *u8=sys_mmap(32) as *u8; var x: i64=v; var ng: i64=0; if x<0{ng=1;x=0-x} var i: i64=31; if x==0{b[i]=48 as u8;i=i-1} while x>0{b[i]=(48+x%10) as u8;x=x/10;i=i-1} if ng==1{b[i]=45 as u8;i=i-1} sys_write(1,(b as i64+i+1) as *u8,31-i); return 0 } 14 15// first y (scanning DOWN from yhi to ylo, step 2) where the column (x, y, z) is INSIDE the skin. -100000 if none. 16func scan_down(x: i64, z: i64, yhi: i64, ylo: i64) -> i64 { 17 var y: i64 = yhi 18 while y >= ylo { 19 if ba_sdf(x, y, z, 1) < 0 { return y } 20 y = y - 2 21 } 22 return 0-100000 23} 24// first y scanning UP where inside 25func scan_up(x: i64, z: i64, ylo: i64, yhi: i64) -> i64 { 26 var y: i64 = ylo 27 while y <= yhi { 28 if ba_sdf(x, y, z, 1) < 0 { return y } 29 y = y + 2 30 } 31 return 0-100000 32} 33// max |x| that is inside at (x, y, 20), scanning outward to lim 34func halfwidth_at(y: i64, lim: i64) -> i64 { 35 var best: i64 = 0 36 var x: i64 = 0 37 while x <= lim { 38 if ba_sdf(x, y, 20, 1) < 0 { best = x } 39 x = x + 4 40 } 41 return best 42} 43 44func main() -> i64 { 45 hw("=== nx_anthro_gate -- Q4: the being measured against the BANKED anthropometric canon ===\n" as *u8) 46 var fails: i64 = 0 47 48 // ---- T1 the reference is banked (fetched bytes, not memory) ---- 49 let szp: *i64 = sys_mmap(16) as *i64 50 let bank: *u8 = sys_read_file("knowledge/anthropometry_banked.txt" as *u8, szp) 51 var t1: i64 = 0 52 if (bank as i64) != 0 { if szp[0] > 400 { t1 = 1 } } 53 if t1 == 1 { hw("T1 PASS anthropometry canon banked ("); pn(szp[0]); hw(" bytes)\n" as *u8) } 54 else { fails=fails+1; hw("T1 FAIL bank missing\n" as *u8) } 55 56 atlas_hand_curl(0) 57 atlas_build(0) 58 atlas_pose(0) 59 60 // ---- T2 the tape measure (all from the SDF) ---- 61 let crown: i64 = scan_down(0, 20, 1000, 500) // top of head 62 let sole: i64 = scan_up(90, 20, 0-1100, 0-600) // bottom of a foot (feet at x ~ +-90) 63 let stature: i64 = crown - sole 64 // head height: crown -> chin. chin = where the centre column exits the head going down (the neck notch is 65 // narrower; use the width profile: head bottom = first y below crown where halfwidth collapses below 40) 66 var chin: i64 = 0-100000 67 var y: i64 = crown - 40 68 while y > crown - 400 { 69 if chin < 0-99999 { 70 if halfwidth_at(y, 220) < 62 { chin = y } // 62 = the neck plateau (neck rx 60) 71 } 72 y = y - 4 73 } 74 let headh: i64 = crown - chin 75 // crotch: the y where the centre column (0, y, 20) is OUTSIDE while both thighs are INSIDE 76 var crotch: i64 = 0-100000 77 y = 0 78 while y > 0-560 { 79 if crotch < 0-99999 { 80 if ba_sdf(0, y, 20, 1) > 0 { if ba_sdf(0-95, y, 20, 1) < 0 { if ba_sdf(95, y, 20, 1) < 0 { crotch = y } } } 81 } 82 y = y - 4 83 } 84 let legs: i64 = crotch - sole 85 // shoulders: widest halfwidth in the shoulder band; hips: widest in the hip band 86 var shw: i64 = 0 87 y = 560 88 while y > 380 { 89 let w: i64 = halfwidth_at(y, 400) 90 if w > shw { shw = w } 91 y = y - 8 92 } 93 var hipw: i64 = 0 94 y = 0 95 while y > 0-200 { 96 let w: i64 = halfwidth_at(y, 200) // lim 200: the hanging arms/hands are NOT hips 97 if w > hipw { hipw = w } 98 y = y - 8 99 } 100 // fingertip: lowest inside y on the hand column (x ~ 240..270) 101 var ftip: i64 = 0-100000 102 var bestcol: i64 = 240 103 var cx: i64 = 220 104 while cx <= 280 { 105 let t: i64 = scan_up(cx, 20, 0-300, 100) 106 if t > 0-99999 { if ftip < 0-99999 { ftip = t; bestcol = cx } else { if t < ftip { ftip = t; bestcol = cx } } } 107 cx = cx + 10 108 } 109 // acromion (shoulder top at the arm column x=240) 110 let acro: i64 = scan_down(240, 20, 700, 300) 111 let arm: i64 = acro - ftip 112 hw(" stature="); pn(stature); hw(" (crown "); pn(crown); hw(" sole "); pn(sole); hw(") head="); pn(headh); hw(" (chin "); pn(chin); hw(")\n" as *u8) 113 hw(" crotch="); pn(crotch); hw(" legs="); pn(legs); hw(" shoulders half="); pn(shw); hw(" hips half="); pn(hipw); hw("\n" as *u8) 114 hw(" acromion="); pn(acro); hw(" fingertip="); pn(ftip); hw(" (col "); pn(bestcol); hw(") arm="); pn(arm); hw("\n" as *u8) 115 var t2: i64 = 0 116 if stature > 1500 { if headh > 80 { if crotch > 0-99999 { if ftip > 0-99999 { t2 = 1 } } } } 117 if t2 == 1 { hw("T2 PASS the tape measure works (all landmarks found on the SDF)\n" as *u8) } 118 else { fails=fails+1; hw("T2 FAIL landmarks missing\n" as *u8) } 119 120 // ---- T3 the canon verdicts ---- 121 let headsTall: i64 = stature*10/headh // x10 (75 = 7.5 heads) 122 let legFrac: i64 = legs*1000/stature // canon 470..530 123 let armFrac: i64 = arm*1000/stature // canon ~400 +-8% -> 368..432 124 let shHip: i64 = shw*100/hipw // canon 108..130 (men 118) 125 // fingertips at mid-thigh: mid-thigh y = crotch - legs/4 (upper-leg midpoint); tolerance +-90 126 let midThigh: i64 = crotch - legs/4 127 var ftOff: i64 = ftip - midThigh 128 if ftOff < 0 { ftOff = 0-ftOff } 129 hw(" heads-tall x10="); pn(headsTall); hw(" (canon 69..81) legs/stature x1000="); pn(legFrac); hw(" (470..530)\n" as *u8) 130 hw(" arm/stature x1000="); pn(armFrac); hw(" (358..442) shoulder/hip x100="); pn(shHip); hw(" (108..130) fingertip-vs-midthigh off="); pn(ftOff); hw(" (<=90)\n" as *u8) 131 var passN: i64 = 0 132 if headsTall >= 69 { if headsTall <= 81 { passN = passN + 1 } } 133 if legFrac >= 470 { if legFrac <= 530 { passN = passN + 1 } } 134 if armFrac >= 358 { if armFrac <= 442 { passN = passN + 1 } } // canon says ABOUT three heads -> +-10 percent 135 if shHip >= 108 { if shHip <= 130 { passN = passN + 1 } } 136 if ftOff <= 90 { passN = passN + 1 } 137 hw(" canon ratios passing: "); pn(passN); hw("/5\n" as *u8) 138 var t3: i64 = 0 139 if passN == 5 { t3 = 1 } 140 if t3 == 1 { hw("T3 PASS the being is PROPORTION-CORRECT vs the banked canon (5/5 ratios in band)\n" as *u8) } 141 else { fails=fails+1; hw("T3 FAIL "); pn(5-passN); hw(" ratios out of band -> FIX THE BEING, not the bar\n" as *u8) } 142 143 // ---- T4 determinism ---- 144 atlas_build(0) 145 let c2: i64 = scan_down(0, 20, 1000, 500) 146 var t4: i64 = 0 147 if c2 == crown { t4 = 1 } 148 if t4 == 1 { hw("T4 PASS deterministic\n" as *u8) } else { fails=fails+1; hw("T4 FAIL\n" as *u8) } 149 150 if fails == 0 { hw("ANTHRO-GATE GREEN -- Q4: proportions MEASURED from the SDF and IN-CANON vs the banked anthropometry (7.5-heads / legs / arm / shoulder-hip / fingertip-drop). Residual: organ SHAPES/positions vs a medical atlas; muscle origin-insertion geometry.\n" as *u8); sys_exit(0); return 0 } 151 hw("ANTHRO-GATE RED fails="); pn(fails); hw("\n" as *u8) 152 sys_exit(1) 153 return 1 154}