Got to talking about HTML5 at work the other day and rich experiences on mobile browsers. On devices such as the iPhone you can’t run Flash (yet). We were thinking of HTML5 as a possible solution and I remembered someone mentioning to me a port of Processing to javascript a while back. It’s called, simply, processing.js. When I first heard about it, I didn’t think much of it. However, after playing with it some, it’s actually pretty cool. Click the image below to launch a simple sketch. Since IE doesn’t support HTML yet, It will only run on Safari, FireFox, and Chrome. Download source here.
PROCESSING.JS SKETCH 2009.12.02
Color Tracking 2009.09.09
Here are the results so far for my color/motion tracking project. Turns out that you don’t have to use a difference filter when tracking colors. All you basically have to do is isolate a color range using multiple thresholds. Then run getColorBounds to get the coordinates of the color blob. The one thing I do have to add is blob detection, but with vibrant colors I don’t seem to need it.
Click on the image below to launch the swf. You can use the sliders to adjust the image for your lighting conditions. Click on one of the boxes to assign the colors to the channel. Check out my blog post prior to this one to see where I did most of my research. I’ll release abstracted code after the project is complete.
UPDATE: Source code now available here!
Catetgories: Uncategorized
What have I been up to? 2009.09.08
Haven’t posted in a while. That doesn’t mean I haven’t been busy. I just recently got married, so I had better things to think about than programming. We spent a week in Bora Bora for our honeymoon. Check out the video I made in iMovie.
Around the same time, Aaron Smith and I worked on a project with our NY office. It was a good experience. Aaron wrote a good post on it, here. We also added a few new features to Guttershark, we made really good use of Xviews and Aaron added some new stuff to the Service Manager.
Also through our NY office, I will be working on new project involving motion tracking through the webcam. I’ll be posting some of my findings and experiments here. Expect a new ColorIsolation and possibly a new MotionTracking class to be added to my SVN repo after i finish the project.
Windows 7 Macbook Pro Sound Driver Fix 2009.01.16
UPDATE: As this article states, this possible solution was for Windows 7 “public beta”. Not the final release. Since the time of this posting, Apple has also released official bootcamp drivers for Windows 7. For Apple’s official support for Windows 7, go here.
Just installed Windows 7 Public Beta on my Macbook Pro (Core 2 Duo) via Bootcamp. Everything runs just fine (better than Vista) except for sound. Updating sound card drivers to Bootcamp 2.1 drivers did not help as one blog comment suggested. Here’s how to really fix it.
1. On your OSX Leopard install disc explore and find (do not run) /Drivers/RealTekSetup.exe
2. Right-click and select “Troubleshoot Compatability” then click “next”
3. Choose “The program Worked in earlier versions of windows”, click “next”
4. Choose “Windows Vista”, click “next”
5. The RealTek driver installer should then run, proceed as you would normally
6. Enjoy
7 is a lot snappier than Vista, but it’s still too much UI chrome for my tastes.
Lessons from Pixar 2008.12.16

This afternoon a few of my co-workers and I got a rare opportunity to tour Pixar Animation Studios. Big thanks to Ben Ramirez for hookin it up. Our tour guide was Randy Nelson, Dean of Pixar University (Interestingly, he is a former developer for NeXT Computer Inc. according to LinkedIn). To say the least we were all very impressed with not only the facility, but Pixar’s work flow and philosophy. Here are a few highlights of what Randy had to say about Pixar and how they work.
- The Hardest part of what Pixar does is finishing a project with one set of finger prints (one vision) that is worked on by teams of people. Getting individuals to work in teams and getting team players to be individuals.
- There is no bad idea. There are only ideas that match and don’t match the creative concept. Ideas that don’t match go into a pile to be used at another time or to be re introduced as the project evolves.
- Criticize work in front of everyone in an environment where people are physically facing the work on a screen. There should be no secrets. What you say to one person should be heard by all.
- Criticize the work, not the person. The person may be really talented, but the direction of the work could be totally wrong.
- Look at your work from an outsiders perspective. It’s easy to look at work from a experts point of view, but opinions from someone that doesn’t know how to do what you do are even more valuable.
- Extra, not excess, makes an enjoyable and friendly environment. If you do not offer enough resources, people will hoard and not share. If you offer excess resources, people will take it for granted and not take advantage of it. If you offer just a bit extra, people will share and be willing to contribute their own time and resources.
- A third of the creative process is in concepting. Two thirds are in the implementation. The back in forth interaction between the directors and the implementors is where most of the creative process is.
- “Plus” each others work. Let others now what they can do to bring it to the next level. This is an idea from Walt Disney (the person).
In addition they had three “prime directives” that they followed day to day.
- Everyone must have the freedom to communicate with anyone.
- It must be safe for everyone to offer ideas.
- We must stay close to innovations happening in the academic community.
Can a banner ad be cool? 2008.06.27
I’m not usually a fan of banner ads (who is?), but this one built for HP (Goodby Silverstein) caught my eye on cnet.com. It was executed very well. It’s actually got some class.
Instant Storm 2008.05.20
Yeah, I know there are a lot of tools out there to convert Flash to a screensaver, but InstantStorm is by far the most bad ass of them all.
Features worth pointing out:
- Bundle external files with the SWF.
- Ability to use SWF as options panel.
- Transparent Flash install/upgrade.
Access ListData in External ItemRenderer 2008.05.05
There are a lot of examples out there on ItemRenderers. They are mostly inline ItemRenderers and the examples of external ItemRenderers usually leave out one crucial aspect. How do you abstract your ItemRenderer? For example, you obviously don’t want to create an individual ItemRenderer for every single column of your AdvancedDataGrid. This is not really documented and only a few people have blogged on this topic. I eventually found the solution on the defunct blog of Peter Ent in Google Cache.
The solution (or the way to find your solution) is to implement IDropInListItemRenderer in your ItemRenderer component. This will force you to create a listData() setter and getter. You can then override the data() setter to do your bidding.
Below is an example of an ItemRenderer component that can be reused, since it can access the dataField defined in the AdvancedDataGridColumn. The value is displayed in a TextInput. When the TextInput is changed it also updates the dataProvider.
<mx:box xmlns:mx="http://www.adobe.com/2006/mxml" implements="mx.controls.listClasses.IDropInListItemRenderer"> <mx:script> <[CDATA[ import mx.controls.advancedDataGridClasses.AdvancedDataGridListData; import mx.controls.listClasses.BaseListData; private var _listData:BaseListData; public function get listData():BaseListData { return _listData; } public function set listData( value:BaseListData ):void { _listData = value; } override public function set data(value:Object):void { super.data = value; txtInput.text = data[(listData as AdvancedDataGridListData).dataField]; } private function handleInputChange():void{ data[(listData as AdvancedDataGridListData).dataField] = txtInput.text; } ]]> </mx:script> <mx:textinput width="80" id="txtInput" change="handleInputChange()"> </mx:textinput></mx:box>
New Domain, New Blog. 2008.03.19
Maybe not that new. I’ve been sitting on this domain for over a year now and I have had Wordpress installed for about 6 months. Well, I finally buckled down and got this thing skinned. I used a theme called Green Love by Bob as the base of my custom theme.
This will be my second attempt at a blog, but this time I am keeping it focused on web development and digital art. I have had a lot more time and drive to put towards experimenting with new Flash techniques. I have even started an AS3 library project on Google Code. These will be the subjects of many of my posts, along with other random thoughts and finds in creative development.
It’s all crescent fresh.
Hello world! 2007.10.10
Welcome to WordPress. This is your first post. Edit or delete it, then start blogging!


