Considerable work has been done for this release:

 

New or rewritten modules: 

  • New: Mesh, by Ken Hughes. This is a "thin" wrapper of mesh data that should work much faster than the already available NMesh module.
  • New: Key, by Pontus Lidman.
  • The Armature / Bones module and API were completely rewritten by Joseph Gilbert to support the new code for armatures in Blender itself.
  • The Mathutils module API and related types were considerably improved by its author, Joseph Gilbert, who also added the Point type.
  • The Build and Wave modules have been removed, following changes in Blender itself (they are object modifiers now).

 

Additions to existing modules:

 

Main interface:

Let Python initialize the site path (Ken Hughes).

 

- Object:

Support for deform and vertex parenting, by Martin Poirier

.getParentSubName, by lordbosh

.effects (read-only), by Jean-Michel Soler

.protectFlags: support for transform lock, by Ken Hughes

 

- Material:

access to shader data, by Campbell Barton

support for new modes, by Ken Hughes

 

- Lamp:

areaSizeX/Y, raySamplesX/Y, rayShadow, by Campbell Barton

 

- Scene:

support for TimeLine, by Joilnen Leite

 

- Ipo:

let user access ipo by address code in addittion to name (Johnny Matthews)

 

- Image:

.getPixelI, .setPixel[IF], .getMinXY, .save, by Austin Benesh

New(), GetCurrent(), image.start/end/speed/packed, by Campbell Barton

 

- Curve:

support for Taper objects (Toni Alatalo).

 

- Mathutils:

line intersection, triangle area, tracking quats from vectors, some normal calculators, by Martin Poirier

 

- Key:

get names of shapes, keyblocks, by Toni Alatalo

key.ipo, by Johnny Matthews

 

- Particle:

getParticlesLoc and New (to link effect to a mesh), patch from Jean-Michel Soler

 

- Render:

.saveRenderedImage() by Joseph Gilbert.

 

- Texture:

MTex additions by Yehoshua Sapir

 

Besides that, many bugs were fixed and the documentation has been updated.

 

Ken Hughes (code and many bug fixes) and Joseph Gilbert, in particular, have made many contributions for this release. Daniel Dunbar made many updates while working on improving Blender internally for modifiers, etc. Stephen Swaney applied many patches and fixed bugs.

 

Contributors:

 

Stephen Swaney, Campbell Barton, Daniel Dunbar, Joseph Gilbert, Joilnen B. Leite, Stephane Soppera, Kent Mein, Johnny Matthews, Simon Clitherow, Mika Saari, Willian P. Germano, Martin Poirier, Ton Roosendaal, Ken Hughes, Austin Benesh, Tom Musgrove, Yehoshua Sapir, Chris Burt, Pontus Lidman, Chris Want, Toni Alatalo, Alexander Ewering, Jens Ole Wund, Nathan Letwory.

 

Scripts:

 

New:

  • Collada importer and exporter by Mikael Lagré (no animation support yet).
  • 3DS importer and exporter by Bob Holcomb.
  • MD2 importer and exporter also by Bob Holcomb.
  • XSI exporter by Elira (with updates from Mal Duffin)
  • Blender Lip Synchro by Benoit Foucque.
  • Shape Widget Wizard by Johnny Matthews.
  • Mirror Bone Weights by Thomas Oppl.
  • Archimap UV Unwrapper by Campbell Barton.

 

Updates:

  • I/O: paths import (ai and svg modules) (Jean-Michel Soler), Wavefront OBJ (Campbell Barton), AC3D, Lightwave (Anthony D'Agostino, importer improved by Alessandro Pirovano), Wings (D'Agostino, importer improved by AdamAtomic (Adam Saltsman) and Toastie), DX8 (Ben Omari).
  • Others: texture baker, disp paint and hotkeys (Jean-Michel Soler); empties to armature (Jean-Baptiste Perin); skin and console (Campbell Barton), discombobulator (Evan J. Rosky).

 

Note about the future:

 

The BPython API team is planning an overhaul right after 2.40's release. The current API is a mix of old and new modules written by different programmers. With Blender and Python (and our knowledge of both) evolving, many of us feel that BPython needs to be reworked.

 

We want to clean it up: remove inconsistencies and nuissances as much as

possible, favoring a more "pythonic" approach, but remaining simple and close to Blender's code, with a simple and well structured API in C. On top of that we can have more powerful and fancy interfaces written in Python, of course.

 

The overhaul will most probably break some already written scripts. This is bad, but it's also a chance to start collecting the updated and new scripts, making sure they are well documented and polished (well tested, no foolish errors, good interfaces).

 

Coders should not worry, though. We don't plan to change that much, the API will basically be cleaned and made nicer, that's all - no big changes planned. Updating scripts, if needed, will be trivial.

 

Those interested are invited to share opinions at the elYsiun and blender.org Python forums and the bf-python mailing list, we want to discuss the improved API before coding the changes.