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 1 imports · 4 importers
imports: nx_syscalls.nx
imported by: nx_epose.nxnx_essential3d.nxnx_recon3d_gate.nxnx_step_tess2.nx
structs
| none |
consts
| 11 | const R3_Q: i64 = 16384 // Q14 one |
| 12 | const R3_WORLDUP_Y: i64 = 16384 // world up = (0,1,0) |
functions
| 14 | func r3_isqrt(n: i64) -> i64 |
| 22 | 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 |
| 24 | 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 } |
| 26 | func r3_cross(ax: i64, ay: i64, az: i64, bx: i64, by: i64, bz: i64, out3: *i64) -> i64 called by 1: r3_lookat |
| 33 | func r3_normalize(x: i64, y: i64, z: i64, out3: *i64) -> i64 |
| 44 | func r3_lookat(cx: i64, cy: i64, cz: i64, tx: i64, ty: i64, tz: i64, basis: *i64) -> i64 |
| 60 | func r3_project(cx: i64, cy: i64, cz: i64, basis: *i64, f: i64, x: i64, y: i64, z: i64, out2: *i64) -> i64 |
| 73 | func r3_ray(basis: *i64, f: i64, u: i64, v: i64, out3: *i64) -> i64 |
| 84 | func r3_midpoint(c1x: i64, c1y: i64, c1z: i64, d1x: i64, d1y: i64, d1z: i64, |
| 111 | func r3_triangulate_n(cx: *i64, cy: *i64, cz: *i64, dx: *i64, dy: *i64, dz: *i64, ncam: i64, out3: *i64) -> i64 |
| 135 | func r3_dist(ax: i64, ay: i64, az: i64, bx: i64, by: i64, bz: i64) -> i64 |
| 143 | func r3_chamfer(a: *i64, na: i64, b: *i64, nb: i64) -> i64 |