code wiki / (root) / nx_recon3d.nx

nx_recon3d.nx

buildroot/runtime/nx_recon3d.nx

7785 B168 linesdepth 2pulls 4 transitivereach 31 importersview sourcekind library
docsdependenciesstructsconstsfunctions

about

nx_recon3d.nx -- MULTI-VIEW TRIANGULATION, the classical MVS core of photo->3D reconstruction (cadtwin P1, the "photograph -> 3D" capture half). This is the CLASSICAL / no-trained-model path (Hartley-Zisserman multi-view geometry / COLMAP triangulation) -- the part a SOVEREIGN no-float stack CAN build; the 2025-26 feed-forward SOTA (DUSt3R/MASt3R/VGGT) is neural = trained-model-bound (our named gap). Benchmarked by CHAMFER DISTANCE (the DTU metric the field scores reconstruction on): synthesize N camera views of a KNOWN point cloud -> triangulate each point back -> integer Chamfer vs ground truth. Deterministic, no dataset dependency, no float. Composes toward the full pipeline (feature match nx_features + pose est = later rungs). license_tier: ORIGINAL

dependencies 2 imports · 6 importers

nx_syscalls.nx nx_vecmath.nx nx_recon3d.nx nx_epose.nx nx_essential3d.nx nx_planesweep.nx nx_pnprefine.nx nx_recon3d_gate.nx nx_step_tess2.nx

imports: nx_syscalls.nxnx_vecmath.nx

imported by: nx_epose.nxnx_essential3d.nxnx_planesweep.nxnx_pnprefine.nxnx_recon3d_gate.nxnx_step_tess2.nx

structs

none

consts

12const R3_Q: i64 = 16384 // Q14 one
13const R3_WORLDUP_Y: i64 = 16384 // world up = (0,1,0)

functions

15func r3_isqrt(n: i64) -> i64 { return vm_isqrt(n) }
17func r3_dotq(ax: i64, ay: i64, az: i64, bx: i64, by: i64, bz: i64) -> i64 { return (ax * bx + ay * by + az * bz) / R3_Q }
called by 1: r3_midpoint
19func r3_dotc(ax: i64, ay: i64, az: i64, bx: i64, by: i64, bz: i64) -> i64 { return (ax * bx + ay * by + az * bz) / R3_Q }
21func r3_cross(ax: i64, ay: i64, az: i64, bx: i64, by: i64, bz: i64, out3: *i64) -> i64
called by 2: pnp_rotr3_lookat
28func r3_normalize(x: i64, y: i64, z: i64, out3: *i64) -> i64
39func r3_lookat(cx: i64, cy: i64, cz: i64, tx: i64, ty: i64, tz: i64, basis: *i64) -> i64
called by 1: main calls 3: sys_mmapr3_normalizer3_cross
55func r3_project(cx: i64, cy: i64, cz: i64, basis: *i64, f: i64, x: i64, y: i64, z: i64, out2: *i64) -> i64
68func r3_ray(basis: *i64, f: i64, u: i64, v: i64, out3: *i64) -> i64
79func r3_midpoint(c1x: i64, c1y: i64, c1z: i64, d1x: i64, d1y: i64, d1z: i64,
106func r3_triangulate_n(cx: *i64, cy: *i64, cz: *i64, dx: *i64, dy: *i64, dz: *i64, ncam: i64, out3: *i64) -> i64
called by 1: main calls 2: sys_mmapr3_midpoint
130func r3_dist(ax: i64, ay: i64, az: i64, bx: i64, by: i64, bz: i64) -> i64
called by 3: r3_chamferrg_raydistmain calls 1: r3_isqrt
138func r3_chamfer(a: *i64, na: i64, b: *i64, nb: i64) -> i64
called by 1: main calls 1: r3_dist