Starting developing tools for Blender in C?

I am interested in creating some tools and addons for Blender, and I want to do in C(when I can). I am not a seasoned coder but I created some tools-plugins for other apps so I have some experience in general C tools coding and math required for coding certain tools etc.

Most commercial apps provide SDKs (since they do not give away the code anyway) and along the SDKs there comes some sample project files.

I am wondering if there are any sample tool projects out there for Blender that one can start hacking? This is definitely easier than digging into the massive Blender source base.
I have read some docs and topics by seasoned Blender coders, appreciate the effort.


Short answer, no.

Long answer, you can poke around on the patch tracker to see what needs to get added/changed for whatever tool you wish to make but that’s about the closest you’re going to get to ‘sample project files’ I’m afraid.

Better say what part you going to modify, for example i can suggest what source files must be modified to add another material to Cycles renderer, other people know game engine, geometry modificators, compositor, etc. Blender is not single program but more like many pieces around main RNA/DNA scene data structure, and after 10+ year history it too complex to have single SDK, or that SDK size will be same as whole source tree.


Thanks for the follow up guys.

I can see that it is not easy to have sample projects, since Blender does not have a plugin approach as far as I can tell. On the other hand all the commercial SDKs are all about ability to create pluggable executable to the main application. So there can be a scope sample project.


For now I am interested in compositor nodes, deformers and materials.

There is some Python API/ABI for scripts if you want to make small enough changes you can use them. Dont be fooled it not only for Python but any program, Python is required for addon interface, you always can write part of complex CPU intensive addon in C, just use python for Blender Core data access.

Of course not all inner Blender data exposed, for example Cycles render is external python addon with some hacks to get access to node system.

FYI, now Blender got long waited (actually, years) rewriting to very core mesh objects, named Bmesh. Expect big changes to API in next version, up to all old addons will stop working and require rewriting.

This has the right places to go:

IRC is a good place to start to find out who you should be talking to in regards to module owners


Thanks for the replies and help. I have started digging through.