🐍Rotating Snakes Study

Rotating Snakes Study

A private side project, Spring 2024

Marcel Padilla
TU Berlin

Abstract

I was very impressed by Akiyoshi Kitaoka's rotating snakes illusion and had a need for a extremely high-res version for large printing. So I started building scripts to create such images. After throwing more and more ideas into this along the way, I ended up with a color controlled version with a Möbius inverted doyle spiral with an Appolonian gasget style fractal construciton.

Snake Elements

I followed the constructing a simple element with two colors simply picked from the HSV color wheel. Each snake element has two colors that have a constant hue shift. 2D coordinates and radii are computed in lists and passed to a snake element drawing function.
However, one can see that the illusion is not equally effective for all elements displayed below. The reason is the varying luminance of the colors. This highlights the need to study the color more closely.


Basic snake elements.

Color Control

Luckily for me, Lea Atala-Gérard and Michael Bach have published "Rotating Snakes Illusion—Quantitative Analysis Reveals a Region in Luminance Space With Opposite Illusory Rotation" in which they establish that the optical illusion effect is determined by the luminance of the sequence in the snake. They also determine that black - 60% luminance - white - 20% luminance results in the strongest optical illusion effect.
We use these results to optimize our results. We vary the hue, and then ask our selves: "what value/saturation do we have to pick in the HSV color space to get the required luminances of 60% and 20%?" As I did not find an answer to this question on the web, I brute forced the computation to obtain an interpolating map that does exactly this. The video below shows the result of this computational color study at varying hues.


The display of varying value (x-axis) and varying saturation (y-axis) vs time varying hue (see top left). The white line indicated the values of 60% luminance and the black line 20% luminances. These are the colors needed for maximal optical illusion effects.


The result is that I can now pick a hue and get the rotating snake with the best optical illusion effect.

Baisc snake elements arranged in a hexagonal latice now with the correct luminesnce for the optical illusion to happen and a specified hue.

Arrangements

Any circle packing is suitable for this. The original rotating snakes only have a square grid and an offset grid to fill the gaps. Here we start with a Doyle spiral which is then sent through a conformal Möbius mapping.


A Aoyle spiral mapped by a (conformal) Möbius map.


To spice things up even further, Apollonian gasket style fractal packing was used to fill in the gaps between the circles. Every triplet of circles that touch receives another circle in between them that touches all of the three circles, recursively for a few generations.


Appolonian gasket style fractal packing of the space in between.

Variations

Thanks to our handy script it was easy to explore variations of the rotating snake. Different arrangements and different number of "spokes" as well as different thicknesses of each layer in the circles. These parameters control the level of twist and detail seen in each rotating snake element and can cause the illusion to become a growth/shrink illusion rather than a rotating illusion. We see a bunch of variations below:


The Doyle spiral with a higher twist.


The Doyle spiral with a higher twist Möbius mapped.


A higher twist in a hexagonal arrangement.

A grid structure and a phase shift in the layers of the rotating snake elements.


Classic rotating snakes with Appolonian gasket style packing.


Square grid structure and offset element rather than Appolonian gasket styled packing.

Square grid arrangement with stronger twist.


The Doyle spiral Möbius mapped with a higher twist.

Why?

For fun.
And I wanted some deco.

Printed on nylon fabric.

About Copyright

Do what you want!

Bibtex

@article{padilla_mathematicians_reimagined,
  author = {Marcel Padilla,
  title = {Rotating Snakes Study},
  year = {2024},
  url = {https://marcelpadilla.com/Projects/Rotating_Snakes_Study/},
}