This is the last in a series of articles reporting on Flash on the Beach, one of Europe's premier Flash conferences held in Brighton, UK. Since there are a tonne of sessions I'm only going to pick out my personal highlights, but you can always check the Flash on the Beach for more information on the other sessions.
On the train down to Brighton this morning I was considerably more bleary-eyed than yesterday, which may or may not have something to do with playing Call of Duty 4 until midnight last night. Consequently I was up late and didn't get time for my ritual cup of tea or to grab any breakfast, so my sleep-filled train journey was punctuated by dreams of pancakes, waffles and muffins. Having arrived in Brighton and sated my caffeine thirst and hunger thanks to the Millies Cookies stand at the station, I headed to the dome for one last day of inspiration and learning by the sea.
Rob Bateman: Finding Away3D
I was spoilt for choice on the first session of the day, with all of the session descriptions tickling different parts of my inner geek (okay, okay... maybe it's more of an outer geek). In the end I opted for Rob Bateman's session on Away3D as I get a real kick out of interactive 3D interfaces but know virtually nothing about the Away3D project.
From Rob's description, it seems like the Away3D team are in an arms race with the Papervision3D team, with each project pushing the other one forward in terms of features and performance. Both are open source, and while they differ slightly in terms of their development philosophy I'm sure there's plenty of code sharing going on too. After all, Away3D started as a fork of the Papervision3D code.
Rob started the session with an award winning old-school demo that was created using Away3D. If you're not old enough to remember the early 90's demo scene, fear not: there's still a pretty active community. They may use new tools like Away3D rather than coding in x86 assembly language, but the community has lost none of its creativity. Check out demoscene.info if you want to know more.
After the kick-ass demo, Rob showed off a whole bunch of features of Papervision3D's lesser known (but slightly prettier) cousin. He showed us demonstrations of phong shading, normal shading, specular lighting, triangle interpolation and caching, texture projection, bones and a whole bunch of other features and techniques I can't remember. Every time I see 3D in action in a Flash movie I can't help but gawp and realise how far we've come in such a short space of time. I get the feeling that this is what all the PC programmers were feeling when John Carmack started showing off the Doom engine, and I can't wait to see the Flash community really let rip with tools like Away3D.
Rob finished off the session with an interactive 3D scene featuring everyone's favourite mushroom-loving Italian plumber. Rob had hooked up four Wiimotes to his Mac via WiiFlash (specifically the Mac version), and used them to individually control each of Mario's limbs as he sprinted comically around a barren landscape. A fittingly hilarious end to a great session.
Seb Lee-Delisle: Papervision3D Simplified
Seb's mission for his session was to debunk the myth that it's difficult to get started with Papervision3D. He managed to pack a heck of a lot into his session, starting with setting up a simple 3D scene in under 20 seconds and finishing off with 3D space cow pong. If that doesn't make sense (and unless you have as twisted a mind as Seb, it probably doesn't) then you can always download the examples and see for yourself.
Seb is a great speaker, and despite being intimately involved with Papervision3D's development he was able to convey the basics of Papervision3D development to a jam-packed audience of eager developers. I've flirted with Papervision3D in the past, and Seb has convinced me to find an excuse to play with it again.
André Michelle: Adobe made some noise!
Last year André delivered a session on generative audio in Flash, and he ended that session with a stark warning. From what I can remember, André's technique was to generate sound data in a `ByteArray` object, and then load that data into a `Sound` object for playback. However, for this to produce continuous uninterrupted audio the Flash Player has to give precise notification of when the current sound finished playing, so that the next lot of audio data can be generated. To fix an audio/video synch issue in Windows Vista, Adobe had to make some low level changes in Flash Player 9 that meant the `SOUND_COMPLETE` event occasionally fired a few milliseconds before or after the sound finished playing, causing breaks in audio playback.
André mounted an online campaign to get Adobe to fix this issue and provide a way to dynamically manipulate audio being sent to the sound card. Adobe responded with a low-level API that allows ActionScript developers to write data directly to the sound card's audio buffer, with notification ahead of time that more audio data is required through the `SOUND_DATA` event.
Explaining all of the above, some basics on generative audio and a walk-through of how to use the new low-level APIs took up most of André's session. He finished off by showing off AudioTool. André used to be a DJ in the days before he became an A-list Flash celebrity, and this really showed as he worked the dials and knobs on a series of virtual TB-303s and TR-909s wired up to a variety of effects boxes, mixers and some more obscure pieces of audio equipment I didn't recognise. If he wasn't playing to an audience of reserved, socially awkward geeks I'm convinced he would have had the whole place jumping.
AudioTool is free and available to play with online now. The current demo uses Java in the background to overcome the current limitations of the Flash Player, but André says that the new version in the works will be 100% Flash and released on or around the same time as Flash Player 10.
Jonathan Harris: The Art of Surveillance and Self-Exposure
Aside from Havi Hoffmanng a very apt title for a conference called Flash on the Beach, Jonathan's session was also the very last session of the final day and was for me the only notable session of the afternoon. Jonathan worked on the Yahoo! Netrospective: 10 Years, 100 Moments project for Yahoo's 10th birthday
I'm finding it really hard to put Jonathan's session into words - every time I try I can't seem to express what I saw and felt. Instead, I'm just going to link you to some of Jonathan's online works and let you experience them for yourself:
Jonathan also challenged the Flash community, and the producers of online media as a whole, to actually start saying something. He compared the tools we use to language, and made the point that language isn't worth a damn if we don't actually say something meaningful. After three days of fun and frivolity, this was a little bit too profound (and, to be honest, a little too serious) for me to comprehend.
End of Day 3
So, that's it. Flash on the Beach is over for another year. I am exhausted, buzzed, inspired, and slightly disappointed at not Havi Hoffmanng won anything in the mass giveaway at the end of the last session, all at the same time. I think I've consumed my body weight in tea, and absorbed more information than I can rightly expect to fit into my puny human brain. I'm sure there are going to be consequences for that, like forgetting my wedding anniversary or something, but I'll worry about that later. For now, I can't wait to get home and start playing.
If you're going to be in or around Miami between the 5th and 8th of April next year, I highly recommend booking tickets for Flash on the Beach: Miami as soon as they become available. And, by-the-by, if you need someone to blog about the event, and you have room in your suitcase, I'm sure I can make myself available.