pretty-automata/readme.md

87 lines
2.2 KiB
Markdown

# TODO
- imgui
- split up into commands: view, preview-colormap, save-image, save-video
- colormap invert option
- pass colormap values as command line option?
- see if the rendering can be made better, maybe dynamically adjust generation duration
# Options
## subcommands
- `view`
- `preview-colormaps`
- `save-image`
- `save-video`
### `view`
#### automaton options
-[x] `--preset` `-p` `<preset-name>`
-[x] `--size` `-s` `<uint>x<uint>`
-[ ] `--birth` `-b` `<uint...>`
-[ ] `--survive` `-u` `<uint...>`
-[ ] `--max-age` `-a` `<max-age>`
-[ ] `--starve-delay` `-d` `<uint>`
-[ ] `--starve-recover` `-r` `<bool>`
-[ ] `--initialise` `-i` `<init>`
#### display options
-[ ] `--display-size` `-S` `<uint>x<uint>`
-[ ] `--fullscreen` `-F`
-[ ] `--color-alive` `-A` `<color-or-colormap>`
-[ ] `--color-dead` `-D` `<color>`
-[ ] `--generation-duration` `-G` `<uint>`
-[ ] `--blend` `-B`
## formats
### `color`
possible values:
-[x] `#<hex>`
-[x] `rgb(uint,uint,uint)`
-[x] `lab(float,float,float)`
-[x] `luv(float,float,float)`
-[x] `oklab(float,float,float)`
### `colormap`
TODO: this `:` syntax is inconsistent with the function-style syntax
-[x] `<colormapdef>[,<colormap-scale>][,invert]` name of a predefined colormap, and optional scale, and optional invert flag
### `colormapdef`:
-[x] `<name>` name of a predefined colormap
-[x] `map(<lab|luv|oklab>, (float,float,float),...)`
-[x] `map([rgb,] <colorlist-rgb>)`
### `colorlist-rgb`:
-[x] `<colorlist-color-rgb, ...>`
### `colorlist-color-rgb`:
-[x] `#<hex>`
-[x] `(<uint>,<uint>,<uint>)`
### `color-or-colormap`
-[x] `<color>`
-[x] `<colormap>`
### `colormap-scale`
-[x] `<uint>`
-[x] `inherent`
-[x] `global-max-age` only possible if max-age is set, otherwise fallback to `inherent`
-[x] `max-age` same as before
### `init`
-[x] `rect(<uint>,<uint>)`
-[x] `square(<uint>)`
-[x] `ellipse(<uint>,<uint>)`
-[x] `circle(<uint>)`
-[x] `perlin(<float>,<float>)` scale and cutoff
### `max-age`
-[x] `static(<uint>)`
-[x] `radial(<uint>,<uint>)` center and corner max age, circular
-[x] `radial-fit(<uint>,<uint>)` center and corner max age, elliptic fit into size
-[x] `perlin-static(<float>,<uint>,<uint>)` scale and min/max
-[x] `perlin-dynamic(<float>, <uint>, <uint>, <float>, <uint>)` scale, min, max, time-scale, time-step