Adobe has just released its first public “Incubator” (I think that’s early Beta) version of a new Flash player with Molehill API’s. It represents a whole new level of graphics performance inside your browser. Imagine being able to run Game Console quality games directly from the browser. What’s different about Molehill is it directly accesses the hardware GPU capabilities of the underlying machine. That’s where all the newfound 3D performance goodness is coming from.
Here’s a shot of Zombie Tycoon, a Playstation game, running under Molehill:
G-Code is the “assembly language” of CNC manufacturing, where computer-controlled machine tools whittle all parts out of solid chunks of aluminum, steel, or whatever other material is desired. Those green and red lines show the path the cutter will take as it machines the instrument panel that’s shown on the simulator display above. Using Adobe Flex, AIR, and the Away3D open source library, I was able to build this application amazingly quickly. It’s a Fat SaaS architecture, meaning it has the benefits of SaaS but can be run disconnected as well.
Until this point, CAD-CAM has been very much a software world trapped in the cutting edge of the early 90’s, selling software that comes on a gillion DVD’s and selling it for many thousands of dollars worth of on-premises perpetual license. Given a high performance rendering engine capable of running in a browser, it suddenly becomes possible to bring the benefits of SaaS to this world. Imagine being able to cruise around the manufacturing Shop Floor, tablet in hand, with full access to all of the product design information and no need to take notes and get back to your office workstation to access the information. This sort of scenario, where your work follows you instead of forcing the worker to go to the work, seems to me embodies the ultimate potential for the mobile connected world.
With Molehill, the Adobe Flash/AIR environment gives us the ability to:
– Run Game Console and Industrial Workstation Quality 3D Graphics
– Build applications that are equally at home whether connected or not either as desktop (or mobile) apps with AIR, or as browser apps with pure Flex or raw Flash.
– Run portably from one line of source code on essentially all the interesting mobile platforms, with the artificial exception of running in the browser on iOS. You can, however, create Flash apps for iOS, you just can’t run from the browser.
– That same line of code can use the excellent screen layout capabilities inherent in the Flex framework to make the app comfortable configuring itself to run on a phone, a tablet, or a PC, again, all with one code base.
– It’s got hard core image processing and graphics capabilities even aside from the new 3D that are just amazing. If animation, special effects, precise control over look and feel, or rich UI are at all important, Flash has got it covered.
– While it doesn’t yet have true multithreading, the Flash engine does a pretty darned good job of using multiple cores for garbage collection, rendering, and now taking advantage of the GPU to achieve more parallelism. We’re promised that we’ll see multithreading before too long as well, which will open up yet another level of performance.
– The Flash VM is a pretty high performance interpreter, and the language itself has a lot of very nice dynamic language sorts of features.
– It’s an ideal platform if you’re interested in Rich User Experience and Fat SaaS-style clients.
– There is a rich ecosystem with plenty of tools available and plenty of Open Source to assist your development efforts.
If you’re developing client-side software, I can’t understand why you wouldn’t want to be up to speed on what’s going on in the Flash world, whether or not you choose to take advantage of it. Sure, there are the fanboy trolls who take delight in deriding it, but I’m not aware of any other platform that has the breadth of capability, performance, and robustness.