Inspiration

Speed is easy to feel when something is chasing you, or you are running from danger. So I thought of why not try simulating something relating to this but in an animal context and in the jungle. So I chose a jaguar that wins with an explosive burst, and a deer that survives by never slowing down. I love nature and wildlife so much and while I thought of this concept, all the memories of the NATGEO wild documentaries I watched growing up ran through my mind and I was excited to try and simulate the experience. I wanted speed to be the story and not only the subject of my animation "A jungle chase". The animation starts in stillness and builds to a full chase. It ends by showing that the swift live to run again.

What it does

Jungle Chase is a 28-second, 1080p, 24 fps Blender animation. A jaguar stalks a grazing deer at dawn. The deer bolts, the jaguar follows, and they race through the jungle at 22 m/s, about 79 km/h. They leap five logs while the gap between them shrinks to about 4 metres. Then the jaguar tires, the gap opens, and the film ends on the card "SPEED IS SURVIVAL". Speed shows up in several ways; Pacing: 3 seconds of stillness, a 3-second ramp-up, then 14 seconds at full speed. Camera: Here the lens widens from 28 mm to 22 mm as speed rises, plus shake and a front-lit "lead" shot. Screen effects: The speed lines, motion blur and parallax. The gap: The gap shrinks and then opens, so the viewer feels the tension.

How I built it

Everything is generated by one Python script running inside Blender 5.2 on my laptop. The animals, jungle, logs, lighting, camera moves, speed lines and titles are all procedural, with no imported models, textures or music. Pacing curves. The speed of each animal is built from smooth S-curves: $$S(u) = 3u^2 - 2u^3, \qquad v_{prey}(t) = V \cdot S!\left(\tfrac{t-3}{3.5}\right)\left(1 - S!\left(\tfrac{t-22}{5}\right)\right)$$

Integrating speed over time gives each animal's position, so the gap emerges from the story instead of being keyed by hand. Procedural gait. Each animal has a stride phase that grows with distance travelled: $$\varphi(t) = k\int_0^t v(s)\,ds, \qquad \theta_{leg} = 0.9\,A\,\sin(\varphi + \delta)$$

Blender drivers read this phase, so the legs move faster as the animals speed up and stop when they stop. Jumps. A parabola over each log: $$h(x) = h_0\left(1 - \left(\tfrac{x - x_{log}}{2.6}\right)^2\right)$$ Jungle. About 700 instanced trees, bushes and grass tufts, with spotted fur created by Voronoi shader nodes. Camera. A rig with a Track To constraint, per-frame keyed shots, and speed-driven shake and lens changes.

Tools: Blender 5.2, Python (bpy, bmesh), EEVEE, [RenderJuice / local render, edit as true], ffmpeg.

AI disclosure: I wrote the script with help from an AI assistant (Claude) in editing and debugging then rendered the project myself.

Challenges I ran into

Blender 5.x script restrictions. My first run crashed because the script context no longer provides active_object. After that, the join operator refused to run, so I replaced it with a bmesh merge that doesn't depend on context. Pacing the chase. Early on, the jaguar's speed curve made it drift backwards near the end, and the gap went negative so the animals overlapped. I tuned the closing speed until the minimum gap was about 4 m. Making speed readable. Fast motion on a static background looks slow, so I added parallax layers, speed lines, camera shake and motion blur. A big scene from code alone. Hundreds of objects need to be instanced, or the scene becomes slow. The rendering process was a bit tedious, my render kept failing to render my animation without crushing or stopping or rather rendering an image instead of my animation.

Accomplishments that I am proud of

A complete chase, from a still dawn to a speed-driven finale, generated entirely from code. A gait that is tied to real speed, so slowing down changes the whole animation. A story that ends by saying something: speed is survival. Being the first project of an animation I have worked on, I am most proud of how far my understanding of blender as a software has come.

What I learned

How to drive animation procedurally in Blender with drivers, custom properties and per-frame keyframes. How much of "speed" is the camera and the editing, not just how fast things move. How to debug Blender's changing Python API. How to resolve errors during rendering on blkender

What's next for Jungle chase

Better animal models and fur, with proper rigs. Dust, splashing water, and falling leaves as simulation effects. A better sound design and a musical score that builds with the speed. A longer cut with a river-crossing sequence, plus a version with a different predator and prey.

Built With

Share this project:

Updates

Submission history