blender 2.5x core design, overview needed !

hi, i’m really interested about the blender core, i mean the C code related to the main functionalities before it’s built !

Also, i suppose that the 'core" need a minimum amount of python module to work, which ones ?

First, can you help me to find the main doc about the core ? can you help me to select the minimal list of files needed for build ? ( i get the source for 2.53 but there is so much files unecessary in there, … i think !)
do you know a way of getting only what in necessary ?

2d, i start to represent by graphic the interconnection between blender core files and ext libraries ? can you help me also ?

What is about the API ? i want to learn… is that the “link” between the core and module ?
is that mean the core must be first extended from API before modules or not ?

i’m sorry to ask such questions but i’m 100% into blender prog now and i need an overview of the full system…

notes: i’m not a blender coder, i’m using python for apps dev. but not with blender anyway, so i really need to understand…before entering into script/plugin dev.

Thanks anyway !
a+ :rolleyes:

wait… what? you want to understand everything about the source code of blender. before you actually start coding?

besides that I have a hard time knowing exactly what you mean, or want to get across.

Anyways, what I did was single out a specific task I wanted to achieve and focus on that only, dug into the docs, asked for help in #blendercoders channel on irc. And little by little you learn the structure of blender.

There are some flowcharts or, design patterns out there on under developer section I found helpfull.

No modules are writtin in python as far as I know either. it’s all C. but what you could do if you have prior python experience is use the API and write your plugins in Python can use the functionality exposed via the API for python.

That could be a good way to quickly write something for blender, learn. refactor the code. And in the future pick up C , get to see blenders source code from within and re-write your plugin from Python but now to C …

Ehm I don’t know if I made any sense there.

i actually don’t want to code C within the “core”, noway, i cannot learn about C now, but to work with python in relationship with that core !

the thing is that i lost myself into the blender source because there is a lot of duplicate files !


I don’t quite understand what you mean by getting only what is necessary. I don’t recommend to try and take out parts of blenders code it will only give you headaches especially if you aren’t familiar with it.
If you don’t want do gather all the dependencies you can configure the build system you use to exclude some of them.
I hope you read this:

There is not that much of external documentation for blender. Everything that is there you should get from here:

Be aware however that not everything is accurate, some is out of date or never has been implemented.
To understand most parts of blender you have to go through the code yourself or read the commit logs and ask one of the developers.

If you want to work in python (but not on the python api itself) you shouldn’t need to know much about blender’s “core”.
The python api documentation is here (make sure to read the introduction):

If all you want is the blender python C api then it’s (almost) all in the source/makesrna folder.

If all you want is to program in python then you don’t really have to worry about the ‘blender source’ at all and only need to look at the docs for the python api.

If you just want to learn the structure of blender’s source… “it’s more like a big ball of wibbly wobbly… time-y wimey… stuff.”

Uncle Entity, does Blender have clear entry-points for the BI render code or is spread out all over the place?