Some months ago, John Resig created processing.js - an impressive JavaScript port of processing, which draws its output on a ‘canvas’ element entirely client-side inside your browser (at least if your web-browser is Firefox 3 or a recent nightly build of WebKit, that is).
Now Context Free (the original inspiration for Structure Synth) has been ported to JavaScript too: Aza Raskin has created ContextFree.js (Source here).
JavaScript has undergone a tremendous evolution. From creating cheesy ‘onMouseOver’ effects for buttons on web pages to being the ‘glue’ binding together complex applications like Firefox or Songbird (the Mozilla application frameworks works by stringing together C++ components with JavaScript). Likewise Microsoft chose to build their Silverlight technology on .NET components which can be controlled by JavaScript in the browser.
And of course the ActionScript in Adobe Flash is also JavaScript. Adobe (and/or Macromedia) has put a lot of effort into creating fast JavaScript implementations - most notably their Tamarin virtual machine and Just-In-Time compiler, which in theory should make JavaScript almost as fast as native code - or at least comparable to other JIT compiled languages such as Java and the .NET languages. Tamarin is open-sourced, and will eventually make it into Firefox 4.
Finally, while the Tamarin virtual machine was built to execute (and JIT) bytecode originating from JavaScript, other languages may target Tamarin as well. Adobe has demonstrated the possibility of compiling standard C programs into Tamarin parseable byte-code (their demo included Quake, a Nintendo emulator, and several languages like Python and Ruby).
So perhaps a future version of Structure Synth could be running as C++ compiled into Tamarin bytecode in a Flash application…
The Demo Scene never cease to amaze me. The technical quality of these demos is amazing - complex 3D scenes rendered real-time, procedural textures, real-time sound synthesis, and incredible low foot-prints.
Recently I stumbled upon demoscene.tv which features recorded videos (flash video) of many of the best demos. Of course part of the fun is actually running these demos, to be amazed that they are indeed real-time, but sadly my laptop is not geared towards neither CPU or GPU intensive activities.
By coincidence I came across Jeff Minter’s company Llamasoft and surprisingly discovered that it was still going strong.
Jeff Minter, probably most famous for his somewhat… surreal C64 games (”Attack of the Mutant Camels”, “Revenge of the Mutant Camels” and even “Metagalactic Llamas Battle at the Edge of Time”), apparently has been hacking away on light synthesizers for the past twenty years.
His light synthesizers are complex visualization modules either music-controlled or driven by human interaction. And his latest incarnation, Neon, is actually used in the Xbox 360’s dashboard.
The Neon Light Synthesizer in Action.
Who would have guessed that Llamasoft code would end up in the Xbox 360 firmware?
Experimental Gameplay started out as a student project at Carnegie Mellon University in 2005.
Given three basic rules (”Each game must be made in less than seven days / by only one person / be based around a central theme (e.g. gravity or swarms)”) some very interesting projects were created. Since then the website has opened up, and everyone is allowed to post their experimental games.
VVVV is a realtime video synthesis framework. It is a Windows only flowgraph based system, which seems to be built on top of DirectX and DirectShow. As seen on the Eno Henze image above, VVVV is also very suitable for creating static pictures.
ChucK is an audio programming language for real-time performance. It is possible to add and modify code without stopping the audio stream, which makes live coding sessions possible. I played a bit around with ChucK in the miniAudicle editor, which can be recommended - the realAudicle (a spectacular OpenGL interfaced IDE) on the other hand proved to be quite unstable.
For a more extreme version of live coding check out Quoth (now this is weird - a Zork-inspired user interface).
Syntopia
Digital art, music, and culture.
Also maps the evolution of my generative art program: Structure Synth.
This blog is written by Mikael Hvidtfeldt Christensen and is part of hvidtfeldts.net.