Music: buy it, don't stream it.

Streaming music services make it trivially easy to have access to more music than you could ever need: virtually the entire output of Earth's musicians, thousands of hours added every day, a near-infinite cornucopia of sound. Awesome, no?


I want to convince you that the old way – buying music, either digitally or on physical media, and all the limitations that implies – is better. Not just better for musicians – which it certainly is – but better for you.

Buying music forces you to ask yourself if you'll enjoy it enough to make the purchase worthwhile: the cost prompts you to consider the return on investment. That means thinking about what you like, and why you like it, and in doing so you learn something about yourself. What kind of person are you? Do you need comfort, cheer, inspiration, excitement? Do you have anger to express, regrets to consider, love to give? What needs does this music address?

Buying music encourages you to get value from that purchase by repeated listening, and in doing so gives you the opportunity to discover new depths in the music, depths you wouldn't appreciate if you weren't committing to it. When the music fails to deliver – when it's disappointing, when the album has two good tracks and ten of filler, when two times through is enough – that tells you something too. Learn from your mistakes. 

Ideally, you end up with a relatively small amount of music you love, not a functionally infinite amount of music, some of which you like. However you listen, you'll still only explore a minute fraction of all the music out there: as with all experiences, it should be not about trying to minimise the amount you're missing out on – which is, inevitably, almost everything – as much as maximising the value of that you do experience.

Pictures from an exhibition

We held an open studio on Friday night: Sandra presented her sound installation, Arzu a video she made using images from her previous show, and I showed a bunch of prints and animations from the last month of work. Thanks to everyone who came out on a cold night, and to Heiddi for the photography. And of course thanks to Marina and  Sam from Fjúk who made it possible.

Geospheric 5: Core Sample

Readying my tiny prints for exhibition on Friday. I'm showing them in groups of 16: today I'm printing close-ups of the core. Thinking I'd love to turn this into a procedural landscape generator, low-poly Turner atmospherics of mountains and volcanoes.

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.