Geospheric 3: Attractors, aurora, daylight

The wind-pattern simulation is challenging to get right: I refactored my code to give me a more flexible way to build "attractors" – nodes which push wind this way or that – and to be able to easily adjust their parameters in real time. That makes it much easier to balance the effects of multiple attractors. After I've finished this piece I'll do some more work using this new particle system. 

I've also done a first pass on building the aurora. I need to give it more size variation: at present all aurora particles are the same size, and they all go from white to green to red – that's not how the actual aurora looks. More work on that tonight.

I've build a daylight setting which lowers the brightness n the night side for the core/mantle/crust elements, and I've been exploring larger sizes for those elements. It gets quite exciting as the triangles get larger.

Geospheric 2: atmosphere

I want to explore how the earth has characteristic weather patterns, prevailing winds which go in different directions at different latitudes. (I'm not rendering any land masses for this project, so the (considerable) effect of the continents on wind patterns isn't something I'll do). 

I can create a simplified model of the Earth's atmospheric circulation by creating fields which impart vectors at different latitudes. The fields need to impart more energy at their centre and tail off at the edges: which Wikipedia and, tell me is a normal or Gaussian distribution.

Five of these fields, placed at the centre of the five main prevailing currents turn 6,000 randomly placed particles into a reasonable approximation of large-scale wind patterns. There are a bunch of complexities to deal with (for example, when a particle is travelling northwards and reaches the pole, I have to flip its longitude by 180° and invert the latitude vector) and I'm not showing particles on the "dark side" of the earth away from the camera. I still need to work on the display of the faster particles, but even so the effect is quite appealing.

Calculating and rendering 6000 particles is less CPU-intensive than putting 2000 random triangles on the screen for the other spheres. I can get 30fps just fine: rendering to screen is much more expensive than maths, even "hard" maths like trigonometry and square roots.

I know you want a gif.

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 6: Prints!

Getting digital work out of the computer and into the real world isn't trivial. I've lugged a 2.5kg projector halfway across the world, and I've also send six of the Diurnal images to Fracture to be printed on glass. Both ways are pretty expensive.

For Orrery, I'm starting small: I purchased a Canon Selphy photo printer, delivered in two days from Reykjavik. It's a cute little printer optimised for printing 100 x 148mm snapshot-sized colour photographs. It does what it does well, at the cost of flexibility and consumables: once you've purchased the printer itself (~26,000 Icelandic kronur, c. 200 Euros), a 108-print paper + ink set costs ISK6900/ ~50 Euros, or < 50 Eurocents per print. That's not bad for nice-quality small prints, done in about a minute each in the comfort of your room.

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 4: Only The Fit Survive

Extending my exploration of randomness. Reducing the mutation values to two-one-thousandths of their previous values yields almost perfect figures, but nine out of ten fail to reconnect at the end of the orbit. By comparing moonlet positions at start and end and writing out only those where the absolute x + y delta is < 2 pixels, I can render out about three "successful" slightly-mutated figures per minute.

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.

Orrery 2

The Orrery project is a kind of playground for exploring parametric variation within a very tight set of variables. I'm deliberately restricting myself to a small subset of possible variations using a single three-body system:

  • C orbits B between 2 and 6 times per orbit of B, in either prograde or retrograde direction, at a distance of 10 to 25 units;
  • B orbits A between 3 and 12 times per single orbit of A, in either prograde or retrograde direction, at a distance of 25 to 50 units;
  • "Planets" or "radii" or both may be shown.

Even within the small set of variables there are millions of combinations, an aesthetic landscape which we can explore. It's challenging to apprehend even a thousand variations. Different values generate different associations: some are like etchings of microscopic diatoms or pollen grains: some are stained-glass windows; some are "French" in some way I can't quite understand, others are reminiscent of Celtic patterns.

Complexity is another dimension, easily accessible just by looking at PNG-compressed file size. Twelve examples from a random set of 1,000: the four largest, four in the middle, and the four smallest files: click thumbnails to open larger versions.


Ongoing work prompted by the solar eclipse in Husavik on the 20th of March. Three-body system with orbital periods defined as a number of frames with integer multipliers (e.g. 2400/600/200). This is the beginning: it will get more complex from here on.


Stills from a live-animated installation I've been working for the last few days. Flybys of a mathematical object, a three-dimensional visualisation, built in Processing, of the amount of daylight by day-of-year and latitude. Tomorrow is the equinox: at just 50km from the Arctic Circle, the days are changing length faster now than at any other time of the year, seven minutes a day of extra sunlight.

In Húsavík

I'm in Húsavík, Iceland, for a month, in residence at the Fjúk art centre. I'm doing digital work, mostly using Processing, exploring natural phenomena: daylight variation by latitude, eclipses (we had one today!), geophysics.

Húsavík is a small town in the north of Iceland: fishing and whale watching are the main activities. People are friendly in that undemonstrative Nordic way. I've been here for five days and I know a few people: Arzu my studio-mate, Eggert, Marina, a progenitor of Fjúk, Hei∂∂i, Giuditta, Francesco, Dave. I know more people, awkwardly, with whom I've had interactions in a combination of their excellent English and my shameful, hello-point-thankyou Icelandic: at the pub, the bakery, the supermarket. When the day is nice (which at the end of winter at 66° north is hardly ever) I try to go for a run, to explore the landscape and to breathe deeply the cold, clean air.

It's wonderful opportunity: of course I miss my partner K, my family, my workmates, but it has never been easier to work and play and create from anywhere on Earth.


On Reading and Forgetting

I'm in the discomforting position of having the great majority of my books in storage, hidden in boxes, accessible in theory but opaque to my immediate view. I find myself unmoored, unsure of where I've been and where I'm going. Mike Jones write about his own collections

“ recent years I have moved so regularly and am so perpetually short of shelf space that I never seem to get them into any order.
Regardless, I know what’s there and why. In and between them all – even the bad ones – I see stories and memories, narratives and connections, hidden delights and buried sorrows.”

 A well-thumbed book is easier to decode than a braid of browser histories, split between devices and applications and operating systems: our flirtations with different philosophies, our passing interests and intellectual crushes are lost from view. Now Twitter and Facebook and Tumblr and Reddit and Hacker News and Metafilter and Boingboing and Audible and Kindle conspire to disappear what we read.

An old person, their senses dwindling, dwindles all the quicker when taken out of their homes, away from the familiar accretions of a life. Our habitual surroundings provide context, confirmation of who we are. What does this unpapered, unremembered reading do to us? Can we find ways to archive our own experiences, to help us understand how we've become ourselves?
Time to plaster the walls and put up the shelves and unpack my boxes of books.

On New Year's Resolutions

New Year's resolutions are nowadays considered gauche, and yet the similarities between all our wishes tell us something important. We all want to eat better, exercise more, be smarter with our money, make better choices; we all want to find partners, or keep them, or be better for them, or to reconcile ourselves to their absence; we all want to be better children, siblings, parents, colleagues, citizens. We all want to be better human beings. 

For most of us, the new year comes during a time when our normal routines are temporarily suspended, where we achieve some critical distance from which to question our everyday behaviours, so it's not surprising that we come to think that our efforts over the last year have not been those of our best selves. Our days are long and full of compromise; our short-term desires are incompatible with our long-term goals; we long to live with clarity, to trace a straight path between decision and action, to live without frustration or regret. What better time than now to encourage ourselves to live the lives we think we should?

Wanting to be a better person is a resolution worth making.

The small rocks of your attention

Social media —Twitter, Facebook, Tumblr, Instagram, whatever your thing is— fit easily into life's interstices. It only takes a moment to check your feed, say something smart, chuckle at a joke.

But those moments add up. Together, they take up the space in your life that you could be using for thinking, dreaming, reading, loving. What projects, places, people are you missing out on because you don't have room?