Skip to main content

Animated Voxel Loader

A set of tools to export animated 3D models from Blender and load them into Minecraft to automate the creation of stop-motion animations.

This project and its development process were showcased on my YouTube channel
Play video

Motivation

I was inspired to start this project after seeing the impressive large-scale stop-motion animations featured in Jake Eyes' 50 Ways to Die in Minecraft series.

Image from 50 Ways to Die in Minecraft showcasing a stop-motion shark Image from 50 Ways to Die in Minecraft showcasing a stop-motion fighter jet scene Image from 50 Ways to Die in Minecraft showcasing a stop-motion explosion
Images taken from 50 Ways to Die in Minecraft by Jake Eyes (various episodes)

At the time, Jake Eyes was one of the only ones creating Minecraft stop-motion animations of this scale, and he did not disclose the tools he used to create them. I was curious to see if I could replicate the process and create my own stop-motion animations using automation techniques.

The idea

Traditional Minecraft stop-motion is created by building each frame of the animation one by one, which is very labor intensive and not feasible at this scale. For this reason, I thought about using 3D animation software, my preferred one being Blender, to create the animation. The key was finding a way to turn these mesh-based animations into voxels (3D pixels) and display them in the game world as blocks.

Pipeline

To export voxel data, I created a Blender extension that made use of the software's Python API to compute voxels from the mesh while preserving color/texture data for every frame, and dump it to disk.

This voxel data could then be processed by a custom Java modification for Minecraft that used a pre-computed list of material colors to find the material that comes closest to each voxel's color. The mod then took care of placing the block-based structure into the game, frame-by-frame, and taking screenshots automatically to produce the final image sequence.

Source code and documentation

The complete source code of both the Blender extension and Java modification, as well as auxiliary scripts to combine separate voxel data and pre-compute material color data are available on GitHub.

Reception

Throughout the project, I shared clips of my initial results with various programmers and artists and received very encouraging feedback. The video I made to showcase and document the development journey of the project had one of the greatest debuts on my YouTube channel, and remains one of my most viewed videos on the platform to this day, with over 600,000 views.

I also uploaded some clips to TikTok, one of which reaching 15 million views in only a few days. Other creators contacted me and asked for guidance on how to use my tools for their own videos. Years later, I still come across many Minecraft stop-motion creations on social media,some of which I assume where created using these tools.

Finally, coming full circle, Jake Eyes himself shared my video on his YouTube channel, what a journey!