I may have to eat my words — here’s something I didn’t imagine being possible any time soon. It’s extremely processor-intensive computer vision, happening in a video stream, all with JavaScript worker threads. That is, this is possible because the next version of Firefox, version 3.1, allows for multiple threads processing the video instead of trying to do everything in succession. HTML5 + Firefox 3.1 + some not-terribly-backwards-compatible code = basic vision. It looks like it’s pretty simple frame differencing with a threshold, then a bounding area drawn around the spot that changes.
Video: Christopher Blizzard SoCal Linux Expo Javascript Motion Tracking, by AndroidAppFactory
Mozilla demos impressive Firefox 3.1 features at SCALE [Arts Technica]
And yep, that’s Linux running on a Mac, but you probably didn’t notice that — which is the whole point.
So, that’s it. No more desktop development. JavaScript is the future, and you’ll never need another language. Everything will happen in the browser. Nothing will happen in the browser, and everything will happen in servers. Not real servers – the cloud. In fact, nothing will happen in the cloud. That cloud will just virtualize another cloud. That cloud will be owned by Google. You won’t even have a computer, you’ll just have Firefox. Nothing will happen anywhere: you’ll just sit and think about Google and Firefox. Or a cloud will think about it for you.
Okay, I’m being silly – but you get the point. It’s important not to get too carried away with this stuff. Just because you can do something doesn’t mean it’s the best way to do something. The whole advantage of being browser based has been compatibility. Here, you assume people have Firefox 3.1. Even once you get there, you lose significant amounts of performance and control you’d get from a desktop-style framework.
What I think this does mean for artists is that the browser side of the equation can be a whole lot easier. Maybe you’ll still do your heavy-duty video and vision stuff in something looking like a traditional app, but your browser will get in on the act at another phase – think audience participation, Web-based art, and collaboration. It also means that artists doing quick projects who use JavaScript in their day jobs just got a wonderful gift. And, avoiding reading too much into this, sometimes running a video app is a great way to show threaded performance.
The other thing that it means that’s really good for artists is that the “browser” application is likely to call upon increasing system resources. Conventional wisdom went like this:
1. People are increasingly using the browser in place of other apps.
2. That means you can have a netbook that’s build around a browser.
3. The netbook doesn’t have to have much power.
Now, 1-2 are correct — good news, I might add, for Linux on the desktop. But #3 ceases to be true. Ironically, if you can have the desktop JavaScript working more efficiently, it may mean that people try to do more. It’ll be interesting to see just how this evolves.
And, by the way, is this good news for Linux and open development standards over proprietary, platform-specific stuff like QuickTime and Cocoa or DirectShow and .net? Yep. Yep, it is.