Motion Tracking and Papervision

A couple of days ago I posted my first attempt at motion tracking in AS3 using a webcam and promised that I would play a little bit more with it. Well, I got a little bit anxious and before refining the tracking code I decided to put it to use.

You may have seen the video of head tracking using the Nintendo Wii. That video inspired me to try my hand at the same concept using Flash, Papervision 3d, and my newly discovered love for trying to get motion tracking / facial recognition into Flash.

Motion Tracking and Papervision

As such, I have created this example which is my first step in creating some sort of tracking interaction with a 3d scene. if you would care to see a little bit more detail about what is going on, hit X to see the video and W to see the framerate. Stay tuned for more updates as I update the tracking code. Once again, I will post the source when it is a little further along.

** please note that you require a webcam to take advantage of the motion tracking, if you do not have a camera the scene’s camera is simply controlled by the mouse.

Devigner / Deseloper Rant

For the past 6 months or so I have been hearing the term “Devigner” or “Hybrid” floating around the Flash industry. While having many talents may be a wonderful thing in small-scale agencies and freelance work, I don’t believe that the skills of a Designer and a Developer should be looked for in the same individual.

I started out in the industry as a graphic designer and web developer but quickly came to realize that the more code I wrote, the less design prowess I had. The trend in the industry to find a hybrid developer / designer is a good idea on the surface but has many flaws. I have always been a fan of the phrase “jack of all trades, master of none”. While it is a great asset to know a little bit about what is happening on the other side of the fence, it should stay on the other side of the fence.

Both designers and developers are creative and skillful in their own ways so why should they try to do it all? I have worked on countless projects where I have been put on a project that was “almost completed” by a designer. Upon getting the files, I am told that I just have to do a little bit of optimization and get the files delivered ASAP. More often than not, once I take a look at the files it is obvious that they need a LOT of work. The designers that I work with are spectacular at what they do, but when they try writing code I am given files that take hours just to understand.

If you would like to be a developer, take a course or two and practice. I didn’t learn to write code over night, nor do I try and create complex designs expecting a designer to pick it up and think it was a job well done. There is a lot more than just being able to write a frame script in Flash that goes into being a good developer, especially when you are creating international pieces.

When I am busy and on a tight deadline, I don’t want to (nor do I have the time to) spend hour after hour ripping apart a project just to re-write 90% of the code that went into the “almost completed” version.

An ideal situation for me is to be able to sit down with a designer as they are starting to work on a project and come up with boundaries and share ideas. I respect their skills and would like to utilize them as much as possible. Just as it isn’t efficient for me to rewrite an application from them, it isn’t efficient for them to spend days creating things that could have been automated with a little bit of code. It is also inefficient for them to realize that it can be done with code and try to do it on their own.

So next time you are thinking about becoming a hybrid or hiring one, take into account the fact that it isn’t as easy or productive as you might think.

Webcam Motion Tracking Fun v1

I have been doing some recent experiments in ActionScript 3 so I thought that I would start posting them. Most of my recent work has been client work using Papervision, but I found a little time to play with my webcam over the weekend.

I have a couple of uses planned for this and will post them when they are done but here is the first iteration.

[kml_flashembed movie=”” height=”240″ width=”320″ /]

With the help of a diff equation from Forrest Briggs, I managed to capture the specific area of movement within the webcam frame. I will continue working and post source once it is complete. This little project is helping me understand the workings of the bitmap data objects in as3.

FITC is done… Back to work

Flash in the Can Toronto 2008 has come to a close and it is back to the real world. I had a great time at the conference and got so much inspiration from what I saw. As always, the presentations showed that there are some people truly pushing the limits of Flash and creating some beautiful things. I got to attend all of the presentations that I wanted to which included most of the technical track.

Yesterday, Grant Skinner talked about his inspirations that drive his work. It was great to see what others do to keep their interests up when they are held back by corporate site limitations. I also managed to catch Keith Peters‘ talk about Chaos which showed how crazy the world of math is.

It seemed as though the focus of many developers in the conference was randomness, with a side of Perlin Noise. It was interesting to see the different methods that everyone uses to generate their work, and it was especially interesting to see just how much randomness their is in the works that look so precise and structured.

If you are interested in some info about the conference and what was talked about, the new FITC blog is a good resource. Most of the presenters also mentioned putting their slides online so keep an eye on their blogs.

FITC – Adobe Keynote

I am just sitting down to watch the Adobe keynote at Flash in the Can in Toronto. Mike Downey is currently running through this. So far he has covered features of Adobe Air and shown demos of QVC and Nickelodeon which show some of the capabilities.

He then moved on to talk about Flex Builder 3 and it’s capabilities, one thing that I didn’t know about was the Flex Component Kit for Flash CS3. It is a toolkit that lets you create content in the Flash CS3 IDE and use it in Flex as a Flex component. I am not very well versed in Flex but I was definitely curious about the options that I had as a Flash IDE user.

Now they are showing us a demonstration of the features of Kuler and all of its strengths. This part of the presentation seems to not fit in very well with the flow of all the presentation content. The only real tie-in is that they are showing an Air app.

Flash Diesel is up ! They are starting off with the showing the new object based animation engine that does not use a timeline. It is the same thing that was shown at MAX and Flash on the Beach last year (, but impressive just the same. They just unveiled a new track-view feature which allows for much greater/easier control of animations.

Up next is the IK part of the demo where they are using a bones tool to add bone structure to movieclips. This is something that I haven’t seen before, they have a quick option to enable bone manipulation at runtime…. very slick.

The ability to manipulate items on the stage in a 3D style has been added to the Flash IDE. There are going to be new controls and capabilities to work with items in a 3D style, the new controls are able to manipulate images and apply things such as tweens to them.

They are now onto Hydra (AIF Toolkit) which is an image processing language, if you would like more information you can check out the info at the Adobe Labs AIF Toolkit site, it can give you much more information that I can. One new things that they are talking about right now is the ability to work with files in the browser without having to send anything through the server. They have added the ability to take something at runtime and save it to your system without having to do a round trip to the server.

Well, that is all for the keynote. I was hoping to see something about Thermo but I didn’t catch anything about it. I did show up 10 minutes late and may have missed it.