This is great news :)
I find it really interesting that people tries to implement HTML(ish) ways of creating more RIA capabilities, not only that but with the current state of FireFox, Safari and Opera I think Opera is the only real contestant left for Safari in the long run… :(
Safari virtually only needs the plugin architecture from FireFox and the fox is dead… :(
So it’s great to see Opera becoming better…!
(Not only that but it’s also great seeing other great companies here in cold little Norway doing great besides us)

It drives me nuts when browser vendors can’t come to some sort of agreement on standards.

Currently to set the context for a 2d canvas you write:
var myCanvas = $(‘canvas’).getContext(‘2d’);

So Opera wasn’t arrogant enough to set there version with:
var myCanvas = $(‘canvas’).getContext(‘3d’);

But rather:
var myCanvas = $(‘canvas’).getContext(‘opera-3d’);

So it seems to me they are still keeping their options open. If pressured enough Opera may end up rendering .getContent(‘3d’) as Firefox does or vice versa.

Also, I imagine the 3d canvas syntax is going to remain the same regardless of the context, so even if two different browsers use a different rendering engine you may still end up with the same or very similar result.

Not only is it yet another API, no they also went and implemented it against a library (Direct3d) which is only available on one platform alone (Windows). Wasn’t opera intended to be cross platform?

Also the thing about collision detection is pure and utter rubbish, there’s plenty of excelent collision detection engines out there, both commercial and open source. You don’t _have_ to use Direct3d in order to get collision detection.

Maybe it helps to drop another hint…

Ever seen a productivity application (like 3dstudio max, you know, which people keep open all day to work, much like a browser) that uses Direct3d?
I tell you why, because Direct3d makes bloddy unstable applications. Whoever goes for any sort of “real” 3d programming scoffs at the notion of using Direct3d for anything then short lived games.

Comment by florian — November 17, 2007

Yeah, I want to see Opera reimplement Direct3D in Linux. O, wait, they can use Wine for this, just like Borland did the Kylix UI back then… Huge success, never quite understood why they dropped the project.

“makes it easier to implement on non-OpenGL platforms” is a bogus reason, as there is only one platform that Direct3D supports, Windows, _and_ Windows supports OpenGL. This is a super-lame move by Opera. At least say you only had Windows programmers working on it and be honest.

Comment by Andy — November 17, 2007

I don’t know why everyone’s up in arms about an experimental implementation of something that’s far from standardization. In fact, none of the 3d contexts will be useful on the Real Web until they’re somewhat emulated in IE (excanvas). Would a Direct3D-like API make that easier? I don’t know anything about 3D APIs.

Coding on the web means: Dealing with various subtly or wildly different or simply missing APIs/implementations of basic things like DOM, CSS, XHR, javascript, svg, canvas, events, etc.

This has spawned an entire ecosystem of libraries/frameworks that wrap a unified API/hacks/fixes/reimplementations in javascript over basic browser infrastructure just so we can code applications that run more or less everywhere.

We usually put up with it because we don’t have a chance to change it, and when we complain loudly enough at the right places we get told it’s historical and we just have to live with it. OK

Now here we have something brand-new like 3d canvas. And instead of fixing the old mistakes of bloddy once going after one single API/functionality right from the start they go and implement it with widly different features and a wildly different API…

great, what’re we supposed to do? Roll over and get ready for yet another round of 3d javascript frameworks just so we can code against one API?