I love Flash – I’ve been using it for years and know most of it’s tricks. Now with papervision and away3D we have a some nice 3D APIs. While these are great, 3D in Flash is seriously lacking in rendering power. Once you throw a few hundred simple 3D shapes on the stage, your frame rate starts to plummet.
Flash is still the best choice for ubiquitous interaction on the web, but for 3D graphics, there are some better alternatives. Please note that I am not lobbying for native 3D graphic card support inside Flash (that didn’t work out too well for shockwave).
Processing has been around for a while and is gaining traction as a 3D visualization tool. Processing is free and cross-platform. The flickr processing pool shows the kind of stuff you can build with it. Since Sun updated the java preloader graphic to be cool and orange, we might even start seeing some all processing websites.
I’ve resisted learning processing for a while, but when Robert Hodgin generously released some of his source code I had the motivation to download and try it out. Surprisingly, processing comes with a nice, lightweight IDE. Each project is a sketch which is basically a folder containing simple text files. Processing has a number of libraries and examples for handling 3D graphics.
Lennyjpg is creating some beautiful work with processing:
As is Flight404:
vvvv is a ‘toolkit for real time video synthesis’. It’s a crazy app built by some crazy german people. The tutorials are written with typical deadpan teutonic humor. It’s currently windows-only and free. Jitter is a similar cross-platform app.
The concept of vvvv’s UI is ‘patches’. Modules are laid out in a 2D space and patched together with virtual wires. The beauty of this paradigm is that there is no compilation – results are rendered in realtime as you tweak the patches. Since I come from a textual programming background I find this to be quite baffling, but maybe it’s good to have your head turned around now and again.
Desaxismundi has been creating some fantastically beautiful pieces using vvvvv such as this deconstructed sphere: