Work in progress: Geospheric

Iceland is explicitly geological. Earthquakes and volcanoes, mountains, glaciers, geysers, the aurora: our precarious existence on an only moderately stable rocky sphere is everywhere apparent.

I'm exploring the concentric spheres of geological activity: the inner and outer core, the lower and upper mantle, the crust riding on top: and above that the atmosphere and the ionosphere, where the magnetic field generated in the core interacts with the solar wind to produce the aurora. 

Main challenge here is rendering time. I'm trying to build this as a live-rendered animation: at 25 frames per second I only have 40 milliseconds to output c. 10,000 elements. Send more computing power!

New series: Weft

In general I'm interested in emergent patterns created by multiples: simple shapes or movements, iterated hundreds or thousands of times. Waves, snowdrifts, flocks of starlings, schools of fish: each element follows simple rules, but the overall effect can be complex, surprising, beautiful. 

For this series I want to explore that way that translucent fabric drapes, folds over itself. Each "thread" is a simple bezier curve with four control points. Each point has a semirandom vector which evolves over a thousand threads, and I render two pieces with random colours.

As with Orrery, my approach is to render hundreds of images and edit a selection. As I refine the process I should get more "successful" renders, although even now my yield is better than 10%. These images are challenging to print: moiré patterns and oversaturation are a problem. Printing straight from PDF tends to create too much opacity: PDF->PNG at 300(printed)ppi seems to give the best results so far.


Orrery 5: Randomness, Recoverable

Stepping away from the computer as always produces new ideas. While running, I realised that I could dramatically improve my figure-yield by changing the way I randomise the orbital characteristics: instead of just multiplying each of the six parameters by a random value (between, say 0.999 and 1.001) each time, I can precalculate a random walk of values for each parameter which is guaranteed to return to 0 by:

  • generating a randomised set half of [total iterations] long;
  • copying it & multiplying each element in the copied set by -1;
  • shuffling the full-length set.

C. 50,000 random values later, done! Works well, and allows me to explore some higher-randomness spaces with reasonable yields (I still don't get 100% yield: not sure if it's accumulated floating-point errors or some other issue). 

Five rows in the figures below, with descending mutation values: from 0.005 in the first row to 0.001 in the last. Interesting to see how somewhere between 0.003 and 0.002 it becomes "rational".


Orrery 3: Things Fall Apart

So far the only things I've varied have been orbital distances and speeds. What if I let orbital distances vary by as much as 1% per frame? (Images open in lightbox)

It's hard to not feel compassion for these figures: you feel their earnest desire to do the right thing. Ordinarily a computer is a perfect executor of your instructions: the insertion of randomness seems to also insert some humanity, some fallibility.