Create your own Blender, with new modifiers and faster rendering

commercial

(mat) #1

Learn to create your own Blender to improve 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 available in English, (French and German will follow), for Windows, Linux and Mac. It’s meant for everybody, even if you never wrote a line of code.

You can get 10% off until the end of January.

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

You will learn:

You will get:

  • the build with the Cycles patches for 2x faster cuda and 1.15/1.2x faster OpenCL (already available)
  • the source code (already available for the cycles part and 1 modifier)
  • the documentation with the commands, links for the tools, some nice addresses to find some treasures :slight_smile: etc.
  • Blend files like the one with the shells (see video) to test the additions you do during the course. (already available)
  • A batch script for windows to automate some tasks. (already available)
  • The videos for the 4 first chapters for Windows, Linux and Mac in English (already available), French and German. The chapter 5 will come slowly on the product page. As of today (06.01.2019), you can already learn to add patches from developer.blender.org and other sources, add the modifier showcased above, customize the UI and add Auto tile size to Cycles by yourself.

Detailed content:
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 flavor 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 the 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
    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 languages and/or code base
    c) Playing with code

Bonus: Further readings to go to the next step.

FAQ:
Q: Which version of Blender is in the course?
A: Both, 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 it. You can then do portable builds that you can run on your beloved distrib.

Q: What is available at the moment (starting 01.01.2019)?
A:

  • The 4 first chapters are ready. All commands and links are available to copy paste in a text file, with a pdf to print for reference. So you can create the full build now, with all the optimizations, the new UI and the new modifier. The fifth chapter will come later this month and show how to get started in a new area of the code, to help you apply what you learn to whatever you like.
  • As a bonus you get also a batch script to automate some task on windows and tests files to play with your new modifiers.
  • The builds with all the modifications is already available for Windows and Linux and in source form.
  • You also get the diffs for each addition, to add what you want.When the course is finished in English, German and French will follow.

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 is the build?
A: As stable as the buildbots. The new Cycles features and speedups 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.


E-Cycles - Faster cuda rendering
Poll: tutorial to build custom Blender or ready to use builds?
E-Cycles - Faster cuda rendering
[Poll] Learn to create your own blender with new modifiers and faster rendering
(Lumpengnom) #2

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


(mat) #3

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.


(Lumpengnom) #4

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


(mat) #5

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.


(mat) #6

example of possible modifier for quick environment creation:

would that be a good example?


(Markus Mayer) #7

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.


(Dodododorian96) #8

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


(mat) #9

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.


(mat) #10

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.


(Markus Mayer) #11

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

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


(Dodododorian96) #12

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?


(mat) #13

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.


(wilBr) #14

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


(mat) #15

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


(spydurhank) #16

Wow this sounds awesome. :slight_smile:


(Cheinu) #17

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


(mat) #18

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


(Olsh) #19

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


(mat) #20

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?