Dev:Ref/GoogleSummerOfCode/2006/Ideas

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

Note: Google SoC Applications is closed

This year, Blender received a total of 3 grants, and the successful proposals were:

  • Interactive sculpting with multi-resolution models by Nicholas Bishop (mentored by Jean-Luc Peurière)
  • Modifier Stack Upgrade by Benjamin John Batt (mentored by Daniel Dunbar)
  • Sky Generator by Dmitriy Mazovka (mentored by Kent Mein)

General Information

Please note that in order to be accepted for a Summer of Code (SoC) grant, your proposal must really stand out.

The Perl Foundation has written some excellent guidelines for structuring a good SoC proposal, and you should follow them:

http://www.perlfoundation.org/gc/grants/proposals.html

An example of a successful proposal from 2005 is here:

http://mediawiki.blender.org/index.php/BlenderDev/SoCIKProposal

A page outlining all of the 2005 Google Summer of Code projects for Blender is here:

http://mediawiki.blender.org/index.php/BlenderDev/SummerOfCode2005

Requirements for acceptance

  • You must be able to work on your Summer of Code project fulltime for the summer (i.e., no summer school or fulltime job elsewhere);
  • You must prove that you have successfully compiled Blender from source on your prefered platform;
  • You must currently be a user of Blender with a good knowledge of many of the program's features;
  • You must be thoroughly proficient in C. Some projects may be based in C++ or python, so you should be proficient in those languages if you intend to use them.
  • You must be willing to submit weekly progress reports and be available for weekly IRC meetings;
  • All short listed candidates will undergo a brief interview on IRC.

Project Ideas

The following list provides some ideas for projects that

1) a student coder can complete in the time frame given (hopefully not too easy, and not too hard); and

2) either implement a coveted feature request from our user community, or improve upon existing code.

Applicants are also welcome to choose a project of their own design that implements a feature they wish Blender had. We especially invite students to contribute based on their past experience and competences, or based on their current research, so that they can efficiently bring in new development directions for blender.

Be warned though, some areas of the code are scheduled for dramatic architectural changes and are beyond the scope of a Summer of Code project. With this in mind, it may be prudent for an applicant to pass ideas around on the developer's mailinglist before investing a lot of time on a proposal (see link below).

Additional project ideas may be added to this list, so you may want to check this page later as the application deadline looms.

Please note that proposals that have been merely cut and paste from this list of project ideas with little value added will be swiftly discarded.

Import/Export

  • DXF importer/exporter improvements (C)
  • Collada importer/exporter improvements (Python)
  • BVH importer/exporter improvements (Python/C)

Modeling

  • Beveling improvements: improve the tool to work on groups of faces, edges, or vertices, preferably with a robust enough implementation that a 'bevel modifier' can also be created.
  • curve API redesign. The redesign is intended to extend the system to also handle the following: Fix the 3D twisting bug; Adaptive subdivision for render; More editing tools such as inserting a CV at a chosen place on a segment, while keeping the shape identical, and vice versa; Make the various bevel and taper features into modifiers for better control; More modifiers for curves (e.g.. the mesh ones like mirror, or a smoothing modifier); Integration with mesh modifiers like subsurf via the 'derivedmesh' output (i.e. the polygonalized result of bevels/tapers).
  • Enhancements for 'crazy space'. Editing meshes and other object types deformed by any combination of armatures, lattices, curves, etc. should be rock solid. The student that handles this must be particularly gifted, as it involves advanced geometric problems (for example, calculating an 'inverse' for a Catmull-Clark subdivision surface).

Rendering

  • Improve performance of raytracing (for example, through better spatial organization). The applicant must have a solid understanding of octrees/bsp/kd-tree/etc.
  • Photon mapping for caustics and subsurface scattering.
  • Render export/plugin API: extend Blender to have better access to external renderers, including pixie, aqsis, prman, yafray, povray. The applicant should have good knowledge of the Renderman standard, and basic knowedge of yafray/povray.

Animation

  • General usability analysis and clean up of the NLA window to provide the animator with a better working experience. Relationship of this window with the other animation editor windows should be revisited.
  • Stride/path/etc character animation. The current stride system still leaves a lot to be desired. It's easy to get foot slipping on anything but a straight line and it's very very difficult to edit or change timing afterwards. Perhaps the ability to key an object or base bone in space, then the stride actions would be filled in automatically between those keys.
  • Motion tracking - tracking the 3d location and orientation of objects in a video stream. This allows 3D objects to be integrated with live film footage.

Other

  • Font previews/loading - ability to see the font as it would appear in the font selection menu, similar to what is available in the gimp or inkscape.
  • Recode radiosity to be threaded, or implement techniques that improve the realism of the lighting (in a threaded way).
  • Recode texture paint not to use OpenGL. A realtime renderer is desired (for performance reasons) that can update single faces and render to a bitmap.
  • Dimensioning: Some discussion on possible implementations can be found on our mailing list, in particular:
http://projects.blender.org/pipermail/bf-committers/2006-April/014298.html
http://projects.blender.org/pipermail/bf-committers/2006-April/014281.html
http://projects.blender.org/pipermail/bf-committers/2006-April/014276.html
  • Hair styling tools - tools for editing the shape, direction, and length of hair particles. The current system is overly complicated and does not provide a natural workflow.
  • Generic manipulator api covering current functionality and allow custom extensions, for example edit mode/manipulators for Lamps and Cameras. Twiddling buttons in a panel does not lead to a natural workflow for things could be done easily and interactively in the 3D window (such as spotlight size, shadow buffer clipping, etc.).

Important Links

  • Project page:
 http://www.blender.org
  • Developer's mailinglist:
 http://projects.blender.org/mailman/listinfo/bf-committers
  • A guide for new developers:
 http://mediawiki.blender.org/index.php/BlenderDev/New_Dev_Info