When I was studying Computer Graphics as an undergraduate student, I saw many people doing their research or course project in an ad-hoc way: the implementation is not designed carefully, the sample test data are hard coded and it is not easy to visualize the experiment result.

This is fine for a tentative implementation of a paper or a course project. But I think we could do much better with only a little extra effort by using Blender.

In the fields such as Computer Graphics, Computational Science(fluid simulations, FEM simulations), with the help of Blender, we can:

  • Build experiment data in an intuitive way. For example, we can put an object in the scene by drag and drop rather than hard code its position as (1.414, 1.414, 0). This boosts our productivity.

  • Make use of Blender’s rendering system to produce publishing-quality demonstrations. This can be useful for physics simulation projects.

  • Make use of tools from Blender to boost productivity further. For example, the Python binding is more friendly than C++ as a programmable interface.

Besides, by fitting your implementation into Blender system, your work can reach much more users, including artists and developers from industry.

In the following several weeks, I will learn how to achieve my goals. Concretely, I will:

  • Learn how to write a simulate modifier. A good example is the Particle System modifier. I will also learn how caching and baking work. The Cloth modifier may worth reading as well.

  • Learn how a modifier interacts with others in a scene. We will look at Particle System/Cloth and Collision modifiers to learn how to do collision detection/handling among objects in a scene.

  • Learn how to add a new context editor. By “context editors” I mean the properties panels such as Render, Render Layers, Scene, World, Object, Constraints, Modifiers, Data, Material, Texture, Particles and Physics. This is optional but it would be more clear if we group logical related properties in a separate context.