Google Summer of Code Wrap up: appleseed
January 30th, 2015 | Published in Google Open Source
Today’s Google Summer of Code (GSoC) wrap up comes from François Beaune at appleseed HQ, a team of rendering engineers and visual effects professionals creating free and open software for producing impressive computer graphics and animation.
appleseed is a modern rendering engine designed to produce photorealistic images, animations and visual effects. Our first stable release (coming later this year) will provide individuals and small studios with an efficient, reliable suite of tools built on modern foundations and featuring industry-standard open source technologies such as OpenEXR or Open Shading Language.
We began work on appleseed in May 2009 and it has proven stable and robust enough to render Fetch, a well-received short film, as well as the computer graphics for two BBC Four documentaries aired in 2014: Light and Dark and Bright Lights, Brilliant Minds: A Tale of Three Cities.
We participated in Google Summer of Code (GSoC) for the first time in 2014. Two students worked with us to implement important new features.
Project 1: Curve Rendering
Our first student, Srinath Ravichandran, added support for curve primitives to appleseed which can be used to efficiently render hair and fur. Since scenes with hair or fur often contain millions of curves, memory footprint and rendering performance were the two major challenges with this project. Curve rendering is a vast topic, so Srinath decided to focus on the storage and intersection aspects. We thought this would be the ideal starting point for a project that could extend well beyond the summer.
Our project proposal suggested an efficient algorithm for direct, tessellation-free intersection of Bézier curves that we thought was promising. After studying the research paper on which it was based, Srinath implemented and integrated it into appleseed’s rendering pipeline. Working closely with his mentor, he made steady progress throughout the summer and merged his code into the main repository on a regular basis.
Project 2: New Material Editor
appleseed comes with a graphical tool, appleseed.studio, which allows users to inspect and tweak scenes during interactive rendering. appleseed.studio is a cross-platform application written in C++ using the Qt toolkit.
Our second student, Marius Avram, chose to develop a new material editor for appleseed.studio that would let artists create realistic materials quickly and adjust them through intuitive parameters and instant visual feedback.
Beneath the surface, the new material editor would create materials based on a new surface reflection model developed by Disney Animation Studios and recently implemented into appleseed.
This project presented two main challenges. First, the new material model, based on individual layers, required development of an elaborate user interface. Second, the material editor had to be hooked into appleseed.studio’s entity editor to benefit from existing functionalities such as live editing during rendering.
Marius also completed his project successfully. We again made sure to merge his code often to give him and other members of the community a sense of achievement and progress.
We consider our participation in GSoC 2014 a success. It required significant efforts from both students and mentors, but the end result was two major new features and great progress towards the first stable release of appleseed.
Rather than merging the code into the main repository at the end of the summer, doing it regularly proved a significant morale boost to the students. It also exposed problems early and allowed us to gather feedback and ideas from contributors that weren’t involved with GSoC.
We are now looking forward to next summer. We have many interesting project ideas for students interested in computer graphics or high performance software!
by François “Franz” Beaune, appleseed founder and organization administrator