Creating 3D Figures for CV/ML papers with Blender
I have been asked how I created the 3D Figures from some of our papers like these:
Get Christian Wolf’s stories in your inbox
Join Medium for free to get updates from this writer.
From “Kinaema”, our robotics sequences model (https://arxiv.org/abs/2510.20261, NeurIPS 2025):
From “What really matters in ImageGoal navigation”, to appear in 3DV 2025 (https://arxiv.org/abs/2507.01667):
From “Zero-BEV”, published in 3DV 2024 (https://arxiv.org/abs/2402.13848)
A couple of years ago I started drawing figures like these with Google Sketchup, a really easy to use software with a shallow learning curve. But first, I quickly reached its limits, and second, Google sold it and it stopped to be free. I switched to Blender, which has a reputation of being very difficult to use with a steep learning curve … But I found out that this only applies if you really need the very advanced features, and if you have a hateful relationship with tutorials. If you are ready to spend around 2h to watch a series of very short tutorial videos like this excellent series here by “Blender Guru”’, you are quickly set up to do incredible figures.
Some specific tipps for scientific Figures
Most Figures in scientifc papers are simple shapes, very often just simple planes, but they are textured. It is actually not straightforward to add textures to planes, but it is very easy to just transform image files (.jpg, .gif, .png) into … planes, with the “Images as Planes” add-on. Once activated, load an image:
In the file open dialog, be sure that the “Emit” property is set to a reasonable value so that the created object emits some light and is nicely visible:
Don’t forget to switch to viewport shading so that textures are correctly displayed:
You should then see something like this, where in the properties editor on the right of the window you can edit size, rotation, position etc. Alternatively, to freely move it around with the mouse, select the object, hit “g” and drag it around.
To make a simple video sequence like Figure, I just duplicate the frame with a right click “Duplicate objects”, hit the enter key immediately (don’t move the mouse) to keep it its current position, then edit the y-axis coordinate in the properties panel to shift it 0.3m, rinse and repeat:
I then set my active camera to the current view:
Rendering this with F12 (you need to play around to get the optimal view), is underwhelming: the background is not white, and we don’t have “edges”, ie. no black frames around the images, which are really useful in the kind of diagrams we want to see in papers:
Edges are easy: in the camera panel (camera icon), check pane/box “Freestyle” and you can optionally modify line thickness.
In order to get a transparent background, do the following. In the “Editor Type” Panel, pane “Film”, be sure to check “Transparent”:
After rendering, when you save your image, be sure to save it in PNG format (JPGs do not handle transparency) and switch the color format to “RGBA”, where “A” stands for “alpha channel”, which encodes transparency:
And voilà:
A different viewpoint:
I then normally load this into Powerpoint and add the 2D parts of the Figure, like arrows and boxes:
Files for this tutorial: [Blender file] [Powerpoint file]








