Viewpoint: Rendering

Adam McMahon

Despite all the advances in technology, software rendering is still slow. Of course, the big studios have their rendering farms, but what about small studios or hobbyist animators? For most of us, rendering times hinder our creative flow and cripple our production pipeline. When it comes to rendering large projects, we often have few options beyond the handful of computers in our offices and homes.

How can we get access to more rendering computers? Our friends, family, and colleagues have perfectly fine computers just sitting idle at their homes, and most likely they would be more than willing to share their resources. Yet, how can we quickly and easily utilize their computers to help render our animations?

While there have been a number of Internet-based rendering solutions over the years, they always seemed overly complex. For example, in order to volunteer, the user needs to download special software, install the software, link up projects, and so forth. While the technically minded are able to do this, we want to draw volunteers from all of our friends, regardless of their computer expertise. So, where can we find hundreds of online friends who might be willing to help us render? The answer, of course, is Facebook. By integrating the entire rendering experience within Facebook, we would have a platform that connects animators to a large pool of potential volunteers.

The RenderWeb rendering app works with the open-source Blender animation program.

To address this goal, we are developing a new Facebook application called RenderWeb, which allows artists and animators to upload their animation projects. Once the projects are uploaded, Facebook users can volunteer to render by simply clicking on a Web link. The rendering occurs directly within the Web browser, and preview images are displayed to the volunteer. After the animations are rendered, the videos are made available for the entire community to watch and tag.

While we hope to soon integrate commercial renderers, RenderWeb is currently compatible with the popular Blender animation program. Blender was an ideal fit for this project: It is open source, available on multiple platforms, and has a small binary download (which is great for Web applications). Yet, it was no trivial task to get Blender to work within Facebook. Typically, Facebook applications utilize Web languages, such as Java, JavaScript, or Flash. However, Blender is written in the C programming language. While we could have rewritten Blender into a Web language, this would have led to a buggy and incomplete version of Blender. Instead, we decided to develop a distributed rendering platform based on Java. The rendering does not occur using Java, but instead Java acts as a communication layer between Blender and the RenderWeb server. Java detects a user’s operating system, temporarily downloads the proper Blender version, executes Blender, and then pipes the images to the Web server. All this occurs without the user having to set up or configure anything. Utilizing this method, we do not need to make any modifications to Blender. In fact, the version of Blender utilized by RenderWeb is byte for byte identical to the version distributed by blender.org. Moreover, this modularized approach will allow us to integrate additional renderers into RenderWeb with little effort.

Although it is certainly interesting that Blender can be integrated into a Web browser, the true power comes when many instances are working together to render animations. In RenderWeb, the relationships within Facebook are used to direct the flow of computation from computers to specific projects. RenderWeb allocates projects based on the existing relationships within Facebook. When you are volunteering, a higher priority is given toward using your computer to render your friends’ projects, as opposed to other projects in the queue. Thus, the more friends that an animator has, the higher the potential for computational power.

RenderWeb, which relies on social networking, offers users a free rendering method.

While there will always be members of the community volunteering their computers, sometimes we have an immediate need for significant computational power. To address this need, RenderWeb allows you to automatically update your Facebook wall to inform your friends of projects that need to be rendered. This optional feature posts a link on your Facebook wall that allows your friends to render with just one click. Using this feature, you can easily notify your friends when you have a demanding project in the queue.

In a sense, RenderWeb is similar to cloud computing and online rendering farms. However, while those services are expensive, RenderWeb is free because your friends and the community will share the rendering load. Moreover, since RenderWeb is integrated with­in a social network, it has the added benefit of allowing you to share your animations with the community and bridge new contacts with other animators.

In summary, we believe that social network integration will be a game changer for Internet-based rendering. RenderWeb will connect animators with friends and communities that are willing to share resources.

If you would like to participate in this new arena of social rendering, join RenderWeb at apps.facebook.com/renderweb. You can upload your own Blender projects or volunteer your computers to render. With a shared community effort, rendering will no longer be a bottleneck in the pipeline. We will all have ample computational power to render everything that our production or creativity demands.

Adam McMahon, a PhD candidate at the University of Miami, is the founder of RenderWeb LLC. He can be reached at www.RenderWeb.org.