Yes, you read correctly. Free. Multi-Mania 08 is a one day, five(!) track Flash + multimedia conference taking place in the beautiful small town Kortrijk, Belgium on Friday, May 23rd 2008.
Koen De Weggheleire has once more managed to gather a hot lineup of more than 30 top-notch presenters - among them Aral Balkan, Peter Elst, Dave Schroeder, Ralph Hauwert, Rob Chiu and Hoss Gifford, just to name a few. I, too, have the big pleasure to speak there for the second year in a row and I'm really looking forward to it, especially after Koen told me that my session is already full (attendees can prereserve seats online) - but don't worry there's always the chance that someone gets hit by a bus an overdose of belgium beer and decides to pass on his seat.
You can register for your free ticket here. See you in Kortrijk.
Yesterday at the 10th flashconference in Stuttgart I was amongst the lucky ones who could witness the first public presentation of Source Binder by Visual Minds from Hungary and I can say that I was deeply impressed. What is Source Binder? In short: it is a lightweight framework for node based editing built in Flash. Oh yes - somehow it looks like this is the year of the node for Flash.
Node based editing means that instead of writing code you assemble a set of building blocks each with a specialized functionality on a canvas and "draw" the control flow or the dependencies by connecting those blocks with connector "cables". This allows you to create dynamic or interactive pieces in Flash without even having to know Actionscript.
The really great thing about Source Binder though is that it is infinitely extensible. The toolbox of available elements is not limited by what the developers put in but everyone can add new functionalities to it themselves. But it gets even better - instead of having to conform to a certain SDK and program classes especially for this tool Source Binder can simply attach to any Actionscript library out there - all one has to do is to use a wizard in which you declare some simple wrapper classes which tell Source Binder about the available methods and properties.
Currently there are already two popular libraries included: Papervision and the Wow physics engine. In his talk Balázs Serényi demonstrated how to build a 3d physics simulation with just a few mouse clicks. The clou was that the simulation was controlled with a WiiMote since SourceBinder also can make use of WiiFlash. And talking about physical computing: the wonderful Arduino Board is also available as a module already.
Still - if you are inclined to it you even are able to write Actionscript right within the tool (if you want to add extra functions to existing modules for example) and it will be compiled on-the-fly.
And the amazement doesn't stop here - of course you want to know what kind of output Source Binder produces. Well, there are two options: you can have a swf that you can just use straightforward or you can get real Actionscript. And I think here we are really onto something. Source Binder could be the missing bridge that Adobe burned down when AS3 was introduced and which left everybody who was (just) a happy AS1/AS2 on-the-side-coder and who was not able to pick up hardcode coding as easily back in slowland. Source Binder will allow people who are not programmers but still want to create fast AS3 based dynamic Flash to do exactly that. Sorry for sounding like a broken record, but I really see a new world opening up here
Source Binder is currently in a closed alpha but you can register on the site to apply for an account. Did I already mention that it will be free and AFAIK open source?
Searching for an old experiment of mine I just rediscovered a piece from 2001/2002 which I thought I had lost - it's a implementation of PONG in Flash 5 with a file size of 5K. Back then it was an submission for the 5K award - a site which featured some amazing entries all under 5K which is unfortunately not online anymore.
There have been some impressive examples in recent time of PONG made in 510 bytes or even in 349 bytes - so 5k is not really world record anymore. On the other hand - this file is from the good old Flash 5 days where there was no gzip compression available (with compression it already goes down to (1742 bytes). But this version is a two player game with keyboard control, it has sound, scoring and several different play modes. I guess that there is still some room for improvement, maybe one can get it down to 1k or so without loosing any features - feel free to give it a try. Here's the original Flash 5 FLA file.
I am very excited that once more I have the honor to talk at this year's FITC conference in Toronto. Looking at the program I can see that the next days will not allow for a lot of sleep - Shawn Pucknell has once again invited an outstanding mixture of the best designers and creative developers out there. I'm looking forward to meeting lots of friends and of course to the legendary great parties at night - oh my and I will finally get to drink a Ceasar again!
In case I make it to my talk The Pixel Whisperer in time myself (*cough* - it starts 9 am at the second day - and seasoned conference-goers know what that means ;-) you will be able to witness what pixels can do for you when you treat them right. I will show ideas, principles and techniques (and maybe a tiny bit of code) all dealing with Flash's bitmap manipulation abilities.
As you might guess I'll also show Peacock and other Aviary tools in action and I will have some beta invites to give away. See you there!
Okay, I'm exaggerating. Several years after BitmapData was introduced to the Flash player it's not really a secret anymore that Flash uses a feature called premultiplied alpha when it stores transparent pixels. But it is a bit dirty after all. In case you want to skip the following nerd talk you can check out the demo right away - but don't cry if you don't understand what it is telling you.
"Premultiplied" alpha means that the alpha information of a pixel is not only stored in the alpha channel itself, but it is already "multiplied" into the red, green and blue channel. In Flash practice this means that if you have a nice orange #fff8000 and reduce the alpha to 50% it will be stored as #80803f00. This means that each value of the color channels will never be bigger than that of the alpha channel.
The reason to do this is performance. The image processing algorithm to composite two bitmaps always requires that the alpha channels are being multplied into the color information, so if you have a tool that needs to do a lot of compositing it simply saves you a good amount of time if you don't have to do these multiplications for every pixel. And as we know Flash is all about compositing things (whenever you overlap two antialiased lines some serious composting takes place) and Flash is pretty fast with this.
But there is a problem. Pixels are stored as 32 bit integer values, this means each channel has a range of 8 bit or 256 possible values. On the other hand calculations with pixels usually are done in floating point mathematics which means that the range of possible in-between values can be much higher. As long as you stay within floating point that's cool, but unfortunatly at some point you have to write those values back into a bitmap which means that if you have a result of 43.7 it will be rounded to 44 or even worse to 43.
Normally these little errors do not cause much trouble. But once you start dealing with small alpha values the error accumulates. An example: when you set the alpha value of a pixel to 16 all color values will be multiplied with a factor of 16/256 = 0.0625. So a gray pixel of 128 will become 128 * 0.0625 = 8, a darker pixel of 64 will become 64 * 0.0625 = 4. But a slightly lighter pixel of maybe 67 will become 67 * 0.0625 = 4.1875 - yet there are no decimals in integer pixels which means it will also become 4. The effect that you will get posterization - setting your alpha channel to 8 means that you also reduce your color channels to 8 levels, this means instead = 256*256*256 different colors you will end up with a maximum of 8*8*8 = 512 different colors.
Well, as long as you keep your alpha at 8 you will not notice any difference but once you increase the alpha the desaster becomes obvious. Getting back from alpha 8 to alpha 255 means multiplying each channel by 16. This means that our old 64 pixel which was reduced to 4 becomes 4*16 = 64. Now that's great - same value as before! But the 67 pixel had also been reduced to 4 which means 4*16 = 64 - that's 3 smaller than 67. This means this information is lost forever and cannot be restored. And the eye can be quite unforgiving when it comes to certain subtle shades.
In order to show you the extend of this effect I've built a demo that visualizes the amount of information loss that happens: It first reduces an image's alpha channel to a chosen value and then sets the alpha back to 255. What you will see is that for small alpha values there is some nasty posterization happening. But even if you just reduce the alpha to 254 the image will suffer information loss, you can see that by switching on the "show data loss" checkbox. What this does is to take a difference between the original and the restored image. Since the loss can be small there is an automatic multiplication involved to increase the contrast.
So what can you do when you have to preserve the image information? Well, you have to take the slow road and always keep the alpha channel separate from the image. This means that you maintain three bitmaps - one is used to store the RGB information, one stores the alpha channel and the third one is used to be displayed on screen by joining both of them together.
The Toca Me conference that took place this saturday in my hometown Munich was a blast. And it felt a very big honor for me to be among such an outstanding group of presenters. My personal highlights were Andy Cameron who gave me a lot of new ideas in his talk and also afterwards and James Patterson who's sicko genius mind and talent doesn't cease to impress me. Seeing Andreas Müller's beautiful installation "Hana" next to mine made me feel a bit like a caveman rubbing sticks together, but hey - Anaskop 1 has now been running for 2 days in a row in my studio and hasn't crashed once ;-).
Oh - there was of course one more highlight and that was the wonderful trailer that DVEIN from Barcelona have created especially for Toca Me. Wow, wow, wow - this is a real treat for the eyes. My name has never looked better on screen. Thanks a million guys!
If you wonder why I haven't posted anything during the last months it's because I'm involved with some very exciting projects which unfortunately take all my attention so the blog currently suffers quite severely. But at least the time has come that I can show you one of the objects of my affection and since the beta invites are going out now you even might get the chance to try it yourself. Here is Peacock (together with Phoenix) in action:
Peacock comes disguised as a "Pattern Generator" but in reality it's an experimental visual playground. I prefer to call it "Lego for Pixels". It features a node based interface similar to those found in Quartz Composer, VVVV, Max/MSP or Yahoo Pipes. It works by dragging hubs onto a workbench, connecting their inputs and outputs and then adjusting their individual settings. There are many different hubs to choose from (and new ones are added constantly) and each one has a specialized function - there are simple generators like Perlin Noise or Plaid, there are effect hubs like Blur, Polar Mapping or Color Matrix and there are some functional hubs, too, that split and join the flow. Like with Legos you can simply try to stick together these elements and see what comes out. Of course once you've familiarized yourself with the functions you can also "program" special effects with a goal in mind.
If you have never worked with a node based interface before the amount of options might be a bit overwhelming at first, but as you will see this gives you unlimited possibilites to create really unique visuals - not just out-of-the-box effects that look almost the same for everyone. (Well you actually can have those too, as you can see in the clip :-) )
The great thing is that once you have build a composition it allows you to create endless variations of it by simply changing a parameter - which makes it almost a generative art generator, too. Here are a few example of things I've made with Peacock (whenever I had the time to play with it instead of building it).
When there is one thing I really fear than it's high expectations. Since the more you expect something to become the best and the greatest the bigger will be your disappointment when reality cannot deliver. So I must admit that I saw all the upfront excitement everywhere about Flash on the Beach with a bit of sorrow. The more happy I am now to say that my fears were totally unneccesary. No question - Flash on the Beach 2007 was absolutely fabulous and has surpassed all my expectations. If I had to live on a desert island and could only have one conference there - this would be it.
What's the secret? Is it Brighton? Is it the outstanding mix of speakers? The enthusiastic and communicative audience? Is it the nightly hanging out at the Old Ship's bar? The parties? Or is it the love and passion that John and his team put in every detail? Well - hopefully we will never find out and be able to enjoy this for the next years to come. Thank you so much John for a really wonderful time!
Thanks to everybody who attended my session and stayed to the very end in spite of it being rather on the technical side. Wow - this was the first time that one of my talks was overcrowed and I'm very sorry for those who weren't let in anymore. I have uploaded the session slides for my talk 2D or not 2D that is the question on lectures.quasimondo.com. But please don't expect to learn too much from them especially without explanation. Though I will turn several of the examples shown into handy classes or tutorials and publish them here soon.
What a wonderful way to conclude the yearly conference circuit: I'm almost on my way to Brighton for Flash on the Beach which - looking at the lineup - seems to assemble almost all awesomeness the Flash world has to offer. My biggest pain is that I can only spend three days together with such a lot of people that I respect, admire or love.
In an attack of mild madness and as a little thank you to John for making this unique event possible I decided to prepare a completely new talk titled 2D or not 2D that is the question where I will hopefully be able to show you a few things to do with bitmaps that you didn't know before.
The lecture notes for my talk "The Blind Sketchmaker - exploring generative and evolutionary art with Flash" are now available on lectures.quasimondo.com. The AIR tools I demoed - Image Analyzer, Art Critque and Sketchmaker are not available yet. The visuals evolved by Sketchmaker can be seen in this flickr set.
Many people have asked me where in China I had the images painted in oil on canvas that were created by Sketchmaker - the company is called Promising Arts & Crafts - please send my greetings to Mr Weigang Tan in case you want something painted.
As you know from my talk the ugly world of earnest Art is all about bullshitting, networking, being noticed and sometimes simply being the first with a clever idea. So just for the archive: having limited editions of my digital artworks handpainted in China - at least you know now where you heard that concept first. So if you are an aspiring artist without ideas of your own - forget it. This one is gone - don't even think about copying it.
If you are interested in acquiring one of the limited edition paintings - feel free to contact me: mario {at} quasimondo.com








