## AN Experiment 2018 Test 8 - dancing cubes

For this animation nodes experiment I made some cubes hover above the surface of a sphere by normalizing the position vector

## AN Experiment 2018 Test 7 - growing

For this AnimationNode experiment I made growing vines out of vertices using random 2d noise patterns. I used a grid mesh to generate the inital vertices and iterate over the list of vertices in the mesh using a loop. Then I used a second loop to generate the spline for each vertex.

The number of vertices in each spline is controlled by the framerate and each vertex is moved by a random amount along the x- and y-axis.

The node setup is a bit too complicated for a screenshot but you can download the blend file here

## AN Experiment 2018 Test 6 - dont overlap

For this animation nodes experiment I created a group of spheres and calculated their sizes so that they touch but never overlap. I iterated over the list of positions and calculated the distances to all other spheres using a Vector Distance Node. Then I sorted the list of distances and took the second entry to get the minimal distance to a different node (the first entry is always zero - its the distance of the current sphere to it self). The sphere is then scaled to half of the minimum distance to make sure no spheres overlap

The spheres are moved using a Vector Wiggle node

## AN Experiment 2018 Test 5 - L-System

For this AnimationNodes experiment I played with the new L-System node that comes in version 2.1. The L-System shown in this animation was generated by the instruction

``````A=[&FFFA]\\\[&FFFA]\\\[&FFFA]
``````

And here is the nodesetup I used

If you have no idea what I'm talking about Jacques Lucke has some very cool introduction videos to the L-System nodes on his youtube channel

## AN Experiment 2018 Test 4 - noise displace

For this animation node experiment I used the Vector Noise node to create displacements of the mesh vertices of a icosphere along their normal vector. This creates a similar effect to using the displacement modifier with a noise texture, but you could use any node setup instead of the simple noise I used to create crazy complex animated displacements.

## I made TNT on my 3D Printer

I printed a 2,4,6-Trinitrotoluol molecule - better known by its abbrevation TNT - on my 3D printer this weekend. I constructed a tetraedic and a hexagonal basic shape using openscad and printed the atoms in different colors. I originally intended to connect the atoms using double sided tape but the molecule got pretty unstable and fell apart spontaneously. So I used some hotglue to glue the atoms together.

Oh and sorry for the clickbait title - I couldn't resist :-)

## AN Experiment 2018 Test 3 - waves

I made a group of concentric spirals along a circle and modified their rotation phase and radius

## AN Experiment 2018 Test 2 - noise position

for this Animation Nodes experiment I used the vector noise to change the position of objects

you can download the blend file here but be aware that this has been created with a development version of - so some nodes might change a bit until the final release

## AN Experiment 2018 Test 1- curly noise

I finally managed to fix all my python and cython version missmatch errors and started experimenting with a animation nodes 2.1 development branch - this is my first experiment using the vector noise node and the curly noise setup described in the brilliant blender.stackexchange.com answer by omar Ahmad

you can download the blend file here but be aware that the 2.1 branch of the Animation Node Addon is currently under heavy development so maybe the examples here won't work out of the box with a final version.

## creating midifiles using ruby

I have been experimenting with randomly generated drum patterns lately and found out pretty soon, that a totally random generated pattern isn't exacly what I was after, I wanted a pattern generator where I can specify propabilities for each drum hit to occure. So I wrote a ruby script using midilib that generates midi files containing patterns, which I can then import into bitwig and loop and arrange for my tracks.

Midilib is a nifty little ruby library that allows you to read or write midifiles. For my purpose I used the library to write the files.

the library can be installed using gem

``````gem install midilib
``````

A midifile contains sequences, sequences contain tracks and tracks contain midi events. These events can be any midi event like noteOn, noteOf, controlChange, programChange, ... For each midiEvent in a track the delta time to the last event is stored.

in midi lib you can specify a time_from_start value and lets midilib recalculate the delta values before saving the track.

So here is a ruby script that generates a hihat pattern (channel 1, midi note 44 in my kit), where the notes are placed on a 16th grid with a random chance between 20% and 50%.

``````require 'midilib/sequence'
require 'midilib/consts'
include MIDI

seq = Sequence.new()

track = Track.new(seq)
seq.tracks << track
track.events << Tempo.new(Tempo.bpm_to_mpq(110))
track.events << MetaEvent.new(META_SEQ_NAME, 'Test Pattern')

track = Track.new(seq)
seq.tracks << track

track.name = 'Loop1'

s = 0
l = seq.note_to_delta('16th')
e = Random.rand(0.2..0.5)

16.times do
if ( Random.rand < e ) then
on = NoteOn.new(0,44,127,0)
on.time_from_start = s
off = NoteOff.new(0,44,127,0)
off.time_from_start = s + l
track.events << on
track.events << off
end
s += l
end

track.recalc_delta_from_times

File.open('pattern3.mid', 'wb') { |file| seq.write(file) }
``````