Portraits is a format of collaboration where I immerse myself in the world and the work of a scientist to create a painting.
The second Portraits project has something peculiar: it was orchestrated as a present for the researcher, who was not aware until the very end that our interactions would lead to a printed artwork. We met for a very short time: 2 hours. It was thus a challenge to gather enough insight to drive a new creation. Hopefully, I had a few extra resources I could analyze later on my own: publications, videos and lectures.
About the work of Alain Pumir
Alain‘s research encompasses a variety of topics around turbulence. For instance, he investigates the way ice crystals form in clouds and how they collide with surrounding droplets – so, liquid phase – to capture them. This process is called riming.
Studying motion under those conditions is tricky, as unlike other turbulence experiments that already have their share of complexity and where you just look at a particle’s position, you now need to analyze crystal orientation, mass increase, size variation, shape, etc.
Alain also looks at how vortices merge. But first, you actually need to create the conditions to observe vortices! An experiment was set up for this purpose:
Close analysis revealed vortex filaments with varying intensity and orientation. Three categories were proposed: primary filaments, secondary filaments and tertiary filaments. We can imagine the cascade to go further but at those scales the fluid is so chaotic we might not be able to do that.
Starting on 2D turbulent flows
Inspired by the https://earth.nullschool.net/ visualization of water current and wind flows on Earth, I started with a simple vortex.
The mathematical description we can choose for a vortex is a velocity field made of two components: an orthoradial component that controls the particle rotation speed based on its distance to the vortex center, and a radial law that slightly attracts particles to the center.
Code-wise, the vortex/eddy can become an object with a reduced number of parameters:
let eddy = { x0: 100, y0: 250, K: 10, r0: 20 }
Where (x0, y0) is the vortex center, K is the main intensity and r0 a base radius for which rotation speed is maximal.
And for instance the orthoradial component can be written as a simple Gaussian function.
azimuthalVelocity = K \cdot e^{- ({ \frac{r(x_0, y_0) - r_0}{sigma} })^2 }
Now you can just take several eddies and add them up to form turbulent flows. Eddies of same intensity sign will add up to create wider eddies, while neighboring eddies with opposite signs will create transition zones.
See the Pen A world of Turbulence – One big vortex by Alex Andrix on CodePen
1
Sum of four eddies with same sign intensity (+ + + +)
K and r0 also have different values so the flows are a bit asymmetric.
See the Pen A world of Turbulence – Vortex transitions by Alex Andrix on CodePen
1
Sum of four eddies with opposite sign intensities (- + – +)
Video below captures a few creation steps that were presented this summer.
Going 3D
While going through those steps, I came to believe that using vortices in 3D would be a better tribute to the complexity of Alain’s work. It could also lead to potentially richer artworks with depth information.
After a few cross products to define local cylindrical coordinate systems and a law to paint closer trajectory segments larger:
Looking at the code, eddies now carry information of axis orientation.
this.eddies.push({
origin: { x: 0, y: -700, z: 0 },
axis: { x: 1, y: 0, z: -0.7 },
K: -10,
r0: 200
})
At that point I knew that I wanted to depict the merge of 3 vortices with different orientations. Each would form a 90° angle with each other, just like successive generations of filaments perhaps? Also, my only instruction was to paint black&white.
27 iterations later, some of which are presented above, I came up with that final result.
Hold on
Actually the next day I canceled my submission to the printer and worked on a few more iterations, willing to get more impact and more of that 2D flow feeling for the middle eddies.
Instead of allowing all grey levels between 0 and 1, I opted for a set of chosen values for particle trails. In the HSL color space with a saturation of 0%, luminosity would be randomly chosen in the array [10, 25, 35, 50, 70, 95]. The upper vortex axis was also tilted towards the viewer.
Finally, Vacherie Ternaire.
The painting was offered to Alain during 2019’s Crossed Pathways in Turbulence conference.
Thanks for reading!
Acknowledgements
Alain Pumir
X-Pathways in Turbulence organizing committee
Researchers @ Laboratoire de Physique ENS de Lyon / friends
Vuolo team
Links
Alain Pumir
Alex Andrix
Laboratoire de Physique ENS de Lyon
Crossed Pathways in Turbulence conference
More about Portraits
Bonus: random turbulent flow generator
See the Pen A random world of Turbulence by Alex Andrix on CodePen
1