Jul 27 2009

Thinking in the overlap

Henrik Bennetsen

We have been pretty excited about our embedded browser Berkelium and it was good to see Patrick pull the trigger on it. Within our group there is an emerging sense that this technology is going to mean something and I wanted to start sharing a few thoughts-in-progress on this.

Imagine two circles where one is the web and the other represents virtual worlds/immersive environments/3D spaces (this includes the game space). These circles overlap but only very little at this point. Basically Berkelium is an attempt to push these two circles closer together. Lets put the 2D vs. 3D discussions behind us and explore the synergy that lives in the overlap.

During the course of the work on the Sirikata platform I have become increasingly interested in what happens in the webspace. HTML5 looks exciting in large number of ways as does dramatically faster javascript. Both these are central to driving the emergence of rich internet applications. These used to mainly be converted from the desktop but now a new wave (pun intended) with a web native feel is emerging. These born are born in the cloud and works in real-time.

Whether you look at the underlying technology or the resulting apps there has never been a better time to explore the overlap. With Berkelium in place we have started to build the foundation that lets us leverage advances in the webspace. The ultimate goal is to figure out the ecology that takes collaborative 3D to web-scale.

We think that lots of smart thinking is needed to move this forward. For the same reason we choose to make the open source & cross platform Berkelium available as a standalone library so that other platforms may integrate and contribute to it as well. Think smaller piece of a larger pie.

To be continued (but feel free to join in now)

Jul 25 2009


Patrick Horn

Over the past three months, we’ve been working on a new BSD-licensed browser engine called Berkelium. Berkelium is a library that provides off-screen browser rendering via Google’s open source Chromium and takes advantage of Chromium’s multi-process rendering engine, allowing us to safely isolate browser instances.  Best of all, it is independent of Sirikata—you can incorporate it into any project to get a simple, easy to use API for off-screen web browsers.  We’ve started using it in Sirikata to allow arbitrary 3d objects to contain browsers, and in the future, objects may be able to run a user interfaces and even entire object scripts within the sandbox of a browser window.

Berkelium should support plugins, but currently that support is limited to Flash (on all platforms). Hopefully many needs will be addressed by new features in HTML5. For those that aren’t, we believe Flash is able to fill the gap. (For the curious with some spare time, it may be possible to use a hooked HDC on Windows, and to use the X11 Composite extension to render plugins to OpenGL on Linux. However, we suspect enabling arbitrary plugins and programs in this way would take a good month of work to get right.)

And, of course, we wouldn’t leave you without a demo of the browser in action in Sirikata: