wyattowalsh docs

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

SurfaceCanonical artifactIndexed companion filesNotes
Ink Gardenliving-inkgarden.gifliving-art-manifest.json, living-art-preview.htmlTimelapse GIF discovered by the manifest/gallery scan
Topographyliving-topo.gifliving-art-manifest.json, living-art-preview.htmlSame contract as the other styles
Genetic Landscapeliving-genetic.gifliving-art-manifest.json, living-art-preview.htmlSame contract as the other styles
Physarumliving-physarum.gifliving-art-manifest.json, living-art-preview.htmlSame contract as the other styles
Lenialiving-lenia.gifliving-art-manifest.json, living-art-preview.htmlSame contract as the other styles
Ferrofluidliving-ferrofluid.gifliving-art-manifest.json, living-art-preview.htmlSame 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 120

generate 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 400

generate 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

ConstraintConsequence
living-art-manifest.json and living-art-preview.html are regenerated from discovered living-*.gif filesStage and review the GIFs and the index files together
docs/public/showcase/ exists in this repositoryMirror 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 implementationDo not document separate growth-vs-timelapse output contracts
Legacy *-growth* assets may still be checked inTreat 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.