code wiki / (root) / nx_visual_hull_gate.nx

nx_visual_hull_gate.nx

buildroot/runtime/nx_visual_hull_gate.nx

6082 B121 linesdepth 3pulls 3 transitivereach 0 importersview sourcekind gate/prooftopic visual
docsdependenciesstructsconstsfunctions

about

nx_visual_hull_gate.nx -- liar-killed GATE for silhouette -> 3D form. Proven against SYNTHETIC silhouettes of a KNOWN shape, so the carver is verified end-to-end with no photograph required: two orthogonal views of a square column must intersect to a box. ★THE TOOTH THAT MATTERS is T6: with ONE view folded in, a point far along the VIEW axis must still read INSIDE, because a single silhouette cannot constrain depth. That is the mechanical statement of why an anterior + posterior pair is ONE shape constraint and not two -- both project along the same axis, so the second image adds albedo, not form. Asserting that in a comment is an opinion; T6 makes it a measurement. Tooth total is DERIVED; G_MIN_TEETH is a floor so a deleted tooth trips RED. license_tier: ORIGINAL expect_exit: 0

dependencies 1 imports · 0 importers

nx_visual_hull.nx nx_visual_hull_gate.nx

imports: nx_visual_hull.nx

imported by: nobody (leaf or entry point)

call flow from main pre-order; caps 40 nodes / depth 6 declared; ↻ = already shown

main vh_bg_mask 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 ↻ vh_abs sys_munmap g_bool g_puts g_putn vh_sdf2d sys_mmap ↻ vh_min sys_munmap ↻ g_sign vh_carve_view vh_samp vh_max g_at g_puts ↻ g_putn ↻

structs

none

consts

16const G_MIN_TEETH: i64 = 12
17const IW: i64 = 128
18const IH: i64 = 128
19const GN: i64 = 16
20const CELL: i64 = 64
21const ORG: i64 = 0 - 512

functions

23func g_puts(s: *u8) -> i64 { var n: i64 = 0; while s[n] != (0 as u8) { n = n + 1 } sys_write(1, s, n); return 0 }
called by 2: g_boolmain
24func g_putn(v: i64) -> i64
called by 2: g_boolmain
36func g_bool(name: *u8, got: i64, want: i64, passp: *i64) -> i64
called by 1: main calls 2: g_putsg_putn
43func g_at(grid: *i64, wx: i64, wy: i64, wz: i64) -> i64
called by 1: main
55func g_sign(v: i64) -> i64 { if v < 0 { return 0 - 1 } if v > 0 { return 1 } return 0 }
called by 1: main
57func main() -> i64