MadStickArt v0.9.0

MadStickArt is a trained, 61,296-parameter neural raster decoder for stick-figure storyboard scenes. It reconstructs 956 ร— 400 grayscale frames from four explicit layout masks: actors, setting, props, and motion. Its output contract is 2.39:1.

Try MadStickArt online โ†’ โ€” the browser trial is deployed separately. Its deployed model/version and renderer are recorded in the Space's model-provenance.json. The renderer included with this release supports 246 settings and 373 props; the deployed trial has its own model and renderer pins and is updated through a separate reviewed stage. Browser suggestions use transparent rules, while Strands decisions run in the downloadable Python pipeline.

The Python pipeline handles structured scene decisions and procedural composition. Strands Decider fills missing controls; explicit user controls and placement remain authoritative. The procedural renderer lays out geometry, and the trained neural decoder rasterizes that layout. This model does not generate story text or choose scene composition from pixels.

Pin revision v0.9.0 from danger-room/MadStickArt for reproducible downloads. The release workflow requires publication to both danger-room/MadStickArt and danger-room/MadStickArt-v0.9.0, with anonymous checksum, inference and Models-list verification for the separate entries. This prepared card does not establish completion of those steps. The manifest retains the stable source repository; publication receipts identify each destination. The separate initial repository danger-room/MadStickArt-v0.1.0 and its v0.1.0 tag remain preserved.

Stable release navigation

Use main for the latest stable release. Pin an immutable version tag for reproducible runs. This card describes v0.9.0.

The original standalone repository remains available at danger-room/MadStickArt-v0.1.0. The stable repository's v0.1.0 preserves that original model on the current release line.

Representative procedural teacher targets

Held-out target and decoder comparison

Component versions

Component Version or revision
Model weights MadStickArt 0.9.0 (v0.9.0)
Dataset/catalog 640 pairs; 1 genres; 4 source titles
Procedural asset library 0.23.0
Scene planner StrandsAgents/strands-decider-2B-hobson-v19 at bb282d786bc251fd4e3068de3ada9ddbb38127cd
Python runtime package madstickartmodel 0.1.0
Catalog SHA-256 8b535a410d4e32515b535ef966b040739ff9e1dac01f842aaaa0bd9e7ab9e56a
Dataset manifest SHA-256 3f1ddd23246262ecee5f9adee4a5ef4a93a5e051e860a96687e76f66537fd53f

This release includes original generalized scene requests. The primary archaeology catalog has 4 original titles; retained sources preserve their separate catalog and title provenance in the source reports. Targets are saved procedural vector teacher renders; retained rasters are reused byte-for-byte. They are not movie frames or scripts. Source catalogs, code and small evidence reports are included; conditioning tensors, target datasets, planner downloads, decision caches and training logs are excluded.

Held-out decoder results

The checkpoint was selected by validation loss. On the title-isolated test split, it reached foreground IoU 0.6361 at threshold 0.35 on 160 scenes; pixel MAE was 0.0335. Validation foreground IoU was 0.6933 on 13,664 scenes. The bilinear union baseline scored 0.2405 test IoU.

These metrics measure agreement with the synthetic procedural teacher, not human judgments of story quality, composition, or legibility. The primary archaeology source is labeled historical. Pooled collections have uneven source and genre counts, reported with each comparison.

v0.9 trains fresh weights for 16 fixed epochs on 54,592 unique rows. Fifteen new Loop 16โ€“20 packs supply training, validation and held-out scenes; forty-five earlier loop packs supply bounded training/validation replay with exactly two presentations of each selected training row per epoch. Five pre-loop domains, a bounded canonical v0.3 source and the original v0.5 rotated source supply retained replay. Retained test scenes never enter optimization.

The 640-scene primary archaeology revision preserves all 512 original rows and their raster bytes, then adds 128 separately reviewed scenes with signed rotations of an independent trowel. The unchanged original primary and interval diagnostics remain labeled separately. Data derivation and model identity have separate provenance. Validation loss alone selects weights with the predeclared source-domain objective; test and challenge metrics do not select weights. Original/selected raster identities, every source title registry and all sixteen actual training presentation receipts remain bound to the frozen recipe.

Same-input comparisons use the previously released v0.8 checkpoint a2ebdb69b0fb32f86db0da0d0dd2392e43e7db6b7642bae5e1757a226ed91ae9. All nine unchanged quality gates at threshold 0.35 must pass on the actual 160-scene primary test, full 1,952-scene new interval, 5,632 pre-loop tests, 5,760 retained-loop tests and all 13,344 reviewed-pack tests. Every scope retains the canonical v0.3 test and frozen unseen-layout challenge comparison. These metrics measure procedural-teacher agreement; fine strokes can be omitted and dense linework can overlap. Full 65-source measurements and independent native visual review remain in the reports. Repeated use of retained holdouts limits the independence of later release experiments.

The original retained bridge-repair pack has a measured precision regression on all 128 test scenes: 0.7110470756 to 0.6999644239 (minus 1.11 percentage points). IoU declines from 0.6454108888 to 0.6353043254. Native saved-input inspection retains the figures and authored prop arrangement but shows heavier pale/deck strokes and imperfect small joint marks. This source tradeoff is accepted and remains visible in the per-source report.

The original retained utility-repair pack regresses on all 128 test scenes: IoU 0.6762450544 to 0.6560505723 (minus 2.02 percentage points), precision 0.7371342715 to 0.7189671471 (minus 1.82 points), and recall 0.8911473056 to 0.8823099174. Native saved-input inspection preserves the burst versus repair phases and prop arrangement, while fine pipe/clamp and pale background strokes remain heavier or merged. This source tradeoff is accepted; overall held-out gains do not remove it.

The new dramatic-rotation evidence consists of 32 held-out signed minus/plus 60 and 90 degree scenes of one independent resting archaeology trowel in the loosen-a-tessera phase. The complete new interval contains the same 32 cases. It does not establish dramatic-rotation reconstruction across all fifteen new themes or extend hand-contact rotation capability. Original 128-scene archaeology and 1,920-scene interval diagnostics remain preserved with empty-dramatic-subset failures.

Held-out titles are excluded from both checkpoints' training, but the retained test populations have been examined in earlier release experiments. Their results are regression monitoring, not an untouched blind generalization test. Procedural-target IoU measures renderer reconstruction and does not score human narrative quality.

The decoder can darken or thicken pale background and grid strokes, merge nearby parallel lines, and soften small faces, glyphs, buttons and prop details. Full-frame layouts remain recognizable in the reviewed examples, but exact thin-line, facial-expression and tiny-label reconstruction is not established.

Some crowded contacts and floor/prop intersections are already present in the frozen procedural targets. Neural reconstruction can make those crossings heavier or merge adjacent strokes. The release review does not establish new contact geometry or remove existing authored-overlap limitations.

Measured throughput

The benchmark ran at 956 ร— 400, batch size 1, after 10 neural warmup images plus 3 configured and 1 fresh full-scene warmups, on Apple M5 Max, 40 GPU cores and 128 GB unified memory. The full pipeline measured 5.64 scenes/s across 100 scenes and 100 uncached Strands calls / 302 typed choice questions across 22 genres. Its scope includes layout, neural rendering, annotations, clean and annotated PNGs, and JSON; it met the five-scenes-per-second goal under those conditions. Model download and startup are excluded.

Prepared-scene to PNG measured 54.98 scenes/s and neural forward only measured 1468.28 images/s. Their narrower timing scopes are recorded in reports/benchmark.json. These Apple M-series measurements do not establish browser or base-M5 throughput.

Run the pinned model

hf download danger-room/MadStickArt --revision v0.9.0 --local-dir ./MadStickArt-v0.9.0
cd MadStickArt-v0.9.0
UV_CACHE_DIR="$PWD/.cache/uv" uv sync --locked --extra planner
uv run --no-sync madstick storyboard examples/multigenre-storyboard.jsonl \
  --checkpoint best.pt --device mps --planner strands --planner-device mlx \
  --output generated-storyboard

Use --device cpu when Apple MPS is unavailable. The optional Strands planner downloads its own model weights separately; those weights are not part of MadStickArt. model.safetensors is the canonical safe checkpoint and best.pt preserves training-checkpoint compatibility.

Versioned evidence is included in reports/: training and held-out metrics, benchmark, dataset summary and validation, catalog audit, asset catalog, and component versions. The full training dataset is not distributed.

Downloads last month
184
Safetensors
Model size
61.3k params
Tensor type
F32
ยท
Inference Providers NEW
This model isn't deployed by any Inference Provider. ๐Ÿ™‹ Ask for provider support

Space using danger-room/MadStickArt 1

Evaluation results

  • Foreground IoU (ink threshold 0.35) on MadStickArt synthetic 1-genre title-held-out test split
    self-reported
    0.636
  • Pixel mean absolute error on MadStickArt synthetic 1-genre title-held-out test split
    self-reported
    0.034