[$] Create your own Blender with new modifers and faster rendering

Their are a lot of 3D artists on the market and it’s not easy to stand out. But you chose a special tool, one that you can modify. Learn to create your own Blender to fasten your workflow with faster rendering, new modifiers, streamlined UI’s, cool patches you wanted for month/years in Blender, all that on top of the latest and greatest official Blender or the very stable 2.7x Branch :). It is a course available in English, (French and German will follow), for Windows, Linux and Mac. It’s meant for everybody, with or without any experience with code.

You can get it now on gumroad or Blendermarket as standard version for a reduced price or at the original price with the Cycles speedups and the new AI denoiser.


Create and modify environments very fast thanks to a new modifier:

These variations of shells are made of 1 mesh with only 4 edges thanks to the new modifier you will learn to add:

If you have a CUDA card, you can expect those speedups for rendering at the end of the course and you will know how it works, with some tips to get it even faster:
times%20comparison

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
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)
  • updated simple OpenVDB Remesher patch
  • add the new OpenImageDenoise Intel Denoiser as a node and how to add new libraries with cmake (extended version)
  • Further readings to go to the next step

What the artists say
Johannes - 3D Artists

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 allways wanted to learn how to modifiy Blenders source code.
However, I started this venture into coding several times but allways 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.

Two of his results after following the course, working on the particles code:

A particle system to generate towns:

@spydurhank

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. :slight_smile:

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.
https://blenderartists.org/t/e-cycles-faster-cuda-rendering/1139717/223

FAQ:

Q: Which version of Blender is in the course?
A: Both 2.79 and 2.8, you can decide what you code on.

Q: I use the distribution XXX of Linux, will it work for me?
A: Libraries version are tested on Ubuntu. It’s highly recommended to learn on Ubuntu/Linux Mint. You can then do portable builds that you can run on your beloved distribution.

Q: Will I be a professional C, C++, CUDA, OpenCL, and Python programmer and know everything about Blender at the end?
This course is made mainly for artists who want to be able to forge their own tool to have a better workflow. You will learn enough to code other modifier by yourself, tweak Cycles further to have optimal performance on your GPU and benefit from many patches/branch available in the future. Each programming language and each part of Blender could be a course for itself. The goal of this course is to make managing C/C++ patches nearly as easy as installing python addons, learn you to find where to look in the code depending on what you want to add and where to find solutions, help you understand code, show you you can modify Blender to get you started with coding using some simple yet powerful examples.

Q: How stable are the builds?
A: As stable as the buildbots. The new Cycles features and speed-ups are well tested in real use cases since half a year. It was tested on a 1080Ti and a Vega 64 with drivers from this summer. If you experience problems, which don’t happen on Buildbot, you can report it here, I’ll try to fix them and make it part of the course.

*the builds are offered as is, without any warranty. Blender 2.8x is still very unstable, use it at your own risk. Only available in the extended version.

24 Likes

Awesome. How advanced do ones programming skills have to be to be able to follow the course?

Although the graphic may let you think otherwise, it’s for everybody. It’s more about getting started, with cool additions to get motivated :slight_smile:

The first 3 chapters are for beginners:

  • you will learn to create a programming environment
  • learn to use git, svn, etc. to build Blender.
  • then learn to manage branches, mix them, update them, add patches from the developer tracker to create your own mix, nearly without writing a line of code. It’s actually the main goal of the course, to free users from decisions made by others. At this point, you will be able to green-light features by yourself.
  • the fourth chapters will be about understanding the structure, reading the code, “learn to learn” coding.
  • the fifth chapters will show some examples of optimizing cycles, modify it’s UI and creating a new modifier. To get your feet wet and understand some powerful basics. You will also learn how to upload your changes for review and inclusion if you want.

It’s kept as simple as possible, and you can go as far as you want.

4 Likes

That sounds like everything I´ve been looking for. :two_hearts:

1 Like

Users want more features to get reviewed and included in master (mantaflow, SLIM UV, Cycles scrambling distance or anysotropy SSS, etc…) and are dependant on dozens of builds which only include some, are not often updated, not compatible with buildbots, etc.
On the other side, official devs get a lot of pressure from the user base and on the other side, 2.80 is a monster with already 1300 open bugs (without the features in branches and tracker, which would add even more). And most of the features planned for 2.8 are not even in the current buildbots… So taking times for reviews is crazy.

The 3 first chapters of the course are meant to make both happy. It allows users to benefit of the features they like as soon as they want, mix them as they want and keep those up to date as often as they want. It removes pressure from the devs, so that they can concentrate on stability and quality for the core features, making a more stable base to build upon.

5 Likes

example of possible modifier for quick environment creation:

would that be a good example?

2 Likes

Very cool. Sounds like a good fit for me. Can you give a approximation of the pricing? Because this sounds like I’d like to be one of those early adopters.

Could you release this “curve to terrain” modifier as an add on? I’d gladly buy it

It will depend a bit how many people show interest. So, the more you spread the word, the better it will be. I wait a bit to get an idea of the number of students to make a first approximation.

Short version: yes but it would loose most of it’s interest.
It will be way slower and non-interactive. Even in 2.8, there is no way I know to have an operator running in the background (to trigger a computation on every change) without killing perf. Another thing is that curves are not meshed, so the addon would have 2 permanently double the object number. One version being the curves, the other one the meshed version. Modifiers on the other hand allow much more.

That’s the point of the course. If you do it to the end, you will be able to not only keep this addition on top of the daily changes, but also add other patches like scrambling distance, mantaflow, etc… having a Blender on steroid with just 5min of recompiling per day if you want something like the buildbot. Much better than an addon, because it will be updated with git, so there is no risk of it being abandoned. And maybe, when you understand the principle, you will be able to add other features like this yourself. Believe me, it’s much easier than you think.

1 Like

@BD3D have you seen curve to meshes in the market? Might be of interest for you.

@bliblubli sounds reasonable. Looking forward to hearing from this.

Thanks a lot for the response

Im brand new to code, I don’t understand why a custom build is better than the default one, and why blender devs don’t make blender faster if visibly it’s as easy that a beginner can do it with your course?

With the default build, you get only features that meet all this criteria:

  • the big boss wants it (google about colored wireframe for example, but their are others cases like that)
  • other devs approve (see fracture modifier, rejected just because it creates many independent parts… like the instance modifier, ask the fracture modifier devs what they thing about the reason they see there code postponed for years.)
  • find enough reviewer time (go through the tracker to see how many great patches are taking dust since years, I have 2 of them, which make OpenCL rendering 30% faster open since 4 years iirc)

The course makes the C/C++ patches like addons. You will just have to “install” them from the branches like mantaflow or scrambling, or from the patch tracker like this one for example https://developer.blender.org/D3094 and it will stay on your version. It will only cost a rebuild (5 minutes on windows, 2 minutes on Linux) and maybe some small manual fixes once a month, when someone else modify the same part as one of your patches or a function was renamed internally, all of this is explained in the course.

Other reason why it’s easy for you: because you don’t have to follow strict standard for coding, the only goal is that it works and is stable. The last features I made for cycles was 4 lines big, but it took many weeks of review, one bug hunting and fix, plus a rewrite of another part of the code to get in master… The main devs know what has to be done, just don’t have the time to do it and won’t have it anytime soon with 1300+ bugs opened https://developer.blender.org/maniphest/project/2/type/Bug/ … and it’s only the beginning of the beta phase, most bugs aren’t even discovered.

2 Likes

wow… I want this.
I hope you advance to intermediate and advanced level after beginner version, cause I have some ideas to implement as modifiers, but I dont know where to start and I dont understand very well blender source code structure.

thank you

If the beginner/intermediate course works well, I’ll do an advanced one of course.

1 Like

Wow this sounds awesome. :slight_smile:

I’ll be keeping an eye on this. This is the kind of stuff I and many others have been asking for.

The poll showed that as many people want a ready to use build as people wanting to learn how to do it themselves. So I’ll make a build, which will get 1 year of updates for free every week. You can win a free version over there if you guess right :slight_smile: : E-Cycles - Faster cuda rendering

This is awesome!
Will there be any section on the interface and ui and how to customise it?

It’s planned, yes.

To all, Blender 2.8 is very unstable still. I got one file corrupted today while preparing the course. And it crashes very often. So I think it would be much better to learn on a stable base with the 2.7x branch still. When 2.8x is stable, I would then update the course for the parts that changed (the 4 first chapters and half of the fifth are 100% the same on both branches anyway.) Would that be ok for you?

2 Likes