← ALL TRIALS

Two Sparks, Four Models

RUN OCT 28, 2026, PACIFIC TIME
Four open models, each on its own pair of DGX Sparks, given the same five rounds: reflex, a film, an arena, a house and real terminal work.

The 30-second cut. VERTICAL 9:16 ↗
WHY WE RAN IT

Most model comparisons run in someone else's cloud. This one runs on a desk. Each of four open models gets exactly two NVIDIA DGX Spark boxes, joined by one cable, and its own serving recipe. Three of the four quants and recipes are ours and public; the fourth is Mia-AiLab's.

Then every model gets the same jobs. Answer a question fast. Make a film. Write a bot that has to survive 200 games against the others. Design a house. Do real work in a terminal, graded by tests it cannot see.

We are not crowning a winner. Same hardware, different minds: each round shows something different about how a model thinks, where it is quick, where it is careful, and where it runs out of road. Every file is published exactly as the model wrote it, with its hash, and every number links to the record it came from.

THE FIELD

Four models, two Sparks each

Each model runs on its own pair of NVIDIA DGX Spark boxes (GB10, 128 GB each), joined by one 200 Gb/s cable, on the TensorFold engine. Nothing runs in the cloud.

A5 + A6GLM-5.3-FlashEXL3 4 bpw · DFlash2 drafter · TensorFold TP2Quant by Mia-AiLab
A7 + A8DeepSeek-V4.1-Flash-1017EXL3 2.5 bpw · MTP · TensorFold TP2Our quant + recipe
A3 + A4Beam-1.0 501BEXL3 3 bpw · DFlash2 drafter · TensorFold TP2Our quant + recipe
A1 + A2Ling-3.1-flash-1019EXL3 3.03 bpw · MTP · TensorFold TP2Our quant + recipe
ROUND 1 · REFLEX

Same question, real time

One short question to every model, thinking off where the model allows it. The clip is drawn from the logged token stream: every word and timer is as measured. Each lane ran in its own quiet window; the clocks are aligned at the moment each request was sent.

MODELFIRST TOKENTOK/STOKENSGPU POWER / SPARK
GLM-5.3-Flash0.21 s44.214431 W
DeepSeek-V4.1-Flash-10170.17 s67.712437 W
Beam-1.0 501B0.53 s50.31,03841 W
Ling-3.1-flash-1019*0.06 s35.014526 W

Best of three identical takes per model. GPU board power from nvidia-smi, sampled four times a second, mean per Spark. Beam has no thinking-off switch, so it reasoned for about 2,400 characters before it answered; its token count includes that.

ROUND 2 · IMAGINATION

Night Bloom

Each model wrote one HTML file: a 20-second looping film of a meadow that blooms at night, with no text and nothing loaded from outside. We recorded every frame by calling the file's own renderAt(t), so the films are exact. Beauty is your call.

GLM-5.3-Flash
12,693 B · SHA-256 37d196698595…
DeepSeek-V4.1-Flash-1017
7,609 B · SHA-256 1fdcdc570ee9…
Beam-1.0 501B
10,668 B · SHA-256 52e73272766c…
Ling-3.1-flash-1019*
10,563 B · SHA-256 59f54cae504e…
ROUND 3 · STRATEGY

The arena: 200 games

Each model wrote one light-cycle bot from the same rules. A fixed referee ran 200 seeded games, all four bots in every game. No model saw another model's bot.

BOTPOINTSWINSCRASHED INTO OWN TRAILINTO ANOTHER TRAILINTO WALL / BLOCK
GLM-5.3-Flash412.58692912BOT ↗
DeepSeek-V4.1-Flash-101729458784914BOT ↗
Beam-1.0 501B262.526140331BOT ↗
Ling-3.1-flash-1019231301241729BOT ↗

Points: 3 for a win, then 2, 1, 0 by survival order. Every replay rebuilds exactly from the referee's log. Ling wrote its bot with reasoning on, before the serve problem began.

ROUND 4 · DESIGN

The House

A single-story home of about 2,400 square feet. Three bedrooms and two bathrooms were the only requirements; everything else was up to the model. Each answer is one HTML file: a to-scale SVG blueprint, a short design note, and a machine-readable room list.

GLM-5.3-Flash floor plan
GLM-5.3-Flash
2,400 sq ft · 3 bed · 2 bath · 16 rooms · checks passRun with a 200K-token budget. At 120K, the budget the others had, it ran out just before writing; this answer used 121,737.20,947 B · SHA-256 0adb35574f50…
DeepSeek-V4.1-Flash-1017 floor plan
DeepSeek-V4.1-Flash-1017
2,400 sq ft · 3 bed · 2 bath · 16 rooms · checks pass15,206 B · SHA-256 a4909bdc2589…
Beam-1.0 501B floor plan
Beam-1.0 501B
2,332 sq ft · 3 bed · 2 bath · 15 rooms · checks pass8,746 B · SHA-256 8c2ad40c453d…
Ling-3.1-flash-1019 floor plan
Ling-3.1-flash-1019*
2,375 sq ft · 3 bed · 2 bath · 12 rooms · checks pass35,887 B · SHA-256 8283d31d1314…

Checked in code from each file's room list: exactly 3 bedrooms and 2 bathrooms, living area within 5% of 2,400 sq ft. How the house looks and lives is yours to judge.

ROUND 5 · AGENCY

Terminal-Bench 2.1, through Pi

Fifteen fixed Terminal-Bench 2.1 tasks, the same for every model, run in Harbor with the Pi coding agent: git repair, log parsing, a COBOL port, SQLite recovery, certificates, an nginx config and more. Each task is graded by its own tests. Same limits for every model: 65,536 output tokens per turn and Terminal-Bench's own time limit per task.

TASKGLMDEEPSEEKBEAMLING
build-cython-ext✓✓✓–
cobol-modernization✗✓✗–
constraints-scheduling✓✓✓–
fix-git✓✓✓–
git-leak-recovery✓✓✓–
largest-eigenval✗✓✗–
log-summary-date-ranges✓✓✓–
multi-source-data-merger✓✓✓–
nginx-request-logging✓✓✓–
openssl-selfsigned-cert✓✓✓–
overfull-hbox✗✓✗–
prove-plus-comm✓✓✓–
regex-log✓✓✓–
sanitize-git-repo✓✗✗–
sqlite-db-truncate✓✓✓–
Passed12/1514/1511/15DNF

A task that hit its time limit is graded on whatever the agent left behind, as Terminal-Bench does. Ling-3.1-flash-1019: did not finish. Ling's two-Spark serve hung during both attempts (3 tasks at a time, then one at a time); no valid score.

RigMark, the appliance view

MODELCODE TOK/SPROSESTRUCTUREDOUTPUT GATESCOLD TTFT AT 64K4 STREAMS, TOK/SRECEIPT
GLM-5.3-Flash67.862.5102.69/1532.1 s130.1CARD JSON
DeepSeek-V4.1-Flash-101799.580.8130.212/1526.3 s139.7CARD JSON
Beam-1.0 501B41.837.159.415/1548.0 s63.3CARD JSON
Ling-3.1-flash-1019*44.032.547.115/15not measurednot measuredCARD JSON

RigMark (github.com/alexellis/rigmark), default settings, one comparison ID. GLM and DeepSeek miss output gates because their reasoning runs past RigMark's 8,192-token cap before the answer; their cards say not to headline them. Ling's card skips prefill (its serve has no /v1/completions) and concurrency (two requests at once hang its serve).

RULES AND CAVEATS
  • Same prompt text to every model, one shot, no human edits. Every answer file is published exactly as written, with its SHA-256.
  • Reasoning on for every model in the build, film, arena, house and agent rounds, except where noted. The race asked for reasoning off.
  • * Ling ran with reasoning off. It was the only way to get anything done with this model: with reasoning on, its long replies hung our two-Spark serve again and again, so no reasoning-on run finished. The other three models ran with reasoning on.
  • A harness or setup failure voids a run; it is fixed and rerun, never scored against the model. A round that every model fails is a bad round, and we drop it.
  • Quant levels differ by model and are named next to each one. GLM-5.3-Flash runs Mia-AiLab's quant; the other three run our own quants and public recipes.
  • No winner is declared. Each round is reported as scores.
THE PROMPTS, AS SENT
ROUND 1 · REFLEX

In about 120 words, explain how two small desktop computers joined by a single 200 gigabit cable can run an AI model that is too big for either one alone. Plain language, no lists.

ROUND 2 · NIGHT BLOOM

Make "Night Bloom": a twenty-second film, rendered live in the browser, of a dark meadow coming alive. It opens on near-black: a few fireflies drift in. Bioluminescent flowers begin to unfurl one by one, glowing from within, their light spilling onto the grass around them. The bloom spreads across the meadow in waves, colours shifting from deep teal through violet to warm gold, until the whole scene is a field of light under a slow aurora. Then it settles and dims back toward the opening, so the film loops without a seam.

Build it as a single HTML file with everything inline: no other files, images, libraries or web fonts, so it runs offline. Canvas 2D or WebGL, your choice. Aim for something people stop scrolling for: depth, soft glow, motion that feels organic, not a screensaver.

Requirements: - It fills the window at any size and aspect; it must look composed both in portrait (1080x1920) and in landscape (1920x1080). - No text, no UI and no controls on screen. - The film is exactly 20 seconds long and loops seamlessly. - Deterministic: the same frame time always draws the same picture (seed any randomness from a fixed number). - Expose one global function, window.renderAt(seconds), that draws the frame for that time (0 to 20) immediately and synchronously, so the film can be recorded frame by frame. The normal animation loop just calls it with the current time. - Keep the file under 30 KB. Write clean, careful code: it runs exactly as you write it, with no chance to fix it afterwards.

ROUND 3 · ARENA

Write a bot for the four-player light-cycle game below. Your bot plays against three other bots written by other AI models. The referee runs 200 seeded games; the bot with the most points wins. One shot: you will not see results before your bot is final.

THE GAME - Grid: 64 columns x 64 rows. x grows to the right, y grows downward. Cells outside the grid are walls. - Four players start in four corners (8 cells in from each edge), each facing clockwise along the edge. Seats rotate between games, so every bot plays every corner equally often. - Obstacles: each game has some wall cells placed with four-fold rotational symmetry, so every corner faces the same layout. - Every tick all living players choose a move at the same time: "L" (turn left), "R" (turn right) or "S" (keep straight). Turns are relative to the current heading. Then every living player moves one cell forward and leaves a permanent trail in the cell it left. - A player dies if it moves into a wall, an obstacle, any trail (its own included) or any cell another player occupies or enters this same tick (both die on a head-on or same-cell collision). - Dead players' trails stay on the board. - The game ends when at most one player is alive, or after 4,000 ticks. - Points per game: the last player alive gets 3, the second-last 2, the third-last 1, the first out 0. Players that die on the same tick share the points of the places they cover equally. If the game reaches 4,000 ticks, all living players share the points of the top places equally.

YOUR CODE Reply with one JavaScript code block that defines exactly this function, and nothing the referee must call besides it:

function createBot() { // called once per game; keep any memory you want in this closure return { move(state) { // return "L", "R" or "S" } }; }

state (read-only, a fresh copy every tick): - state.width, state.height: 64, 64 - state.tick: 0 on the first move - state.me: your player index (0-3) - state.players: array of 4 objects { x, y, dir, alive }, dir is 0 = up, 1 = right, 2 = down, 3 = left - state.grid: Uint8Array of width*height cells, index y*width + x: 0 = empty, 1 = wall or obstacle, 2 + i = trail of player i. Current heads are also marked as 2 + i.

RULES FOR THE CODE - Plain JavaScript (ES2020). No require, import, fetch, timers, DOM or global objects beyond Math, JSON, Array, typed arrays, Map, Set and Date.now. Math.random is allowed; the referee seeds it, so games repeat exactly. - At most 50 ms per move on a modern CPU core. A move that takes longer, throws, or returns anything other than "L", "R" or "S" counts as "S". - At most 40 KB of source. One code block, no explanation needed after it.

ROUND 4 · THE HOUSE

Design a single-story home of about 2,400 square feet: 3 bedrooms and 2 bathrooms. Everything else is up to you: the style, the layout, the rooms you add, how the house lives.

Deliver it as one HTML file with everything inline (no other files, images, libraries or web fonts), containing:

1. The floor plan as an inline SVG blueprint, drawn to scale: exterior and interior walls with real thickness, doors with their swing arcs, windows, room names with their dimensions, overall dimension strings on the outside, a scale bar, a north arrow and a title block (project name, total area, scale, date). Make it look like a real architect's blueprint. 2. A short design note under the drawing (at most 120 words): the idea of the house and how it lives. 3. A room schedule as machine-readable JSON in `<script type="application/json" id="plan">`, in this shape: {"total_sqft": <number>, "rooms": [{"name": "...", "type": "bedroom|bathroom|kitchen|living|dining|garage|utility|circulation|other", "width_ft": <number>, "depth_ft": <number>}]} Count conditioned living area in total_sqft (not a garage or covered porch, if you add one); it should be within 5% of 2,400. List every room. Exactly 3 rooms of type "bedroom" and 2 of type "bathroom".

The drawing must fit the window at any size. Write it carefully: it is used exactly as you write it.

Terminal-Bench tasks are the benchmark's own; the task list is above.