← All Baltor Engineering Posts · Post 01 of 08 · 2026-10-18 · Runtime & Benchmarking · 8 min read · Raw Markdown (.md) · Open Live Studio ↗

How Compare Runs Without-Baltor vs. With-Baltor Side-by-Side in Real Time

Compare executes identical prompts with identical model weights across two isolated WebGL2 and sandboxed execution lanes, attributing every frame-time, physics, and constraint delta to the surrounding harness.


COMPARE PAIRED EXECUTION TOPOLOGY (FIXED SEED + IDENTICAL MODEL WEIGHTS) INPUT ASSIGNMENT Task Spec (14 rules) Model: gemma4:31b Temp: 0.2 / Seed: 42 Shared Clock: 60 Hz LANE A: WITHOUT BALTOR (RAW PROMPT) Single-shot unverified generation 20.0% spec pass | Rigid boxes | Tunneling LANE B: WITH BALTOR (6-PART HARNESS) Contract Card + Engine Slots + Verifier 100.0% spec pass | 49-bone rig | 60 FPS SYNCHRONIZED COMPARE VIEWPORT 1. Mirrored WASD + Camera Input 2. Frame-Time & Draw-Call Telemetry 3. Live AST & Physics Verifier Diff Curtain Wipe & 3x Relief Loupe

When an engineer compares two AI outputs, the comparison is usually confounded by different model weights, different sampling temperatures, or cherry-picked prompts. On compare.baltor.ai and demos.baltor.ai, both viewports run output produced by the exact same model weights (gemma4:31b or qwen3-coder:30b) at the same temperature (0.2) and random seed (42). Across our playable 3D worlds and 14-constraint engineering suites, holding the model fixed while enabling the Baltor six-part harness raises specification pass rates from 20.0% (2/10 specs) to 100.0% (10/10 specs) and eliminates terrain clipping and physics tunneling.

Dual-sandbox WebGL2 synchronization

Running two 3D WebGL2 scenes simultaneously in one browser tab requires strict isolation so that global state, requestAnimationFrame loops, and shader uniforms in Lane A never leak into Lane B. Compare isolates each lane inside a dedicated execution context and synchronizes user interaction through a deterministic input bus:

// Deterministic Compare Input Dispatcher (60 Hz clamped tick)
export function dispatchSynchronizedTick(laneA, laneB, rawNowMs, lastMs, inputState) {
  const dt = Math.min((rawNowMs - lastMs) / 1000.0, 0.0333);
  const packet = Object.freeze({
    tick: (inputState.tick || 0) + 1,
    dt,
    keys: { ...inputState.keys },
    cameraYaw: inputState.cameraYaw,
    cameraPitch: inputState.cameraPitch
  });
  laneA.stepFrame(packet);
  laneB.stepFrame(packet);
  return packet;
}

What changes between the two lanes

In the Without-Baltor lane, the model receives the raw task prompt and writes a single monolithic file from scratch. Because attention decays across middle constraints in long specifications, the unassisted model routinely substitutes rigid BoxGeometry primitives for articulated rigs, uses flat texture bump maps instead of true lathe geometry, and omits terrain barycentric height interpolation.

In the With-Baltor lane, each discrete cognitive or act step Loop node executes with a narrowly scoped assignment, selected context and resources, separately initialized harnesses, permitted harness changes, expectation checks, iteration until declared completion conditions, continued production of alternative outputs, and protection against repeated external effects. Publication of an output is separate from completion. Before any code is promoted to the right-hand viewport, an independent verifier (worker_id != verifier_id) checks all 14 structural and runtime invariants.

Empirical telemetry across Compare suites

Compare Suite Fixed Model Without Baltor Pass Rate With Baltor Pass Rate Primary Verifier Gate
Foxglade: The Living Wood (fox.baltor.ai) gemma4:31b 20.0% (2/10) 100.0% (10/10) 49-bone GLB rig + barycentric terrain height
Outpost Zero (compare.baltor.ai) qwen3-coder:30b 28.6% (4/14) 100.0% (14/14) Swept-AABB wall sliding + zero NaN transforms
Canyon Circuit 3D (compare.baltor.ai) gemma4:31b 30.0% (3/10) 100.0% (10/10) Ackermann steering slip + checkpoint spline
Skyline Hop (compare.baltor.ai) qwen3-coder:30b 35.7% (5/14) 100.0% (14/14) Coyote-time jump buffer + moving platform inertia

Navigation Post Title Direct Links
Previous Post One Loop Runtime: Composing Deterministic and Model Nodes with Swappable Engine Slots
Next Post Why Every Baltor Capability Starts as a < 2 KB Contract Card Before Loading Source
Blog Index & Feeds Return to Baltor Engineering Blog Index (8 Posts)