caustiques (2020) / iridiscence (2022)

caustiques (2020)

DOI

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.

iridiscence (2022)

Upon further observation, one may discover that caustics exhibit some iridescence$^\ddagger$, that is, that the light pattern which forms the waggling lines of the caustics may decompose into different colors, forming evanescent rainbows. Here, we will simply use a modulation of the Snell-Descartes law that we used to compute different angle of refraction. This will be put in relation with the dependance of the refraction index with the wavelength of light and the transformation of a monochromatic light into RGB that we used in a previous post about colors of the sky. The results are close to subjective observations, with the surprising (to me) observation that colors appear more between nodes...



Note: $\ddagger$ I use the term iridescence which is improper in the physical sense as it rather concerns the property of an object to exhibit different colors depending on the angle of view. However, in the perspective of the work with Etienne Rey it resonates with our endeavour to show that percepetion, in particular visual perception, is an active process of the observer within its environment.

source code

defining the parameters

utilities

Transfoming a sequence of PNG frames into gif or mp4:

Utilities to compute the spectrum of the blue sky and convert them later to RGB values (check out https://laurentperrinet.github.io/sciblog/posts/2020-07-04-colors-of-the-sky.html for details)

computing the caustics

a simple caustics

a wave pattern

generating the caustics

exploring parameters

water depth

refraction index variation

other variables

installation

Install dependencies, then this notebook:

python3 -m pip install -r requirements.txt