Blender 3D Animation

Published 2021-09-05

IU Home > Projects > blender-animation
We show you how to take simple 3D models and create an animation using the open source Blender 3D software.

Watch the animation on YouTube below:

Eevee Reboot

The release of Blender 2.80 and the new Eevee render engine provides a speed up in render times and a new look. Check out the latest version below:

Physics Simulation

Blender 3D includes an animation system. It can be used to produce convincing real world animations of your 3D models and scene elements.

Each animated object has a track. Animation tracks are built from points that you enter on key frames of the animation. The points are connected using mathematical curves to fill in the 'gaps' and produce the complete animation.

You can manually enter the key frames points. You can also automate the process by simulating physical systems using the built in physics engine. Points can then be taken from the simulation automatically.

Scripting with Python

Suppose you have to place a large number of objects into a scene along a complex path. One way to do this is with a path modifier. A second way is to script the creation of objects using Python.

Scripting enables each object to be positioned accurately and quickly within the scene.

We use two algorithms in our animation. The first to produce the paths for our objects. The second walks each path adding objects with physics simulation properties to the scene.

We specify the level of detail in the paths and the number of objects with simple parameters.

The L-System

The L-System is used to generate complex paths quickly. This algorithm is very flexible and needs only a few initial parameters. You can read more about L-systems on Wikipedia.

Here is the code used to create the L-System. The Snowflake motif is generated with this script and forms the paths and central area on the island:

def systeml_compile(axiom, rules, iterations):
  table = str.maketrans(rules)
  for iteration in range(0, iterations):
    axiom = axiom.translate(table)
  return axiom

The code is entered inside Blender 3Ds built in text editor interface.It is then executed and the paths saved for use when placing objects and building geometry in the rest of the animation.

Learn more

The animation was presented to the Algorithmic Art Meet-up group in London, UK.

A video of the full talk is available. Audio begins at 4:04.

All code and digital assets used in this project are on Github.

The final render took over a day of compute time using the cycles render engine on a GTX 775M GPU.

A play list of stages in the animation process is available on YouTube.