GSoC/GCI Archive
Google Summer of Code 2010

Blender Foundation

Web Page: http://wiki.blender.org/index.php/Dev:Ref/GSoC/2010/Ideas

Mailing List: http://lists.blender.org/mailman/listinfo/bf-committers

The Blender Foundation is an independent organization (a Dutch "stichting"), acting as a non-profit public benefit corporation, with the following goals: * To establish services for active users and developers of Blender * To maintain and improve the current Blender product via a public accessible source code system under the GNU GPL license * To establish funding or revenue mechanisms that serve the foundation's goals and cover the foundation's expenses * To give the worldwide Internet community access to 3D technology in general, with Blender as a core

Projects

  • A Proposal to Enhance Blender's 3D Sculpting Tools I propose to add several new features that would enhance Blender's 3D sculpting tools. * Partial Mesh Hiding * Projection Brush * Miscellaneous Brush Enhancements * Layers
  • BGE Shader Work The ability to use GLSL shaders in the BGE has allowed people to do some great things. However, the api the BGE is using for the GLSL shaders is not as flexible as it should be and it does not properly reflect how GLSL shaders are run. I plan to create a more flexible api and add geometry shader support. I also plan to allow users to attach shader scripts directly to materials through the UI for more flexibility and ease of use.
  • Bullet Construction Toolkit The Bullet Physics Engine (bulletphysics.org) is rapidly gaining popularity for use in high-end 3D-production software, studios, and game productions. Currently Blender’s Bullet support is limited baking Game Engine simulation runs, with limited interaction with standard animation features. This project aims to bring innovative and natural setup methods for Bullet simulations in Blender, well integrated into the animation system.
  • Development of Unit Tests for the Blender 2.5 API The goal of this project is to provide Unit Tests for all of the underlying parts of the Blender API. Furthermore, if time permits, this project will attempt to clean up the more stable portions of the Blender API, and expand upon the current state of Blender development documentation. The project will be divided into three main sections, building the tests, converging the tests, and improving developer documentation.
  • Enable Blender to take better advantage of input devices beyond the mouse and keyboard Artists create with their hands. As more work moved to computers, hardware vendors responded by offering sensitive input devices such as graphics tablets and 3D mice. Blender has basic pen support, but more often treats the pen as a glorified mouse. Many tasks beyond paint/sculpt would benefit from an artistic touch. This project strengthens the connection between an artist’s hands and their work by enabling Blender to take better advantage of input devices beyond the mouse and keyboard.
  • Game Engine API The target of this project is to improve the Blender 2.5 Game Engine Python API, the GE in general and port Yo Frankie! to work with it.
  • Multi-resolution Improvements Extend multi-resolution tools to support more than vertex coordinates. This will be accomplished by creating a new type of CustomData that stores a grid of arbitrary CustomData. I will use this new grid CustomData type to implement multi-resolution vertex colors and multi-resolution masks for the paint modes.
  • Proposal for Ptex Integration A Ptex file stores multiple textures in multiple resolutions for each face in the model's mesh. With Ptex in Blender artists can paint textures for arbitrary complex models without worrying about UVs. Intrinsic per-face UVs are used to provide a proper texel distribution. Ptex takes care of filtering textures with different resolutions. Since Ptex has been designed for use with subdivision models using Catmull-Clark, the Blender integration needs to be combined with the multires modifier.
  • Quad Dominant/Full Quadrangulation remeshing tool Given an input mesh, the surface is parameterized or a field is generated, and based on either a low-level or high-level method, remeshing is done which closely follows the overall topology of the input mesh, while maintaining good flow. The output mesh is then suitable for catmull-clark subdivision, sculpting, good deformations in animation etc.
  • Recast&Detour integration Integration of open-source navigation tool kit Recast&Detour into Blender. Such tool enables: 1) pathfinding for Blender Game Engine 2) steering for Blender Game Engine 3) creating and editing navigation mesh in Blender just after creating level geometry 3) export final navigation mesh for using in outside game engine