Grant Skinner

The "g" in gskinner. Also the "skinner".

@gskinner

Webcam Fluid Dynamics

Conferences, installations and playing with AS3 (more on that soon) have been keeping me pretty darn busy lately, so there haven’t been many quality updates to Gallery Incomplet lately. Hopefully I get some time to post more experiments soon, but in the meantime I’ve posted a video of one of my new favourites: Webcam Fluid Dynamics.

This experiment lets you interact via the webcam with particles that behave similar to fluids. They flow downhill, get caught in bowl shapes, and are generally a lot of fun. Check it out here. I’m definitely going to play with this idea some more soon. I’m interested in tying in some kinematics to allow me to chain particles together.

Ideas abound. Time, unfortunately, does not.

Continue reading →

Double Finalist in FitC Awards!

Wow! I was hoping Gallery Incomplet [Moved to incomplet.gskinner.com] would finalize for the Experimental category in the FitC awards, but finalizing in Self-Promotional as well is a total surprise. Check out all the awesome finalists, and vote for a people’s choice winner here.

I’m really looking forward to the conference. FitC is always a blast! I had a lot of fun delivering my talk (entitled “Playing With Yourself, for Fun and Profit”) at FlashForward, and hopefully it just gets better with practice. If you’re going, be sure to say hi!

gProject Review by John Grden

John Grden, Director of Flash Platform for BLITZ Agency (and creator of Flasc and XRay) just posted a very positive review of gProject and how it has impacted his daily work. It’s awesome to read comments like this, especially from smart, super-capable Flash Developers like John. We never built gProject to make a lot of money, we just hoped to provide a tool that would help people in their job, and develop a model that would let us continue to enhance that tool. For more info on gProject, visit the gProject product page.

John was also extremely complimentary of some training I did with his team a little while back. He’s actually giving me a fat(ter?) head. I’m really psyched to hear that it’s made such a big difference in his career! (and by the way, I do offer on-site training if anyone is interested, just send me an email)

I swear I didn’t pay John for such a ringing endorsement of all things “g”, though I suppose now I’ll have to burn those incriminating photos… 🙂

Saving BitmapData to Server in Flash 8

A while back, I posed a challenge to devise a system that would let you save BitmapData objects to the server from Flash 8 (in AS2). Since then, I have seen a few great attempts, all of which were too slow and intensive to be of much use (imho). I’ve also seen one successful implementation by Craig Swann at webcamtastic (which is a great use of Flash 8 btw).

In the meantime, I’ve been working on my own system. I had 3 goals:

  1. It must run quickly enough with webcam sized images (320×240) to not require chunking (spreading execution over multiple frames)
  2. The upload to the server must be reasonably fast and small (<200kb for a 320×240 image)
  3. The resulting image must be of reasonable quality

I managed to build out the compression/encoding routine in Flash a couple months ago, but then things got busy and we never finished the back-end support. In the last week we finally freed up a couple hours and put together a proof of concept. Overall I’m really happy with it.

It uses down-sampling (to 12bit color) and run-length compression to convert a BitmapData object into a UTF-8 string and sends it to the server via Remoting. It can convert a 320×240 image in just over one second on my G5, resulting in 50-150kb of string data. This is uploaded to the server in a few seconds (dependent on connection speed), and converted into a 50% JPEG, which is of pretty decent quality except for some banding on areas of solid color as a result of the downsampling.

Continue reading →

Source Code: Image gOOifier

I promised I would be blogging and releasing more source code soon, so here’s a start…

A while back I posted my “gOOify Mike Chambers” Flash 8 experiment, which let you distort an image by “pushing” the pixels around with your cursor – similar to Kai Powergoo or Photoshop’s liquify command. Since then I have had a lot of requests for the source code, so I cleaned it up, and you can download it below.

Feel free to modify it and use it in your non-commercial projects (attribution/credit is appreciated, and I would love to see what people build with it). If you’d like to use it in a commercial application, send me an email and we’ll work something out.

Click here to download the source code.

Gallery Incomplet Wins a Rubber Arrow

Last night was the Flash Film Festival at FlashForward 2006 Seattle. Gallery Incomplet [Note: Moved to incomplet.gskinner.com] was a finalist in the experimental category along with three other great sites. I was really thrilled to win another rubber arrow (number three) for a site which has been so much fun to build – it helps validate the general thrust of my session: that experimental work is one of the best ways to learn Flash and gain community exposure.

I’d like to thank my awesome team back in the office for helping to free up enough of my time so that I could do these experiments. I’d also like to thank my wonderful wife for being very tolerant with me ignoring her, staying up late, and for pretending to be interested when I’d show her half completed experiments.

The conference has been really great so far – very well organized, and some awesome sessions. I think my session went well, except some technical difficulties with my webcam. There seems to be a lot of people here (I’d guess it is the most in a few years). I’ve definitely done a bit too much partying though… I’m ridiculously tired today… but it’s been fun. 🙂

Make sure you check out the other finalists, particularly the people’s choice award winner, Dofus. Anyway, my battery is running down, so I’m out.

Gallery Incomplet updates for Jan-Feb

I haven’t made a huge number of additions to Gallery Incomplet [Note: Moved to incomplet.gskinner.com] since my last update. This is because I’ve been really busy since the holidays teaching my London workshop, prepping for FlashForward and FitC, moving into the new office (more info on that soon), releasing gProject 1.3, and all the usual work / personal things that normally keep me busy.

I’ve been meaning to post code for some of the newer experiments, but prepping/documenting source code for release is a significant undertaking and I just haven’t had time. Now that things have settled down to a dull roar, I plan to do more blogging. This will include releasing a lot more source code and tutorials (ie. real content).

There have been a few notable additions though, and I’ve done a fair amount of work updating the engine with hidden features which are described below.

Continue reading →