Dev:Ref/GoogleSummerOfCode/2008/Ideas

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

General Information

Student applications for Google Summer of Code (GSOC) will be accepted at Google's GSOC website between March 24 and March 31! See the Summer of Code FAQ's page referenced at the end of this document.

In order to be accepted for a Google Summer of Code (GSoC) grant, your proposal must really stand out. Student applications are submitted at the Google Summer of Code website: http://code.google.com/soc/

Important! We ask that you follow our application template when writing your proposal:

http://wiki.blender.org/index.php/BlenderDev/GSOC_Application_Template

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

The Successful applications for 2006 can be found here:

http://wiki.blender.org/index.php/BlenderDev/SummerOfCode2006

The Successful applications for 2007 can be found here:

http://wiki.blender.org/index.php/BlenderDev/SummerOfCode2007

Requirements for acceptance

  • You must be able to work on your Summer of Code project full time for the summer (i.e., we will favour applicants who have no summer school or full time job elsewhere);
  • 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 currently be a user of some 3D graphics program, with a strong knowledge of 3D concepts. All other things being equal, preference will be given to Blender users who have good knowledge of many of the program's features;
  • 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;
  • Preference will be given to those who can successfully compile Blender from source on their preferred platform.



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.


Math Library

  • Make function names and argument order consistent.
  • Add missing functions and add operations commonly used in Blender into the API.
  • Profile/Optimize it, e.g. using sqrtf instead of sqrt, SSE/Altivec/.., while keeping things cross platform.
  • Document the functions in the math library.
  • Document Blender's matrix order convention, camera transformation, viewport transformations, armature bones transformations, quaternions and eulers, .. , for C and Python developers.

Node Compositor

  • Better multithreading by processing images in tiles instead of one thread per node.
  • Better integrate transformations and procedural textures.
  • Improve color correction tools with better nodes.
  • Make nodes more interactive, e.g. based on picking colors in the image adjusting similar colors.
  • Instant feedback while dragging buttons.
  • Clear up alpha premul/non-premul confusion with a single consistent standard, while keeping backwards compatibility (e.g. with a premul conversion node).

Automated Test Framework

  • Rendering tests based on automatic image comparisons.
  • Import/export tests, automatically comparing data.
  • ..
  • Integrate unit tests into the build systems.
  • Provide bug fixes to make tests pass.

Blender Tracker todo list

  • Dependency graph cleanup and upgrade; allow loop solving, render-dependency
  • Generic cross platform path/string library (for/backwards compatible by prepending struct)
  • Derivedmesh + Modifier module cleanup; create API for, and make opengl Array compliant
  • Modifier node system
  • Armature constraint node system
  • Preview render (3d window) better signalling

Import / Export

  • DXF, autocad compliant im/export
  • Collada: need new maintainer, lots of bug fixes, upgrades, tests
  • FBX import (ASCII, format, so no legal linking problems)
  • (Automatic) Import/Export testing suite

Blender 2.5 todo list

  • opengl-free selection code (objects, points, wires, faces, etc)
  • unified icon drawing system, allowing zoom, vector
  • cross platform off-screen opengl drawing API, with swap-copy
  • fancy drawing API for rounded lines, boxes, AA lines, window edges, softshadow, etc. For use in buttons, menus, nodes. See OSX Aqua features. :)
  • allowing dimensions in Blender (mm, m, inch), on interface level, not data level!
  • translation system update; how are translatable strings being stored and accessed. How can people cooperate on it?


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
  • Google Summer of Code FAQ's:
 http://code.google.com/soc/2008/faqs.html