Skip to content
Gallery
Download .aseprite

Boombox mage and his sound blast

The boombox-mage benchmark, r1. A 128×64 street-mage in PICO-8 with a magic boombox on his shoulder, then a 14-frame anime special attack: a swing into a braced aim, a 300 ms charge hold, a one-frame black-silhouette impact on a full-canvas flash, five blast frames of growing sound arcs with a 3 px recoil, and a dissipate into dark fragments. Each step ran in its own fresh omp session (claude-opus-5-5), launched through Herdr one after another, with the step text sent verbatim after the `/skill:studio ` command prefix. The operator created the document and loaded the PICO-8 palette before step 1, and handed step 2 a copy of the step-1 file. No image model, no reference, no messages beyond the step text. The sessions ran from the repository root, where gallery/prompts is readable; their logs show no read of gallery/ at all.

Author
Nik Fedorov @fedorovvvv
Date
Plugin
v0.4.0
Harness
omp
Model
  • claude-opus-5-5 ran every step
Reference
none — drawn from the prompt alone
Benchmark
Boombox mage — character and anime sound-blast attack revision 1
Tags
character animation vfx benchmark 128x64 pico-8
On GitHub

The prompts, verbatim

  1. Step 1:The mage

    The document is already open: 128×64 pixels, RGB, with the PICO-8 palette loaded (16 colours). Use only those 16 colours — do not add, widen or replace the palette. This brief is complete: do not ask me to confirm it. Decide anything it leaves open yourself and list those decisions in your final report. Coordinates below are 0-based pixels, x to the right, y down. Draw ONE frame: a street-mage holding a magic boombox, standing in his idle battle stance. A later step will animate him attacking to the right, so keep the right two-thirds of the canvas empty. Placement and view - Side view, facing right. Feet resting on y=59. The whole character, boombox included, stays inside x 4–44. - 40 to 46 px tall from the soles to the top of the head. Anime proportions, roughly 5 heads tall. - Transparent background. The only thing drawn under him is a flat 1–2 px dark contact shadow beneath the feet. Character design (colours are PICO-8 hex values) - Young mage with spiky orange hair (#ffa300), hood DOWN, visible eye and a confident smirk. - Oversized hooded coat in dark blue (#1d2b53) reaching the knees, light-blue (#29adff) trim on the hem and cuffs. - Red scarf (#ff004d) around the neck; both ends trail behind him to the left. - Dark-grey headphones (#5f574f) around his neck, dark-grey trousers, white sneakers (#fff1e8). - The boombox: a retro cassette boombox about 18×10 px, dark grey body, two round speakers and a cassette deck between them, a carry handle on top. Idle pose: he carries it by the handle resting on his back shoulder, front face (both speakers) turned toward the viewer. - Magic: the speaker cones glow pink (#ff77a8) and one small pink music note floats just above the boombox. Style - Light from the upper left, consistent on every material. - At least 3 tones each on the coat, the skin and the boombox. - Selective dark outline: black (#000000) on the outer silhouette, coloured lines allowed inside. No anti-aliasing against transparency, no stray pixels. Layers, exactly these names, bottom to top: `shadow`, `mage` (everything of the character except the boombox, scarf included), `boombox` (the boombox and the floating note). No other layers. Before you finish: look at the result, run validate, and fix what it reports. In your final report, list the palette indices you used per material and any decision you made that the brief did not specify.

  2. Step 2:The sound blast

    The open document holds the street-mage with his magic boombox (canvas 128×64, PICO-8 palette, layers `shadow`, `mage`, `boombox`). Keep the palette — use only its 16 colours — and keep his design on model on every frame: same proportions, outfit and colours. This brief is complete: do not ask me to confirm it. Decide anything it leaves open yourself and list those decisions in your final report. Coordinates are 0-based pixels, x to the right, y down. Animate an anime-style special attack: he blasts a sound wave out of the boombox at an enemy off-screen to the right. 12 to 16 frames in total, one tag named `attack` covering every frame, direction forward. It must read like a special move in a fighting anime — big anticipation, an instant release, an overblown impact, a slower recovery. The existing frame is the first frame of the attack. Beats, in this order 1. Anticipation, 3–4 frames: he swings the boombox off his shoulder and points it forward with both hands, speakers now angled toward the target (three-quarter view of the boombox). He braces: front foot forward, knees bent, body leaning back. The scarf whips backward. The speaker cones swell, and pink energy specks and music notes are pulled INWARD toward the speakers from all around. 2. Charge hold, 1–2 frames: the held, tense pose. A bright ring of light around each speaker and tiny sparks crackling off the boombox. 3. Impact frame, exactly 1 frame: the classic anime impact frame. The mage and boombox become a flat silhouette in a single dark colour (#000000 or #1d2b53) against a bright yellow-white flash (#ffec27 / #fff1e8) that fills the whole canvas, with radial streaks bursting out from the speakers. 4. Blast, 4–5 frames: a cone of concentric sound-wave arcs (ring segments opening to the right) leaves the speakers and travels to the right edge of the canvas. On every blast frame the arcs are larger and further right than on the previous one, and a new arc is born at the speakers. Horizontal speed lines run along the blast; music notes and sparks fly out with it. The recoil pushes the mage back 2–4 px over these frames, his coat and scarf blow back, and dust kicks up at his feet. 5. Dissipate and recover, 3–4 frames: the arcs break up into dots and dithered fragments and fade out through darker palette colours (no layer-opacity tricks). He settles back into a stance, a thin wisp of smoke rising from the speakers. The last frame does not have to match the first. Timing (milliseconds per frame) - Anticipation 80–120, charge hold at least 200, impact frame at most 60, blast 50–70, dissipate and recover 90–150, and the final frame at least 300. Layers - Keep `shadow`, `mage` and `boombox`. On the impact frame their cels are the flat dark silhouette. - Add exactly these effect layers above them: `fx-charge` (inward specks, speaker rings and sparks — anticipation and charge hold only), `fx-flash` (the impact frame's full-canvas flash and streaks — the impact frame only), `fx-wave` (the sound-wave arcs — blast and dissipate only), `fx-particles` (notes, speed lines, dust and smoke from the blast onward). - An effect layer holds ink only on the frames of its beats and is empty everywhere else. Before you finish: check the whole cycle as a filmstrip, check at least one blast frame with onion skin, and run validate with an `expect` contract whose `layerFrames` match your frame plan for `fx-charge`, `fx-flash` and `fx-wave`. Fix what it reports. In your final report, give the frame plan: frame number, beat and duration for every frame.

Benchmark results

15 of 15 criteria passed.

  • Passed:

    validate passes with no unaddressed errors (warnings may stand if the report names and justifies them).

    Step 1,mage-validate

    validate: clean, score 100.

  • Passed:

    Every colour is on the PICO-8 palette and the palette still has exactly the 16 PICO-8 entries (validate check palette, palette op="get").

    Step 1,mage-palette

    Palette is the 16 PICO-8 entries; validate palette clean.

  • Passed:

    The preview reads at a glance as a mage carrying a boombox — hair, face, coat, scarf and a boombox with two round speakers are each distinguishable without the ascii grid.

    Step 1,mage-read

  • Passed:

    The brief is followed: facing right, feet on y=59, all ink inside x 4–44, height 40–46 px, layers exactly shadow/mage/boombox (sprite_info), dark-blue coat with light-blue trim, red scarf trailing left, orange spiky hair, hood down, pink speaker glow and one pink note, boombox on the shoulder with speakers facing the viewer.

    Step 1,mage-spec

    Ink x 5–42, soles on y 59, layers shadow/mage/boombox; the note floats right of the boombox because x 4 left no room on the left.

  • Passed:

    Light reads from the upper left on every material, and coat, skin and boombox each use at least 3 tones (look op="ascii" over the character).

    Step 1,mage-shading

    Coat 13/1/0, skin 7/15/4, boombox 6/5/1.

  • Passed:

    The sprite has 12–16 frames and tag op="list" shows a forward tag named `attack` covering all of them.

    Step 2,attack-tagged

    14 frames, forward tag attack 1–14.

  • Passed:

    Layers are exactly shadow, mage, boombox, fx-charge, fx-flash, fx-wave, fx-particles, and validate with an `expect.layerFrames` contract for fx-charge, fx-flash and fx-wave that matches the reported frame plan passes — each effect layer is empty outside its beats.

    Step 2,attack-layers

    validate expect fx-charge [1,5], fx-flash [6,6], fx-wave [7,14] passes.

  • Passed:

    The filmstrip shows the boombox swung off the shoulder into a braced, knees-bent pose before the release, with specks visibly converging on the speakers frame to frame.

    Step 2,attack-anticipation

  • Passed:

    Exactly one frame is the impact frame — a flat single-colour dark silhouette on a canvas-filling bright flash with radial streaks — and its duration is 60 ms or less.

    Step 2,attack-impact

    Frame 6, 50 ms: #000000 silhouette on a #ffec27/#fff1e8 flash with radial streaks.

  • Passed:

    Onion skin on a blast frame shows the arcs travelling right and growing from frame to frame, with new arcs born at the speakers — not one arc copied and translated.

    Step 2,attack-wave

    Judged on the filmstrip: one arc on frame 8, two on 9, three on 10, each larger and further right. look op="onion" did not show neighbouring frames here, so it could not be used.

  • Passed:

    Over the blast the mage is pushed back 2–4 px with coat and scarf blowing back and dust at his feet, then settles into a stance in the recovery frames.

    Step 2,attack-recoil

    Pushed back 1, 2, 3, 3, 3 px with dust at the feet; settles on 12–14.

  • Passed:

    The wave breaks up into dots or dithered fragments and fades through darker palette colours rather than vanishing in one frame; layer opacity is 255 on every layer.

    Step 2,attack-dissipate

    Arcs break into fragments through #ff77a8 → #7e2553 → #1d2b53; every layer at opacity 255.

  • Passed:

    frame op="list" durations match the brief — anticipation 80–120, hold ≥200, impact ≤60, blast 50–70, recovery 90–150, last frame ≥300 ms.

    Step 2,attack-timing

    100/80/100/120, hold 300, impact 50, blast 50/50/60/70/70, recovery 100/130, last 400.

  • Passed:

    Apart from the impact frame, the character keeps his proportions, outfit and colours on every frame — judged on the filmstrip; any validate volume-drift finding points only at the impact frame or a deliberate pose change.

    Step 2,attack-on-model

  • Passed:

    validate passes with no unaddressed errors and the palette is still the 16 PICO-8 entries.

    Step 2,attack-validate

    Passed with outline warnings on the effect layers only, which are drawn unoutlined on purpose; palette still 16 entries.

Validate reports

What the plugin's own lint said at the end of each step.

  • Step 1 Passed Score 100 0 errors, 0 warnings
  • Step 2 Passed Score 70 0 errors, 6 warnings

Craft

38% from 2 judges, each axis scored 0–4 against the rubric.

Craft scores per judge, 0 to 4 on each axis
Judge ReadFormMotionCohesionAppeal Note
fedorovvvv human 11111 Overall 3/10, given as one number; each axis set to round(3/10 × 4) = 1.
gpt-5.5 model 22222 The attack and the impact frame read, but at 1× the hands, the boombox and part of the effects merge, and the motion rests mostly on the FX while the character stays static and noisy in places.
Mean 1.51.51.51.51.5 38%

Run metrics

What each step cost, as the harness reported it.

Time, tool calls, output tokens and cost per step
Step MinutesTool callsOutput tokensCost
1 8.84246,596$2.79
2 15.67384,230$5.01
Total 24.4115130,826$7.80

More views

  • The mage, 4× , step 1

  • All 14 frames, 2× of Boombox mage and his sound blast

    All 14 frames, 2× , step 2

Files

Every file in this generation
File Role Step Size Download
attack.gif The attack, 4× Cover 2 57.0 KB Downloadattack.gif
mage.aseprite Step 1: the mage Aseprite source 1 1.3 KB Downloadmage.aseprite
mage.png The mage, 4× Frame 1 2.5 KB Downloadmage.png
attack.aseprite Step 2: tag attack, 14 frames Aseprite source 2 20.5 KB Downloadattack.aseprite
attack-filmstrip.png All 14 frames, 2× Filmstrip 2 17.3 KB Downloadattack-filmstrip.png