an.stores.artifacts#
Artifact stores — derived, regeneratable products of the pipeline.
All artifact stores are content-addressed: the key is meant to be a hash of the IR slice that produced the artifact. This lets later phases skip re-render when the inputs haven’t changed.
In Phase 1 these are simple file-backed stores; the content-hash convention is enforced by the caller (orchestrator), not the store.
Classes
|
TTS-rendered audio clips (.wav). |
|
SubRip caption sidecars (.srt, UTF-8 bytes), keyed like the output they caption — |
|
Contact sheets (.png): frames of a render at its settled beats, labelled with their time, for a person or an agent to LOOK at (core study §2.10). |
|
Measurements a clock-owning renderer made of its content (.json bytes), keyed by that content's key — DERIVED data, never the author's (an#279): a Manim shot's length, its timeline of beats, its findings. |
|
Final composited renders. |
|
An opaque renderer's raw picture (.mp4) — a Manim scene's own render, before it is conformed to a film's fps and size, so a change that is not to the picture (narration, fps) does not run Manim again (an#279). |
|
Low-res preview renders (mp4 or png sequence wrapper). |
|
What a render found (.json), keyed like the output it describes — |
|
Per-shot rendered mp4s. |
|
Best-of-N take records (.json bytes), keyed by the line's audio key: which take was kept, its sha256, every take's score and the scorer (an#265). |
|
Lip-sync viseme tracks (.json) — stored as bytes for cache uniformity. |
- class an.stores.artifacts.AudioArtifactStore(root_dir)[source]#
Bases:
_BlobStoreTTS-rendered audio clips (.wav).
- class an.stores.artifacts.CaptionsStore(root_dir)[source]#
Bases:
_BlobStoreSubRip caption sidecars (.srt, UTF-8 bytes), keyed like the output they caption —
captions["main"]isoutput/main.srt(an#175).
- class an.stores.artifacts.ContactSheetStore(root_dir)[source]#
Bases:
_BlobStoreContact sheets (.png): frames of a render at its settled beats, labelled with their time, for a person or an agent to LOOK at (core study §2.10).
Content-addressed — the key is the sha256 of the PNG bytes — so a shot whose render is reused from the shot cache still points at its sheet through the cached provenance, and two shots with one picture share one file.
- class an.stores.artifacts.MeasurementStore(root_dir)[source]#
Bases:
_BlobStoreMeasurements a clock-owning renderer made of its content (.json bytes), keyed by that content’s key — DERIVED data, never the author’s (an#279): a Manim shot’s length, its timeline of beats, its findings.
- class an.stores.artifacts.OutputStore(root_dir)[source]#
Bases:
_BlobStoreFinal composited renders.
- class an.stores.artifacts.PictureStore(root_dir)[source]#
Bases:
_BlobStoreAn opaque renderer’s raw picture (.mp4) — a Manim scene’s own render, before it is conformed to a film’s fps and size, so a change that is not to the picture (narration, fps) does not run Manim again (an#279). Content-addressed (the key is the sha256 of the mp4): the measurement record under the picture key names it, so a record and its picture are written as one (an#291).
- class an.stores.artifacts.PreviewArtifactStore(root_dir)[source]#
Bases:
_BlobStoreLow-res preview renders (mp4 or png sequence wrapper).
- class an.stores.artifacts.RenderReportStore(root_dir)[source]#
Bases:
_BlobStoreWhat a render found (.json), keyed like the output it describes —
render_reports["main"]— soorchestrateand MCP read the findings thatan renderwarned (an#279).
- class an.stores.artifacts.ShotArtifactStore(root_dir)[source]#
Bases:
_BlobStorePer-shot rendered mp4s.