code wiki / _hdl_build / nx_gsplat_aniso_gate.nx

nx_gsplat_aniso_gate.nx

buildroot/runtime/_hdl_build/nx_gsplat_aniso_gate.nx

6800 B120 linesdepth 5pulls 11 transitivereach 0 importersview sourcekind gate/prooftopic gsplat
docsdependenciesstructsconstsfunctions

about

nx_gsplat_aniso_gate.nx -- ★ANISOTROPIC surface splatting (the defining 3DGS feature). Oriented ellipse splats (surfels aligned to the surface normal) instead of isotropic blobs -> smooth coverage, no dotty grid. T1 ★ANISOTROPY: an EDGE-ON surfel (normal in the screen plane) renders a THIN, elongated ellipse; a FACE-ON surfel (normal toward camera) renders a round splat -- the aspect ratios differ sharply (orientation is real) T2 the anatomical mesh, splatted as surface-aligned surfels, covers the face densely (no isotropic-grid holes) + eyeball PNG knowledge/nx_gsplat_face_aniso.png T3 determinism license_tier: ORIGINAL expect_exit: 0

dependencies 5 imports · 0 importers

nx_syscalls.nx nx_faceanat.nx nx_meshgen.nx nx_gsplat.nx nx_png.nx nx_gsplat_aniso_gate.nx

imports: nx_syscalls.nxnx_faceanat.nxnx_meshgen.nxnx_gsplat.nxnx_png.nx

imported by: nobody (leaf or entry point)

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

main hw sys_write gs_w gs_h 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 ↻ gs_nb gs_expn gs_build_explut gs_set_aniso gs_render_aniso gs_render_aniso_at gs_project_sort_at it_sin4096 it_cos4096 it_sin4096 ↻ gs_isqrt vm_isqrt gs_proj_x_at gs_proj_y_at gs_clear_at gs_splat_rx gs_isqrt ↻ gs_splat_ry gs_isqrt ↻ gs_blend_rect

structs

none

consts

none

functions

15func hw(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 calls 1: sys_write
16func pn(v: i64) -> i64 { let b: *u8=sys_mmap(32) as *u8; var x: i64=v; var ng: i64=0; if x<0{ng=1;x=0-x} var i: i64=31; if x==0{b[i]=48 as u8;i=i-1} while x>0{b[i]=(48+x%10) as u8;x=x/10;i=i-1} if ng==1{b[i]=45 as u8;i=i-1} sys_write(1,(b as i64+i+1) as *u8,31-i); return 0 }
called by 1: main calls 2: sys_mmapsys_write
17func lum(px: i64) -> i64 { return (px & 255) + ((px >> 8) & 255) + ((px >> 16) & 255) }
called by 1: main
19func main() -> i64