nx_recon3d.nx
buildroot/runtime/nx_recon3d.nx
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
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
| 12 | const R3_Q: i64 = 16384 // Q14 one |
| 13 | const R3_WORLDUP_Y: i64 = 16384 // world up = (0,1,0) |
functions
| 15 | func r3_isqrt(n: i64) -> i64 { return vm_isqrt(n) } |
| 17 | func 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 |
| 19 | func r3_dotc(ax: i64, ay: i64, az: i64, bx: i64, by: i64, bz: i64) -> i64 { return (ax * bx + ay * by + az * bz) / R3_Q } |
| 21 | func r3_cross(ax: i64, ay: i64, az: i64, bx: i64, by: i64, bz: i64, out3: *i64) -> i64 |
| 28 | func r3_normalize(x: i64, y: i64, z: i64, out3: *i64) -> i64 |
| 39 | func r3_lookat(cx: i64, cy: i64, cz: i64, tx: i64, ty: i64, tz: i64, basis: *i64) -> i64 |
| 55 | func r3_project(cx: i64, cy: i64, cz: i64, basis: *i64, f: i64, x: i64, y: i64, z: i64, out2: *i64) -> i64 |
| 68 | func r3_ray(basis: *i64, f: i64, u: i64, v: i64, out3: *i64) -> i64 |
| 79 | func r3_midpoint(c1x: i64, c1y: i64, c1z: i64, d1x: i64, d1y: i64, d1z: i64, |
| 106 | func r3_triangulate_n(cx: *i64, cy: *i64, cz: *i64, dx: *i64, dy: *i64, dz: *i64, ncam: i64, out3: *i64) -> i64 |
| 130 | func r3_dist(ax: i64, ay: i64, az: i64, bx: i64, by: i64, bz: i64) -> i64 |
| 138 | func r3_chamfer(a: *i64, na: i64, b: *i64, nb: i64) -> i64 |