as3

Having fun with Face Tracking and MP3 Pitch control

There is a lot of cool open source stuff coming out this year in the Flash community. Earlier this year we saw the Flash Face Tracking and 2 months ago Andre Michelle showed how easy it was to control the pitch of a sound in Flash 10. I love all that stuff.

So I though, what can I build to have a little fun with all this open source loveliness. A webcam/mic driven pan flute of course! :-)

Here is the source from this experiment.

Get Adobe Flash player

Tags: , , , , , , , ,

Friday, September 11th, 2009 Flash, as3, webcam No Comments

Alice in Wonderland Papervision site is live

Great day yesterday. After all the hard work my colleague Graham and I put in, the site for the new Tim Burton movie has finally gone live.

Alice in Wonderland screen shot

Alice in Wonderland screen shot

For this project we wanted to showcase the characters in a way that made sense for the movie. So we came up with the idea of having them fly past while you (Alice) are falling down the rabbit hole.

The site is my 3rd Papervision site and I’m starting to understand more and more about creating a good working site using this technology. It is really important to re-use your objects and keep an eye on the memory used. If you’re not careful, you can grind a site to a halt quite easily.

The tunnel texture is a looping Movieclip that I put on a cylinder. The camera is inside this cylinder. Then I have a bunch of flat planes with things like a watch, a chair, a crown etc mapped on top of them. They fly past and as soon as they go off screen, they loop back from the bottom again.

The main object of course is the picture frame. I first started off with just a box but that didn’t give the right feel. So I created this more detailed shape that has all the edges and depth of a real picture frame. Graham then created the textures and I put it all together. I love how much more depth it gives the frame.

I use the interactive moviematerial for the front (character) and back (downl0ads) sections. I then added the neat things like the FileReference style download of the icons, so we didn’t need a popup.

Have a look at the site here: http://www2.disney.co.uk/DisneyMovies/alice/

Tags: , , , , , ,

Thursday, July 30th, 2009 Digital Outlook, Flash, as3 4 Comments

Kaleidoscope fun in Flash. Now with superfast image export!

I found this supercool Adobe AS3 library that uses ByteArray to export images superfast. The only thing the PHP does is put a header on it and serve it up. Wicked.

And what better way to test that than building a webcam Kaleidoscope. Hours of fun! Here is the source if you’re interested.

Get Adobe Flash player

Tags: , , , , , ,

Saturday, June 13th, 2009 Flash, as3, webcam 1 Comment

Colour tracking with the webcam in Flash

Something I wanted to do for a while. Track a colour using your webcam in Flash. I draw the webcam into Bitmapadata so I can play around with it. If you take the getColorBoundsRect straight from the raw bitmapdata it will be very hard to get something useful as you just have to many single pixels and colours to analise. So I implement a little trick that makes it better to analise. First I blur the video so it smooths the colours. Then I turn it into a 8 channel image.

After that I just layer a fresh video feed that isnt distorted on top and start drawing based on the colour and position.

Enjoy! You can grab the source here if you want.

Get Adobe Flash player

Tags: , , , , ,

Saturday, June 13th, 2009 Flash, as3, webcam 5 Comments

Flash Facetracking kicks ass

(This is a repost from March 2009, my blog crashed in the meantime :-) )

Last week I noticed a couple Flash guys jumping on the face tracking code. The legendary Mario Klingemann (aka Quasimondo) did a great example and shared his source code.

I really appreciate the fact that people are sharing this source code for others to play with. Good work!

I totaly love the idea of being able to track your face with the webcam. I had a little demo working yesterday (st Patricks day) where I drop a green hat on your head. Hours of fun :-) .
Today on the way into work I remembered the movie The Ring where peoples faces got blurred in pictures when they were about to die. So 20 minutes of playing around with Mario’s source code later and you can see the result below.

I can’t wait to spend a bit more time on this code and hopefully will be doing some client work using this technology soon. Fingers crossed.

Get Adobe Flash player

Tags: , , , , ,

Sunday, June 7th, 2009 Flash, as3, webcam 5 Comments

25 lines of code contest

Keith Peters organised a Flash coding contest where you could do anything you want as long as it was AS3 and didn’t exceed 25 lines. Very cool.

The contest closed last night so I can now post my entry. It’s not rocket science but I think it looks cool :-) . Have fun playing and enjoy the code if you like.


[SWF(width=800, height=800, backgroundColor=0x000000, frameRate=24)]
stage.align = StageAlign.TOP_LEFT;
stage.scaleMode = StageScaleMode.NO_SCALE;

//25 lines begins here
var bmdDisplay:BitmapData = new BitmapData(800, 800, true, 0×00000000);
var drawSprite:Sprite = new Sprite();
var insideDrawSprite:Sprite = new Sprite();
var aPoints:Array = [[0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0]];
var aPositions:Array = [[0,0,1,1],[800,0,-1,1],[800,800,-1,-1],[0,800,1,-1]];
this.addChild(new Bitmap(bmdDisplay));
drawSprite.addChild(insideDrawSprite);
this.addEventListener(Event.ENTER_FRAME, updateStage);
function updateStage(e:Event):void {
bmdDisplay.applyFilter(bmdDisplay, bmdDisplay.rect, new Point(0, 0), new ColorMatrixFilter([1, 0, 0, 0, 0, 0, 0.85, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0.92, 0]));
insideDrawSprite.graphics.clear();
insideDrawSprite.graphics.beginFill(0xFFFFFF);
for (var i:uint = 0; i<aPoints.length; i++) {
insideDrawSprite.graphics.lineTo(aPoints[i][0], aPoints[i][1]);
}
insideDrawSprite.graphics.endFill();
for(i=0;i<aPositions.length;i++){
insideDrawSprite.x = aPositions[i][0];
insideDrawSprite.y = aPositions[i][1];
insideDrawSprite.scaleX = aPositions[i][2];
insideDrawSprite.scaleY = aPositions[i][3];
bmdDisplay.draw(drawSprite);
}
aPoints = [aPoints[1], aPoints[2], aPoints[3], aPoints[4], aPoints[5], aPoints[6], aPoints[7],      aPoints[8], aPoints[9], [this.mouseX, this.mouseY]];
};

Get Adobe Flash player


Tags: , , , ,

Sunday, June 7th, 2009 Flash, as3 No Comments

Conway’s Game of Life in Flash

Sorry, not the most original thing to build but it felt like I had to do it :-)

I love that something that is based on only 4 simple rules can create something so cool. Have a read through this article on Wikipedia if you want to know more about it.

These are the rules:

  1. Any live cell with fewer than two live neighbors dies, as if by loneliness.
  2. Any live cell with more than three live neighbors dies, as if by overcrowding.
  3. Any live cell with two or three live neighbors lives, unchanged, to the next generation.
  4. Any dead cell with exactly three live neighbors comes to life.

Have fun playing! Here is the source if you’re interested.

Get Adobe Flash player

Tags: , , ,

Saturday, June 6th, 2009 Flash, as3 No Comments