peter nitsch.net <divy />

peternitsch.net

An exploration of the sensibly insane world of rich media development. peter nitsch :: senior flash developer @ teehan+lax

3D ultrasound in Papervision.

Yesterday my wife and I had an appointment for a 3D ultrasound. We wanted some better images of our new daughter, who we’re expecting in the fall, and this technology seemed like the best way. If you’re unfamiliar with 3D ultrasound, it’s essentially a machine which broadcasts the same ultrasonic waves used in a traditional 2D ultrasound but on multiple planes to simulate a 3D effect.

I thought it was super cool tech, but I could tell the nurse didn’t know how to respond to questions like “What formats can this thing export the spacial data?”. But really, playing around with 3D imagery of my unborn daughter is just too good an opportunity to pass-by. Luckily they gave us a CD of JPG’s.

Here’s an image from the set:

Original ultrasound image

I thought this would be a great chance to play with the Pixel3D class Andy Zupko added to Papervision a while ago. It took some tweaking, but I like the end result.

Ultrasound image in Papervision

View demo.

New Fontpark site is brilliant.

Fontpark 2.0

Yugo Nakamura (aka yugop) has truly outdone himself with the launch of Fontpark 2.0. The concept is simple and very usable, while the physics and performance are stunning. This is one the best Flash sites I’ve seen in a long time.

Perlin Noise explored.

Ever since I caught Robert Hodgin speak at this year’s FITC Toronto I’ve been meaning to play around with Perlin Noise. Robert professed an obsession with the algorithm, and used it in his flocking simulations. His work is done in Processing, so I haven’t bothered searching for source code.

I had a bit of time today to play around with my own Perlin Noise experiments, and ended up with some nice results. I’ll probably be exploring the possibilities of this approach, particularly with its application to Papervision3D.

Here’s one of the experiments. The code’s a bit sloppy, but I wasn’t going for elegance.

Mouse press and drag.

type=”application/x-shockwave-flash”>

source

SunChips Get Green Facebook application launched.

Fresh off the relaunch of sunchips.com, we recently rolled out a unique Facebook application called SunChips Get Green. Developing a dynamic app entirely in Flash that takes full advantage of Facebook API along with a fairly complex data layer was certainly a challenge, but we’re very happy with the end result. I’ll be posting my comments on dealing with Facebook from a Flash Developers perspective shortly. In the meantime, try it out!

Take ’steps’ that reflect on your profile page:

Track all users ’steps’:

Track your friends ’steps’:

New Flash CS4 features demoed at FITC.

Adobe demoed some new features included in Flash CS4 during their keynote at FITC Toronto. I took a small video of 3D transformation tweening:

By far, the most exciting news, that generated the loudest applause, was the new timeline and animation editing interface. Every property in a motion tween now has its own separate timeline (similar to After Effects)! In fact the new interface closely resembles After Effects, which will definitely excite animators. Flash CS4 is shaping up to be a huge step in the right direction.

FITC approaching. Up for an award!

FITC Toronto

FITC Toronto 2008 will be taking place April 19-22 at the downtown Hilton. I’m looking forward to many of this years’ sessions, particularly Moock’s talk on AS4, and Hodgin’s work in Processing. I’ll be around for most of the conference, so if anyone would like to meet up, shoot me an email. The Hive team is hoping to have our first release close to final. A demo version for the conference is very likely.

This year’s conference is particularly special for me, as I’ve been nominated for the “Best Canadian Developer” award. My thanks go out to everyone who had a part in the nomination, and I’m honestly surprised and taken aback by the recognition. I’ve had a great year, with projects like the Telus Holiday Gift Guide, Make Like Miles, and the FWA winning Lancer Earth, so the nomination comes as icing on the cake.

teehan+lax launches new sites for Air Miles and BMW

Last week was launch week for a couple big projects we’ve been working on.

The Make Like Miles quiz is an addition to the Jealous of Miles site for Air Miles. Give it a play if you’re a collector!

Jealous of Miles

1ntensity is a campaign for BMW Canada that includes a microsite and Facebook application.

1ntensity

Sound Properties Linkage bug in Flash CS3 (OSX)

This one had me scratching my head. My latest project involved extending some basic sounds with Hives’ built-in SoundData class and loading them through a library. Seems simple enough, right? Well it is, but only after you discover that the Base Class field in the Sound Properties panel is broken. It will always reset back to flash.media.Sound if changed.

The trick is to change the Base Class in the stand-alone Linkage tab (by right-click and selecting Linkage instead of Properties). Properties will still show flash.media.Sound, but will actually be whatever was set directly through Linkage.

Here’s an example of a sound object in the library. The Linkage tab is what’s reflected on compile.

Linkage Tab

While the Sound Properties tab still says flash.media.Sound. Bravo.

Sound Properties Tab

Finally, plugin support for Hive! (preview)

Recently I've been playing with the idea of adding manager plug'n'play capability to the Hive framework. I never liked the implementation of Papervision3D support via the scene3DManager, and always wanted to split off unnecessary libraries from projects that don't utilize them.

Good news, today I finally got plug'n'play managers working (inspired by Tweener's implementation of Special Properties). To my surprise, it was less work than I thought.

Here's a basic preview of a plugin manager class.

Actionscript:
  1. package org.hive.managers.plugin
  2. {
  3.     import org.hive.managers.Manager;
  4.     import org.hive.managers.StateManager;
  5.  
  6.     public class ThisManager extends Manager {
  7.  
  8.         public static function init():void
  9.         {   
  10.             function conditionalFunction( action:* ):void {
  11.                 // this code is executed within the playSequence method in StateManager
  12.             }
  13.            
  14.             StateManager.registerAction(ConditionalClass, conditionalFunction, false); //boolean flags whether the action is tweenable
  15.             StateManager.registerManager( ThisManager );
  16.         }
  17. }

From inside a state you could plug ThisManager into StateManager like so:

Actionscript:
  1. public override function create():ActionSequence
  2. {
  3.     ThisManager.init();
  4.        
  5.     sequence.push( ConditionalClass );
  6.  
  7.     return sequence;
  8. }

You can expect these changes committed to my branch in the svn very soon. Just a few more kinks to iron out!

New Papervision3D Effects

I spent a couple hours today playing with Andy Zupko's Effects addition to Papervision3D 2.0. Great White is proving to be a huge step forward for the framework. My hats off to the PV3D team.

type="application/x-shockwave-flash">

Continue Next page

-->