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.
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:
- Mirrored input frames: When the operator presses
W,A,S,D,Space, or drags the orbit camera, the parent controller packages a timestamped input frame ({ tick, keys, pointerDelta, dt }) and dispatches it identically to both scenes on the same animation tick. - Clamped frame delta (
dt <= 0.033s): Unassisted model code frequently multiplies velocity by raw elapsed time (velocity * delta), which causes characters to teleport through walls when a browser tab drops a frame. The With-Baltor lane enforces a clamped timestep and sub-stepped swept-AABB collision checks. - Curtain wipe and 2x2 microscope modes: On compare.baltor.ai, the same dual buffer drives a pixel-accurate split curtain slider and a 2x2 motion microscope that slows skeletal playback to
0.25xso reviewers can inspect paw plant, spine counter-bend, and surface normals frame by frame.
// 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 | HTML · Markdown |
| Next Post | Why Every Baltor Capability Starts as a < 2 KB Contract Card Before Loading Source | HTML · Markdown |
| Blog Index & Feeds | Return to Baltor Engineering Blog Index (8 Posts) | index.json · feed.xml |