VFX Breakdown: How we used Blender for our CGI

2/5/20243 min read

Step 1) Boid Simulation

After masking our subject (the dancer) out and bringing him into a 3D space our goal was to have paper airplanes swirl around him as he dances.

Perhaps one of the most visually striking aspects of our film is our dance segment with the paper airplanes.

The visual effects for this portion of our film was created using Blender, a totally free, open source software. Meaning, that if you want to create effects that are similar to ours, it's totally possible! In fact, in this blog post we will break down exactly how we went about creating the paper airplane visual effects in our film.

To start, we used a particle emitter. The particle emitter created particles that were used to create and map out the airplanes. And the physics we used was called boid simulation. This system was actually developed with the purpose of trying to simulate birds and the way they move around, group up, and fly together in a flock. With the boid simulation, we created 3-5 different groups of planes that could fly around our dancer.

While an old system, it served as a terrific first step in getting our paper airplanes moving. However, the boid simulation was limiting in that we were unable to control each airplane individually. Not only that but we had to choreograph the planes somehow, in order to have them move and swerve and jerk in rhythm and/or on beat in specific instances of the dance.

Step 2) Physics Zones

The boid simulation, while great for giving our paper airplanes basic, flocking movements, was inadequate in giving us more fine tuned control.

As such, the next thing we did was adding lots of physics zones. These zones allowed us to use the physics, that were already built into Blender, to change the movement of the airplanes to varying degrees. For example, one of our zones acted as a "push" or like a "gust of wind" that forced the airplanes forward faster. Another zone we used caused the airplanes to spin outward, towards the dancer. These zones allowed us to have more control over the movement of the airplanes at a very specific time and place.

However, there was still a problem. Because these physics zones are grounded in... well... physics, it still gave the movement of the airplanes a very "organic" feeling. And for the purposes of our film, and the dance, we wanted the airplanes to have movements (at times) that don't make any physical sense at all. For example, having the airplanes stopping and starting on a dime, or having them freeze in place in mid air, or having them going in reverse. While, the physics zones gave us more control, we still needed more.

Step 3) Particles into Geometry Data

Remember our particle emitter? We were now going to turn our particles into geometry data.

First, we created an instancer in order to create instances of the airplanes. The instancer allows us to make an instance of the airplane at each one of the dots (the particle) which are now acting as the location of the airplanes.

Now that we effectively converted the airplanes into geometry, we now have more control over the planes. For example, we can now squish them, scale them, rotate them (this happens, e.g. in the second dance sequence).

After baking the simulation, we exported the sequence of geometry data, as an alembic file. Reimporting our exported alembic file, we're able to then play with the timing of the animation all we want. For example, if we want the airplanes to go in reverse, we are essentially playing the alembic file in reverse.

Turning our particles into geometry data allowed us to create the unnatural movement that we needed our paper airplanes to have.

Step 4) Glitch Effects

What about the glitch effects in the second dance sequence? This was done in post, in the compositor.

After rendering the animation (with many layers) in blender, we stuck imported it into our compositor, DaVinci Resolve's Fusion. Some block generators, some displacements, some glow, and voila, we had a glitch effect we could apply on a few specific beats for a little extra punch and crispness.