GSoC/GCI Archive
Google Summer of Code 2013

Blender Foundation

Web Page: http://wiki.blender.org/index.php/Dev:Ref/GoogleSummerOfCode/2013/Ideas

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

[IMAGE http://download.blender.org/mango/screenie.jpg]

Blender is the free/open source 3D creation software for everyone, providing individuals and small teams a complete pipeline for 3D graphics, modeling, animation and games.

Blender is being made by 100s of active volunteers from all around the world; by studios and individual artists, professionals and hobbyists, scientists and students, vfx experts and animators, and so on.

All of them are united by an interest to have access to a fully free/open source 3D creation pipeline. Blender Foundation supports and facilitates these goals - even employs a small staff for that - but fully depends on the online community to achieve it.

Since 2005, Blender Foundation has organized four short films and a game project, which helped Blender tremendously to get more accepted by professionals in their daily work.

We invite students to think of ways to help us with this further. If your passion is with 3D coding, creativity tools, scientific simulation, or anything related to Computer Graphics in general, feel welcome to join us!

Projects

  • BGE Level of Detail and Bug Fixing/Polishing This proposed project intends to be mostly a bug fixing and polishing project for the BGE, similar to some past Blender GSoC projects. However this project also contains a level of detail system to allow Game Engine artists to make more efficient use of system resources.
  • Cycles - Add new shader nodes and shading features The Cycles render engine has a great feature set already, but there are a lot of smaller ones which are missing and have been requested by the user base for some. I'd like to work on some of them and add new shader nodes and shading features to the renderer, to make it even more versatile for the users.
  • Dependency Graph and Evaluation Engine Refactor For many years, Blender’s dependency graph and evaluation engine has been long overdue for refactoring. Despite various key subsystems in Blender having already been refactored to become more flexible and powerful in the hands of skilled artists, it has become increasingly clear that artists are currently unable to fully harness the full potential capabilities of these tools due to limitations imposed by the current dependency graph engine. This project aims to investigate and resolve the various design issues involved in creating a new future-proof dependency graph system, and will result in an initial implementation of relevant core components.
  • Expand and improve Blender's motion tracking module The motion tracking module is a young but important aspect of Blender and has much room for development. I plan to focus on multicamera solving and reconstruction from footage with variable focal length. In addition, I will make various smaller improvements to the motion tracking workflow and interface.
  • Painting tool improvements This proposal will target usability, feature and system design improvements for blender's paint system
  • Rigid Body Simulation Improvements Since version 2.66 blender has a rigid body simulation integrated with the animation system. While it works well for simple cases, there are several limitations that make more complicated setups difficult or even impossible. This projects aims at improving this system.
  • Sketch Mesh Editing The mesh editing is generally done with affine transformations, Blender3D offers some tools to transform the vertices as “proportional editing object mode” with which the transformation of some vertices is interpolated to the other vertices connected with the use of simple distance functions. This project proposes to implement a method for mesh editing based on sketching lines defines by user and preserving the geometric details of the surface.
  • Texturing for Volume Rendering in Cycles Volume Rendering can be divided in texturing and in shading - this project aims to implement part of the texturing required: creation of the 3D texture Voxel Data and integration of the OpenVDB library to use its grid representation for the volume data, all in the new rendering engine, Cycles.
  • Threaded dependency graph This project is about improving dependency graph and scene update routines to make multiple (independent) object being handled in multiple threads. For example, multithreaded scene update will increase playback speed when having multiple characters animated.
  • Towards a full action replay system This proposed project aims to bring several enhancements to existing code with the objective of making full action replay possible in the future. More concretely it aims to finish the macro system, enhance RNA descriptions, fix operator re-execution by capturing contexts, and implement a user action log system for visualisation.
  • Viewport FX II This is a proposal to continue updating the way Blender draws to the screen. Blender relies on an older version of the OpenGL graphics library that is no longer fully supported by hardware providers. For this reason, when new generations of graphics cards are released, Blender will not fully benefi t from the increases in capability and performance. In addition, new mobile devices show every indication of becoming the primary means by which most people use computers. For this reason, Blender and its game engine should be made to work with OpenGL ES, which was designed for those kinds of systems.
  • VSE Improvements Video Sequence Editor will be redesign to be closely integrated with the rest of Blender while having cleaner API. Underlying structure will be significantly modify for cleaner and optimizable code. To achieve better playback performance, multithreading will be employed with later gpu extension . Also it will share compositor nodes for effects and transitions. It will have updated fast visualization.. I will add video preview (with playback) into file browser and strips (many snapshots) for easier feedback. Dynamic slow motion might be also implemented.