Labels

Most content on the web today is in 2D, but a lot of information is more fun and useful in 3D. Projects like Google Earth and SketchUp demonstrate our passion and commitment to enabling users to create and interact with 3D content. We'd like to see the web offering the same type of 3D experiences that can be found on the desktop. That's why, a few weeks ago, we announced our plans to contribute our technology and web development expertise to the discussions about 3D for the web within Khronos and the broader developer community.

Today, we're making our first contribution to this effort by sharing the plug-in implementation of O3D: a new, shader-based, low-level graphics API for creating interactive 3D applications in a web browser. When we started working on O3D, we focused on creating a modern 3D API that's optimized for the web. We wanted to build an API that runs on multiple operating systems and browsers, performs well in JavaScript, and offers the capabilities developers need to create a diverse set of rich applications. O3D is still in an early stage, but we're making it available now to help inform the public discussion about 3D graphics in the browser. We've also created a forum to enable developers to submit suggestions on features and functionality they desire from a 3D API for the web.

If you are interested in learning more about O3D, you can visit our site, subscribe to our blog and join our discussion groups. We also invite you to join us at Google I/O (May 27th -28th), where you can see presentations about O3D and meet with the team.

21
comments:

curious how you go about building levels... will their be some sort of level editor that allows you to place assets or is all this code driven... Im a game designer and have created many levels for games... be interested in working on something like this.

More than anything, I'd like some explanation for why you felt the existing 3d api's were not adaptable for use, and why a new API was required. What was necessary that couldnt be done with an existing API, and what advantage was there in creating a new API?

As the previous posts point out, there have been numerous unsuccessful attempts to create 3D browser plugins with support for 3D scene graphs, data models and API's. Some of the elements that these previous technologies were missing was the fact that they lacked an easy to use, free and open 3D content creation tool. Google sketch-up solves that problem to some extent. It needs to go a long way though on the modeling and rendering front, for it to be widely adopted. The other and more crucial element, I believe, is that all these earlier technologies were missing was their inability to create and sustain Life. By Life I mean they were unable to sustain a living community around these technologies. If Google makes this mistake with O3D, it will fade away into oblivion just like its predecessors. If O3D has to succeed it has to create and sustain a community a la Facebook, Or Youtube. Historically Google has not been very successful at this. To not repeat this mistake again with O3D, google must create a web 2.0 (3.0?) site (I haven't thought about google leveraging youtube OR picasa for this purpose though) and nurture a community around it.

This site should allow people to create and upload 3D content. Allow them to share 3D content online. Allow them to search for 3D content. Allow them to discuss about 3D content. Allow them to share 3D apps built around O3D. Allow them to buy and sell 3D content and Apps. Allow people to personalize this site and create a particular context, may be for their particular store selling furniture (as one of the O3D examples illustrates), OR may be for their store selling machine tools OR may be for a store selling 3D-simulation/data visualization apps!

If Google can do this with O3D, O3D has a bright future. Else its doomed to meet the same fate as its predecessors.

Its a great tool that google has developed.I am a civil engineer and I have worked in developing terrain modeling,road design software,I would like that o3d enable engineers to work online with huge database that is available online... best of luck!!!

@3D: if you want to run your plug-in on more than one platform, you really need to somehow virtualize your 3d calls. Google is not working for one platform (ie for your PC), but for every web-able devices/os in this world. Smartphone probably included. BTW, concentrating only on OpenGL is already a pain, between the various system embedded OGL 1.2(Win), 1.4(Lin), 2.0, 3.0 and OGL ES... Without speaking the high level of this...

Regards.

PS: even in the game industry, nobody's writing straight low level API (DX/GL) in their code, if they're targeting more than one console. really.

I don't think that OGL 2.x bindings for JavaScript would be a great idea.

Even with JIT compilation JavaScript isn't fast and flexible enough to use a library that was designed for native Code written in C.

Also I doubt, that all this OGL extension hell would make multi-platform (browser based) 3D engines feasible. How many OGL 2 based 3D engines exist now that support Windows, Mac OS X and Linux (as native code applications)?

I guess OpenGL 2.x will be outdated by the time O3D is gaining broad acceptance. But it wouldn't gain acceptance in the first place, if it was based on OpenGL 3 just now. Also if it will target handheld devices, it would be useless to target OGL 2.x or 3.xbut not OGL ES 2.x.

I think a scene graph is a good compromise between low level APIs and ready-to-use game engines.