Compare N assets

Run visual-diff for every pair across 2–8 GLBs — batch QA, recipe-sweep analysis, version-comparing a release. Right now the pairs run on your machine and in your CI, not on ours; assembling them into the N×N matrix is the part we would have done.

Hosted rendering is off

We are not running visual batch comparison on our servers right now, so we are not going to offer you a button for it. The visual-diff gate itself is not affected — it runs on your machine and on your CI runner, which is where it belongs for anything you would actually gate a release on.

Locally
# one-time: the browser this npx CLI renders with
npx -p @spatialpack/cli playwright install chromium

for a in *.glb; do
  for b in *.glb; do
    [[ "$a" < "$b" ]] || continue
    npx @spatialpack/cli visual-diff "$a" "$b" \
      --grid orbit-8 --out "diff/${a%.glb}__${b%.glb}"
  done
done

One visual-diff per pair, upper-triangle so no pair runs twice — 3 runs for 3 files, 28 for 8. Each writes its own visual-diff.json with SSIM + ΔE94 across the orbit-8 grid — the same grid the published benchmark uses. Those are the cells of the matrix; no CLI command draws the grid itself, and assembling the cells into that view is the part we would have done for you.

Pass --grid explicitly: it defaults to a 6-angle mixed-pitch grid, which scores differently. The published leaderboard scored one view of orbit-8 (--views 1); the default here is the stricter worst-of-8. The first line is once per machine — npx gives the CLI its own Playwright, and its browser is not the one any other install has. Free and unmetered.

On every PR
- uses: ./actions/spatialpack-action
  with:
    visual-diff: true

The GitHub Action runs the diff on your own runner and fails the build past your ΔE94 threshold. Also free.

Want the comparison run for you instead? Catalog Rescue returns a before/after report per model →

← single-pair compare

Batch QA

QA a sweep of optimizer presets in one shot. The matrix tells you at a glance which presets diverge from the baseline.

Version comparison

Compare every release of a single asset to spot drift over time. Diagonal = self (SSIM 1.0); off-diagonal cells show pairwise SSIM.

Click-to-drill

Any cell opens the per-orbit detail panel (8-camera SSIM + ΔE94 + side-by-side render) for that pair — the same view the single-pair Compare uses.