- This repository https://github.com/NaturalPatterns/2020_caustiques presents 2 succesive projects
- One where I developped a modelling of caustics produced by shallow water and which are detailed in https://laurentperrinet.github.io/sciblog/posts/2020-06-19-caustic-optics.html
- Another, where I build upon that work to decompose the spectrum of light into its different wavelength, producing iridescent caustics.
- Rendering of the full notebook in which I explore the role of different parameters in prouding the images.
Caustics (wikipedia) are luminous patterns which are resulting from the superposition of smoothly deviated light rays. It is the heart-shaped pattern in your cup of coffee which is formed as the rays of from the sun are reflected on the cup's surface. It is also the wiggly patterns of light that you will see on the floor of a pool as the sun's light is refracted at the surface of the water. Here we will simulate this particular physical phenomenon. Simply because they are mesmerizingly beautiful, but also as it is of interest in visual neuroscience. Indeed, it speaks to how images are formed (more on this later), hence how the brain may understand images.
In this post, I have developed a simple formalism to generate such patterns, with the paradoxical result that it is very simple to code yet generates patterns with great complexity, such as:
This is joint work with artist Etienne Rey, in which I especially follow the ideas put forward in the series Turbulence.
Upon further observation, one may discover that caustics exhibit some iridescence
Note:
Install dependencies, then this library:
python3 -m pip install -r requirements.txt
python3 -m pip install -e .
from caustique import init
opt = init()
opt.bin_dens = 8
from caustique import Caustique
c = Caustique(opt)
z = c.wave()
gifname = c.plot(z)
Launch jupyter and open the notebook.