Nishi FamilyCompare › Sovereign Content Creation Studio

Nishi Compare · measured, not asserted

Sovereign Content Creation Studio

Nishi vs the field — every Nishi cell is measured against real organ source at emit time; each gap names the watch contract that will close it.

Nishi vs Blender 5.0 and ZBrush 2026 and Maya 2026 and ArmorPaint -- the authoring tool itself, first byte up in NishiLang, running in the visitor's browser with no installation. Measured 2026-08-25 by a full-population census of 46 authoring axes: 20 are ABSENT-PROVEN and 26 are grounded in a named function. The interchange and rig halves are genuinely strong -- six importers, three exporters, skeleton with linear-blend skinning, IK, keyframes, morph targets and real mocap retargeting. The solid-modelling half is strong but SDF-native -- robust booleans, marching tetrahedra, two decimators, and a solid that re-evaluates from its own operation chain. The direct mesh-editing, UV, sculpt-workflow and interactive-authoring halves are close to empty, and everything that exists in UV and texturing is anatomy-locked to the humanoid layout. The distance to a studio is the editor, not the geometry -- and the first two rungs of that editor LANDED TODAY, gate-proven and mutation-proven.

Layer 1 · Executive

Where we are. Measured 2026-08-25, not asserted. WORKING, and more than the name of any one organ suggests: a mesh type with real DCC verbs on it (translate, scale, subdivide, bounds), a ZBrush-class sculpt brush over curved primitives, N-primitive constructive solid geometry with field evaluation and surface extraction, OBJ and STL and glTF emitters, a skeleton with linear-blend skinning and forward kinematics, real mocap decoded from BVH and VMD and retargeted, an anatomy-derived UV unwrap with regions checked against sums, a deterministic albedo and full PBR map bake that REGENERATES per genome rather than shipping a file, a spring-damper secondary-dynamics solver with its stability envelope enforced in-solver, a declarative constraint part-solver that refuses an inconsistent set by name, and an exact point-to-triangle millimetre deviation ruler over every vertex. UPDATED 2026-08-25 AFTER FIVE RUNGS LANDED, because a position statement nobody re-measures becomes a claim nobody trusts. WHAT THIS LINE SAID THIS MORNING AND NO LONGER DOES: there is NO EDITOR, nothing records an operation, nothing undoes one, nothing replays a session. THERE IS NOW. Landed and gate-proven on the promoted binaries, every one of them mutation-proven with killed=1 and not_reached=0: the non-destructive operation stack where undo, redo and re-evaluation are all REPLAYS FROM THE BASE so state is bit-identical (44/44); the mesh-validity referee that REFUSES rather than showing an overlay, six named classes each with a first-offender index (32/32); ray-pick and a transform gizmo where a drag resolves to ONE operation on the stack, three separate teeth prove picking never wrote a word of the mesh buffer, and the pick's COST is now published at four stated triangle counts against the frame budget the estate already banks -- 455054 ns over 2048 triangles, 4.1 percent of a 90 Hz frame, measured SUB-linear in triangle count, a native floor (132/132); and texture painting where a stroke lands in the hand-computed texel, the seam bleed is bitten by a control that FIRES with the bleed removed, and a session replays byte-identically (109/109). The general UV unwrap landed too, at 78 of 78, so M1 AND M2 ARE BOTH COMPLETE and the chain sculpt-to-chart-to-solve-to-pack-to-paint exists end to end for an arbitrary mesh for the first time. STILL OPEN, and this is now the whole story: there is no retopology, no multiresolution, no cloth, no node graph and no collaborative editing; and nothing has been carried end to end into all four consumers with one ruler, which is the rung that would make the storefront-game-VR-clinic claim checkable rather than asserted. The distance to a studio was the editor, and the editor now exists.

Where we need to go. ONE sovereign content-creation studio on nishifamily.com -- model, sculpt, unwrap, texture, rig and assemble -- first byte up in NishiLang with no third-party code in the loop, running in the visitor's browser with no installation, where the asset is a RULE the studio edits rather than a file it mutates, and where one authored source feeds the storefront, the game, the VR frame and the clinical twin without a re-export. Blender, ZBrush, Maya and Substance appear ONLY as oracles and benchmarks, never as dependencies.

The unit. 1 u = one measured session-leg, the calibration graphics.plan and procgen.plan already use. Fidelity claims are in millimetres of surface deviation (md_measure is the estate ruler and it already exists); interaction claims are in milliseconds per operation at a stated triangle count. An authoring claim with no artifact a person can open, and a latency claim with no triangle count, are both opinion wearing a number.
Where we already exceed: 0 u. Determinism and metrology, not features. No rival ships a bit-exact authoring pipeline, a millimetre ruler as a gate tooth, or an asset that regenerates its own PBR set per genome instead of shipping baked files. Those are true today and they are the only exceeds this board claims.
Cost to an editor that exists at all: 0 u -- M1 IS COMPLETE. DC1 the operation stack, DC2 parametric re-evaluation and DC3 the manifold oracle ALL LANDED 2026-08-25, gate-proven on the promoted binaries at 44/44 and 32/32 and mutation-proven. Nothing here was new geometry: it was the record-undo-replay spine every DCC is built on and the one thing this estate had never had. The estimate was 5.5 u and the milestone closed inside one session, which is worth saying plainly because it recalibrates every estimate below it downward.
Cost to authoring a real asset in the browser: 0 u -- M2 IS COMPLETE. DC4 the viewport (113/113), DC5 the general UV unwrap (78/78) and DC7 texture painting (109/109) ALL LANDED 2026-08-25, every one mutation-proven. The estimate was 13 u and both milestones closed inside one session, which recalibrates the rungs below downward and should be read as evidence that the remaining estimates are pessimistic rather than as a reason to trust them. AND THE ONE THING THAT WAS STILL OWED HERE IS NOW PAID: the viewport's per-operation latency is published at four stated triangle counts, so DC4's done-rule is met in both halves. A pick over 2048 triangles costs 455054 ns on the native floor, 4.1 percent of a 90 Hz frame, and the cost is measured SUB-linear in triangle count so the cited 2 ms app-logic ceiling buys 9001 triangles per pick. A latency claim may now be made from this board, PROVIDED it carries its triangle count and the word FLOOR -- the number is native x86 and the shipped viewport is wasm in a browser.
Cost to the asset leaving the studio: 11 u. DC11 ingest under a provenance and licence gate, DC12 one asset proven into four consumers by one ruler, DC6 retopology so a sculpt can become a game-budget mesh at all.
Cost to exceeding on the axes a file-based float DCC cannot enter: 26 u. DC9 the layer-aware brush, DC8 multiresolution, DC10 garment drape, DC13 the node graph over the op stack, DC14 collaborative multi-seat editing on one log. Every one of these is reachable only BECAUSE the asset is generated and the ops are deterministic.

Research bar. Blender 5.0 (GPL, Blender Foundation) is measured on the free breadth bar and the one that matters most: modelling, sculpting with dynamic topology and multiresolution, UV unwrapping, a non-destructive modifier stack, geometry nodes, texture painting, cloth and hair, rigging and animation, and a full renderer -- all in one free application. Theirs: vendor documentation and manual read 2026-08-25. Ours: THE tool to exceed, and the honest position is that it exceeds us on nearly every authoring axis today. Our openings are that it is a desktop installation, it is float throughout so it can make no bit-exactness claim, and it edits meshes rather than the rules that generate them..

Research bar. ZBrush 2026 (Maxon, commercial) is measured on the sculpting bar: very high polygon-count digital sculpting, brush libraries, sculpt layers, dynamic tesselation and remeshing, and the industry-standard workflow for organic form. Theirs: vendor documentation read 2026-08-25. Ours: The bar for DC8 and DC9. Its layers are shape-blend layers; ours are ANATOMICAL strata (bone, muscle, fat, skin), which is the axis it cannot enter because it has no model of what is underneath the surface..

Research bar. Autodesk Maya (commercial) is measured on the rigging, animation and scene-assembly bar; the pipeline incumbent in film and games. Theirs: vendor documentation read 2026-08-25. Ours: The bar for the rig and animation consumption rows. We decode and retarget real mocap already; we have no animation authoring surface at all..

Research bar. Adobe Substance 3D Painter (commercial) is measured on the texture-authoring bar: painting directly on the mesh, procedural material layering, and baking a full PBR map set. Theirs: vendor documentation read 2026-08-25. Ours: The bar for DC7. Our maps REGENERATE from the genome rather than being painted files, which is a different and in places stronger property -- but we cannot paint at all, and painting is what artists actually do..

Research bar. Browser-native 3D editors (Womp, Spline, Vectary) is measured on 3D modelling and scene authoring that already runs in a browser with no installation, with real-time collaboration. Theirs: vendor self-description read 2026-08-25. Ours: NAMED DELIBERATELY SO THIS BOARD CANNOT OVERCLAIM. Browser-native is NOT by itself an exceed -- these products got there first and they collaborate, which we do not. What is unclaimed by them is sovereignty, integer determinism and a generated asset. Any row on this board that reads browser-native as a win must beat THESE, not Blender..

48 of 65 capabilities measured|5 of them measured exceeds|17 open|coverage 738/1000|adoption 35 full / 13 partial

Layer 2 · Roadmap

Do this next — computed by the ranker, never chosen by a seat

Order from nx_compare_rank (nx_dr_ocm: (deficit + cost-of-delay + option + enables) x sponsor x self-sufficiency x momentum / cost). FINISH rows are rungs whose symbol is present but whose organ is short of full adoption: the cheapest closures on this board, listed before any new work. Stamp: # asof=1787883584 domain=dcc target_version=2.0 rungs=15 done=7 open=8 finish=4 ranker=nx_dr_ocm

#StageRungPriorityDerivation
FFINISHInteractive viewport in the browser: pick, gizmo, camera (DC4) vp_pick_screenLIB-GATE-ONLY importers=1imported only by validation organs (gates, tests, benches): wire it into a shipping program
FFINISHGeneral conformal UV unwrap with a distortion metric (DC5) uv_conformalLIB-GATE-ONLY importers=1imported only by validation organs (gates, tests, benches): wire it into a shipping program
FFINISHTexture painting onto the regenerated PBR set (DC7) tp_strokeLIB-GATE-ONLY importers=1imported only by validation organs (gates, tests, benches): wire it into a shipping program
FFINISHOne asset, four consumers, one ruler (DC12) xp_consumersLIB-GATE-ONLY importers=1imported only by validation organs (gates, tests, benches): wire it into a shipping program
#12.0Quad retopology from a sculpt to a game budget (DC6) rt_quadremesh366v=11 m=2 c=60
#22.0Asset ingest under a provenance and licence gate (DC11) ain_admit200v=4 m=1 c=20
#32.0A mesh can reach the VR compositor at all (DC15) vf_build_mesh0v=0 m=2 c=60
#4laterNode-graph authoring over the operation stack (DC13) ng_eval560v=7 m=2 c=25
#5laterGarment pattern, sewing and drape (DC10) gd_drape150v=6 m=2 c=80
#6laterSculpt brush constrained to an anatomical stratum (DC9) sc_layer_brush133v=1 m=2 c=15
#7laterMultiresolution sculpt levels (DC8) ms_level100v=2 m=1 c=20
#8laterCollaborative multi-seat editing on one operation log (DC14) co_merge66v=1 m=2 c=30

Critical path — contract, done-rule, executor, cost

RungCloses withDefinition of done (pre-declared)ExecutorEst.
Non-destructive operation stack with bit-exact replay (DC1)
after
es_replayAn append-only operation log records every authoring action; undo and redo restore the exact prior state digest; replaying the whole log from the base reproduces the live state BYTE-IDENTICALLY, which is the claim no float DCC can make. Done-rule: a gate proves push, undo, redo and full replay all agree on the digest, that a MUTATED op changes the digest (the anti-vacuity tooth -- a stack that silently ignored its ops would pass replay-equals-live trivially), and that undoing past the base and redoing past the head are both REFUSED by name rather than clamped.Organ2 u
Parametric re-evaluation at depth without losing downstream work (DC2)
after DC1
es_reevalChanging a parameter of operation N re-evaluates the stack and PRESERVES operations N+1..M -- the property that makes an editor non-destructive and the reason Blender has a modifier stack. Done-rule: a gate edits a parameter at depth in a stack whose later ops depend on it, proves the later ops still apply, and proves the result equals a fresh log built with the new parameter from scratch.Organ2 u
Mesh validity and manifold oracle (DC3)
after
mv_manifoldA referee that REFUSES an asset rather than shipping a broken one: non-manifold edges, boundary holes, degenerate and zero-area triangles, duplicate vertices, inconsistent winding, and self-intersection, each reported as a NAMED count with the offending element index. Done-rule: bite-proven on a planted defect of each class, with a positive control that a known-good generated mesh passes clean. This is the tooth every other rung on this board depends on and no rival ships it as a refusing gate.Organ1.5 u
Interactive viewport in the browser: pick, gizmo, camera (DC4)
after DC1
vp_pick_screenDONE 2026-08-25, nx_vpick_gate GREEN 132/132 on the promoted binary and mutation-proven (valid_mutants=1 killed=1 not_reached=0 mutant_live=0, restore byte-identical at 45716 B). A screen point becomes a ray in the SAME camera convention nx_meshview_wasm already orbits in; Moller-Trumbore picks the nearest triangle in exact integer arithmetic; a drag resolves to ONE operation on the DC1 stack, so it is undoable, redoable and replays bit-identically. The teeth that make it real rather than plausible: the nearer triangle wins AND STILL WINS WHEN THE BUFFER ORDER IS REVERSED, so the answer is depth and not array order; a degenerate triangle is never returned as a hit and is a DISTINCT answer from parallel and from behind; a miss returns a named negative code no valid index can collide with; the gizmo magnitude is checked against an INDEPENDENTLY DERIVED closed form rather than against itself; and three separate teeth assert the run never wrote a word of the mesh buffer. THE JOIN SYMBOL WAS CORRECTED FROM vp_pick TO vp_pick_screen: the rung named a symbol the shipped organ does not declare, and a contract pointing at a symbol that cannot exist NEVER FLIPS -- the ranker would have read this rung open forever with nothing wrong in the work. THE INTERACTION-LATENCY HALF IS NOW MET, 2026-08-25, and it was the last thing this rung owed. The gate went 113 of 113 to 132 of 132: it times vp_pick_screen over procedurally generated grids at FOUR stated triangle counts and publishes nanoseconds per pick with its repetition count and clock source printed beside it -- 32 tris 9659 ns, 128 tris 30332 ns, 512 tris 116495 ns, 2048 tris 455054 ns, each the MINIMUM of two samples of 1024 repetitions timed on CLOCK_MONOTONIC at 1 us resolution and divided once at the end, with the min-to-max spread printed so a reader sees how noisy the box was rather than having to trust it was quiet. THE BAR IS CITED, NOT INVENTED: knowledge/gamefeel_oracle.conf already banks frame_budget_ms_90hz at 11..12 ms and js_block_ms at 2 ms, the derived 1e6/90 = 11111 us agrees with the frame row, and these are the same two rows nx_tissuebudget measures the tissue tick against -- reusing that source rather than opening a second one is why the two organs can be compared at all. A pick over 2048 triangles is therefore 40955 ppm, about 4.1 percent, of one 90 Hz frame, and the cited 2 ms app-logic ceiling buys 9001 triangles per pick. THE GROWTH QUESTION IS ANSWERED TOO, because one triangle count structurally cannot answer it -- at a single N a quadratic curve and a linear one are the same number: per-triangle cost measures 736 permil across a 64x range where 1000 would be exactly linear, so the pick is SUB-linear as the fixed ray construction amortises, and the bar separating linear from quadratic is DERIVED as the geometric mean of the two hypotheses rather than tuned until the result passed. THE FIGURE IS A NATIVE FLOOR AND IS LABELLED ONE: the shipped viewport is wasm in a visitor browser, which is slower, so this measurement can refute a budget but can never prove the browser meets it. ONE TRADE WAS MADE AND IS NAMED RATHER THAN LEFT TO BE FOUND: an 8192-triangle rung was measured (1967 us, 98 percent of the cited 2 ms ceiling) and then REMOVED from the shipped ladder because it pushed the sweep to about 8 s against a 12 s runner deadline, and a gate that intermittently outlives its caller is indistinguishable from one that emits nothing. Nothing was lost by it: the linear model predicted 1.87 ms at that size against 1.97 ms directly measured, which is the extrapolation checked against the rung it extrapolates past.Organ4 u
General conformal UV unwrap with a distortion metric (DC5)
after DC3
uv_conformalDONE 2026-08-25: nx_uvunwrap_gate GREEN 78 of 78 on the promoted binary, mutation-proven (killed=1 not_reached=0, restore byte-identical at 71921 B). Unwrap an ARBITRARY mesh, not just the human anatomy layout the current unwrap is bound to: seam input, a conformal solve, and an angle-and-area distortion metric per chart. Done-rule: distortion on a developable test surface reads at or near zero, a known-difficult surface reports its distortion honestly rather than silently folding, and overlapping charts are REFUSED. MEASURED, and every fixture moved: the flat quad went ANGLE 987 permil to 0, the cube's twelve seams give exactly six charts with zero overlaps, the cut cylinder wall unwraps clean, and the CONE POINT reports 174 permil against a plane at 0 -- honest, non-zero and not a refusal, which is the only correct answer for a surface that cannot be flattened. THIS RUNG PREVIOUSLY PUBLISHED A WRONG ROOT CAUSE AND THE CORRECTION IS RECORDED HERE RATHER THAN QUIETLY REPLACED. The published cause was a discarded return code in uvi_unfold's walk; that is a REAL latent defect and was fixed too, but it caused NONE of the fifteen failures. The true cause was found by refuting the briefed one with arithmetic from the gate's own output: an unseamed 4-vertex 2-triangle mesh reported texc corners lost = 1 where a bijection makes 0 the only possible answer, so the corner-to-class map was corrupt BEFORE any unfold ran. In uv_chart_build's relabel block, uvf is BOTH the union-find parent forest AND the corner-to-class map, and the loop converts one into the other IN PLACE: from the second iteration uvi_find chases a class id as a parent index, and because that encoding is NEGATIVE it indexes before the array and path-compression-WRITES into the CSTART and CORDER slots beneath. Roots are now resolved into a dedicated array before any parent is rewritten. ALSO SHIPPED: UV_E_UNPLACED as its own refusal rather than overloading UV_E_NOPIN, because two causes sharing one code is exactly what made this hard to find -- and it is declared NOT bite-proven, since a mesh that passes validation cannot reach it from the public pipeline.Organ5 u
Quad retopology from a sculpt to a game budget (DC6)
after DC3
rt_quadremeshConvert a dense sculpt into a quad-dominant mesh at a requested face budget while holding surface deviation under a stated millimetre bound measured by the EXISTING md_measure ruler, never a new one. Done-rule: the budget is met, the deviation bound is met and reported, and a mesh that cannot meet the bound is refused rather than silently exceeded.Organ6 u
Texture painting onto the regenerated PBR set (DC7)
after DC5
tp_strokeDONE 2026-08-25, nx_texpaint_gate GREEN 109/109 on the promoted binary and mutation-proven (killed=1 not_reached=0, restore byte-identical). All three clauses of the done-rule are met and each is bitten rather than asserted: the known surface point writes the known texel, and the expected address is computed BY ARITHMETIC IN THE FIXTURE rather than by the code under test; the seam does not tear, proven by neg-control-seam-TEARS-without-the-bleed which FIRES on a build with the bleed removed and is silent with it; and replaying the log reproduces the map BYTE-IDENTICALLY, with undo restoring the base byte for byte and redo returning to the exact same bytes. The anti-vacuity tooth that matters: a painter which wrote the whole atlas would trivially pass any known-texel-changed check, so the gate counts the disc area by hand (25 texels) and asserts ZERO texels changed outside the radius. The bleed margin is DERIVED from the brush radius and the chart width rather than picked. THE DEPENDENCY IS NOW MET: DC5 landed the same day at 78 of 78, so painting is no longer bounded to the chart layout the anatomy path supplies -- an arbitrary sculpt or boolean result can be charted, solved, packed and then painted, which is the first time this estate has had that path end to end.Organ4 u
Multiresolution sculpt levels (DC8)
after DC6
ms_levelSubdivide to a higher level, sculpt detail, and step DOWN without losing the detail -- the property that makes high-frequency sculpting tractable. Done-rule: detail added at level N survives a round trip to level N-1 and back within a stated deviation, and the level stack is an op on the DC1 log.Organ4 u
Sculpt brush constrained to an anatomical stratum (DC9)
after DC1
sc_layer_brushTHE EXCEED, and it is only reachable because our bodies are generated inside-out: a brush that edits the MUSCLE layer and lets the skin re-emerge over it, or that adds fat without touching the muscle beneath. Done-rule: a stroke on the muscle layer provably changes the skin surface, a stroke on the fat layer provably does not change the muscle layer, and the resulting surface change is reported in millimetres by md_measure. ZBrush layers are shape blends over one surface and structurally cannot express this.Organ3 u
Garment pattern, sewing and drape (DC10)
after DC3
gd_drapeFlat pattern pieces, sewing seams, and a drape onto the generated body -- the Marvelous Designer capability the storefront lane needs, on the existing soft-body solver rather than a second one. Done-rule: a sewn garment drapes without self-interpenetration at a stated contact distance and its fit is reported against the body measurements the estate already extracts.Organ8 u
Layer 3 · Engineering
How this is scored. Every Nishi mark is measured: the generator reads the real organ source on disk and requires the implementing symbol to exist (no self-grading). A watching tag names the organ and symbol contracted to close a gap — the mark flips itself on the next compare beat when that workstream ships, and the comparewatch- plane row flips with it. The flip is necessary, not sufficient: it proves the symbol exists, never that the capability is good. The bar is the rung's pre-declared done-rule, proven by its gate — a symbol shipped without the behaviour behind it is a defect, and the flip is exactly what makes that defect visible instead of quiet. Competitor marks record documented capability presence — presence, not depth or scale. Adoption is measured too: every measured row carries where its organ stands on the estate's ladder (source → built → promoted → registered → invoked; libraries by importer reach minus validation importers; gates by the execution surfaces that run them). A row is fully adopted only at the top of its ladder; anything short is tagged partial with the exact remedy, so a build nobody promoted can no longer read as shipped. Census stamps: importers asof 1787849099, gate census asof 1787855507 (unix seconds; -1 = census absent).

Capability matrix — measured against source

leads / measured exceed present partial absent · click any capability for its evidence

CapabilityNishiBlender 5.0ZBrush 2026Maya 2026ArmorPaint
non-destructive-operation-stackMeasured exceed: es_replay in runtime/nx_editstack_lib.nx, verified at emit. EXCEED with the why, and it LANDED 2026-08-25. An append-only operation log where undo, redo and re-evaluation are all REPLAYS FROM THE BASE, so the state is reproduced BIT-IDENTICALLY rather than approached by applying an inverse. Every rival is float and applies inverse operations, so their undo drifts and nothing digests the state to notice -- and NEITHER banked rival page contains the token determinis at all [blender50] [zbrush26], so the axis is not merely unwon by them, it is unclaimed. nx_editstack_gate GREEN 44 of 44 on the PROMOTED binary via api gate_run, and BITE-PROVEN by mutation of the library inside its build closure (killed=1 not_reached=0, restore byte-identical). Non-vacuous on three axes: the digest is proven to DISCRIMINATE four distinct states so a constant digest cannot pass, undo is proven to reach an EARLIER state so replay cannot be a no-op, and re-evaluation is proven equal to an INDEPENDENTLY BUILT stack so a corrupted state cannot pass as a changed one. The estate's only prior undo was nx_editor_canvas ec_undo, a ONE-DEEP FULL-ARRAY SNAPSHOT on a 2D page canvas. Adoption: LIB-WIRED importers=6 nonval=3 — fully adopted (top of its ladder).
parametric-re-evaluation-at-depthMeasured: es_reeval exists in runtime/nx_editstack_lib.nx, verified at emit. LANDED 2026-08-25. Changing a parameter of operation N re-evaluates and PRESERVES operations N+1 onward -- the property that makes an editor non-destructive. Proven not merely to change the state but to equal an INDEPENDENTLY BUILT stack carrying the new parameter, which is the tooth separating a correct re-evaluation from a corrupted one. Blender's modifier stack and geometry nodes [blenderfeat] and Maya's construction history [mayatoc] are both Best here and are the bar; ArmorPaint composes materials with nodes [armorpaint]. ZBrush reads 0 as NOT-WITNESSED: its page carries no non-destructive stack token at all. Adoption: LIB-WIRED importers=6 nonval=3 — fully adopted (top of its ladder).
sovereign-viewport-zero-gpu-apiMeasured exceed: mv_render_loaded_cam in runtime/nx_meshview_wasm.nx, verified at emit. EXCEED with the why, and the why is sovereignty rather than speed. Our own software rasterizer compiled to WebAssembly, orbiting a real mesh in the visitor's browser with NO WebGL and NO GPU API in the path at all -- there is no rival to this because every other 3D tool delegates rasterization to a driver. HONEST: it is slower than a GPU path, it is a viewer and not yet an editor, and the estate also carries nx_stl_view_emit which quietly reintroduces a WebGL dependency for the same job. Two viewers with opposite architectures is the duplicate-ruler defect and the sovereign one is the keeper. Adoption: LIB-UNIMPORTED — PARTIAL: nothing imports it: wire it into a consumer or retire it.
adoption LIB-UNIMPORTED
millimetre-deviation-rulerMeasured exceed: md_measure in runtime/nx_mmdev_lib.nx, verified at emit. EXCEED with the why: no content-creation tool ships a metrology instrument, because none of them has a use that demands one. Exact point-to-triangle deviation in tenths of a millimetre over EVERY vertex, both directions, mean p95 and max, on a grid derived from the triangle count and never sampled. It is what lets a retopology or sculpt rung state a surface-error BOUND instead of an opinion, and it is already gate-proven to read a known 5.0 mm lift as 5.0 mm and a self-compare as zero. Adoption: LIB-WIRED importers=6 nonval=3 — fully adopted (top of its ladder).
mesh-validity-and-manifold-oracleMeasured exceed: mv_manifold in runtime/nx_meshvalid_lib.nx, verified at emit. EXCEED with the why, and the why is the REFUSAL rather than the detection. SHIPPED AND PROVEN 2026-08-25. Six named defect classes -- non-manifold edges, boundary holes, degenerate triangles, duplicate vertices, inconsistent winding, index range -- each a COUNT plus the offending element index, with a refusal rather than an overlay. Table capacity is DERIVED from the input at a declared quarter load factor, so there is no fixed size to outgrow and no cap to hit silently, and the zero-area test is an exact integer cross product rather than a float epsilon. nx_meshvalid_gate GREEN 32 of 32 on the PROMOTED binary, and BITE-PROVEN by mutation of the library inside its build closure (valid_mutants=1 killed=1 not_reached=0, restore byte-identical at 13123 bytes, mutant_live=0). THE GATE EARNED ITS GREEN THE HARD WAY: its FIRST run was RED 25 of 31 and it caught a real aliasing bug in this very library -- the header's first-offender slots overlapped the vertex array, so the check's own reset loop silently MOVED vertex zero on entry. Every topology class still passed, because a moved corner is still a valid tetrahedron; the ONLY symptom was that the duplicate-vertex detector could never fire, reported as FAIL VACUOUS did not fire on the bad input. Fixed at the constant, plus a structural invariant tooth asserting the header outranks every first-offender slot so a future slot addition cannot reintroduce the aliasing in silence. The rivals all SHOW mesh problems in a viewport overlay for a person to notice; NONE of them refuses, which is the entire difference and the reason this is flagged an exceed: an asset pipeline with nobody watching needs a non-zero exit, not a highlight. Adoption: LIB-WIRED importers=3 nonval=1 — fully adopted (top of its ladder).
sdf-boolean-union-difference-intersectionMeasured: nx_csg_combine exists in runtime/nx_sdf.nx, verified at emit. Signed-distance min and max combinators with a smooth-minimum fillet, so a boolean is unconditionally robust where a mesh boolean is famously fragile. NOT marked an exceed: Blender 5.0 renamed its Boolean solver and ships 27 volume-grid nodes including SDF blends [blender50], ZBrush has Live Boolean [zbrush26] and Maya has Boolean operations with a boolean stack [mayatoc]. Ours is integer and theirs is float, and determinism is claimed once above rather than re-claimed on every row that happens to be integer. Adoption: LIB-WIRED importers=23 nonval=8 — fully adopted (top of its ladder).
sdf-field-evaluationMeasured: nx_sdf_eval exists in runtime/nx_sdf.nx, verified at emit. Sphere, box, cylinder, torus and rounded box in Q14 millimetres -- the primitive layer the booleans and the extractor both compose. Adoption: LIB-WIRED importers=23 nonval=8 — fully adopted (top of its ladder).
n-primitive-csg-sceneMeasured: nx_csg_scene_add exists in runtime/nx_csg_scene.nx, verified at emit. An op chain with per-primitive rotation and a per-op blend factor, replacing an extractor that was hardwired to exactly two primitives. Adoption: LIB-WIRED importers=15 nonval=4 — fully adopted (top of its ladder).
marching-tetrahedra-extractionMeasured: nx_csg_extract exists in runtime/nx_csg.nx, verified at emit. Kuhn six-tetrahedron split over the field, watertight BY CONSTRUCTION where marching cubes needs a disambiguation table to avoid holes. This is the estate's voxel-remesh path and the grid resolution is its knob; ZBrush's Dynamesh is the workflow bar [zbrush26]. Adoption: LIB-WIRED importers=12 nonval=6 — fully adopted (top of its ladder).
solid-re-evaluated-from-its-op-chainMeasured: nx_csg_scene_eval_i exists in runtime/nx_csg_scene.nx, verified at emit. The solid is not a mesh that was edited, it is a rule evaluated at any point in space -- so it has no maximum resolution and no baked topology to degrade. The rebuild-from-rules property is genuinely real here and is the model the rest of this board is trying to reach. Adoption: LIB-WIRED importers=15 nonval=4 — fully adopted (top of its ladder).
mesh-transform-translateMeasured: nx_mesh_translate exists in runtime/nx_mesh_edit.nx, verified at emit. Integer translation on NxMesh. Present and correct, and one of only five verbs in an organ whose header claims Blender-class. Adoption: LIB-WIRED importers=16 nonval=3 — fully adopted (top of its ladder).
mesh-transform-uniform-scaleMeasured: nx_mesh_scale_rat exists in runtime/nx_mesh_edit.nx, verified at emit. Rational numerator over denominator so a scale is exact rather than a float multiply. UNIFORM ONLY -- there is no per-axis scale. Adoption: LIB-WIRED importers=16 nonval=3 — fully adopted (top of its ladder).
mesh-subdivideMeasured: nx_mesh_subdivide exists in runtime/nx_mesh_edit.nx, verified at emit. One triangle into four. HONEST: not Catmull-Clark, no creases, and it does not smooth -- it only increases density. Adoption: LIB-WIRED importers=16 nonval=3 — fully adopted (top of its ladder).
mesh-boundsMeasured: nx_mesh_aabb exists in runtime/nx_mesh_edit.nx, verified at emit. Axis-aligned bounds as six integers, the primitive every fit and placement operation composes. Adoption: LIB-WIRED importers=16 nonval=3 — fully adopted (top of its ladder).
sketch-extrudeMeasured: nx_cad_extrude exists in runtime/nx_cad.nx, verified at emit. A convex 2D profile swept to a fan-capped prism. HONEST: this is a CAD sketch extrude, NOT the face-extrude on an existing mesh that a modeller means by the word. Adoption: LIB-WIRED importers=5 nonval=2 — fully adopted (top of its ladder).
decimate-grid-clusteringMeasured: nx_mesh_decimate exists in runtime/nx_mesh_decimate.nx, verified at emit. Rossignac-Borrel clustering to a cell-centroid representative -- fast and topology-insensitive. Adoption: LIB-GATE-ONLY importers=5 — PARTIAL: imported only by validation organs (gates, tests, benches): wire it into a shipping program.
adoption LIB-GATE-ONLY importers=5
decimate-quadric-errorMeasured: nx_mesh_qem exists in runtime/nx_mesh_qem.nx, verified at emit. Garland-Heckbert quadric error metrics to a target triangle count, pure integer. HONEST AND NAMED: this estate has TWO decimators with no shared interface and neither names the other. Genuinely different algorithms so the duplication is defensible, but an unnamed duplicate ruler is how a third one gets written. Adoption: LIB-GATE-ONLY importers=1 — PARTIAL: imported only by validation organs (gates, tests, benches): wire it into a shipping program.
adoption LIB-GATE-ONLY importers=1
vertex-normalsMeasured: vn_smooth_area exists in runtime/nx_vnormals_lib.nx, verified at emit. CONSOLIDATED 2026-08-25 -- AND THIS ROW'S OWN EARLIER CLAIM WAS WRONG, which is why the correction is recorded rather than swapped. It said three copies of one computation and called sc_vertex_normals area-weighted. MEASURED: sc_vertex_normals normalises each face normal to unit length BEFORE accumulating, so it is UNIFORM weight, while gl_vnormals and the inline block inside write_obj accumulate the raw cross product whose magnitude IS twice the area. That is two-and-one, not three. The two genuinely identical ones were merged onto vn_smooth_area under proof, with the gate carrying VERBATIM transcriptions of both originals as independent oracles plus an end-to-end tooth reading the bytes write_obj actually writes; nx_vnormals_gate 18/18 GREEN and mutation-proven. sc_vertex_normals was DELIBERATELY NOT MERGED: on a 100 to 1 area ratio the two answers are (0,9,999) and (0,181,181), not even parallel, and the control that makes that mean something is that on an EQUAL-AREA fixture they come back exactly parallel -- so the weighting is the whole cause and merging would have silently changed shipped geometry. That is the 2026-07-21 class of defect, where a dedupe deleted live capabilities, avoided by measurement rather than by luck. Adoption: LIB-WIRED importers=4 nonval=2 — fully adopted (top of its ladder).
shell-and-solidifyMeasured: sc_close exists in runtime/nx_shellclose.nx, verified at emit. Offset an open sheet along its own normals and stitch the rim into a watertight solid -- the operation that makes a surface printable and simulable. Adoption: LIB-GATE-ONLY importers=1 — PARTIAL: imported only by validation organs (gates, tests, benches): wire it into a shipping program.
adoption LIB-GATE-ONLY importers=1
sculpt-brushMeasured: nx_mesh_sculpt_brush exists in runtime/nx_mesh_sculpt.nx, verified at emit. A radial displacement brush with a centre, radius and strength in Q14. HONEST: that is the entire sculpting surface -- no symmetry, masking, alpha or stencil, no layers, no falloff choice, no brush library. Blender ships twenty brush types including Crease Clay Strips Pinch Grab Smooth and Mask [blendersculpt], ZBrush handles tens of millions of polygons in real time [zbrush26] and Maya has a Sculpting Tools set with stamps [mayasculpt]. ArmorPaint has a sculpt mode its own vendor labels work-in-progress [armorpaint]. Adoption: LIB-WIRED importers=7 nonval=2 — fully adopted (top of its ladder).
anatomy-derived-uv-unwrapMeasured: ntx_apply exists in runtime/nx_nxa_texc_lib.nx, verified at emit. A bone-anchored cylindrical parameterization over the humanoid NXA layout, additive and idempotent, with region sums checked. NARROW BY CONSTRUCTION: it will not unwrap a general mesh, which is why the general unwrap is a watch row below rather than a claim here. Adoption: LIB-WIRED importers=7 nonval=4 — fully adopted (top of its ladder).
uv-region-groupingMeasured: ntb_regions exists in runtime/nx_nxa_texbake_lib.nx, verified at emit. Four fixed regions derived from bind anatomy. NARROW: anatomy grouping, not a rectangle packer, and it cannot lay out charts from an arbitrary unwrap. Adoption: LIB-WIRED importers=5 nonval=2 — fully adopted (top of its ladder).
texture-bake-to-atlasMeasured: ntb_bake exists in runtime/nx_nxa_texbake_lib.nx, verified at emit. Deterministic albedo bake to an atlas, proven at 1024 and 2048. Adoption: LIB-WIRED importers=5 nonval=2 — fully adopted (top of its ladder).
pbr-map-set-regenerated-per-genomeMeasured: ntb_bake_pbr exists in runtime/nx_nxa_texbake_lib.nx, verified at emit. Albedo, specular, gloss and a relief-derived normal across four regions with a skin index of refraction, regenerated per genome at load rather than shipped as files. NOT marked an exceed: Blender has the Principled BSDF [blender50], Maya has Standard Surface [mayatoc] and ArmorPaint is a PBR authoring tool by self-description [armorpaint], so the honest difference is what DRIVES the regeneration, not that it regenerates. ZBrush reads 0 as NOT-WITNESSED -- the token PBR does not occur on its page at all. Adoption: LIB-WIRED importers=5 nonval=2 — fully adopted (top of its ladder).
procedural-solid-noiseMeasured: tm_noise3 exists in runtime/nx_trimesh.nx, verified at emit. Three-dimensional noise sampled in object space, the true procedural-texture primitive -- it does not swim when the object deforms the way a 2D projection does. Adoption: LIB-WIRED importers=44 nonval=16 — fully adopted (top of its ladder).
seeded-perlin-fbmMeasured: nx_perlin_fbm_2d exists in runtime/nx_perlin.nx, verified at emit. Seeded integer Perlin with octave fBm, the shared 2D noise foundation. Adoption: LIB-WIRED importers=7 nonval=4 — fully adopted (top of its ladder).
skeletonMeasured: sk_add_bone exists in runtime/nx_skeleton.nx, verified at emit. Parent plus local offset rows composed into an integer world pose. Blender ships envelope, skeleton and automatic skinning [blenderanim] and Maya has Bind Skin [mayatoc]. ZBrush reads 0 as NOT-WITNESSED and here it is probably also true: its own page routes animation to a sibling product. Adoption: LIB-WIRED importers=19 nonval=12 — fully adopted (top of its ladder).
linear-blend-skinningMeasured: sk_skin exists in runtime/nx_skeleton.nx, verified at emit. N-influence linear blend skinning in fixed point. Adoption: LIB-WIRED importers=19 nonval=12 — fully adopted (top of its ladder).
weight-import-with-validationMeasured: g2_skin_weights exists in runtime/_hdl_build/nx_gltf2mesh.nx, verified at emit. Joint indices and weights decoded with a sum-to-unit validation and inverse-bind-matrix checks. HONEST: weights can be imported and set by hand, but there is NO automatic binding -- no heat diffusion, no bone glow -- so a new mesh cannot be rigged without external weights. ArmorPaint only CONSUMES a baked skin on import [armorpaint]. Adoption: LIVE — fully adopted (top of its ladder).
inverse-kinematicsMeasured: ik_solve exists in runtime/nx_ik.nx, verified at emit. Cyclic coordinate descent using cross-product signs with no arctangent anywhere, iterations and step set by the caller. Adoption: LIB-WIRED importers=2 nonval=1 — fully adopted (top of its ladder).
keyframe-samplingMeasured: nx_timeline_sample exists in runtime/nx_animation_timeline.nx, verified at emit. HONEST: LINEAR interpolation only. No bezier handles, no tangents, no ease curves, so there is no graph editor and no animator would call this animation authoring. Blender has F-Curves and a Graph Editor [blenderanim]; Maya's guide has a whole container for keyframe animation and the Graph Editor [mayatoc]. Adoption: LIB-GATE-ONLY importers=2 — PARTIAL: imported only by validation organs (gates, tests, benches): wire it into a shipping program.
adoption LIB-GATE-ONLY importers=2
blendshape-morph-targetsMeasured: mo_apply exists in runtime/nx_morph.nx, verified at emit. Additive vertex deltas applied before skinning, with their own serialization format. Adoption: LIB-GATE-ONLY importers=1 — PARTIAL: imported only by validation organs (gates, tests, benches): wire it into a shipping program.
adoption LIB-GATE-ONLY importers=1
mocap-decode-bvhMeasured: b_parse exists in runtime/nx_bvh_lib.nx, verified at emit. Full BioVision hierarchy and motion, refusing past its declared joint and channel caps rather than truncating. Adoption: LIB-WIRED importers=5 nonval=5 — fully adopted (top of its ladder).
mocap-retargetMeasured: rt_retarget_chain exists in runtime/nx_pose_retarget.nx, verified at emit. Inverts the forward kinematics -- joint world POSITIONS back to our rig's angles -- which is what makes third-party motion drive a generated skeleton. Adoption: LIB-WIRED importers=2 nonval=1 — fully adopted (top of its ladder).
import-gltf-with-full-rigMeasured: g2_convert exists in runtime/_hdl_build/nx_gltf2mesh.nx, verified at emit. The most complete importer in the estate and far more than its name suggests: mesh plus skeleton plus skin weights plus inverse bind matrices with non-identity detection, plus unit autoscale. This anchors the interchange story. Adoption: LIVE — fully adopted (top of its ladder).
import-fbxMeasured: fbx_read exists in runtime/nx_fbx_import.nx, verified at emit. Binary FBX vertices and polygon indices to triangles. Adoption: LIB-WIRED importers=2 nonval=1 — fully adopted (top of its ladder).
import-objMeasured: oi_read exists in runtime/nx_obj_import.nx, verified at emit. Vertices and faces including combined vertex texture normal references. Adoption: LIB-GATE-ONLY importers=1 — PARTIAL: imported only by validation organs (gates, tests, benches): wire it into a shipping program.
adoption LIB-GATE-ONLY importers=1
import-mmd-motionMeasured: v_layout exists in runtime/nx_vmd.nx, verified at emit. Bone, morph, camera and light sections with Shift-JIS names and named refusal codes -- a format the commercial tools reach only through community plugins. Adoption: REGISTERED-DARK — PARTIAL: callable, authorised, no MCP invocation on record (a direct fork logs the runner, so this is not proof it never ran); no execution surface runs it either (clock, cron, daemon, roster, actlog and surfaced forks checked).
adoption REGISTERED-DARK
export-glbMeasured: write_glb exists in runtime/nx_gltf_export.nx, verified at emit. JSON and binary chunks with positions and indices, plus a coloured variant. This is the path an asset takes to a storefront viewer or a game engine. ArmorPaint saves obj and glb [armorpaint]. ⛔CORRECTED 2026-08-25 BY A WITNESS OUTSIDE THIS ESTATE, AND THE CORRECTION IS RECORDED RATHER THAN QUIETLY SWAPPED. This row previously implied a working interchange path and the specification body's own reference validator disagrees: every one of the 12 files this emitter has published fails glTF 2.0 validation with ACCESSOR_VECTOR3_NON_UNIT on EVERY normal -- 3198 of 3198 on human.glb, first vector length 999.1766610564921 against a required 1.0 -- because gl_vnormals emits ~1000-scale normals beside a source comment asserting that renderers re-normalise, which the spec contradicts. It is NOT a cosmetic warning: the validator ranks it an Error, and a strict loader is entitled to refuse the asset. Everything ELSE this emitter writes is spec-perfect, proven by rescaling only the normals in place and revalidating at 0 errors and 0 warnings, so the container, JSON, accessors, bufferViews, bounds and indices are all correct and the defect is exactly one axis. The done-rule for closing it is not a size or a shrug: the emitter ships unit-length normals and the SAME third-party validator returns 0 errors over the whole published population, re-run from the recipe banked in knowledge/fetched/cmp_dcc_gltfvalidator_witness_2026-08-25.txt. See the C5 block in this file's header for the controls. Adoption: LIB-WIRED importers=8 nonval=2 — fully adopted (top of its ladder).
export-objMeasured: write_obj exists in runtime/nx_obj_export.nx, verified at emit. Vertices, normals and faces in one buffered write. Adoption: LIB-WIRED importers=3 nonval=1 — fully adopted (top of its ladder).
export-stlMeasured: nx_stl_write_mesh exists in runtime/nx_stl_write.nx, verified at emit. Binary STL, feeding the estate's own slicer to gcode to printer path -- the asset leaving as a physical object rather than a picture. Adoption: LIB-WIRED importers=26 nonval=4 — fully adopted (top of its ladder).
volumetric-soft-body-solverMeasured: st_substep exists in runtime/nx_softtissue.nx, verified at emit. An XPBD solver over a TETRAHEDRAL volume cage with per-layer compliance and contact force readout -- the physics tier most content tools ship as a plugin. NOT CLOTH and the row says so: there is no bending constraint. NOT marked an exceed because Blender ships soft body and cloth [blendersim] and Maya ships nCloth [mayatoc]. Adoption: LIB-WIRED importers=12 nonval=2 — fully adopted (top of its ladder).
secondary-dynamicsMeasured: sd_step exists in runtime/nx_softdyn.nx, verified at emit. Spring-damper jiggle and recoil with the stability envelope enforced INSIDE the solver, so an unstable configuration cannot be requested. Adoption: LIB-WIRED importers=7 nonval=5 — fully adopted (top of its ladder).
mesh-splice-into-a-named-layerMeasured: mm_merge exists in runtime/_hdl_build/nx_meshmerge.nx, verified at emit. Splice one mesh into a named layer of another with a placement transform -- the assembly primitive under outfits and attachments. Adoption: REGISTERED-DARK — PARTIAL: callable, authorised, no MCP invocation on record (a direct fork logs the runner, so this is not proof it never ran); no execution surface runs it either (clock, cron, daemon, roster, actlog and surfaced forks checked).
adoption REGISTERED-DARK
mesh-rotate-and-mirrorOpen — watching runtime/nx_mesh_edit.nx : nx_mesh_rotate, re-measured on every compare beat. Ship that symbol and this mark flips itself; the comparewatch- plane row flips with it. ABSENT-PROVEN at corpus_complete=1. There is no mesh rotate and no mirror anywhere in the estate. Mirror in particular is the single most-used modelling operation in existence and its absence is why nothing symmetric can be authored here yet.
watching nx_mesh_rotate
mesh-bevelOpen — watching runtime/nx_mesh_edit.nx : nx_mesh_bevel, re-measured on every compare beat. Ship that symbol and this mark flips itself; the comparewatch- plane row flips with it. ABSENT-PROVEN. The word bevel occurs six times in the tree and every hit is a different sense -- glyph stroke bevels, voxel edge shading, a flagstone texture -- and one source says in its own comment that it has no bevel or mitre limit. There is no mesh bevel operator.
watching nx_mesh_bevel
mesh-smooth-and-relaxOpen — watching runtime/nx_mesh_edit.nx : nx_mesh_smooth, re-measured on every compare beat. Ship that symbol and this mark flips itself; the comparewatch- plane row flips with it. ABSENT-PROVEN. Every laplacian hit in the tree is the fluid wave equation. Without relax there is no way to repair the topology a sculpt brush distorts.
watching nx_mesh_smooth
weld-in-the-mesh-kernelOpen — watching runtime/nx_mesh_edit.nx : nx_mesh_weld, re-measured on every compare beat. Ship that symbol and this mark flips itself; the comparewatch- plane row flips with it. The CAPABILITY exists as cr_weld but it lives inside a CAD-twin report organ, not in the mesh kernel, so no modelling path can reach it. This is an adoption gap, not a missing algorithm, and it is the cheapest row on this board.
watching nx_mesh_weld
quad-retopologyOpen — watching runtime/nx_mesh_qem.nx : rt_quadremesh, re-measured on every compare beat. Ship that symbol and this mark flips itself; the comparewatch- plane row flips with it. ABSENT-PROVEN. Both decimators produce TRIANGLES; there is no quad-dominant remesh, so a sculpt cannot become a deformable game-budget mesh. Maya ships Remesh and polyRemesh [mayatoc]. The done-rule binds the result to a millimetre bound measured by the EXISTING md_measure rather than a new metric.
watching rt_quadremesh
dynamic-topologyOpen — watching runtime/nx_mesh_sculpt.nx : sc_dyntopo, re-measured on every compare beat. Ship that symbol and this mark flips itself; the comparewatch- plane row flips with it. ABSENT-PROVEN. Sculpting cannot add detail where the brush needs it, so the brush is bounded by whatever tesselation it started with. Blender calls it dyntopo [blendersculpt] and ZBrush calls it Dynamesh [zbrush26].
watching sc_dyntopo
multiresolution-levelsOpen — watching runtime/nx_mesh_sculpt.nx : ms_level, re-measured on every compare beat. Ship that symbol and this mark flips itself; the comparewatch- plane row flips with it. ABSENT-PROVEN for us -- every multires hit in the tree is a neural hash encoding, a different subject entirely. THE ZBRUSH AND MAYA ZEROES HERE ARE THE SCHEMA'S LIMITATION AND ARE ALMOST CERTAINLY WRONG AS ABSENCE CLAIMS: both products are widely understood to have subdivision levels, but three separate probes of each banked mirror returned nothing, so 0 records NOT-WITNESSED. Blender states multi-res sculpting support outright [blendersculpt].
watching ms_level
sculpt-symmetry-and-maskingOpen — watching runtime/nx_mesh_sculpt.nx : sc_symmetry, re-measured on every compare beat. Ship that symbol and this mark flips itself; the comparewatch- plane row flips with it. The brush signature takes a centre, a radius and a strength and nothing else. Absence here rests on that read signature plus a narrow probe, NOT on a bare word sweep -- symmetr matches 616 times across asymmetric-PAKE crypto and symmetric matrices, and publishing that as coverage would have been a prefix read as a population.
watching sc_symmetry
layer-aware-sculpt-brushOpen — watching runtime/nx_mesh_sculpt.nx : sc_layer_brush, re-measured on every compare beat. Ship that symbol and this mark flips itself; the comparewatch- plane row flips with it. THE CONTRACT THAT WOULD BE A REAL EXCEED, and it is deliberately NOT flagged as one until it lands, because claiming an exceed on an absent capability is the self-flattery this board's guard exists to stop. A brush that edits the MUSCLE stratum and lets the skin re-emerge over it, or adds fat without moving the muscle beneath. Reachable only because our bodies are generated inside-out with real layers; ZBrush layers are shape blends over a single surface and structurally cannot express it.
watching sc_layer_brush
general-uv-unwrapMeasured: uv_conformal exists in runtime/nx_uvunwrap_lib.nx, verified at emit. LANDED 2026-08-25: nx_uvunwrap_gate GREEN 78 of 78 on the promoted binary and mutation-proven (killed=1 not_reached=0, restore byte-identical at 71921 B, mutant_live=0). A flat quad now reads ANGLE distortion 0 where it read 987 permil, a cube's twelve seams give exactly six charts with zero overlaps, a cut cylinder wall unwraps clean, and a CONE POINT honestly reports 174 permil against a plane at 0 -- non-zero, not a refusal, which is the correct behaviour for a surface that genuinely cannot be flattened. ⛔THIS ROW PREVIOUSLY PUBLISHED A WRONG ROOT CAUSE AND THE CORRECTION IS RECORDED RATHER THAN QUIETLY REPLACED, because a false mechanism left standing costs the next reader the whole investigation. The published cause was a discarded return code in uvi_unfold's walk. That is a REAL latent defect and it was fixed too, but it caused NONE of the fifteen failures. The actual cause was found by refuting the briefed one with arithmetic from the gate's own output: an unseamed 4-vertex 2-triangle mesh reported texc corners lost = 1 when a bijection makes 0 the only possible answer, so the corner-to-class map was already corrupt BEFORE any unfold ran. In uv_chart_build's relabel block, uvf is BOTH the union-find parent forest AND the corner-to-class map, and the loop converts one into the other IN PLACE: from the second iteration uvi_find chases a class id as if it were a parent index, and because the encoding is NEGATIVE it indexes before the array and path-compression-WRITES into the CSTART and CORDER slots underneath. Roots are now resolved into their own array before any parent is rewritten. The lesson is the one this estate keeps paying for: A COMPOUND SYMPTOM THAT WILL NOT NAME ITS FAILING CONJUNCT INVITES THE STORY YOU ALREADY BELIEVE, and the arithmetic in the instrument's own output is what refuted mine. The anatomy-locked ntx_apply remains for the humanoid NXA layout; this is the general unwrap beside it, so an arbitrary sculpt or boolean result can now be charted, solved and packed. Blender ships Conformal and Angle Based unwrapping with edge seams and vertex pinning [blendermodel]; Maya has Unfold [mayatoc]; ZBrush names UV Master but the token unwrap never appears on its page [zbrush26]. Adoption: LIB-GATE-ONLY importers=1 — PARTIAL: imported only by validation organs (gates, tests, benches): wire it into a shipping program.
adoption LIB-GATE-ONLY importers=1
uv-seamsOpen — watching runtime/nx_nxa_texc_lib.nx : uv_seam, re-measured on every compare beat. Ship that symbol and this mark flips itself; the comparewatch- plane row flips with it. ABSENT-PROVEN. There is no way to tell an unwrapper where to cut.
watching uv_seam
uv-packingOpen — watching runtime/nx_nxa_texbake_lib.nx : uv_pack, re-measured on every compare beat. Ship that symbol and this mark flips itself; the comparewatch- plane row flips with it. ABSENT-PROVEN for us. Maya ships Layout UV shells with options [mayatoc]. The Blender 0 is NOT-WITNESSED, not absence -- a packing token simply did not appear in the banked features page.
watching uv_pack
uv-distortion-metricOpen — watching runtime/nx_nxa_texc_lib.nx : uv_distort, re-measured on every compare beat. Ship that symbol and this mark flips itself; the comparewatch- plane row flips with it. ABSENT-PROVEN, and it is the referee the unwrap needs: without it a fold is invisible and an unwrap can fail silently. The rivals are coded 1 because they SHOW distortion to an artist; none of them REFUSES on it.
watching uv_distort
texture-paintingMeasured: tp_stroke exists in runtime/nx_texpaint_lib.nx, verified at emit. LANDED 2026-08-25, closing what this board called its single largest gap. A surface point plus barycentrics becomes an atlas texel, a brush lays a declared smoothstep falloff across the map set, and EVERY STROKE IS AN OPERATION ON THE EDIT STACK, so a paint session replays byte-identically and undoes stroke by stroke. nx_texpaint_gate GREEN 109 of 109 on the promoted binary with 16 gv_bite negative controls. The load-bearing teeth: the hand-computed texel is asserted by ARITHMETIC DONE IN THE FIXTURE, not by the code under test; the stroke paints exactly the hand-counted 25-texel disc with ZERO texels changed outside the radius, which is the anti-vacuity tooth that kills a painter that writes the whole atlas; the falloff is exactly zero AT the rim; and the seam bleed is proven by neg-control-seam-TEARS-without-the-bleed, which FIRES on a build with the bleed removed and is silent with it -- so the anti-tear claim is bitten rather than asserted. Replay is bit-exact both ways: undoing every stroke restores the base byte for byte and redoing returns to the exact same bytes. The bleed margin is DERIVED from the brush radius and the chart width, never picked. All four rivals still lead on brush breadth and this is not an exceed; what is ours is that a stroke is a replayable op and the seam is a property of the metric rather than something a person notices and paints over. [blendermodel] [zbrush26] [mayatoc] [armorpaint] Adoption: LIB-GATE-ONLY importers=1 — PARTIAL: imported only by validation organs (gates, tests, benches): wire it into a shipping program.
adoption LIB-GATE-ONLY importers=1
cloth-and-garment-drapeOpen — watching runtime/nx_softtissue.nx : gd_drape, re-measured on every compare beat. Ship that symbol and this mark flips itself; the comparewatch- plane row flips with it. ABSENT-PROVEN as cloth: there is no bending constraint anywhere. The solver that exists is a volumetric tetrahedral cage. The garment organ in the estate is a 2D print-on-fabric compositing preview with zero simulation and zero 3D, and calling it cloth here would have been a false capability. Blender simulates cloth for clothing and environments [blendersim] and Maya ships nCloth [mayatoc].
watching gd_drape
viewport-selection-and-gizmoMeasured: vp_pick_screen exists in runtime/nx_vpick_lib.nx, verified at emit. LANDED 2026-08-25, and the done-rule held: THE GIZMO NEVER TOUCHES GEOMETRY. A screen point becomes a ray in the SAME camera convention nx_meshview_wasm already orbits in, Moller-Trumbore picks the nearest triangle in exact integer arithmetic, and a drag resolves to ONE operation pushed onto the edit stack -- so every drag is undoable, redoable and replays bit-identically. nx_vpick_gate GREEN 132 of 132 on the promoted binary with 13 gv_bite negative controls (this row said 11 before and that was a miscount -- 13 is what the run actually prints). The teeth that make it non-vacuous: the nearer triangle wins AND STILL WINS WHEN THE BUFFER ORDER IS REVERSED, so the answer is depth and not array order; a degenerate triangle is never returned as a hit and is a DISTINCT answer from parallel and from behind; a miss returns a NAMED negative code that no valid index can collide with; and three separate teeth assert the run never wrote a single word of the mesh buffer. The gizmo magnitude is checked against an INDEPENDENTLY DERIVED closed form (gap measured at 0 against a derived slack of 12), not against itself. AND THE INTERACTION HALF IS NOW A MEASURED NUMBER RATHER THAN A VIEWPORT CAPABILITY WITH NO COST BESIDE IT: the same gate times vp_pick_screen over procedurally generated grids at FOUR stated triangle counts and publishes nanoseconds per pick with its repetition count and clock source printed so the arithmetic can be redone -- 32 tris 9659 ns, 128 tris 30332 ns, 512 tris 116495 ns, 2048 tris 455054 ns, each the MINIMUM of two samples of 1024 repetitions on CLOCK_MONOTONIC at 1 us resolution, divided once at the end. The bar is not invented here: knowledge/gamefeel_oracle.conf already banks frame_budget_ms_90hz at 11..12 ms, the derived 1e6/90 = 11111 us agrees with that row, and js_block_ms caps app logic at 2 ms -- the same two cited rows nx_tissuebudget measures the tissue tick against, reused rather than a second bar invented beside it. So a pick over 2048 triangles is 40955 ppm, about 4.1 percent, of one 90 Hz frame, and the cited 2 ms app-logic ceiling buys 9001 triangles per pick. Cost is measurably SUB-linear (per-triangle cost 736 permil across the 64x range, where 1000 would be exactly linear and 64000 quadratic) because the fixed ray construction amortises as the mesh grows, and the bar separating linear from quadratic is DERIVED as the geometric mean of the two hypotheses rather than tuned until the result passed. THE FIGURE IS A NATIVE FLOOR AND SAYS SO: the shipped viewport is wasm in a visitor browser, which is slower on hardware that is very likely weaker. Blender, ZBrush and Maya all lead here and this is parity, not an exceed -- what is ours is that the drag is an op on a log rather than a write, and that the pick cost is published with its triangle count instead of asserted. Adoption: LIB-GATE-ONLY importers=1 — PARTIAL: imported only by validation organs (gates, tests, benches): wire it into a shipping program.
adoption LIB-GATE-ONLY importers=1
node-graph-authoringOpen — watching runtime/nx_editstack_lib.nx : ng_eval, re-measured on every compare beat. Ship that symbol and this mark flips itself; the comparewatch- plane row flips with it. A graph whose evaluation IS the operation stack rather than a second engine, so a graph edit and a manual edit cannot diverge. The tooth is that a graph and the equivalent hand-built log produce byte-identical state -- the proof there is only one evaluator. ArmorPaint composes materials with nodes and its development is public though its binaries are paid [armortools].
watching ng_eval
collaborative-multi-seat-editingOpen — watching runtime/nx_editstack_lib.nx : co_merge, re-measured on every compare beat. Ship that symbol and this mark flips itself; the comparewatch- plane row flips with it. Every column is zero and that is the honest reading against THESE four rivals -- but it would be dishonest to leave it there: the browser-native editors named in dcc.plan collaborate today and we do not. The append-only log makes convergence reachable; the tooth is that two interleaved op streams replayed in either order end at identical digests.
watching co_merge
asset-ingest-under-provenance-and-licenceOpen — watching runtime/_hdl_build/nx_gltf2mesh.nx : ain_admit, re-measured on every compare beat. Ship that symbol and this mark flips itself; the comparewatch- plane row flips with it. Every ingested asset should carry where it came from, what licence admits it and a content pin, failing CLOSED at intake and naming the missing conjunct. The rivals import anything and record nothing, so a 1 here is generous to them.
watching ain_admit
one-asset-four-consumers-one-rulerMeasured exceed: xp_consumers in runtime/nx_xport_lib.nx, verified at emit. EXCEED with the why, LANDED 2026-08-25: no rival has this because no rival owns four consumers. ONE authored source is emitted to every consumer and the geometry each RECEIVES is recovered OUT OF THE ARTIFACT BYTES and measured against the source by md_measure -- the ruler that already existed, composed rather than duplicated. nx_xport_gate GREEN 38 of 38, mutation-proven. Deviations in tenths of a millimetre: game NXA 0/0/0 and clinical NXMSH2 0/0/0, both EXACTLY lossless against a derived bound of ZERO -- by arithmetic, not tolerance, because their unit is an integer multiple of the ruler's so the round trip is a multiplication and an exact division. Storefront glb and obj read 0/4/4 against a derived bound of 11. VR is UNREACHED and ABSTAINS BY NAME, never scored zero: vf_build takes no mesh argument at all, its scene is a six-row constant table and it emits a PNG, and BOTH facts are re-checked against live source on every run so the abstention cannot decay into a pass -- that is now rung DC15. THE FINDING WORTH MORE THAN THE ROW: the storefront is our only lossy consumer and the loss is STRUCTURAL, not a bug -- write_glb and write_obj hold coordinates at fx1024, a 0.977 mm quantum, COARSER than the 1 to 2 mm bar nx_mmdev_lib's own header says the clinical unit exists to serve. An asset that is clinically exact going in is not clinically exact when it reaches a storefront viewer, and nothing before this row could see it. A second tooth earned its place the same way: orientation checked by per-triangle normal dot product CANNOT catch a reflection, and the signed-volume replacement carries the proof -- a mirrored box reads max deviation 0 while vol6 flips sign, so deviation alone would have passed a mirrored mesh silently. Adoption: LIB-GATE-ONLY importers=1 — PARTIAL: imported only by validation organs (gates, tests, benches): wire it into a shipping program.
adoption LIB-GATE-ONLY importers=1
unify-the-two-mesh-containersOpen — watching runtime/nx_morph.nx : mo_apply_nxmesh, re-measured on every compare beat. Ship that symbol and this mark flips itself; the comparewatch- plane row flips with it. A REAL DEFECT FOUND BY THE CENSUS, published rather than filed quietly: the estate carries TWO mesh containers, and the morph, shell and merge organs sit on a different one from the sculpt and CSG organs -- so a blendshape CANNOT currently be applied to a sculpted or boolean-extracted mesh without a conversion nobody has written. Every rival has exactly one mesh type.
watching mo_apply_nxmesh
On these two registers. Rows are declared in the domain's plan file and carry the debt id, which is the join key back to the sovereign debt plane — that plane, not this page, is the authority on state. Reconciling them automatically (the regen reading the plane and refreshing these rows) is a named, owed rung; until it lands, treat an id here as a pointer to look up, not a status to trust.
Honest verdict. The coverage above is capability presence measured against source — not depth, scale, or polish, where mature rivals may lead. Exceeds are claimed only where a mechanism backs them. Every open gap is a watch contract: it names the organ and symbol that closes it, and this page flips the cell itself when that workstream ships.

Person · product · place — not yet measured for this domain

Every compare carries this layer. Declare knowledge/compare/dcc.ppp (rows surface|nishi or c1..c4|label|url|connect naming OUR live surface and each rival's front door), run nx_ppp_probe domain dcc, and this section fills itself on the next beat: the same ruler on both sides — privacy and CX (third-party hosts, tracker classes, cookies, security headers), design and longevity (design hygiene, computed WCAG contrast, render-blocking resources, unsized media, script weight, theme and motion queries), findability (landmarks, skip link, on-site search, breadcrumb, headings, internal links).

References

Beyond a link list. Every reference below resolves twice — the publisher's copy and, where banked, the estate's own non-rottable library mirror with a content pin — and carries its evidence class plus the exact claim on this page it grounds. Keyed marks like [key] in the matrix notes jump here. A dash means honestly absent, never assumed.
  1. [blender50] Blender Foundation. Blender 5.0 release notes. Carries the Boolean solver rename to Float, the Principled BSDF iridescence work, Geometry Nodes and USD NURBS curve I O. publisher · read in our library knowledge/fetched/cmp_dcc_blender50.html · pin h2086a760de5d60f1f6fd36f712d081478ff90b073c3b5710c54e9482086fdb59 · accessed 2026-08-25 · vendor-docGrounds: sdf-boolean-union-difference-intersection
  2. [blenderfeat] Blender Foundation. Features overview. States in its own words that Blender is the free and open source 3D creation suite. publisher · read in our library knowledge/fetched/cmp_dcc_blender_features.html · pin hb19c12b5673f1a6576277db29a0a631b0de8f27728675f8bf7e21f69c73b9d5b · accessed 2026-08-25 · vendor-docGrounds: parametric-re-evaluation-at-depth
  3. [blendersculpt] Blender Foundation. Sculpting features. Twenty brush types including Crease Clay Strips Pinch Grab Smooth and Mask, dynamic topology tessellation, and multiresolution sculpting. publisher · read in our library knowledge/fetched/cmp_dcc_blender_sculpt.html · pin h4d52b02f5613a22da3f37cb9aacbab0e3a3549c88a107678fa68f6104cd84bea · accessed 2026-08-25 · vendor-docGrounds: sculpt-brush
  4. [blendermodel] Blender Foundation. Modeling features. Conformal and Angle Based UV unwrapping with edge seams and vertex pinning, non-destructive modifiers, and painting directly onto the mesh. publisher · read in our library knowledge/fetched/cmp_dcc_blender_modeling.html · pin h97cba1c773c7e957db68ef4d807be20dffc68d28b0256313891ae0f3ec9bfb65 · accessed 2026-08-25 · vendor-docGrounds: general-uv-unwrap
  5. [blenderanim] Blender Foundation. Animation features. Envelope skeleton and automatic skinning, weight painting, keyframing and the F-Curve Graph Editor. publisher · read in our library knowledge/fetched/cmp_dcc_blender_animation.html · pin ha06234fc37cddac05e77fb95f6c05b75140316fb135cf8c9a15054fe5c141e21 · accessed 2026-08-25 · vendor-docGrounds: keyframe-sampling
  6. [blendersim] Blender Foundation. Simulation features. Cloth simulation for clothing and environments, and hair that responds to wind and collisions. publisher · read in our library knowledge/fetched/cmp_dcc_blender_simulation.html · pin h66f98c61910ac4b57a8a59f61bf2f0b4dbdedc54d388fa4551bfba1810da7e79 · accessed 2026-08-25 · vendor-docGrounds: cloth-and-garment-drape
  7. [zbrush26] Maxon. ZBrush product documentation. A dynamic brush system handling tens of millions of polygons in real time, Dynamesh remeshing, Live Boolean, UV Master, and PolyPaint painting directly on the surface with no UVs assigned in advance. publisher · read in our library knowledge/fetched/cmp_dcc_zbrush.html · pin h7cbff9983813e3920843571f3692d481767c610bef0b9c7d63e271bbabd30be3 · accessed 2026-08-25 · vendor-docGrounds: dynamic-topology
  8. [mayatoc] Autodesk. Maya 2026 User Guide table of contents, the complete official topic tree. Carries Sculpting in Maya, Remesh Options, Unfold a UV mesh, Layout UV shells, Boolean operations, Construction history, the 3D Paint Tool, Standard Surface, nCloth, groomable splines, Bind Skin, the Graph Editor and a dedicated USD container. publisher · read in our library knowledge/fetched/cmp_3dcc_maya_toctree.json · pin h64301b4a3c40e6d4ac3d5f92668a20f5db3a622babd7238bac1a83076538076a · accessed 2026-08-25 · vendor-docGrounds: uv-packing
  9. [mayasculpt] Autodesk. Maya 2026 Modeling, the sculpting topic page. Server-rendered prose carrying a product and component meta tag, which makes sibling-product attribution mechanical rather than a judgement call. publisher · read in our library knowledge/fetched/cmp_3dcc_maya_sculpting_topic.html · pin hbcc18b2a1e91389c68aee7c54991d6ff9f4bb7e12023de2c966b11fecf20e60c · accessed 2026-08-25 · vendor-docGrounds: multiresolution-levels
  10. [armorpaint] ArmorPaint manual. Self-described as software for 3D PBR texture painting: brushes, node-composed materials, auto UV unwrap, and a sculpt mode the vendor itself labels work-in-progress. publisher · read in our library knowledge/fetched/cmp_3dcc_armorpaint_manual.html · pin h42754bc5bdaece1eeb7597819f20e99714c36f6530ac332272e7ea03a815fadd · accessed 2026-08-25 · vendor-docGrounds: texture-painting
  11. [armortools] armory3d armortools repository readme. Open development with a public repository, and it states in its own words that distributed binaries are paid -- so open source must not be written as free binaries. publisher · read in our library knowledge/fetched/cmp_3dcc_armortools_readme.md · pin h005883548a1c64633a2ff47a40295b383d5ea8513ce903473f949875584452ec · accessed 2026-08-25 · source-readGrounds: node-graph-authoring

generated by nx_swcompare_matrix (sovereign NishiLang organ) from knowledge/compare/dcc.matrix · every Nishi cell verified against organ source at emit time · watch cells re-measured on every compare beat · zero JS, zero trackers