Introducing O3D

Monday, April 20, 2009 | 7:58 PM

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.



A video of the O3D Beach Demo

Posted by Matt Papakipos, Director of Engineering and Vangelis Kokkevis, Software Engineer, O3D Team

20 comments:

Gateway said...

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.

Unknown said...

Why not provide OpenGL 2.0 bindings instead, or with o3d.

Also o3D looks like it was developed by non-3D graphics/gaming experts.

We want to use OpenGL 2.0 APIs directly within a browers why not provide bindings as part of the standard?

The last thing we need is some weak and limited and dumb scene graph implemenation -- that is graphics for babies approach, where is the next evolution approach here?

If Google engineers want to play around with graphics fine, but why does that have to be releaed to the world as a standard, this is entry level work here.

Sorry, try again, hopefully you'll get some experts to help and not just read a few books and push out junk like this.

Chen Luo said...

Looks interesting.
Have posted this on CGDigg:
http://www.cgdigg.com/story.php?title=o3d-beach-demo

By the way, any chance upload this video to another platform(for example vimeo)?
Youtube is currently blocked by China's Great Firewall.

rektide said...

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?

Alexander Repenning said...

Why not just use the OpenGL api? Is this a technical or a political move? Many of the past generic high level, scene graph based 3D apis - remember Java3D - ultimately got rejected by developers.

ExitReality said...

A great start with O3D, I do hope that Google adopt open standards so everyone can benefit and interoperate.

ExitReality web 3D app already achieves this on Internet Explorer, Firefox, Google Chrome, Apple Safari and Opera browsers.

It also supports all graphics cards in laptops, you don't need a gamers machine to experience 3D multiuser worlds anymore.

Full support for Khronos groups Collada format and ISO X3D open standards and MPEG4 avatar standards also.

Unknown said...

hi! please make this stereo3d=compatible so I can enjoy this in true 3d using the iz3d monitor

jandro said...

I'm very excited by this O3D, but I've installed the plugin with windows 7 and... it doesn't work...
I think there is a problem with the directx version. W7 has dx11.
Anyone could help me?

Unknown said...

@jandro It works fine on my Win7 machine, so maybe it's your particular video card or browser. It didn't work with Chrome for me, but it was fine in Firefox.

I wasn't aware of the Collada format before this announcement, but it looks interesting.

Nihilist said...

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.

Treed Box said...

Google!
It's all what i want to devign 3d contents to WEB!
Thanks!
(This night i don't will sleep)

Dhiraj said...

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!!!

Unknown said...

not linux compatible?

Ash said...

@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.

Unknown said...

what about collision detection and physics? will there be a solution for that too? i guess this would be too slow to do in pure javascript even with v8?

Knax said...

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.x
but not OGL ES 2.x.

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

vix said...

Look likes Apple's QuickDraw 3D appear again....

Great idea, hope O3D will be success this time.

hbridge said...

@Krishna, you should check out 3D Warehouse! You can share/export any model there to Collada, which can be converted into a JSON format and included in an O3D app.

hbridge said...

@Feedlink We support Linux, but it's build your own at the moment. Please see these instructions

Anonymous said...

nice video


thanks u r information

website design nyc