nx_colonize_gate.nx
buildroot/runtime/nx_colonize_gate.nx
about
nx_colonize_gate.nx -- PG21: DO TREES GROW BY COMPETITION FOR SPACE, AND DOES THE CANOPY MATCH THE LAYOUT?
SUBJECT: nx_treegen.tg_colonize (in-process) fed by nx_forest_layout's OWN species params (in-process), so the
envelope the grower is asked for is the envelope the LIVE layout will place it in. The rung's done-rule in its own
words: distinct seeds yield distinct branching, and the canopy envelope matches the layout's species params.
Every value is emitted with gv_kv; the per-species numbers name any failing species without a second run.
dependencies 4 imports · 0 importers
imports: nx_syscalls.nxnx_gate_verdict.nxnx_treegen.nxnx_forest_layout.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
| 11 | const CG_UNITS_NUM: i64 = 640 // tree units per CG_UNITS_DEN forest Q: the tallest species (pine, 25000 Q) spans 640 units |
| 12 | const CG_UNITS_DEN: i64 = 25000 |
| 13 | const CG_SEED: i64 = 2026 |
| 14 | const CG_SEEDS: i64 = 8 |
| 15 | const CG_R_LO: i64 = 550 // measured crown reach as permil of the requested radius: lower and upper bands |
| 16 | const CG_R_HI: i64 = 1100 |
| 17 | const CG_H_LO: i64 = 800 // measured height as permil of the requested height |
| 18 | const CG_H_HI: i64 = 1100 |
| 19 | const CG_LEAF_R: i64 = 22 |
| 20 | const CG_TINY_H: i64 = 30 // the neg-control envelope: a crown narrower than one step |
| 21 | const CG_TINY_R: i64 = 1 |
| 22 | const CG_TINY_MAXP: i64 = 20 |
| 23 | const CG_PARAMS: i64 = 3 |
functions
| 25 | func cg_trunk_permil(species: i64) -> i64 called by 1: cg_grow |
| 37 | func cg_grow(P: *i64, seed: i64, species: i64, prm: *i64) -> i64 |
| 48 | func cg_same(P: *i64, np: i64, Q: *i64, nq: i64) -> i64 called by 1: main |
| 58 | func main() -> i64 |