La Chasse aux œuf (The Egg Hunt)
--------------------------------

A 4K executable graphics picture for Revision 2023 by cce/Peisik.

This piece has a learned filter that makes the rendered image look more like a painting.
It has two iterative filters that take a raymarched "feature image" as an input and
processes it in 64 passes to the final image.

The learned filter uses a "ground truth" image to learn its style, this case created with
Stable Diffusion but due the limited expressive power of the iterative filters it doesn't
really matter much here.

The pipeline is effectively

1. Render a 980x540 raymarched image
2. Construct a four channel feature buffer with (red, blue, normal_x, radial depth)
3. Add uniform noise
4. Apply a learned linear color transform + bias
5. Run the first cellular automaton for 32 steps
6. Upscale the image to 1920x1080 with a linear filter
7. Add more noise uniform noise
8. Apply another color transform + bias
9. Run the second cellular automaton for 32 steps
10. Apply learned color conversion
11. Manual post processing shader
12. Present image

The included TheEggHunt_progressive.exe shows this process in slow motion.

The color transforms and the filters were fit to ground truth data with PyTorch based on a
Jupyter notebook by Alexander Mordvintsev (see the end). Total number of parameters was 200.

Thanks to
- yx for the Blossom framework
- LLB for Shader Minifier
- Alexander Mordvintsev and Eyvind Niklasson for sharing their code for "μNCA: Texture Generation with Ultra-Compact Neural Cellular Automata"
- Xor for normal function
- iq for all his raymarching wisdom
- noby for shader tips
- mankeli for neural net ideas
- shaiggon for support
