Sphero: from Concept Robot to Polycarbonate III – The Apps
18 Dec 2012
There is something incredibly fun about driving a ball from your smartphone. That’s why our first app for Sphero was simple – Drive. Even today, driving Sphero is still what catches people’s attention and makes them smile. And while making a ball controllable is a huge technical feat, it’s just the beginning of what we always had in mind for turning Sphero into a full gaming system. Here’s the story behind Sphero’s apps.
It took a lot of engineering and experimentation to expand our thought process to think of games that really blend the real and virtual worlds. Because Sphero operates in the realm of mixed reality, it presents a unique challenge. Most games have a “closed loop” feedback mechanism. This means that when you do something on the screen to a character, there is an obvious result (shooting the bad guy kills him). But when dealing with mixed reality, what happens in the real world doesn’t show up in the virtual. Driving Sphero is like driving a remote controlled gadget, because no feedback comes back to the app. This makes Sphero feel like a remote control car. And while this is an awesome experience, we wanted more.
Over the last two years, we have been working on closing the loop. Now we have multiple mechanisms, which means more potential for gameplay. First, we can tell when Sphero hits an object via an internal collision detection processor. Next, we know where Sphero has traveled relative to a starting point determined by the app. And finally, we have developed augmented reality for Sphero in which we meld Sphero into a synthetic 3D world relative to the user, by using the smartphone camera to track the ball in real time. This makes augmented reality like Sharky the Beaver possible, and allows for apps like Sphero ColorGrab and TAG. These feedback mechanisms within a closed loop system have allowed us to make more complex, engaging games for Sphero.
Our firmware team never stops brainstorming. They had an idea to allow Sphero to complete autonomous tasks, but they needed a way to program the ball without a phone tethered to it. What they came up with was creating two alternative programming languages. The first was a scripting language that we call “macros.” These execute commands in a sequenced manner, as seen in the Sphero app MacroLab. In the app, you write commands such as driving patterns and color changes with your mobile device, and send them to the ball to execute. You can even email your creations to yourself and friends to use and enjoy. Developers use macros to make complicated sequences like a victory dance in an app, but even middle school children can write complex macros in under an hour.
The second programming language is even cooler. One of our senior engineers referred to the old, open source Microsoft Basic interpreter – written in Assembly language – and crafted a version to run in the ball. Now, Sphero can understand and run Basic programs that act on conditionals and read sensors. That means that if Sphero runs into something or rolls too far from a given spot, it can be programmed to respond a certain way. This allows macros, Basic programs, and apps to run in parallel to create truly sophisticated behavior. No one has stitched all this together in a major app until now. We just released all this capability in the past month with orbBasic and advanced Macros.
We feel pretty confident that Sphero is the most programmable robot in the world in its price range. From day one, we wanted to have a very robust software developer kit (SDK) so that developers outside our team could hack on Sphero and build cool apps – and they have. Developers are doing everything from creating Sphero drinking games like Tippsy, to making 3D controller games like SpheroGlide, and even hacking Sphero to move with devices such as a Kinect. Our team had never built an SDK before, but knew we wanted a high level kit for both iOS and Android. After testing out early versions at hack events and receiving developer feedback, we’re still perfecting it with plugins for environments like Unity and Cocos2D, as well as ongoing firmware changes. It’s an evolving process, and we look forward to what’s ahead with third party apps for Sphero.
We want Sphero to be the next Wii. It’s ambitious, but that’s what we’re shooting for. Our team has already accomplished a lot in just two short years, and one year since Sphero was commercially available. We have over 20 apps available this holiday season including our first augmented reality app, Sharky the Beaver, and Sphero is available in over 3,000 retail stores in the U.S. and internationally. 2013 is going to be just as crazy.
I tell my investors, I could use a hundred extra heads tomorrow and I can keep them busy. Maybe next year we’ll get them. Two years down, and we’re just getting started.