code wiki / _hdl_build / nx_diversity_veg_gate.nx

nx_diversity_veg_gate.nx source

↩ module page · 97 lines · 4889 B

1// nx_diversity_veg_gate.nx -- the FAST half of the R1 diversity proof (species + body plans; no world renders, 2// so it survives the degraded box). The BIOME half (4 world renders) is nx_diversity_gate T1 -- proven GREEN 3// 2026-07-10 (min pairwise L1 12,620,870) on the identical worldgen build; re-run it when the box is healthy. 4// T2 TREE SPECIES: 5-species grammar -> pairwise-distinct renders + dead leafless + conifer/broadleaf silhouettes differ 5// T3 CREATURE BODY PLANS: quadruped/bird/fish -> distinct part counts + pairwise-distinct renders 6// license_tier: ORIGINAL expect_exit: 0 7import "nx_syscalls.nx" 8import "nx_png.nx" 9import "nx_treegen.nx" 10import "nx_creaturegen.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 } 14func L1(a: *i64, b: *i64, n: i64) -> i64 { var s: i64=0; var i: i64=0; while i<n { var d: i64=(a[i]&255)-(b[i]&255); if d<0{d=0-d} s=s+d; i=i+1 } return s } 15 16func main() -> i64 { 17 hw("=== nx_diversity_veg_gate -- species + body plans (fast half of R1) ===\n" as *u8) 18 var fails: i64 = 0 19 // ---- T2 TREE SPECIES ---- 20 let TW: i64 = tg_w(); let TH: i64 = tg_h(); let tnpx: i64 = TW*TH 21 let TP: *i64 = sys_mmap(TG_CAP*TG_STR*8) as *i64 22 let sfb: *i64 = sys_mmap(5*tnpx*8) as *i64 23 var sp: i64 = 0 24 while sp < 5 { 25 let n: i64 = treegen_build_sp(TP, 9, sp) 26 treegen_render(TP, n, 300, 4, 210, 224, 238, (sfb as i64 + sp*tnpx*8) as *i64) 27 sp = sp + 1 28 } 29 var smin: i64 = 2000000000 30 var i: i64 = 0 31 while i < 5 { 32 var j: i64 = i + 1 33 while j < 5 { 34 let d: i64 = L1((sfb as i64 + i*tnpx*8) as *i64, (sfb as i64 + j*tnpx*8) as *i64, tnpx) 35 if d < smin { smin = d } 36 j = j + 1 37 } 38 i = i + 1 39 } 40 var deadgreen: i64 = 0 41 let dfb: *i64 = (sfb as i64 + 4*tnpx*8) as *i64 42 i = 0 43 while i < tnpx { let px: i64 = dfb[i]; let r: i64 = px&255; let g: i64 = (px>>8)&255; let bb: i64 = (px>>16)&255 44 if g > r + 14 { if g > bb + 14 { deadgreen = deadgreen + 1 } } i = i + 1 } 45 hw(" species: min pairwise L1 = "); pn(smin); hw(" dead-tree green px = "); pn(deadgreen); hw("\n" as *u8) 46 var t2: i64 = 0 47 if smin > 150000 { if deadgreen < 300 { t2 = 1 } } 48 if t2 == 1 { hw("T2 PASS 5-SPECIES GRAMMAR distinct + dead leafless\n" as *u8) } 49 else { fails=fails+1; hw("T2 FAIL species\n" as *u8) } 50 let sg: *i64 = sys_mmap(5*tnpx*8) as *i64 51 var y: i64 = 0 52 while y < TH { var x: i64=0; while x < TW { var k: i64=0; while k < 5 { sg[y*(TW*5)+k*TW+x] = sfb[k*tnpx + y*TW+x]; k=k+1 } x=x+1 } y=y+1 } 53 write_png(sg, TW*5, TH, "knowledge/nx_species.png" as *u8) 54 55 // ---- T3 CREATURE BODY PLANS ---- 56 let AW: i64 = as_w(); let AH: i64 = as_h(); let anpx: i64 = AW*AH 57 let AP: *i64 = sys_mmap(96*AS_STRIDE*8) as *i64 58 let cfb: *i64 = sys_mmap(3*anpx*8) as *i64 59 let counts: *i64 = sys_mmap(3*8) as *i64 60 var p: i64 = 0 61 while p < 3 { 62 let n: i64 = creaturegen_build_plan(AP, 4, p) 63 counts[p] = n 64 var yaw: i64 = 4800 65 if p == 2 { yaw = 4200 } 66 var ccr: i64 = 150; var ccg: i64 = 116; var ccb: i64 = 84 67 if p == 1 { ccr=140; ccg=96; ccb=58 } 68 if p == 2 { ccr=110; ccg=128; ccb=150 } 69 anatstack_render(AP, n, yaw, 3, 1, 42, ccr, ccg, ccb, (cfb as i64 + p*anpx*8) as *i64) 70 p = p + 1 71 } 72 var cmin: i64 = 2000000000 73 i = 0 74 while i < 3 { 75 var j: i64 = i + 1 76 while j < 3 { 77 let d: i64 = L1((cfb as i64 + i*anpx*8) as *i64, (cfb as i64 + j*anpx*8) as *i64, anpx) 78 if d < cmin { cmin = d } 79 j = j + 1 80 } 81 i = i + 1 82 } 83 hw(" body plans: parts quad="); pn(counts[0]); hw(" bird="); pn(counts[1]); hw(" fish="); pn(counts[2]); hw(" min pairwise L1="); pn(cmin); hw("\n" as *u8) 84 var t3: i64 = 0 85 if counts[0] != counts[1] { if counts[1] != counts[2] { if cmin > 250000 { t3 = 1 } } } 86 if t3 == 1 { hw("T3 PASS 3 BODY PLANS distinct\n" as *u8) } 87 else { fails=fails+1; hw("T3 FAIL body plans\n" as *u8) } 88 let cg2: *i64 = sys_mmap(3*anpx*8) as *i64 89 y = 0 90 while y < AH { var x: i64=0; while x < AW { var k: i64=0; while k < 3 { cg2[y*(AW*3)+k*AW+x] = cfb[k*anpx + y*AW+x]; k=k+1 } x=x+1 } y=y+1 } 91 write_png(cg2, AW*3, AH, "knowledge/nx_bodyplans.png" as *u8) 92 93 if fails == 0 { hw("DIVERSITY-VEG-GATE GREEN -- species + body plans measured-distinct (galleries refreshed)\n" as *u8); sys_exit(0); return 0 } 94 hw("DIVERSITY-VEG-GATE RED fails="); pn(fails); hw("\n" as *u8) 95 sys_exit(1) 96 return 1 97}