利用者:Kazanbas/Gsoc2009/Proposal

提供: wiki
移動先: 案内検索

Implementation and Validation of Python Import/Export API

Synopsis

Blender 2.5 Project [1] has been in active development past 6 months. Many improvements have been made and it is a very big step towards robust architecture.  In the light of these great changes I propose a small help to the Blender team.  This project will help implement Python import/export API.

Benefits to Blender

This project will allow to come a little closer to the Blender 2.5 milestone.  Along with new python import/export API, this project will provide scripts using this API.  The scripts may serve in future as example for script developers to write their own exporters and importers.

Deliverables

  • python export and import API completed
  • popular import/export scripts updated to use the new python API:  OBJ, 3DS, XSI and FBX.
  • if there's time left, port other scripts too.

Project Details

Blender embeds Python as a scripting language. There are many uses for Python within Blender of which one is import and export functionality.

RNA is new data API that provides uniform access to editable data. Among many useful features like allowing any property to be animated, it allows Python API to be autogenerated and have all Blender data exposed to Python scripts.

Currently, export API is almost finished. Since export is about reading data from Blender, it is not difficult.  Import API is more complex - you need to create things like objects, meshes, etc so it will take more time because it needs careful design.

In this project I will help Blender developers expose to Python all the functionality necessary for import/export.  Once the API is ready, I will also modify several existing import/export scripts for popular formats to use the new API. Namely, OBJ, 3DS, XSI and FBX. After this is accomplished I will work on other scripts too.

Project Schedule

/April 21 - mid May/
Discuss implementation details and read documentation.  Learn things better to help get started: RNA and the way it's exposed to Python, how pyAPI auto-generation works, etc.

/mid May - August 10/
Work with the core team to finish the export API and then implement import API.  APIs are not actually ready until they're successfully used in scripts. So APIs will be developed in parallel with scripts.

/mid May - mid June/
"Basic" data import/export: objects, meshes, uvs, materials and textures.

/June - August/
"Advanced" data: armatures and animation.

/August 10/
By this time APIs are completed and mentioned scripts are fully functional.

Bio

I'm a 21 year old coder with primary interest in 3D graphics studying as painting major.  I started programming at the age of 16. Since then I developed a strong interest in 3D graphics programming and game development.

I have helped (a little) with Blender 2.5 development porting a few operators for armature editor.  This experience helped me better understand new Blender concepts like operators and RNA.

On my homepage [2] you can see a coding example, which I wrote with my brother. It is a 3D program coded in C++ featuring skinned animation and a simple pathfinding algorithm.

Among 3D graphics programs I choose Blender for it being open-source, versatile and unique. This project allows me to give something back to the Blender Project.

References

[1] About Blender 2.5 Project http://www.blender.org/development/current-projects/blender-25-project/

[2] My Homepage http://arystan.abani.kz/jom/index.php/arystan