May 02nd 2009 | Jens C Brynildsen
The second day started with nice weather and since the first presentation was not until 9.30 next to all attendees got there to the first presentation. This was the day of my own presentation so I was really nervous, but decided to sleep in as long as possible not to think too much about it.
(ehh... yeah, that's me)
I speak 2-3 times a year back in Norway, but this was my first presentation in English to a large audience. Approximately 230 showed up in the Hades room and the ones arriving late actually had to stand, so I had a solid crowd watching. I was super-nervous, but I think it went pretty well. A little tense in the beginning, but better as I got started on the examples maybe? It's really hard to tell whe you're in the midst of it, so I'm (kind of) looking forward to see the recording in some weeks.
My presentation was an improved and extended version of the one I did for the Norwegian Flex Camp some months ago and my topic was 3D on the web - a toy or a useful tool. Having spent a lot of time on 3D in Flash the last year, I've gone from playing with 3D to making it part of my toolset. I now make quite advanced applications using Away3D and while there obviously are some limits, the possibilities facinate me more.
After discussing why technologies such as VRML/X3D, Java3D and Shockwave never quite took off, I showed a series of examples culiminating into three "rules" for what is good use of 3D on the web. I concluded with a look at what the future holds, some Away3D feature demos and a Q&A session with the audience. Got some good feedback from both attendees and on Twitter. I guess it went well.
Me presenting at FFK09. Image by Marc Thiele/FlashForum.
After my presentation I talked to a lot of people so I missed the start of this session with Frank Reitberger, Mario Klingemann and Andre Michelle. The format of this session is that X people get 10 minutes each to present something fun. I was told that Andre deconstructed his Karplus-Strong Guitar experiment - well worth checking out if you haven't seen it! The parts I did catch was Nicolas Canasse showing Haxe Physics running smoothly with hundreds of polygons on his tiny sub-notebook that has a 1.6Ghz Atom processor. Quite impressive and so was Joa's speed coding session that came after that.
Some weeks ago, Ralph Hauwert did a cool experiment with Pixel Bender and Alchemy to render 300.000 particles at a very good framerate. Ralph wanted to know if someone could enhance this and Joa picked up the ball, showing that one could achieve similar results with just carefully designed Actionscript 3. Joa's 10 minutes was speed-coding this example from scratch and boy do I wish I could type that fast!
Audience watching carefully. Image by Marc Thiele/FlashForum.
When compiling SWF files using the Haxe compiler, you automatically get some advantages not present in the Adobe compilers. Behind the scenes, Haxe will optimize your code making it run faster and you can also use the feature that make Adobe's Alchemy play so fast - the new Opcode for fast memory access. Nicolas session wasn't about Haxe though, but rather the SWF format. While this may seem like a boring prospect, it was far from that. Understanding how the SWF format works, will actually allow you to build faster applications that then can do things than others can. How can that be?
By looking at the SWF file format (with Nicolas explaining it), you all of a sudden understand why Flash files stream so nicely, why programmed animation will always be faster than timeline animation as well as why you should avoid MovieClips for anything requiring speed. A real eye-opener was the explanation of what the Flash Player has to do when you perform jumps on the timeline. It actually has to look backwards across all the frames before to reconstruct the frame you jumped to. To me this explained why certain long timeline animations always spend a long time updating when jumping inside them - something that has puzzled me before.
Nicolas Cannasse and Nico Zimmermann discussing. Image by Marc Thiele/FlashForum.
As part of his presentation, Nicolas also showed how just some minor tweaks to code could double the speed of a computationally hard operation. This was all based on things explained earlier in his presentation, so it really proved the point. One good takeaway was a rundown of what operations that are fast in the Flash Player (numerical operations - except division, field access) as well as the really slow ones (Math, static function calls, Array access, casting and use of the "new" operator). I've now made a promise to myself and try to quit using Arrays and start using Linked Lists instead for a nice speed increase.
Those that took part in the "10 Hot Minutes" session could see Andre explain how he did his Karplus Strong guitar experiment. His main session was also on sound and I can only take my hat off for this guy. He's now so well into audio using Flash that it seems he can create almost anything. By reading in an MP3, he was able to capture the sound bytes and start playing with them. First with a simple Delay, then adding a Flanger, playing with Reverb and a Low Pass filter.
He then went on to show generative sound with instruments sounding like various synths and guitars and went into a bit of detail on creating these. The rest of the presentation was focused on tips and tricks for those keen to play with Audio generation in Flash for themselves. Among the tips were the same as both Nicolas and Joa Ebert had said before him - avoid Arrays and use Linked Lists instead. He also explained some of the common pitfalls when working with audio, including to never use headphones when testing new stuff :-)
Andre closed his presentation showing the ToneWheel and ToneMatrix experiments that has gotten lot of exposure lately. This caused him quite a few problems as his server hosting the files were not prepared for that kind of traffic (90Gb in a few days!) so to avoid the costs, they quickly moved the ToneMatrix into the Hobnox Audio Tool.
Straight from the FITC conference, came Mario Klingemann to present this session The Tinkerer's Box. The title of Mario's presentation is a play on last years Flash On The Beach conference where Jonathan Harris told the audience that they should (more or less) "quit tinkering" and rather produce proper, lasting art. This annoyed Mario a bit since the tinkering part is something he really loves, so this entire session is a "box" of experiments that he's been tinkering with.
By starting with a simple geometric shape such as a triangle, he'd play around subdividing, coloring, altering the appreance and in the end producing lots of visually appealing shapes and interesting effects. He then started looking at ways to apply this to other projects. By playing with geometry and images, Mario could produce some really interesting textures and effects. Mario has also been working a lot for Aviary, and to see yet another example of what creative tinkering can do - check out the Peacock pattern generator. This is Mario's work and a true joy to play and create with.
Marc Thiele and Sascha Wolter closing off yet another successful event. Image by Marc Thiele/FlashForum.
Jens has been working with Flash since version 3 came out. Since then, he's been an active member of the Flash community. He's created more than a hundred Flash games (thus the name of his blog) but he also creates web/standalone applications, does workshops and other consulting. He loves playing with new technology and he is convinced that the moment you stop learning you die (creatively speaking). Jens is also the Editor of this website.