Venn

Development evidence#

These are internal development measurements of the outcome API from November 2026, kept for maintainers. They are not public benchmarks and were not independently reproduced. Public contract tests exercise the API and adapters; the original game harness, checkpoints and raw traces behind these numbers are not distributed. The public arena example now provides a runnable implementation of the workflow. None of these rows is part of VennSpace-1.

Application validation#

The November 2026 development run exercised every Doom embedding, lookup and action choice through the Python OutcomeService, with an app-owned exact FAISS GPU index, in the ViZDoom basic and defend_the_center scenarios.

Claim Recorded result Scope / status
Shadow action agreement basic 99.990%; defend_the_center 99.994% 50,000 decisions per scenario; the direct game harness's actions drove the game
Exact FAISS immediate reads 1,000/1,000 Passed the read-after-write check; not a guarantee for other stores
API-native learning basic success 100%; defend_the_center mean kills 6.18 One seed, 431,173 decisions per scenario; 50 frozen episodes each; inside the pass criteria fixed before the run
Store wipe All 20 random-agent episode records matched per scenario Tests dependence on memory, not neural weight learning
Warm in-process full loop 94.67 decisions/s vs eager direct game harness 76.97 One A100, batch 128; passed the fixed >=81 decisions/s and >=90% relative criteria
HTTP + LanceDB full loop 8.01 decisions/s; recall@11 99.36% Report-only; different search/policy semantics; includes visibility probes
Banking77 outcome routing 35.815% cumulative; 63.8% last 1,000 20,000 training-split interactions; below cosine 99.790% and fully labeled nearest reference 99.075%; unequal feedback

Final validation checked checkpoint keys/returns, snapshot hashes and neighbor traces with no future entry IDs. All pass criteria fixed before the run were met; the HTTP and routing results are report-only.

The learning rows are one seed per scenario, not a five-seed API reproduction or identical learning trajectories, and the model weights remained frozen. The warm full-loop figure used opt-in exact elementwise fusion. None of these numbers is a deployment SLA or a publicly reproduced benchmark.

A report-only 20,000-interaction Banking77 training stream reached 35.815% cumulative outcome-routing accuracy (63.8% in the last 1,000), below fixed zero-shot centered cosine at 99.790% and a fully labeled online nearest reference at 99.075%. The outcome policy received only chosen-queue binary feedback; the supervised reference received the true label after predicting. Repeated training inputs and stronger baseline feedback prevent treating this as held-out generalization or a routing advantage.

Episodic-control protocol#

The Doom application used model-free episodic control: 128 games shared one exact FAISS GPU index per action, with k=11 and min_support=1. At episode completion, the app computed discounted returns with gamma=0.99 and stored the maximum observed return for each float16 state-key/action pair. Explicit exact_match=true and unsupported_value=0 preserved that application's exact-state and unseen-action conventions, rather than changing API defaults. Exploration decayed from 1.0 to 0.05 over the first 30% of the decision budget; eight games were greedy throughout.

Each API-native run used 431,173 decisions from seed 0, followed by 50 frozen evaluation episodes with no further store learning. Memory wipe evaluations tested dependence on stored experience. This is store-based learning with a frozen image reader, not neural policy training, a general reinforcement-learning algorithm. The historical harness is not distributed; use the public arena example for new runs.

Timing measurements#

Development measurements on an A100-SXM4-80GB distinguish the in-process outcome API from a standard HTTP/store stack:

Path Warm full-loop decisions/s Boundary
Independent eager direct game harness 76.97 Frames, reader, exact lookup, policy, game stepping and terminal writes
Python outcome API + exact FAISS GPU 94.67 Same boundary; opt-in exact elementwise normalization fusion
Loopback HTTP + LanceDB IVF_FLAT 8.01 Binary uint8 requests, JSON response consumption, game loop and app-owned store writes; includes visibility probes

Each timing restores the same basic seed-0 checkpoint and uses 128 games, two warm-up batches and five timed batches. Setup, model loading, index construction and initial compilation are excluded. The HTTP run's GPU had no competing process before or after measurement. Other GPUs performed separate work; this was not a dedicated-host or production-load study.

These are median batch rates over five timed batches (640 decisions), not request-latency percentiles or sustained-load estimates. The API rate was 1.230 times the direct game harness rate, passing the fixed >=90% relative and

=81 decisions/s absolute criteria. Normalization fusion is opt-in; this is not a same-optimization comparison of API overhead. No GPU-kernel-only rate is substituted for the full game loop.

HTTP/LanceDB recall@11 against exact search was 99.36% across 384 initial query-option pairs. All 21 observed terminal-write transactions were visible to fresh reads: write-start-to-visible p50/max 60.65/72.75 ms, or commit-to-visible 23.92/26.64 ms, including client/query overhead. The backend uses ordinary k-neighbor averaging, not FAISS's optional exact-key utility override, and the HTTP server owns exploration RNG. Its rate, 10.41% of the direct game harness rate, is therefore report-only, not an identical-trajectory comparison or learning-equivalence result.

The HTTP result, below half the direct game harness rate, motivates a separate proposal for upsert/delete on a registered index rebuildable from the app store; that addition has not been implemented. These are local measurements, not public reproduction, a latency SLA, or a speed/cost comparison with Jev (TypeSafe's hosted decision model, whose Decisions API request format Venn accepts).

See also the outcome API, the model card and the performance guide.

View this page on GitHub

On this page