nx_vasc_gate.nx
buildroot/runtime/nx_vasc_gate.nx
about
nx_vasc_gate.nx -- THE GATE FOR THE VASCULATURE-TO-CHROMOPHORE JOIN, 2026-09-03.
SUBJECT: va_seg_visible / va_field in-process, and their COMPOSITION with nx_kubelka_lib.
THE TOOTH THAT MATTERS IS T8. Everything above it is arithmetic hygiene; T8 is the operator's law made
falsifiable. Feed a grown vessel network through va_field into km_r_of_mix and the tissue must get REDDER
as vessel density rises -- specifically the GREEN channel must fall faster than the RED, because that is
what haemoglobin does to light. If that separation does not appear, the join is decorative and the vessels
would still have to be painted.
T9 IS THE ANTI-PAINTING PROOF. The same vessel at increasing depth must walk the surface colour back to
the vessel-free baseline, and a deep enough vessel must vanish into it exactly. A painted texture cannot
do that: its appearance is not a function of where the structure is. If T9 passes, appearance is being
DERIVED from anatomy rather than drawn on top of it.
Teeth, in order:
T1 a segment at zero depth contributes its full volume fraction, EXACTLY (transmittance is one there).
T2 monotone in depth: the same vessel deeper is less visible.
T3 monotone in volume: a larger vessel at the same depth is more visible.
T4 additive: a second segment raises the field.
T5 CLAMPED: an absurd network saturates at unity and never exceeds it -- a fraction above one would sail
into km_ks_mix and yield a confident reflectance for tissue that cannot exist.
T6 NEG-CONTROL: a negative depth REFUSES.
T7 NEG-CONTROL: a non-positive attenuation REFUSES.
T8 COMPOSITION: more vessel density makes the tissue redder -- green falls faster than red.
T9 ANTI-PAINTING: the same vessel buried deep returns the surface to its vessel-free baseline.
MEASURED 9/9 GREEN 2026-09-03: R-G separation 89,090 sparse -> 196,295 dense, and the deep vessel returns
70,497 against a vessel-free baseline of 70,497.
license_tier: ORIGINAL No hw writes (Rule 26). expect_exit: 0
dependencies 4 imports · 0 importers
imports: nx_syscalls.nxnx_gate_verdict.nxnx_vasc_lib.nxnx_kubelka_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
| 35 | const VG_SLOT: i64 = 8 |
| 36 | const VG_CH: i64 = 3 |
| 37 | const VG_R: i64 = 0 |
| 38 | const VG_G: i64 = 1 |
| 39 | const VG_MICRO: i64 = 1000000 |
| 40 | const VG_SEP_MIN_MICRO: i64 = 2000 |
| 41 | const VG_BASELINE_TOL_MICRO: i64 = 3000 |
functions
| 43 | func vg_q(micro: i64) -> i64 { return fq_div(fq_from_int(micro), fq_from_int(VG_MICRO)) } |
| 44 | func vg_abs(v: i64) -> i64 { if v < 0 { return 0 - v } return v } called by 1: main |
| 46 | func main(argc: i64, argv: *i64) -> i64 |