Recently I've been trying to carve out more time to play with technology - something I'd been neglecting sorely, despite constant admonitions (1, 2) to others to always make time to play.

One of the first results of this is a library for creating peer to peer LAN connections between AIR applications, with a strong focus on mobile to desktop applications. I'll go into more depth about the LAN library in a future post, but for now I wanted to share something I built on top of it... the Nexus One Wireless Slot Car Gas Pedal.

Check it out in the following video:

To summarize: The generic mobile client connects over the LAN to the desktop app. The desktop app sends it a "surface" SWF which contains all of the graphics and logic for the interaction (allowing the host to dictate the experience). The mobile client then sends accelerometer data to the host, which interprets the data, and sends back commands to update the client UI. The host communicates with a Phidgets motor controller, which controls the speed of the cars. And yes, it supports multiple connections (limited to 2 in this case because that's how many cars I have).

I'll be sharing a few other experiments I've built exploring some of these ideas in the near future, as well as more info on the LAN connection code (which I will likely open source if there is sufficient demand to justify cleaning it up and documenting it).

Here's a photo of the original control system, which used a servomotor to replicate physically squeezing the trigger on the slot car controller:

And here's what the harness looks like when you have two hands free to put the phone in it properly: