My favorites | Sign in
Project Home Downloads Wiki Issues Source
This page answers some Frequently Asked Questions (FAQs) about the plug-in implementation of O3D (now deprecated).
Updated Apr 27, 2010 by

General Questions

What is O3D?
O3D is an open source web API for creating rich, interactive 3D applications in the browser.

Why did Google decide to build O3D?
As recent product announcements (Quake Live, Microsoft Virtual Earth 3D, etc.) have made clear, developers want to provide rich 3D experiences to users on the Web. The solutions they're using right now, however, have inherent drawbacks. Special-purpose plug-ins are not cross-platform and require installs. Software rendering frameworks don't provide the performance necessary to create high-quality 3D experiences. Google believes that a web standard could help developers create richer 3D experiences on the web and thus move it forward as a platform. We decided to build O3D to participate in a conversation within the broader developer community about 3D web standards.

In what browsers and on which operating systems is O3D available?
O3D is available in Internet Explorer, Firefox, Chrome, and Safari and works on any Linux, Mac, and Windows computer that meets the minimum hardware requirements.

What are the hardware requirements for O3D?
Our O3D plug-in implementation should run on any Windows, Mac, or Linux machine that has a DirectX 9, PS 2.0 capable graphics card. However, because this implementation is at an early stage, there may be other incompatible systems. We are working on a solution that will allow O3D to work with more graphics cards.

Is O3D suitable for mobile applications--for example, apps for the iPhone or for Android stores?
O3D does not work currently on any mobile platform.

When will a localized version be available in my language/country?
O3D can be used by developers to create applications around the world. Our documentation is available only in English. Currently, we have no plans to translate our documentation into other languages.

How do I uninstall O3D?

On Windows: you can uninstall through the Windows Control Panel.

On Mac: you can uninstall by dragging the O3D plug-in from the /Library/Internet Plug-ins/ folder to the trash.

On Linux: you can uninstall by deleting the O3D plug-in from your internet plug-ins directory.

How much does someone need to know about graphics before they can use O3D?
Developers who already have some experience working with OpenGL or Direct3D will feel most comfortable using O3D.

Was O3D designed for Google applications only?
No. O3D is designed to be agnostic to browser, operating system, application, and application platform. It has not been designed for any specific Google application. This is our proposal for an open web standard. We welcome suggestions for shaping it.

What information are you collecting with O3D?
You do not need to provide any personally identifying information in order to download and use O3D. When you download O3D or use it to contact Google's servers, Google receives only standard log information, including your machine's IP address.

Your copy of O3D includes one or more unique application numbers. These numbers and information about your installation of O3D (e.g., version number, operating system) will be sent to Google when you first install and use O3D and when O3D automatically checks for updates. If you choose to send usage statistics and crash reports to Google, O3D will send us this information along with a unique application number as well. Crash reports can contain information from files, applications, and services that were running at the time of a malfunction. We use crash reports to diagnose and try to fix any problems with O3D. If you chose to send usage statistics and crash reports to Google when you initially installed O3D and you no longer wish to send that information to Google, you must uninstall O3D and reinstall without electing to send usage statistics and crash reports to Google.

Why did Google make this an open source project?
Google is open sourcing O3D to encourage community discussions on the 3D graphics space. We recognize that the open source community is a major driver of web technologies. We also believe that open public scrutiny is a powerful tool for making software better.

How can a developer get support from the O3D team?
At this time, our O3D plug-in implementation is available to developers to evaluate the API and give us feedback. Therefore, Google cannot commit to any support guarantees. We have created a Google Group to facilitate community discussion and support. Our engineers will be participating in this group and will do their best to respond to questions in a timely fashion. We have also created a public issue tracker where people experimenting with the technology can report bugs and security issues. Finally, we also have a Moderator application where developers can provide feedback to Google and the community as a whole.

What is the download size of the plug-in?

Windows and Mac: depending on whether you have run 3D applications before on your system, between 1.4MB and 1.7MB (on Windows) and about 5MB on the Mac.

Linux: you must download and compile from source.

How do I access the source code / your documentation / the known bugs?
Visit our O3D Project Hosting website to browse the source code and to file bugs with the Issue Tracker. Visit the Google Code website to view the documentation.

How do I get involved in the O3D project?
As a first step, join our Google Group to participate in ongoing discussions about the project and to provide feedback on the source code. Use the Issue Tracker to file bugs. Participate in the discussion with the open source community through our Moderator application.

I have created an application on O3D. Where can I post it? Will Google help distribute it?
We encourage you to share information about your application in our Google Group. This will help you get feedback from the broader developer community as well as publicize your efforts.

Technical Questions

How do I inspect O3D objects in Firebug?
Run Firefox 3.0+.

How do I get a debug console in Firefox?
In Firefox, type "about:config" in the URL area. Modify or Add (right-click) the Boolean value "browser.dom.window.dump.enabled" and set it to TRUE. Then start Firefox with the command line argument "-console". From then on, you can use the JavaScript function "dump(string)" to print to that console. Of course, this is Firefox only. See o3djs/dump.js as an example of using it.

Does O3D work under VMware?
We have reports (unconfirmed) that O3D does not work in Ubuntu under VMware yet. We have reports that O3D does work in VMware on the Mac OS, as long as you enable DirectX acceleration.

How do I create lights?

O3D is fundamentally a shader-based system, and at heart it has no predefined lighting. That said, our sample converter and sample loader path creates shaders that use just one light. If you want more lights, you'll need to create your own shaders or you'll need to modify the code in o3djs/effect.js to create shaders that use more lights.

Also, lighting information is not currently passed in to our samples, but you have all the source code so you can change the O3D Converter to add lighting information and change the serialization code (o3djs/serialization.js) to do something with the lighting information that you add.

How do I turn off backface culling? Right now my models are 2x the poly count that they should be because I need to make them two-sided.
You can set certain render states, including culling (see the State class). States are set on Material objects on Primitives or the StateSet object in the render graph. If you are using our utility libraries to create your render graph, then the simple way to turn off all culling would be as follows:
 g_viewInfo = o3djs.renderGraph.createBasicView(...);
 g_viewInfo.performanceState.getStateParam('CullMode').value = g_o3d.State.CULL_NONE;
 g_viewInfo.zOrderedState.getStateParam('CullMode').value = g_o3d.State.CULL_NONE;

Why do my shaders receive errors on other platforms?
O3D shaders support a subset of the features available on all computers. At this time, O3D cannot enforce that subset, so if you happen to use a feature outside of a given computer's supported features, your application may work for you but not work on that other platform. We are working on a solution. For now, though, you should test on multiple platforms. At a minimum, test on Windows and OSX. See our document on shaders, which lists the subset of features O3D supports.

Why doesn't O3D use OpenGL's shading language (GLSL)?
There are a number of reasons we decided against using GLSL as our standard shading language:
  1. Many OpenGL drivers are not in compliance with the GLSL specification and can fail to compile shaders for arbitrary undocumented reasons.
  2. On some graphics hardware capable of programmable shading, the OpenGL driver does not support GLSL, even though the hardware would be capable of it (and has a DirectX9 driver).
  3. Drivers that are in compliance with the specification are allowed to fall back to software rendering for difficult shaders, but there is no way to determine if a given shader will cause a software fallback. This results in unpredictable performance.
  4. There is no well-defined minimum specification that is guaranteed to execute in hardware on all platforms.

Why don't browser keys like Ctrl-T, Ctrl-N, etc., work when the O3D area has the focus?
This is a limitation of plug-ins. The NPAPI provides no way for a plug-in to pass keys back to the browser. If you know of a workaround, please come talk to us.

Why doesn't O3D stop in the browser's debugger when I get an error like "trying to set non-existent property in NPObject"?
The NPAPI does not provide a way to return an error message and, at the same time, stop the JavaScript at a specific line. If you know of a workaround, please come talk to us.

Why doesn't my O3D scene reload properly when I use the forward/backward buttons in Firefox?

Your page may be being stored in Firefox's "backward/forward cache," which stores the state of the web page and JavaScript engine, but not the state of plug-ins like O3D. In general you should specify a window.onunload() function like this in order to properly clean up O3D when exiting the page:

window.onunload = unload;
 /*  * Remove any callbacks so they don't get called after the page has unloaded.
 function unload() {
   if (g_client) {

If you have such an onunload handler, the page won't be cached in this manner and will reload properly.

Comment by, Sep 24, 2009

Will there be any exporter for 3D application like 3ds max, maya and xsi softimage available soon to enable developer/designer to integrate their models into o3d more easily?

Comment by, Sep 25, 2009

o3d 是否支持动态创建长方形、正方形、圆柱形等? 即由客户输入长、宽、高的数值来创建上述各种对象?

Comment by, Dec 2, 2009

is 03D free

Comment by, Dec 6, 2009

Is there a browser-compatibility chart available? The faq mentions safari and chrome compatibility. However, the demos only show up in mac-mini firefox, not on safari, neither on chrome.

Comment by, Dec 10, 2009

Now google plans to add webGL standard into chrome, we know the difference between O3D and webGL, but is there a chance that google would abandon O3D? if not, in your plan, when will the stable version be released?

Comment by, Dec 13, 2009

In your plan, will O3D support flash texture in the future?

Comment by, Dec 18, 2009

1. Is DirectX used only due the fact that OpenGL (GLSL) has poor support on certain graphics cards. In other words is that the only reason that DirectX is used?

2. Assuming that javascript may be a bottlenek, will O3D yet eventually provide "reasonably" the same graphics performance as a native stand alone application? As a test I created a O3D scene with 30K small cubes. Mouse response was sluggish and load time was minutes. Same scene in native application using OpenGL was not slowed down. (quad core + 8800GT)

Comment by, Jan 3, 2010

O3D can be used in any commercial websites or projects?

Comment by, Jan 10, 2010

I've installed o3d on my macbook pro running mac osx 10.4.11 and browsing with firefox 3.0.17 and all I'm getting is a blue screen for the demo's.

Tried everything I can think of, is this a compatibility issue?

Comment by, Jan 21, 2010

Just want to know if these great api could be available to Flash Coders too. Actionscript and Javascript are based on ECMA script. Could a port to Actionscript 3 of the classes be done?

Thank you very much

Comment by, Feb 11, 2010

Having the same blue screen Derek mentioned for beach demo on my MacBook? Pro OS X 10.6.2 and Safari. That demo has worked correctly in the past, but something's changed.

Comment by, Feb 19, 2010

what about NVIDIA GeForce? 9400M for Macbook Pro, is it works ??

Comment by, Feb 23, 2010

Is o3d now an abandoned project now?

No new releases since october... No posts on the o3d blop .. ... No response to questions about whether the project has be en abandoned. ... No information about what is happening. ...

Just complete silence on the matter.

It would be really kind ("doing no harm") to tell developers what is happening before we put lots of work into a project that no longer has any support.

Comment by, Apr 9, 2010

@andrew.bindon.poet, agree. We have some big projects in development, and would be nice to hear some news. this is a bit scary.

Comment by, Apr 16, 2010

O3D is awesome!!!

Comment by, Jun 16, 2010

Hey ,

Is anyone good in designing 3D avators? I need some help for an online activity
Comment by, Jan 20, 2011

I load a scene with texture by o3d-webgl,but get warrning:Could not find texture images/df.jpg,I am sure that the texture is exist and path is right.This scene file is get by converter which converts dae file which is exported from 3ds max9 to json file.Please give me some suggestion.Thanks!

Comment by, Mar 1, 2011

you can use firebug to trace the request

Comment by, May 3, 2011


Where can I get the source code of the o3d plugin ?

Sign in to add a comment
Powered by Google Project Hosting