Make your own Blender

by Mathieu in Scripts and Addons

There are a lot of modellers, animators and visualizers on the market and it's not easy to make a difference. Most artists are limited by what is included in the official Blender version. There are a lot of cool patches and branches available which can already save you a ton of time in your daily work or even open the doors to new workflow. But to use those modifications, most of the time you rely on sporadic builds that get quickly outdated. If several new features interest you, you have to use several builds in parallel. 

The Blender Foundation is very busy with 2.80, the review processes takes some time many years and the priorities may be different from yours. You want to have one build for Fracture modifier, Mantaflow, the sculpt improvements, AI denoising and adaptive sampling all of that maybe with a very fast Cycles? Make a difference by unleashing the true power of Blender: you can decide what goes in and make your own version, perfectly adapted to your needs. I code for Blender since 2015 and made Cycles 2x faster (see https://blenderartists.org/t/e-cycles-faster-cuda-rendering/1139717). In this course, I'll show you in a very simple way, how to build Blender, add what you like now and be one step ahead of other artists.

Fassaden01New Particle system to create towns created by Johannes, student of this course 

This course is also made for beginners and will help you:

- quickly build your own Blender. You decide which Blender version should have daily builds

- learn you how to make managing C/C++ patches from others nearly as easy as installing python add-ons

- become confident you can modify Blender by adding simple yet powerful new modifiers, customizing the UI and by making Cycles much faster on your CUDA GPU

- learn to learn, to find where to look in the code depending on what you want to add and where to find solutions

- like in a real course, I'm here to answer all your questions. Please have a look to what the students say about the course and the support below.

Is it for me?

You may think coding is only for professional coders with a lot of Math and IT background. Juan, one of the students had his first modifications committed and promoted, some weeks after joining the course (jump to 26:50 in the following video):


For the new year, you wanted to learn something new or to enable your children to be creative and enable them to forge their own tools. Or you just dreamed for a long time that feature xxx be finally included in Blender.

In my case, it's a bit of all those reason I started to code with Blender. With this course, I want to enable users to decide which features they need, learn them to benefit from the work made by the community and enable them to maybe become an active part of how Blender evolves.

Often, there are very good ideas and patches coming from the community, but they take time to be available in the official versions, don't reach the quality to get in master, some simply take dust until they are forgotten because of missing man power, some are even vetoed. You would like to decide by yourself which features are good for you and create your own mix, you may even have ideas, but don't know how to implement them. You want it all to stay compatible with the official version and learn how to manage it over time to benefit from the progresses made in master. You have little to no background in C/C++ coding or find the huge code base intimidating. You want to learn only what you need and get started with coding for Blender by implementing some simple yet powerful additions. This course is made for you.

If you still thing it's only for programmers, have a look to Frank's testimonial, original post here and here:

I don’t know how to code for spit but after watching the first weeks course I was building my own Blender in a few minutes. Now anytime I get an idea, I can quickly go code it and run a build.

It is awesome and amazing to see your own code in the Blender UI then have it actually work. That is a great feeling.

For me, Mathieu's Blender course is the best thing ever. I love this course. He is doing magic and making it look easy.

We will start from the ground, learn the basics of creating a development environment, getting the source and libraries, compiling the official version (2.7x and 2.8x), mixing features available in branches, up to adding a new modifier and speeding up cycles. The course is for Windows, Linux and MacOS. It is available in English and will be available in French and German soon. 

The speedup you can get on CUDA cards with the course are equivalent to the first version of E-Cycles and you can add it to the Fracture modifier 2.8 branch if you want!

What you will learn:

- How to create an easy to use developer environment on different platforms/OS.

- Get Blender's source code and it's libraries to compile a full version of Blender.

- learn to use Git and Svn to create your own branches, create your own commits, grab modifications made by others, etc...

- learn to use Arcanist to get and upload patches to/from Phabricator (patches from developer.blender.org)

- make your own mix by using patches from other developers and/or by importing modifications from other branches

- learn to simplify Cycles's use by simplifying it's UI and automatize some decisions.

- make Blender more parametric and non-destructive by learning how to add new modifiers.

- learn how to regularly update your code base with the latest advances made in master, with your own modifications on top.

Plus in the extended version:

- some easy examples of how to optimize cycles for all devices (10 to 20% faster on OpenCL, 1.5x to 2x faster on CUDA by modifying the code)

- Learn to add the new AI denoiser from Intel/Stefan Werner in the compositor.

What you will get:

- Hours of videos all in English (French and German coming)

- All the diffs for each modifications you will learn to make yourself in the course (for 2.7x and 2.8x)

- A recap of all the links (to the tools, code, patches, etc.) you need for the course, plus some extras

- A list of the most used commands for quick reference.

Plus in the extended version:

- The modified version of Blender with all the modifications of the course in binary form for Windows and Linux and in source form.

Summary of the course:

1) Introduction - The Blender source code organization explained:

    a) Blender's code and it’s libraries

    b) The Concurrent Version Systems used

    c) The compiling tool chains on different OSs

2) How to create a development environment

    a) Choose a text editor

    b) Install and configure all needed tools

3) Your first personalized flavour of Blender: the power of the community

    a) Build an official version of Blender.

    b) Explore branches, learn how to use them.

    c) Create your own branch, pick features from others, make your own mix without writing code yourself.

    d) Use Arcanist and Phabricator to add patches from developer.blender.org

    e) Learn to fix common errors.

4) Write your own modifications:

   a) Add a modifier to fasten your workflow

bridgeYou will learn to add this simple terrain modifier that allows to generate terrains from curves. Perfect for quick editing. 

doubles%20v2You will also learn to add a remove double modifier, perfect for quick mesh fixing. 

   b) Customize Cycles's UI

   c) Keep up to date, benefit from the best of both worlds

   d) Optimize Cycles for GPUs and add auto tile size to save you time as a user (extended version)

   e) Upload your changes

5) Learn to learn - How to get started in a new area of the code:

   a) Find what to modify

   b) Adapting to new part of code base

   c) Playing with code

 Bonuses: 

- add a remove double modifier

- updated dithered sobol patch (extended version)

- learn how to add the new OpenImageDenoise Intel Denoiser as a node and how to add new libraries with cmake (extended version)

PNGA 20 seconds render made with the Cycles speed-up and the new AI denoiser explained during the course. 

What the students say:

Johannes - 3D Artist:

I started out as a 3D artist with decent (for an artist) Python experience.
While Python is fine it does have its limitations and some things are simply impossible to do with python because Blender does not let you access certain things with Python. Hence I always wanted to learn how to modify Blenders source code.
However, I started this venture into coding several times but always failed due to not finding the necessary information and not knowing what to look for.
This course is really something I have been looking for for years and I am amazed how short it took to get really cool results. The course is worth every cent. 10/10 would buy again.

You can see an animation done with one of his own blender modifications he did during the course

Frank, original post here and here:

Thank you for all your hard work dude. You’re teaching me everything that I need to know in the easiest way possible way to understand over in your Blender course and it is really fun. The Cycles speedup stuff is awesome and pretty damn cool that you taught us to do it ourselves. 

I don’t know how to code for spit but after watching the first weeks course I was building my own Blender in a few minutes. Now anytime I get an idea, I can quickly go code it and run a build.

It is awesome and amazing to see your own code in the Blender UI then have it actually work. That is a great feeling.

For me, Mathieu's Blender course is the best thing ever. I love this course. He is doing magic and making it look easy.

Eric Klein on Blenderartists:

 As a windows developer that works in 3d graphics. I found this course very beneficial. An expert developer like Mathieu go step by step and cover many areas of Blender development like building, tools, patches, diff files, modifiers, cycles performance, .etc. I have search for this information only found bits and pieces. To have all of this in one place is great and huge timesaver for me. I definite recommend this course to developers that want to start working with Blender.

Michael Young

The amount of support is incredible!  For a complete beginner its easy to get overwhelmed, this course and it’s support has kept me from anxiety and frustration! Thanks a ton!

DukeToGo:

I succeeded to build a Blender build my own. I thought it would take a few days, turned out to be a few hours :) I can’t wait to go deep into Blender

About the Author:

My name is Mathieu, I work on Cycles since 2015 (my first patch here https://developer.blender.org/D1530) and already have several patches in official Blender. I now work on E-Cycles, a very fast version of Cycles, optimized for CUDA GPUs.