Living Art Modes
Current timelapse-only artifact contract across the living-art generators.
Current contract
The public living-art contract is now timelapse-only: the generators publish canonical GIFs named living-<style>.gif, then rebuild living-art-manifest.json and living-art-preview.html from the files that exist in the output directory. When docs/public/showcase/ exists, the same canonical files are mirrored there for the docs home page and direct preview links.
Legacy growth SVG/GIF filenames such as inkgarden-growth-animated.svg or topo-growth.gif may still exist in the repository as checked-in showcase art, but they are not the current CLI/workflow artifact contract.
Output matrix
| Surface | Canonical artifact | Indexed companion files | Notes |
|---|---|---|---|
| Ink Garden | living-inkgarden.gif | living-art-manifest.json, living-art-preview.html | Timelapse GIF discovered by the manifest/gallery scan |
| Topography | living-topo.gif | living-art-manifest.json, living-art-preview.html | Same contract as the other styles |
| Genetic Landscape | living-genetic.gif | living-art-manifest.json, living-art-preview.html | Same contract as the other styles |
| Physarum | living-physarum.gif | living-art-manifest.json, living-art-preview.html | Same contract as the other styles |
| Lenia | living-lenia.gif | living-art-manifest.json, living-art-preview.html | Same contract as the other styles |
| Ferrofluid | living-ferrofluid.gif | living-art-manifest.json, living-art-preview.html | Same contract as the other styles |
CLI modes
generate living-art
Generates canonical living-art timelapse GIFs. This command currently shares its implementation and artifact contract with generate timelapse.
Use --only inkgarden, --only topo, --only genetic, --only physarum, --only lenia, or --only ferrofluid when you want to regenerate just one style.
uv run python -m scripts.cli generate living-art \
--metrics-path /tmp/metrics.json \
--history-path /tmp/history.json \
--only topo \
--max-frames 120generate timelapse
Produces the same day-by-day GIF contract as generate living-art.
uv run python -m scripts.cli generate timelapse \
--metrics-path /tmp/metrics.json \
--history-path /tmp/history.json \
--only inkgarden \
--max-frames 120 \
--size 400generate all caveat
Document generate all as conditional only. The living-art portion is skipped unless both --metrics-path and --history-path are supplied.
Constraints to document and test
| Constraint | Consequence |
|---|---|
living-art-manifest.json and living-art-preview.html are regenerated from discovered living-*.gif files | Stage and review the GIFs and the index files together |
docs/public/showcase/ exists in this repository | Mirror the canonical living-*.gif files plus the regenerated manifest/gallery there so docs surfaces stay aligned |
generate living-art and generate timelapse currently share the same implementation | Do not document separate growth-vs-timelapse output contracts |
Legacy *-growth* assets may still be checked in | Treat them as showcase collateral, not current generated workflow outputs |
Recommended release review
Inspect the canonical timelapse GIFs and the generated preview gallery together. If the GIFs render but the gallery/index contract is stale or misleading, treat that as a release blocker.