code wiki / (root) / nx_phys3d_toi_gate.nx

nx_phys3d_toi_gate.nx

buildroot/runtime/nx_phys3d_toi_gate.nx

7586 B134 linesdepth 3pulls 6 transitivereach 0 importersview sourcekind gate/proof
docsdependenciesstructsconstsfunctions

about

nx_phys3d_toi_gate.nx -- PG26: CAN A FAST MOVER EVER END A TICK INSIDE A WALL? (the 2D sweep tooth lifted to 3D) SUBJECT: nx_phys3d.ph_toi through ph_step (in-process). The rung's done-rule in its own words: a 400-per-tick mover stops AT a 4-unit wall, lifted to 3D, and a fast mover can never end a tick inside. Every tooth reads the engine's own positions; the overlap oracle is ph_max_overlap. The neg-control switches CCD OFF and must TUNNEL -- it proves the fixture reaches the condition and that the advancement, not the wall, is doing the stopping.

dependencies 3 imports · 0 importers

nx_syscalls.nx nx_gate_verdict.nx nx_phys3d.nx nx_phys3d_toi_gate.nx

imports: nx_syscalls.nxnx_gate_verdict.nxnx_phys3d.nx

imported by: nobody (leaf or entry point)

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

main gv_ctr 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 ↻ gv_head gv_puts sys_write ↻ tg_world sys_mmap ↻ ph_bytes ph_init ph_hdr ph_acc ph_warm ph_tgt ph_add ph_hdr ↻ ph_body tg_face ph_add ↻ ph_set_vel ph_body ↻ gv_check gv_puts ↻ ph_toi ph_hdr ↻ ph_body ↻

structs

none

consts

10const TG_WALL_X: i64 = 20000 // fx256 (78 m)
11const TG_WALL_HX: i64 = 512 // 4-unit wall: half-thickness 2 units
12const TG_WALL_HY: i64 = 4096
13const TG_WALL_HZ: i64 = 4096
14const TG_FLOOR_Y: i64 = 0 - 512 // top face at -256, so a unit sphere at y=0 rests on it
15const TG_FLOOR_HX: i64 = 60000
16const TG_FLOOR_HY: i64 = 256
17const TG_FLOOR_HZ: i64 = 8192
18const TG_R: i64 = 256 // the mover: a unit sphere
19const TG_SPEED: i64 = 400 // pos units per tick (400 > r: a FAST mover)
20const TG_START_GAP: i64 = 200 // it starts 200 units short of the wall face: one discrete step tunnels
21const TG_TICKS: i64 = 12
22const TG_SPH_X: i64 = 30000
23const TG_SPH_R: i64 = 512
24const TG_OBL_VX: i64 = 300
25const TG_OBL_VZ: i64 = 200
26const TG_INVM: i64 = 256
27const TG_REST: i64 = 0
28const TG_FRIC: i64 = 64

functions

30func tg_world(add_sphere: i64) -> i64
called by 1: main calls 4: sys_mmapph_bytesph_initph_add
38func tg_face() -> i64 { return TG_WALL_X - TG_WALL_HX }
called by 1: main
40func main() -> i64