Categories
A moment in the sun Blender Journals Modular synthesisers Music & Synthesisers RYGCBMK◯ Stuff I made

What I did in 2017

2017 was a rough year for me and seemingly a lot of other people. Here’s a recap of what I got up to.

Back in April I made RYGCBMK◯, a project which was weirdly central to a lot of what I got up to this year. Here it is if you want a refresher.

I’d wanted to try an abstract short set to music since I went to the Melbourne International Animation Festival in 2015. RYGCBMK◯ was my driver to learn procedural animation with Jacques Lucke’s powerful Animation Nodes system for Blender. I specifically wanted to synchronise abstract animation to a rhythm because I love that kind of synaesthetic stuff and I knew it would keep me going through an emotionally brutal bit of the year.

The end result was not perfect, but I got a high enough average score during the voting process for the Suzanne Awards 2017 to encourage me to try some more in the future. The important part was that there was an end result to speak of. It got done.

And it got done.. with nodes!

Working on RYGCBMK◯ also helped me tune into my artistic sensibilities. Given just shapes and sound to play with, the project took me away from complicated stuff like characters and dialogue to something which let me get a strong feel for the kind of work I want to put into the world.

I made important if not voluminous progress with “A moment in the sun” in its third year of development. I put together a new story reel in January and February, and a short stretch of that is good to go as is even with the big rewrite in May. Flipping Pointy from irascible and foolish to geeking-out cute was a decision that very much happened in the wake of RYGCBMK◯ too.

There was that secret project I can’t show off yet which happened in October-November. Here’s a concept which we abandoned.

The one we actually went with is way cooler.

I learnt Retopoflow this year as well – anyone doing modelling in Blender should grab it. Hard Ops is next on my list of useful plugins to get to grips with.

There was of course AAAAAAAAAAAAAAAAAAAAAAAA which started strong but fizzled. AMITS now has a sweet cockatoo. Here’s AAAAAAAAAAA’s final resting point.

And then there was my first run at Inktober. I started practising with my brush pen and now my inking’s gone from “rubbish” to “slightly-less-rubbish”. This snail got the most likes on Instagram.

There wasn’t that much time for art or animation though. RYGCBMK◯’s soundtrack was part of a big jump back into music for me, something I did because I wanted a creative outlet but job stress was (temporarily) making the animation hobby unthinkable. Then it took over.

Just over eleven months after I impulse-bought that ARP Odyssey back in January as a shiny new toy to keep myself distracted, I’m now the owner of a 475HP Eurorack modular synthesiser which I mostly soldered together myself. I don’t need to look at a computer screen to make electronic music anymore (though the PC does come in very handy for recording) and the sound is even produced by old-school electronic components instead of simulated versions thereof. In playing around with it I’ve learnt a lot about how to patch and which modules are for what, but no doubt I’ve only just scratched the surface of what this thing can do.

To me DASYRAC looks sad and naked and unfulfilled without patch cables, but at least this way you can see the actual modules.

This krautrocky jam from early December is one of my favourite tracks I did this year.

I didn’t even know how to solder before I started putting DASYRAC together, but I noticed the kit builds were a lot cheaper so I gave it a try. Now I’m actually happier owning synthesiser modules which I put together myself than modules I bought pre-made, because I’m comfortable fixing my own work when it breaks. Most times when I sit down to prod a busted circuit with a multimeter and pore over a circuit schematic, I learn something new and interesting.

This is the schematic for Music Thing Modular’s Simple EQ with my troubleshooting notes. Looks like I forgot to solder one of the pins on an op amp.

So that’s what I learnt and did in 2017. (Mostly synthesiser stuff, to be honest.) This is what I’m taking away from all that for 2018 and beyond.

In terms of the modular synthesiser and music stuff, the build is almost complete. Once that’s done it’s all about learning my gear better and maybe getting some tunes released on Bandcamp. There’s one or two easy modules I want to have a crack at building for myself too, but that’ll need a little bit of extra equipment – it can wait.

A pyramid monk from AAAAAAAAAAAAAAAA.

In terms of Blender stuff, I want to jump into some short, focussed and contained exercises – animation, modelling, or otherwise. If it’s animation, I source the soundtrack and character rigs from somewhere else. If it’s modelling, I source a design from somewhere else. I go with pre-made assets wherever possible. The key is not giving myself too broad a set of creative decisions to make at once so that I don’t get lost.

By pushing beyond my own creative sphere and not trying to do all the things, it’ll save me time, help me focus on specific tasks, broader my artistic horizons, get me analysing work by other people and build up my confidence and patience again with some experience. With less to do, I can hopefully finish more stuff and get it in front of people to start that all-important feedback loop.

Meanwhile, in the Sun…

As for Gronky and Pointy, I feel like I’ve lived with AMITS long enough that there’s no big surprises left – just a lot to execute on. If I can stay organised and find a good chunk of time every week to work on it (five hours a week minimum is a good pace), it’ll get done. It’ll probably be not the best, but at least it’ll be finished.

The day job may have other things to say about all of this, especially if I score the promotion I’ve been working towards and people keep departing, but we’ll see.

Happy New Year for 2018, and I hope the coming year treats you all well!

Categories
Journals RYGCBMK◯ Stuff I made

How now, RYGCBMK◯w?

It’s been 16 to 22 April 2017.

I spent Sunday doing the last chunks of animation, including the new snake intro,  and Monday was almost all sound mixing trying to get things at a nice level. Then it was done: RYGCBMK◯ appeared on the Internet around 5:35pm Western Australian time (11:30 UTC) on Easter Monday.

Well, sort of done. Now I make an effort to at least try to connect RYGCBMK◯ to its potential audience with a bit of promotion. It would help if I knew where that audience was and to have a clearer idea of who they are (some of them are probably stoners if I’m honest), but this is something I made for myself. I didn’t start out with an audience in mind, just a yen for something happy and playful. Any broader audience was an afterthought.

Ringsnek says hi.

This stage of the creative process – promotion, marketing, etc – is where I’ve got the most to learn, and it’s where my own projects often grind to a halt. Truth is, I’m beyond my comfort zone tapping a series of people on the shoulder to say “excuse me but I made a thing and could you well um watch it perhaps?”. It brings up all these artistic insecurities and related questions. Does it show that it’s newbie work, or will people enjoy it for its happy simplicity and not care? Do I stay matter-of-fact with the write-ups on the project or do something more playful? Should I re-render it and get a DCP done and try for something like MIAF or Punto Y Raya, or should I wait until I’ve created something more polished? Should I use the shots as Animation Nodes tutorials in order to build up some creator awareness, and if so what can I cover that hasn’t already been covered by someone else?

Lots of questions, then. But what about the elephant in the room? When will I be back on the Pointy and Gronky short?

The closest answer I can manage is “probably soon”. I’m midway through a break from my day job until the beginning of May. I’ve finally got the opportunity to relax and unwind and recharge and even creatively potter around for a bit instead of focussing my efforts on a bigger project which is many months away from being completed. So yeah, “probably soon” is the most certain I can be about AMITS right now. 🙂

Categories
RYGCBMK◯ Stuff I made

RYGCBMK◯ is released!

My little two-minute serve of abstract rhythmic procedural animation is available for all to see! Yay!

You can watch it above on YouTube, download it off Vimeo (CC-BY licence) or listen to the soundtrack on SoundCloud.

If you’ve got Blender 2.78 (even the current 2.78 nightly at the time of writing) with the Animation Nodes plugin, you can download this zip file full of shots to play with. There are even some shots in there which didn’t make the cut.

The final shot running order is as follows:

  • quollism ident: combination of 050, 264 and 452
  • morse code: 120
  • ball snake: 471
  • ring snake: 472
  • doughnut wave: 454
  • braille fireflies: 431
  • bouncy dot: 450
  • do-si-do spheres: 020
  • infinity looper: 470
  • purple attractor: 453
  • rainbow sine balls: 070
  • flippy pink doughnuts: 051
  • grooving amoeba: 060
  • splitting rainbow ball: 170
  • hexagonal echoed rings: 140
  • metaball pipe: 160
  • cool abstract bubbles: 181
  • weird stripy thing: 171
  • grooving bubble tank: 180
  • ring with lasers: 200
  • keke spheres: 220
  • happy bubble snake: 210
  • multicoloured ring explosions: 250
  • spinning mandala: 260
  • travelling mandala: 261
  • receding mandala: 263
  • approaching mandala: 262
  • fake oscilloscope: 264
  • alchemical symbols: 280
  • scribble ball: 270
  • rainbow ring: 290
  • rave curves: 320
  • heartbeat: 300
  • balls on wires: 330
  • random object sine: 331
  • migrating acid eggs: 371
  • jelly boomerangs: 380
  • galaxy: 350
  • ballswarm argument: 370
  • three pulsing objects: 400
  • ball and stick creature: 410
  • colour morphing sinewave: 402
  • neon cell: 473
  • folded circle: 420
  • line swoop: 401
  • travelling mandala: 451
  • reverse flashing rings: 430

I’m not sure what else to add at this point other than I hope my colourful little dancing spheres and toruses brighten your day. 🙂

Categories
Journals RYGCBMK◯ Stuff I made

Time can also be space

It’s been 9 to 15 April 2017. Happy Easter and if you’re in Australia, remember: bilbies not bunnies.

Squishy Mandala says “Save the bilby!”

It’s just a couple of days until RYGCBMK◯ comes out and I have just a few shots to go. Looking back at some of the earliest shots I made, they jar badly with the overall “round shapes on black” aesthetic I ended up adopting. The hand-drawn shots also jarred a bit. With the extra time afforded me by the Easter break, I’ve started replacing the most out-of-place crappy shots with nicer updated shots. The replacements often retain the original idea but re-execute it in a way that feels like it belongs with the rest of the reel.

Stills really don’t do these shots justice.

But enough about that. Let’s talk about how to do interpolation between two values in Animation Nodes.

Here’s a shot that I did last night.

Pretty sure I had one of those balls in the 1990s..

As the purple rainbow ball moves across the screen, the small ball move towards it and grow larger. The node setup that places the nodes looks like this.

Kind of went crazy with the animate nodes for Scale there..

The key to controlling movement and size is in the Animate nodes. I’m feeding the Time input of the Animate Vector node with a Distance value instead. Instead of changing a value according to how much time has gone by, I’m changing it according to  how far the “attractor” object is to a position which is pre-calculated for each ball.

If the ball is closer to (before) the calculated position than the “duration” (a minimum influence distance), the Animate node interpolates towards the “Start” input – the rainbow ball’s position, or a larger size. If the distance is greater than (after) the “duration”, the node interpolates all the way to the “End” position – the small ball’s calculated position, or a resting size.

I used the same interpolation trick to send little pulses of light down these wires, even though the start and end points are constantly moving.

Animate nodes: not just for animating!

That’s all for this week. I’ll post a mini-update on Monday with the details of where you can see the finished reel, but that’s all for now. Back to it!

Categories
Journals RYGCBMK◯ Stuff I made

Sine functions to the left of me, matrices to the right..

It’s been 2 to 8 April 2017. I got a new semi-modular synthesiser this week so I lost a couple of evenings to playing with the new toy adding to the RYG-O soundtrack.

Music is never as exciting to look at, is it?

For this week’s shots I moved away from procedural meshes and back to working with lots of duplicated objects. I made a spiral galaxy, swarms of weird little swimming eggs, swarms of psychedelic kidneys and swarms of little balls having arguments with one another.

They are strangely individual swarms of balls.

One of the useful discoveries I made this week was figuring out that I could parent objects to other objects as part of Animation Nodes. The node setup for parenting is even pretty simple.

It’s as easy as setting “parent” in the Object Attribute Output node.

I used parenting to create the galaxy shot. I started with a spiral-making loop I made on Sunday. I created three sets of spiral objects with different colours of spiral and different sizes of blob. I parented each spiral to a different empty and set the empties spinning, then parented those empties to a master empty which moved them across the screen. Initially all three spiral bits were parented to one empty, but everything rotating at the same rate was dull to look at. It helped a lot to experiment with the rotation using empties as a guide instead of having to maths it.

It’s been too long between OpenGL renders…

Also this week I found out that constant updating can be switched off. This is useful when working with thousands of duplicated objects at once. The spiral was slowing my computer down pretty badly.

Over to the swimmy eggs now. Each of the eggs swims towards the top of the screen at a randomised rate which is peculiar to that egg. Of course, when certain aquatic animals like jellyfish or octopodes propel themselves through the water, there’s a push forward then a lag as the “water” absorbs its momentum.

This is an early version of the eggs which looked a little too much like an LSD hallucination of a thousand screaming mouths.

To mimic this, I added a couple of sine functions to make things more interesting – one controls the compression and expansion of the eggs’ shape, and the other offsets to the position to make the motion speed up and slow down. The two sine functions are out of phase – they both have a period of 12 frames, but they reach their respective extremes at different points. The actual node structure that makes this possible is a bit hard to follow, but this is the node setup I used to figure out how to tweak it so that it not only fit the swimming action but the beat of the soundtrack.

This is me hiding my mess.

Here the complexity of the maths and node tree is kept away from where I have to think about it, and that’s how it should be.

Good factoring also means putting messes in their own separate node tree to make it easy to reuse them in another file.

The psychedelic kidney swarm was made possible thanks to Omar Ahmad’s excellent write-up on transformation matrices in AN. I’d wanted to get the eggs swimming in different directions, and that meant having them turn to whichever direction they were headed in. I was getting nowhere with that on Thursday night, but finding Omar’s tutorials inspired me to give it another try on Friday night. Even though I couldn’t get the kidneys to change rotation/direction mid-swim, I did manage to get them turned to face the direction that they’re swimming in a straight line.

At least they’re not screaming mouths.

Here’s a more presentable version of the swimming trick, where timeOffset (can be positive or negative) is added to the Time input of “Animate Vector” to move the kidney from A to B.

Sinewaves – is there anything they can’t do?

Finally a word about materials! I have been using randomised colours a lot in RYG-O and that means using the Object Info node’s Random output a lot. The problem is that Random only outputs a single random number and I need three (hue, saturation and value) to make an entire colour.

To turn a random number into an entire random vector, I follow the Random output with multiply, modulo and add nodes before they hit Combine HSV. Multiply stretches the incoming range by an arbitrary amount to introduce a little bit more randomness. Modulo clamps the output of multiply to a particular upper limit, effectively setting a range from 0 to the modulo amount. Add offsets that output upward and sets a minimum.

For instance, in the following node setup, my random colours will have saturation between 0.6 (add 0.6) and 0.8 (modulo 0.2 + add 0.6), and values between 0.5 (add 0.5) and 0.8 (modulo 0.3 + add 0.5).

Three random numbers from one – bargain!

The quantiseHue group does a modulo, multiply, round and divide operation to quantise any random number input to 0.0 (red), 0.166 (yellow), 0.333 (green), 0.5 (cyan), 0.667 (blue), 0.833 (magenta) or 1 (red again). That’s how I’m sticking to my assigned colours. 🙂

That’s all for this week. See you at Easter!