Open-content optical disc ISOs bundled as a Docker image, for Tier 2 conformance testing of matrix256v1 implementations.
The two ISOs (Big Buck Bunny on Blu-ray, Sintel on DVD-Video) together come to ~11.5 GB. Pulling them once into an OCI image, then caching the layers in a registry, lets every CI run for every language implementation skip an ~11.5 GB download and instead pull the bytes from a fast registry mirror. Source-of-record bytes live on the Internet Archive — the Blender Foundation project pages don't host the disc-image form, so the ISOs were ripped from physical pressings and uploaded under their original CC-BY 3.0 license. The IA URLs are pinned in corpus.lock.json.
The image is data-only: it carries the verified ISOs at known paths and nothing else. Consumers loop-mount the ISOs in their own test environment.
The matrix256v1 conformance architecture has three tiers:
- Tier 1 — synthetic fixtures. Constructed locally at test time. Defined in
CONFORMANCE_FIXTURES.md. No external data. - Tier 2 — open-content discs. This image. Sintel + Big Buck Bunny, redistributable under CC-BY 3.0, fingerprints recorded in
CORPUS.mdentries 1 and 2. - Tier 3 — full corpus. Commercial pressings the implementer owns. Local-only.
This image satisfies Tier 2 only.
Pulled from ghcr.io/shitwolfymakes/matrix256-corpus:
/corpus/
big_buck_bunny.iso # Blu-ray ISO
sintel.iso # DVD-Video ISO
corpus.lock.json # manifest with attribution, source URL, raw SHA-256, expected matrix256v1 digest
Tags:
latest— most recent build ofmainsha-<short>— pinned to a specific commitvN.N.N— published release (when tagged)
For reproducibility, pin a specific tag (sha-... or v...) in CI rather than latest.
In a GitHub Actions workflow:
- name: Fetch matrix256 Tier 2 corpus
run: |
docker pull ghcr.io/shitwolfymakes/matrix256-corpus:latest
id=$(docker create ghcr.io/shitwolfymakes/matrix256-corpus:latest)
mkdir -p corpus
docker cp "$id:/corpus/." ./corpus/
docker rm "$id"
- name: Mount ISOs
run: |
sudo mkdir -p /mnt/sintel /mnt/bbb
sudo mount -o loop,ro ./corpus/sintel.iso /mnt/sintel
sudo mount -o loop,ro ./corpus/big_buck_bunny.iso /mnt/bbb
- name: Run matrix256 conformance
run: |
your-impl /mnt/sintel # must produce ee3ac7007f0854a3...
your-impl /mnt/bbb # must produce 652e8189d14d260e...The full per-ISO expected digest is in /corpus/corpus.lock.json inside the image.
corpus.lock.json is the manifest. Each entry pins:
- the Internet Archive item page (for human discovery and license metadata)
- the canonical download URL (
https://archive.org/download/<item>/<file>.iso) - the raw-byte SHA-256 of the ISO (verified at build time, aborts the build on mismatch)
- the expected matrix256v1 digest (matches the same disc's CORPUS.md physical-disc-mount entry; consumers assert against this value as their Tier 2 check)
- license and attribution per CC-BY 3.0
The Dockerfile reads from corpus.lock.json so values are never duplicated. To upgrade an ISO (e.g., a re-rip with a different filesystem view), update the lock file; the next build picks it up.
docker build -t matrix256-corpus:dev .The first build downloads ~11.5 GB; subsequent builds reuse the cached fetch layer unless corpus.lock.json changes. To verify the bytes, run any matrix256v1 implementation against a loop-mounted ISO and assert the digest matches corpus.lock.json — that's the same Tier 2 check consumers run, exercised against your local image.
Both ISOs are licensed under CC-BY 3.0 by the Blender Foundation:
- Big Buck Bunny — © copyright 2008, Blender Foundation / www.bigbuckbunny.org — IA mirror: big_buck_bunny_202604
- Sintel — © copyright Blender Foundation / www.sintel.org — IA mirror: sintel_20260427
Per-ISO attribution is also embedded in corpus.lock.json and persists into the published image.
The contents of this repository (Dockerfile, lock file, scripts, documentation) are released under CC-BY 4.0. The bundled ISOs retain their original upstream licenses; redistribution must preserve attribution.