AR Drones actually sound the same in real life as the flying drones in Hollywood movies, a high pitched spinning squeal that spits a little when it changes course. The sound echoes against a dark wood floor covering a former public pool floor of the Stadtbad Oderberger Straße. The muffled noise serves as sound insulation between groups of programmers, some huddled together around tables above the turquoise tiled pool walls and others sitting cross legged on the wood floor. They're programming what the military would call "unmanned drones" but what we will soon see as bulls, stalkers, and flying first person avatars.
Okay, #nodecopter is the most ridonkulistest event ever. http://twitpic.com/b18peo
-- Jan Lehnardt
Every year JSConf.eu accumulates more mini-conferences that lead up to the big event. Reject.js started as a meetup showcasing talks that were good but not quite good enough to be at JSConf.eu but three years later is a full one day conference with nearly 200 attendees. Jan Lehnardt, JSConf.eu co-curator, has been wanting to add a node.js event and pushing Felix Geisendörfer to run it. Felix, a true Berliner, is one of the first contributors to node.js other than Ryan Dahl and one of the first named "committers", making him one of the most recognizable figures of the node.js community.
Felix had no interest in doing a mini node.js conference with proposals and speakers and talks or the clever t-shirts people take home and wear to other conferences. He had a better idea.
There are enough node conferences in europe and i had just gotten this drone I was playing with […] and it all worked out just in time, we got the drones just this Monday.
-- Felix Geisendörfer
NodeCopter begins with Felix giving a quick tutorial on the library he's written for controlling AR Drones in node.js. Then people grouped together into teams to start their projects and were given a drone. Felix's library got everyone over the early hurdles that plague most hackathons and within a few minutes people had their code driving the drones and issuing simple commands.
We're in the Stadtbad Oderberger Straße, a public bathhouse built in 1890 that survived through the war without much damage. Time took its toll on the old building and it closed as a bathhouse in 1985. New dark wood floor covers the bottom of old pool where programmers stand to watch their drones during test flights. A metal railing separates the pool's edge from the tables and chairs of teams talking and typing.
Experience in backend, frontend, web, mobile and even design makes these teams choose a wide breadth of projects. While Chris Williams has a pocket knife out tearing the back off a wii controller, substack is messing with ffmpeg compile flags to get bitmaps out of the drone's h264 video stream, and Max Ogden is attempting to compile Chrome Canary on Android to get at its pre-release APIs in order to access a computer on his laptop's microphone.
Felix, a tall man even by German standards, surveys the teams to see if anyone has a problem. If he answers a question twice he'll pick up the mic in the back of the pool and inform the crowd. “Quick thing, if you have batteries that are empty… nice crash… if your battery is empty come talk to us to get a new one over there,” pointing to a line of power strips charging batteries on the far end of the pool.
Around 1pm Max grabs the mic to tell everyone about a library he just published to GitHub. The library takes commands from a web browser and, using socketio, sends them to a node.js web service which sends them to the drone. Solving the "control a drone from the browser" problem was common enough to be worth sharing and even though there are prizes for the best project the mood here is collaborative rather than competitive.
NodeCopter decided to skip catering and even having an "official" break time for lunch. In fact, most of the traditional items you'd find at a hackathon are missing which help illuminate the more important aspects that are being well delivered. A huge wifi dish is strung up between two pillars of the mezzanine. A record setting 7 full sized refrigerators are full of Club Mate, described to me on my first trip to Berlin as the "German hacker drink" by Jan.
The drones come with a few high level pre-programmed commands as well as more fine grained access like individual control of each propeller. The drones have a maximum height they can climb, for safety, and you're also limited in the distance you can be from the drone by its wifi range. Drones will go to sleep "like a crab," as Max Ogden puts it, if you flip them over, which comes in handy when one is coming towards your face and you want to stop it without damaging it.
Drones attempt to flip often and crash. If it happens to be the only drone flying at the moment it crashes the room will be suddenly silent after and is often followed by a roaring applause. Crashes from clipping the propeller are so common you get to know them by sound: a quick plastic fart, a short pause for gravity, and plastic clanging against the wood floor.
At 5pm an open bar opens up in the Club Mate room. The teams start to wind down, some of them grinning, some depressed, and a few others making last minute breakthroughs and celebrating with a screaming high-five.
All the developers, now contestants, as well as many newly arrived spectators sit on the floor in a half circle around the presenters. As the crowd starts to quiet down I can hear Chris Williams, creator of JSConf, say "this is the greatest event ever."
Many contestants created novel controls for a robot. More than one team sent the bitmaps from the camera to a browser and controlled the drone using first person shooter style keyboard navigation. Cole Gillespie hooked up a wii nunchuck and using the Johnny Five was able to create smooth controls in about 10 minutes using the rest of the day to practice driving the drone around which shows as it flys over peoples heads much closer than most of the contestants are comfortable with.
Chris Williams' team has a wii controller stripped on to a breadboard wired to an Arduino. With the Arduino connected to his laptop over USB he's able to use Johnny Five to fly the drone. The upper L and R buttons are mapped for strafing and the joysticks control direction and pitch making his controller give the best flight of the day. His team even had time to add support for a Konami code that makes the drone do a double-flip.
An enviable team including Max Ogden and Brian Leroux created concurrent controls for their drone. Brian says into his phone "takeoff" and the drone rises. Max starts moving his phone around to drive the drone and adjust the pitch while their third member, Matt Smiley, does something resembling a bird call into his headphone mic plugged into his laptop to add acceleration.
Facial detection was another popular tool. Two teams have drones that can follow a person around after detecting their face. Another team's drone moves around detecting faces and dropping images into a folder.
A lone presenter with a silent team member "too shy" to come up starts the demo on his laptop and then walks up to his drone holding an iPad with a bright round marker on it. The drone follows around the marker and in his terminal on his laptop the camera's view of the marker is presented in full screen ascii art.
Domenic Tarr is behind a laptop while Substack steps in front of their drone with a red handkerchief. The projector is filled with a web browser showing a stream of images from the drone. Substack holds the flag high in front of the drone which wobbles as a red target appears over the hanckerchief seen on the project and the drone dives at the target as Substack yells "torro." The drone comes back up after the dive, turns around and begins looking for the matador.
Parrot, who makes the AR Drone, is thanked for their sponsorship with rolling applause. Felix asks the crowd if anyone is now considering buying their own and the pool is filled with raised arms.
We close with a tight family photo with a few drones flying in front before starting the long walk down Schönhauser Allee for the opening party of JSConf.eu.
PS. Besides Felix there was Robin Mehner, Katharina Buca, Tim Koschützki and Thorsten Ball organizing the event, repairing broken drones and keeping the batteries charged.