[Bf-python] New here but...

Willian Padovani Germano wgermano at ig.com.br
Tue Jun 8 06:28:32 CEST 2004


Hi Blake,

Joe and Stephen already answered your questions -- and let me reiterate that we
don't feel offended that easily, we're a nice group ; ).

Blender Python has had many incarnations since the first one.  When it got open
sourced all of them were there, like in intern/ and in source/blender/bpython,
plus scripts elsewhere, quite a mess to understand.  Michel came in and boldly
(if he knew how much work that would mean :) decided to rewrite the last
available API, the 2.25 Blender Publisher one in C, then other coders came in to
help and here we are.

Before 2.25 there was an API written in C, that was documented in the 2.0
Blender book, the one that had NMesh, Draw and BGL, modules we kept / updated
for current bpython.  2.25 was actually being rewritten in Python, as a layer on
top of this previous API: Mesh, for example, was a wrapper of NMesh.  This was
an intermediate solution to get something done in time, it would eventually be
rewritten in C.

The two main problems with 2.25 were:
- it was left unfinished -- worse, it wasn't clear what it should become in the
end, we didn't have the original programmer's plan...  The code was also full of
macro magic and tricks.  Add all that (or take a look at some old cvs snapshot)
and you'll know why Michel decided to rewrite from scratch.  And as Stephen
wrote, to interface with the embedding program, we need at least a C layer.
- it used a method to bundle Python code as a standalone program: it was
"frozen", and this was troublesome to build / maintain, since Blender must
compile in many platforms.

So here we are with a clean and fast C API.  On top of it we can add some python
modules, no doubt, with helper functions.  That's Python, after all, the lib is
a mix of C, C++ and Python code modules.

About the docs, yes feel free to work on improving them, we surely welcome that.

--
Willian, wgermano at ig.com.br




More information about the Bf-python mailing list