nx_hull_mesh.nx
buildroot/runtime/nx_hull_mesh.nx
about
nx_hull_mesh.nx -- THE JOIN: silhouettes -> carved SDF field -> triangle mesh -> rendered PNG.
nx_visual_hull (carve) and nx_isosurf (polygonize) were each gated in ISOLATION, and a gated half
plus a gated half is not a proven whole. This organ is the composition, and it exists so the
image->geometry->render path is proven end-to-end BEFORE any real photograph arrives.
Runs on SYNTHETIC silhouettes by default (a plus-shaped column: distinctive enough that a correct
carve is visually unmistakable and a wrong axis mapping is obvious). Give it two image paths and
it carves those instead -- same code path, so the synthetic proof is not a separate lane.
⚠VIEWS MUST DIFFER IN ANGLE. Front + lateral carves a form; front + BACK does not (same projection
axis, one constraint). nx_visual_hull_gate proves that mechanically.
usage: nx_hull_mesh <out.png> [cell] [gridN]
license_tier: ORIGINAL expect_exit: 0
dependencies 4 imports · 0 importers
imports: nx_visual_hull.nxnx_isosurf.nxnx_doc_layout.nxnx_png_write.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
| 21 | const HM_IW: i64 = 192 |
| 22 | const HM_IH: i64 = 192 |
| 23 | const HM_W: i64 = 760 |
| 24 | const HM_FW: i64 = 380 |
| 25 | const HM_FH: i64 = 420 |
| 26 | const HM_HEAD: i64 = 30 |
| 27 | const HM_FOOT: i64 = 22 |
functions
| 31 | func hm_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 1: main |
| 32 | func hm_putn(v: i64) -> i64 called by 1: main |
| 44 | func hm_atoi(s: *u8) -> i64 called by 1: main |
| 49 | func hm_px(img: *u8, x: i64, y: i64, r: i64, g: i64, b: i64) -> i64 |
| 58 | func hm_char(img: *u8, tbl: *u8, x: i64, y: i64, ch: i64, cr: i64, cg: i64, cb: i64) -> i64 |
| 72 | func hm_text(img: *u8, tbl: *u8, x: i64, y: i64, s: *u8, cr: i64, cg: i64, cb: i64) -> i64 |
| 77 | func hm_num(img: *u8, tbl: *u8, x: i64, y: i64, v: i64, cr: i64, cg: i64, cb: i64) -> i64 |
| 93 | func hm_plate(rgb: *u8, narrow: i64) -> i64 called by 1: main |
| 113 | func main(argc: i64, argv: *i64) -> i64 |