** 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