nx_strand_groom_gate.nx
buildroot/runtime/nx_strand_groom_gate.nx
about
nx_strand_groom_gate.nx -- PG14: DO GUIDE CURVES PLUS INTERPOLATION MAKE A GROOM, HIERARCHICAL BY CONSTRUCTION?
SUBJECT: nx_hairdyn_lib.gr_strand (in-process). Every geometric claim is recomputed from the groom's own positions.
The two load-bearing teeth are KATs on the interpolation: a child rooted ON a guide reproduces that guide exactly,
and a child between guides lies inside the box its guides span (a convex combination cannot leave it). Fixtures are
arithmetic; the gate leaks no filesystem state.
dependencies 3 imports · 0 importers
imports: nx_syscalls.nxnx_gate_verdict.nxnx_hairdyn_lib.nx
imported by: nobody (leaf or entry point)
call flow from main pre-order; caps 40 nodes / depth 6 declared; ↻ = already shown
structs
| none |
consts
| 10 | const SG_SEED: i64 = 20260906 |
| 11 | const SG_CX: i64 = 0 |
| 12 | const SG_CY: i64 = 40000 // Q8: a head 156 units up |
| 13 | const SG_CZ: i64 = 0 |
| 14 | const SG_R: i64 = 2560 // scalp radius 10 units |
| 15 | const SG_NG: i64 = 12 |
| 16 | const SG_NC: i64 = 180 |
| 17 | const SG_NSEG: i64 = 16 |
| 18 | const SG_SEGLEN: i64 = 512 // 2 units per segment |
| 19 | const SG_JIT: i64 = 150 |
| 20 | const SG_ROOT_TOL: i64 = 8 // Q8: the integer normalisation's own error on the scalp radius |
| 21 | const SG_LEN_DEV_PERMIL: i64 = 150 |
functions
| 23 | func sg_abs(v: i64) -> i64 { if v < 0 { return 0 - v } return v } called by 1: main |
| 25 | func main() -> i64 |