[QUESTION] How to understand Blender?

Good night:

I am currently studying graphic computing and saw your Blender project and i would like to start to study in order to collaborate in a future.

I saw that it was Open Source and I would like to start studying it, however my computer graphics knowledge is still very poor. Do you have a book or reading that you can recommend to understand more about your project or graphic computing?

Thank you

Please see this other post: Building a mental model of Blender code set

Also, your question is far too vague to answer. Do you want to help develop Blender? If so, which part/feature? What languages do you know? Do you want to learn to use Blender? Or did you want to develop Python addons for Blender?

Anyways, this is a good video to start with (It isn’t Blender): https://www.youtube.com/watch?v=ih20l3pJoeU

Thank you for your answer and sorry for my English:

Yes, i would like to help develop Blender in a future, but i’m noob in copmputer graphic area, so i’m starting to study the area, how to program, and understand how it works

Thanks for the clarification. It wasn’t bad English, I just wanted to be sure about the nature of the question.

And honestly, it was kind of a leading question – learning to use Blender and write its Python API are both good ways of learning and understanding Blender. Very likely, there’s a specific feature or workflow in Blender that excites you, or some feature that isn’t in Blender that you want to add. Maybe you don’t even know this yet! You’ll find something that excites you if you spend some time learning this basic stuff.

The fist thing to do, in any case, is build Blender.

Once you decide on a first project, start looking around the module page on developer.blender.org and read the commits and the discussions (don’t add discussion unless it is appropriate; some tasks are only for code discussion by module members). You can contact some of the developers on blender.chat . And of course, there’s no substitute for reading the code, and trying things out the old-fashioned way: trial and error.

1 Like

Blender is the most 3d app on youtube with tutorials.
all are very good to watch, and if you want to learn, I recommend watching them all, even if they are repeated (first 8-10 in the list)

1 Like

Thank you for your answer it seems that i must log in there again, isn’t it? Is the same account than here?

You do not need to make an account or interact with anyone on developer.blender.org to build blender. You just need git, svn, cmake and a C++ compiler. If that seems like a lot just follow this guide: https://wiki.blender.org/wiki/Building_Blender/Windows.

If you already know some C/C++ or Python and want to make changes but don’t know what to do: ask the developer chat (use the login you used here): https://blender.chat/channel/blender-coders

If you do make changes to blender and want to share it then you will need to make a phabricator account for developer.blender.org account (which is a different account from your blender-ID). Just keep in mind that code review is not for everyone and takes a lot of commitment and communication skills and lots of time. Don’t worry about that yet. Just learn your way around the codebase.

1 Like

Thank you for tour answer in fact i am currently reading those these two books:


I found this algorithm for extrusions:

However i don’t understand it and i wonder to know how Blender handles the extrusions. And know if reall uses euler operators

Thank you

1 Like

Here is the source file for extrusions. https://git.blender.org/gitweb/gitweb.cgi/blender.git/blob/refs/heads/master:/source/blender/bmesh/operators/bmo_extrude.c

You should be able to set some debug points in your build environment to inspect it step by step a bit more. Just keep in mind that blender is a production product with a lot more going on in order to support more complex models/data. While it is more commented there will also be a lot more boilerplate code.

Learning from it is fine but just remember: If you are building your own or working on someone elses project DO NOT use any snippets from blender in outside projects! (unless the file doesn’t fall under GPL and you are able to comply with it such as an external library or a part of cycles).

Hopefully that helps.

To understand the code the Kenzie pointed at, it would help to read the BMesh Design documenation. There are some Euler functions way down in the code (in bmesh_core.c), but most Blender operations don’t use them directly.