I've had a lot of fun programming with the Xbox Kinect, which is basically a 3D depth sensor + skeleton tracking.
One of my first projects was a painting program for Kinect. You can see its artwork live @KinectPainter
I wrote a program to puppeteer minecraft characters using the kinect. The source code is here
, and you can see a video of it in action here
Using the kinect to design a more comfortable violin chin rest.
Ultimately I expect a similar device to become a household 3D scanner, as well as be used for gesture recognition. Right now the resolution is a little too low, and the latency a little too high.
I built and calibrated a 3D printer. Here are a few related projects:
A fan mount I designed for cooling extruded plastic.
The Prusa i3 I built.
You can see the objects I've designed and shared on my thingiverse account
For more talk about my 3D printing hobby, check out that category on my blog
My time teaching using MIT's Scratch
imbued me with a deep respect for the power of visual blocks to empower young children to program their own games and animations.
Still a work in progress, Bloccoli
allows any Blockly-compatible blocks to easily be imported into the same environment, which then renders the code into a real web page, run right in a browser iFrame.
I've published a few modules
on the npm package repository, attended NodeConf 2013, and have generally grown to really cherish the Node.js community for its diversity, creativity, and friendliness.
In fact, this site is served with Node, using domains for error handling and streams for delivering all of the content. That means you start loading the web page before the server has even read the whole first file involved.
The source code is on github here
Resistance Probability Estimator
I made a web app
for calculating probabilities in the board game The Resistance
It's a very intense game where a couple people in the group are secretly chosen as spies, and the group has to select teams to go on missions, but the spies have the ability to secretly sabotage missions they are on.
I took the opportunity to apply some of the Bayesian statistics I'd been learning over at Udacity's Statistics 101 course, and the result is a very precise, systematic approach to the logical side of this very bluff-heavy game.
Partly inspired by the difficulty of large group cohesion during the Occupy protests, I've put a lot of thought into how the internet could facilitate consensus:
GitThought: A sketch of a discussion engine.
You can read several of my thoughts in this field on my blog
Ultimately I became aware of a competitor
that had been around for years, had partnerships, and still hadn't gained a strong following, making me think the audience wasn't big enough to fight for.
I have however re-used pieces of this code-base for projects such as OPR Crime Map
My first major foray into programming was a joke that asked a question: If Apple's Terms of Service say they will reject apps that 'duplicate functionality, such as fart apps', what would they do for a very innovative fart app?
The answer is they rejected it. But I swear it was the most expressive, creative fart app ever. Check out the promo video I made for it: