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.
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.
Screen capture of the live-rendered animation, with me turning layers on and off. Performance drops to ~15fps with all layers on.
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.
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 Grapher.app, 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.
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!
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.
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.
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".
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.
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.
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.