shaders | ||
src | ||
tests | ||
.clang-format | ||
.envrc | ||
.gitignore | ||
CMakeLists.txt | ||
EmbedResources.cmake | ||
preprocess-shader.sh | ||
readme.md | ||
shell.nix |
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