Change the order.
Keep the decision.
A menu’s position should not decide which action wins. Bind scores to identities, then let the interface shuffle.
Explore the difference between a choice attached to a slot and a choice attached to an action. The canonical head sorts stable IDs, scores a regular simplex, and returns probabilities to the caller’s original slots.
Put the guarantee to the testA geometry with no preferred slot.
Same actions. A different order.
Four actions. One fixed representation. Reorder the menu and follow the winning identity. The adversarial button searches all 24 arrangements for the strongest competing winner in the position-sensitive toy model.
Position-sensitive scorer
The live flip rate above is calculated from your trials of this toy model; it is not a paper benchmark result. Softmax itself is equivariant; the slot-biased scores cause the failure.
Canonical simplex head
The live counter measures identity stability in this demo. Probabilities travel with their actions. Fixed candidate membership, unique stable IDs, and an unchanged representation are required.
Ready. Highlighted rows mark each model’s selected action.
A geometry with no favorite.
Give every pair of vertices the same angle. A regular simplex spreads k directions symmetrically across k − 1 dimensions. Drag the figure to inspect it; the ideal geometry is exact; displayed coordinates and dot products use floating-point approximations while its 2D projection changes.
Equal angles, no privileged direction
| Vertex pair | Dot product |
|---|
“Geometric fairness” means equal pairwise separation. It does not establish social fairness, semantic accuracy, or equal selection frequency. Canonicalization gives order stability; the ETF gives symmetric geometry.
When the scores cannot decide.
Two actions can have identical semantic features and still have different stable IDs. Equal scores are valid; choosing a single winner requires a tie rule. Watch a first-slot rule change its mind while canonical selection keeps the smallest eligible ID.
0 to 2 × 10⁻⁷ · canonical tolerance ε = 10⁻⁷
The Rust ETF head uses a shared representation, not one semantic vector per candidate. The feature sketch illustrates upstream collapse; it does not collapse the synthesized ETF. The gap control separately illustrates the paper’s logit tie rule.
What the guarantee actually buys
Equivariance means the probability coordinates move with the menu. Invariance means the selected action ID stays the same. Sorting alone is not enough: scattering the canonical scores back to presentation slots completes the contract.
The paper’s direct Rust benchmark reports 0 identity flips in 16,232 adversarial permutation comparisons (0.00% flip rate), with maximum identity-aligned probability drift of 5.96 × 10⁻⁸. The harness also rejected 24/24 invalid-input probes. These are finite stress-test results, not a semantic-accuracy score. This page is an independent educational simulation, not a rerun of that benchmark.
The production Rust ETF core is crates/gen-zero-model/src/choice_head.rs: ActionETFChoiceHead::evaluate sorts candidate indices by ascending ActionId, assigns canonical simplex vertices, scatters logits to caller slots, and applies softmax. Selection uses the smallest ID whose canonical logit is within 10⁻⁷ of the maximum. The service exposes this core through an explicit ETF head option; the default text route uses the semantic bridge. See the runtime map below for the integration boundary.
The diagram uses a rotated regular tetrahedron, not the Rust Helmert basis; its JavaScript uses double precision rather than Rust f32. The guarantee assumes fixed candidate membership, unique stable IDs, and a fixed representation. It does not establish that an answer is medically or factually true.
A position-sensitive encoder can change the representation before the head sees it. Stability also does not mean the decision is correct. Duplicate IDs violate the guarantee’s precondition; callers must enforce uniqueness because the Rust frame constructor does not reject duplicates.
Gen-Zero model architecture
and neural pipeline
Frozen language models provide representations and likelihoods. Specialized decision, alignment and risk paths use them in different ways. The spatial world model is a separate learned branch. Explore the layers and inspect their tensor shapes.
Code audit: · gen-zero @ dc0c2133f059. Solid arrows show implemented data flow; dashed arrows show a proposed dispatch contract. These components are not one universally deployed serial pipeline.
All flows visible. Select a layer to inspect its dimensions and evidence.
On a narrow screen, scroll the diagram horizontally. Every layer is keyboard selectable; the source notes also provide a text version.
Inspect a model layer
Select any box to see its tensor dimensions, mechanism and implementation limits. Use Tab, then Enter or Space, or select with a pointer.
Implementation evidence and architecture boundaries
Backbone provenance. Qwen2.5-0.5B (d=896), Qwen3.5-2B, Qwen2.5-72B (d=8192), and LLaMA-70B (d=8192) are the documented tiers. LLaMA-3.3-70B is the requested target, but retained large-model extraction metadata identifies LLaMA-3.1-70B. A verified 3.3 extraction is not established.
Training scope. The Transformer weights remain frozen in these paths. The semantic gate uses 16 labeled in-context examples and differential log-likelihood (PMI), without fitting a safety head. The spatial model still has a learned outcome/reward head; supervised alignment heads also remain. “No backbone fine-tuning” does not mean no downstream training.
v0.1.0 · Fail-Closed. v0.1.0: F01–F09 pass across all six engines (11/11 tests). Invalid non-finite results are rejected by the formal fail-closed gate. The browser latch illustrates the safety contract; these software tests do not certify physical motor-stop behavior.
crates/gen-zero-model/src/choice_head.rs: canonical ActionId sorting and Simplex ETF geometry, Sₖ ⊂ ℝᵏ⁻¹. The retained direct Rust benchmark reports 0/16,232 identity flips (0.00%), with fixed representation and candidate identities; maximum probability drift is 5.96 × 10⁻⁸. Paper evidence:equivariant-choice-head/evidence/revision/results.json.python/gen_zero/world_model/neural_dynamics.py: [B,64] state + [B,16] action → [B,80] concatenation → Δz=f(z,a) → z′=z+Δz; learned sigmoid outcome head. Dimensions come from the spatial configuration, not universal class constants.benchmarks/suites/geometric_latent_fusion.py: orthogonal Procrustes diagnostic and paired-SVD core/residual features.benchmarks/suites/evaluate_manifold_pareto_ensemble.py: supervised normalized-logit fusion, distinct from geometric projection.docs/zero/29-pubmedqa-aegis-unified-manifold-evaluation-closure.md: PubMedQA 78.40% (196/250), selected dual-head fusion; Aegis Track A 81.60% (204/250), selected single LLaMA head. These descriptive results do not establish statistical superiority.python/gen_zero/service/semantic_risk.pyandpython/gen_zero/service/risk_data/report.json: frozen 0.5B, 16-shot ICL, three orders, overlapping windows, PMI scoring; AUC 0.944. Diagnostic τ=0.50 flags 18/18 dangerous and 7/18 benign requests. Live thresholds are 0.4494 / 0.7620.
Text version of every layer
Frozen backbone weights
Token IDs [B, T] → hidden states [B, T, d]. Qwen2.5-0.5B uses d=896; the archived Qwen-72B and LLaMA-70B features use d=8192. Qwen-2B here is Qwen3.5-2B. LLaMA-3.3-70B is the requested target; retained extraction metadata identifies LLaMA-3.1-70B, so the measurements do not verify a 3.3 checkpoint. Frozen means no backbone fine-tuning; supervised downstream heads and spatial dynamics still require fitting.
Spatial inputs · d=64 + 16
These are engineered spatial features, not a projection from the Transformer hidden state. The evaluated spatial configuration concatenates z and a into [B, 80]. The class supports configurable state and action dimensions.
Hidden-state readout · [B, T, d] → [B, d]
Read hidden states from the forward pass without emitting answer tokens. Pooling is encoder-specific; archived large-model features use last-token pooling. The CPU candidate-selection path also evaluates candidate continuations using the prompt cache. Zero output tokens therefore does not imply one backbone call or no inference cost.
Semantic scoring · scalar risk
For each request window, subtract empty-request log-odds from log P(" dangerous") − log P(" safe"). Average over three demonstration orders; use the riskiest overlapping window and apply sigmoid. No newly trained neural safety classifier is used for this semantic gate. The label logits come from the frozen model; it does not emit an explanation.
Residual spatial dynamics · 80 → 64
neural_dynamics.py uses a residual MLP with LayerNorm and GELU. A separate learned sigmoid outcome/reward head returns [B]; it remains in the current code and is distinct from the frozen semantic risk gate. The class default hidden width is 128 with two residual blocks; checkpoint configuration is authoritative.
Choice geometry · k actions → k−1 dimensions
gen-zero-model / choice_head.rs sorts stable ActionIds, projects the shared representation onto a regular simplex ETF, scores in canonical order, and maps probabilities back to caller order. A well-defined decision depends on unique IDs, valid dimensions, finite inputs and deterministic tie handling. Candidate membership, identities and the shared representation must be unchanged under a shuffle.
Alignment and fusion are separate routes
Orthogonal Procrustes uses R=UVᵀ from the SVD of XᵀY. GeometricLatentFusion stores that map as a diagnostic; its features use paired SVD axes, scale-matched core averages and residuals. Supervised heads learn from labels. The winning PubMedQA path combines normalized head logits, not Procrustes coordinates: 0.75 Qwen + 0.25 LLaMA.
Live thresholds and diagnostic τ=0.50
The checked-in service uses two boundaries: 0.4494 for escalation and 0.7620 for a hard stop. τ=0.50 is the paper’s binary analysis threshold, not the live policy. On the 36 stored cases it flags 18/18 dangerous and 7/18 benign requests; the live tiers yield 12 stops + 6 escalations for dangerous cases and 9 escalations for benign cases.
NaN / Inf safety boundary · v0.1.0 fail-closed
v0.1.0: F01–F09 pass across all six engines (11/11 tests). Invalid non-finite results are rejected by the formal fail-closed gate. The browser latch illustrates the safety contract; these software tests do not certify physical motor-stop behavior.
Shuffle result · measured, scoped
The retained direct Rust benchmark observed 0/16,232 identity flips (0.00%) across exhaustive small-set permutations and seeded larger-set shuffles; maximum aligned probability drift was 5.96 × 10⁻⁸. Canonical sorting removes dependence on menu order under the implementation’s valid-input assumptions. This is not proof of semantic correctness or invariance to changing candidate content, prompt context or model outputs. The page’s shuffle arena is a teaching simulation.
Evaluation · selected configurations
PubMedQA selected fuse0.75+bbp|raw (dual-head normalized logit fusion). Aegis Track A selected llama+bbp|raw (single-model head). These are descriptive local test results, not verified SOTA or a universal alignment gain. The two-task macro bootstrap interval includes zero.
Risk evidence · small curated suite
AUC is 0.944444 from 18 dangerous and 18 benign stored requests. At τ=0.50 dangerous recall is 18/18, with seven benign flags. The bare chmod regression probe remains a miss. The implementation records real computation time; cached prompts reduce repeated setup but do not remove inference latency.
Dispatch contract · proposed, not deployed
A proposed monitor would validate predicted state, score and shape before dispatch; invalid values would set a persistent halt that prevents later model calls and actions until controlled reset. This describes the required hardware-safety boundary, not a verified physical latch in the current codebase.
Gen-Zero system architecture & flow
The Rust runtime connects entry points, policy, planning, decision heads and cryptographic audit. The map below groups their responsibilities; the selected verb determines the actual call path.
Source audit: 27 September 2026 · gen-zero@dc0c2133f05954146e9738bce64bf15dd36ffbee. Source-verified wiring; no new deployment or model evaluation is claimed.
Select a layer to inspect its implementation and limits.
What is not implemented here
The requested AST parser + Linux capabilities stack, physical collision checking, and persistent fail-closed latch are not an integrated execution path in these Rust crates. Invalid-input rejection and policy escalation exist; they do not establish a sandbox or a physical stop.
These service routes return decisions and simulation results. A decision ledger is not evidence of external action execution.
From request to response
- Enter and bind. The CLI or MCP/HTTP service receives a request. The router captures its mount snapshot, validates route-specific fields and selects the verb.
- Assess the request. Text
ask,routeandimagineobtain semantic risk from the Python bridge. Missing or invalid risk escalates; a hard-stop tier blocks that route. Policy constraints also apply when selecting actions. - Use the requested route. Text ask uses semantic scoring, with an explicitly labeled first-feasible fallback when unavailable; unassessed risk still escalates. Text route reports unavailable when its bridge cannot run. Numeric planning uses
gen-zero-plannerandgen-zero-worldmodel;simulate,what_ifand shadowauditexpose untrained priors. An explicit ETF head uses canonical action IDs and simplex projection. Numeric cognitive requests have their own geometry verification path. - Gate, record, return. Action-selection routes combine their policy verdict with request risk. Successful
askoutcomes andpipeline decideresults with a decision append to the provenance ledger before returning their audited outcomes. The response includes route metadata; it does not dispatch an external command.
Source map and full layer descriptions
Entry layer
gen-zero-cli · gen-zero-service — The CLI starts McpServer or submits a decision. The service accepts MCP over stdio and HTTP/SSE, plus REST routes. Its zero router binds an immutable mount snapshot and dispatches by verb; these are different routes through shared crates.
Under /ebs/pj/gen-zero/crates/: gen-zero-cli/src/main.rs; gen-zero-service/src/server.rs; gen-zero-service/src/zero.rs
Gate & security
gen-zero-gate — PolicyGate supports formal constraints, confirmation registration, entropy and semantic risk tiers. Its default has no registered constraints or confirmation actions. Text ask, route and imagine use the Python semantic-risk bridge; missing or malformed risk escalates. Shell AST parsing and Linux process capability enforcement are not wired into this Rust gate.
Under /ebs/pj/gen-zero/crates/: gen-zero-gate/src/policy.rs; gen-zero-gate/src/risk.rs; gen-zero-service/src/bridge.rs
Planning & dynamics
gen-zero-planner · gen-zero-worldmodel — Numeric latent requests can use MCTS, MPC-CEM or A*. The service exposes untrained residual or symplectic dynamics, with finite-input checks and terminal-state hazard handling. Planning filters gate-hard-stopped candidates; fixed-plan simulation still steps blocked actions and records their gate tiers. This is offline dynamics filtering, not verified physical collision checking. No persistent fail-closed execution latch is wired into this Rust route.
Under /ebs/pj/gen-zero/crates/: gen-zero-service/src/worldsim.rs; gen-zero-planner/src/pipeline.rs; gen-zero-worldmodel/src/dynamics.rs
Decision core
gen-zero-model — ActionETFChoiceHead sorts stable ActionIds, projects a shared representation onto a regular simplex, scatters scores to caller order and applies softmax. The core has a deterministic near-tie rule. The service exposes ETF through an explicit head option; ordinary text decisions use the semantic bridge, so ETF is not every request’s default head.
Under /ebs/pj/gen-zero/crates/: gen-zero-model/src/choice_head.rs; gen-zero-service/src/zero.rs
Verification & audit
gen-zero-provenance — DecisionAuditEntry includes the previous MMR root. A keyed BLAKE3 Merkle Mountain Range commits the decision history and supports inclusion proofs. Successful ask outcomes and pipeline decide results with a decision append records. Persistence via GENZERO_MMR_PERSIST_PATH is optional; the last 4,096 leaves retain inclusion proofs, and a trusted root must be retained externally; this is not an execution audit proving that an external shell command or motor action ran.
Under /ebs/pj/gen-zero/crates/: gen-zero-provenance/src/entry.rs; gen-zero-provenance/src/mmr.rs; gen-zero-service/src/zero.rs
Related runtime infrastructure includes gen-zero-core (shared types), gen-zero-lod (graph facts), gen-zero-storage (snapshots) and optional gen-zero-nanocore routes. The paper experiments below or above are research evidence, not a substitute for this runtime map.