Adobe has announced their latest venture, the Incubator program for Flash Player and AIR in which they intend to seed out the latest features they are considering for the runtimes faster than ever before.
Adobe has always released beta versions of Flash Player so developers can test the latest changes, but this is a new opportunity to become part of the cycle. In this new program developers will get a very early look at new features in the Flash Player allowing them to test and give feedback on the new features, potentially shaping how the feature is implemented. Adobe does not guarantee that these features will see the light of day, as some of these will be "features under consideration, development, or just experiments."
One of the interesting new features in the first Incubator builds released by Adobe today is the "Molehill" 3D APIs. A while back during Adobe MAX 2010, Adobe announced that in the next version, Flash Player 11, they would introduce support for these APIs that will would give access to fully hardware accelerated 3D content in Flash Player and Adobe AIR.
Some 3D capability was introduced in Flash Player 10, but this was limited to placing and transforming 2D objects in 3D space. This is often referred to as 2.5D. To compare, according to Adobe: "Adobe Flash Player 10.1 today, renders thousands of non z-buffered triangles at approximately 30 Hz. With the new 3D APIs, developers can expect hundreds of thousands of z-buffered triangles to be rendered at HD resolution in full screen at around 60 Hz"
"Molehill" isn't limited to just the Flash Player for desktops either. It will work across desktop platforms (Windows, Linux, Mac OSX) and the mobile platforms supported by Adobe.
Perhaps one of the best features of Molehill ‒ besides the fact that it brings full 3D support to Flash Player ‒ is that it uses DirectX 9 on Windows, Open GL 1.3 on Mac OSX and Linux, and Open GL ES 2 on mobile platforms, all without requiring the developer to code separately for each. There is also a fallback mechanism in case hardware acceleration on a particular machine is not present or not supported. In this case the 3D content will run on SwiftShader using the CPU ‒ a technology licenced from TransGaming, a company that deals in cross-platform gaming, and helped in getting games like Dragon Age: Origins to the Mac. Developers will be able to detect when this software mode is active and accordingly change the content to give the best experience.
The 3D "Molehill" APIs that are exposed by Flash Player 11 are rather low-level, and work directly with the graphics hardware. As such they are best suited for advanced 3D developers. Adobe has worked with the creators of 3D Flash engines to ensure that those engines will provide a more easy-to use and familiar API. Those who have used such engines will be able to continue using this while taking advantage of the new 3D support, pushing further on what they can do with the runtime.
In addition to the 3D features being previewed in this release, this build also supports cubic bezier curves using a new cubicCurveTo drawing API which are used quite a bit and a native implementation that be less computationally expensive than one in ActionScript.
Adobe Flash isn't the only route to 3D on the web though. WebGL is an upcoming standard based on Open GL ES that aims to bring support for 3D content to the HTML canvas. It too is intended to work cross-platform and can be previewed in Google Chrome and the Firefox 4.0 betas.