We are officially announcing that we’ve raised our Series A round of funding! We are happy to be working with great investors, Madrona Venture Group and Charles River Ventures, on our mission to bring learning and play to millions of children around the world. To date, we’ve raised $9 million of funding, $8 million of which is from this most recent round.
Your contribution to our crowdfunding campaign will go directly towards bringing Bo & Yana to you. Building robots actually costs more than you might think. We’re using funds from our latest round to hire a great team that will build our software platform and make sure you get hundreds of hours of play out Bo & Yana.
Since our crowdfunding campaign 2 months ago, the engineering team has been heads down working on our software platform API for tablet devices. One of the use cases for the API is to provide a way for people to program Bo & Yana using visual animations. We decided it would be fun to make robots dance using the popular animation tool Maya. In this first (of many to come) tech blog articles, we are sharing how we’ve solved the engineering challenges that we faced.
Here is the official version of Bo & Yana dancing to a song you just might recognize, filmed/edited by the amazing students at Palo Alto High School:
The Challenge: Making Robots Dance
While our creative team was busy trying to come up with some sweet robot dance moves, the engineers got to work on building this demo, which has three major components:
Write a Maya parser to convert animation data into a set of sequential robot commands that describe complex actions to be performed at specified time intervals.
Design the API to convert the command sequence into instructions carried out by Bo & Yana.
Create the final app that will synchronize the dance routine with the song.
Step 1: Building a Maya Animation Parser
We built a parser for Maya because it’s a very popular 3D animation tool, and we had been using it extensively to simulate Bo & Yana’s personality traits and actions. Maya represents its animations as a sequence of frames over the entire animation period (30 frames per second in our case). Each frame describes the state of the animated object for that given point in time. The 30th frame, for instance, will contain all the output values of the robot on the 1st second of the animation.
While most static animation data (like color and lights) can be easily translated, converting robot movements from Maya data is much more complicated. Since Maya expresses movement as a series of object coordinates/angles rather than motion curves, it does not match with how we normally control Bo’s movements, which uses power as motor input. But it was fun for us to exercise our trigonometry and vector math muscles to translate these spatial coordinate/angle data points into motor power curves.
Step 2: Creating a “Robot Action” API
The concept of representing animation through a sequence of frames is very expressive and is widely used in many other applications (video, films, etc). We decided to use this concept to express complex actions for Bo & Yana as well. Developers can now create a “wiggle for 1 second” action, for instance, for Bo through a sequence of robot states and also represent even more complex actions by stitching together existing actions! We used this design to choreograph the Harlem Shake dance routine.
Step 3: Putting it All Together
Once we had the command sequence and the parser completed, it was time to put it all together. While everything was supposed to work, in theory, we were a little anxious to see this come to life. We put a lot of stress on the iPad to:
Play the song
Control 3 robots in sync by sending 30 instructions per second to each robot
Process Yana’s accelerometer data in real time. Yana’s role was to start/pause the dance sequence every time you shake it.
With all this heavy computation, the iPad Air we used was processing ~15% slower than what we needed. Optimizing the dispatch_queue and system level timers, we were able to improve the performance within ~3% of our desired process rate!
Here is our very first, unedited harlem shake dance sequence, complete with shake detection to start/pause the routine:
At the end of the two weeks, we got the job done and had a lot of fun during the process, from whiteboarding solutions to making performance optimizations on iOS. In the coming months, we will be putting a lot more work into designing the robot interface API. We are excited to see how third party developers will use our API to make our robots do even more wonderful, creative things!
If you like what we are doing and want to join us to shape the way children lean, and play with robots all day, we’d love to talk to you! Please check out our career page for more information.
One of the best ways to get the creative juices flowing is to get out your comfort zone and play like kids! Last week, our team headed over to Oakland to get out of our element, a little, and dream up play experiences for Bo & Yana. Fueled by board games, pizza, and hot chocolate, we came up with some ideas that we think are pretty fun (and educational)!
Brainstorming musical experiences for Bo & Yana
The first step in the design process is to set constraints and a general framework for what is fun and what we want to teach. Then we brainstormed as many ideas as we can think of within those constraints. We came up with lots of really interesting interactions between Bo & Yana: using Yana as a guitar to strum tunes, programming sounds that associate with movements on Bo & Yana (think theremin!), and mixing symphonies that Bo & Yana can perform autonomously.
Making paper prototypes
Since we’re all about shipping fast, we synthesized the best ideas and created paper prototypes of how the experiences would look on the iPad screen! We created experiences for music, storytelling, and drawing that will potentially be in our final application. It was nice to have people from all parts of the organization working together to be creative and contribute their thoughts.
Presenting our ideas
Some of us even made really awesome multi-dimensional “paper” prototypes. The next step? Our UI designer (Jon) and product manager (Anthony) will make decisions on how they would best fit into the final version of the application. We can’t wait to start putting these ideas in front of our community of kid testers!
Today we are welcoming Mike Schmidt to the team, who will be focusing on firmware engineering. Now what is firmware, anyway? Software engineers work on making the iPad application, and hardware engineers make sure the electrical components and motors work on the robot. Firmware engineers help the iPad talk to the robot and control everything that goes on in the robot’s brain. Mike is actually our magician. He makes it possible for you to tell Bo & Yana what to do just by tapping on your iPad. He comes to us from the Apple iPod team, and before that he was working at Northrop Grumman.
Where are you from? Findlay, OH
What was your major? Computer Engineering at University of Cincinnati
What was your favorite toy as a kid? It’s hard to pick just one. I spent countless hours with my brother building awesome things with Legos. I also loved Spacewarp. It was kind of like a roller coaster with a metal ball that rolls along two plastic tubes. I spent a lot of time tinkering with it and making awesome loops and corkscrews. Half the fun was tuning the track so that the ball was just barely the edge of flying off the track or falling off.
How did you learn to program? I knew that I wanted to program at a pretty young age, and I thought that it involved writing a lot of 1s and 0s in a row. I was a weird kid. Later on, I liked messing around with my family’s computer and figuring out what made it tick. It wasn’t until high school that I really started programming though. I had a friend that programmed a lot, and he got me started with Perl and C. It wasn’t very long before we were analyzing Ethereal packet captures and doing cool projects like writing instant messenger clients.
Why did you join Play-i? I saw the crowd funding campaign video and really liked Bo & Yana. I knew that kid Mike would’ve also loved them. I think that I would have started programming earlier if I had such a fun way to learn the basic concepts. I thought that it would be neat to be a part of that for this generation of kids. I want to help expand kids’ worlds, and that lines up with Play-i’s vision. Plus, now I get to play with robots all day!
What is your role? I’m writing firmware and helping with the hardware architecture. I’ll also be writing some of the lower layers on the iOS/Android side. I want to help make these robots super fun and engaging!
Anything else we should know? I’m pretty good at breaking things.
A couple weeks ago, our engineering team went to Guangzhou, China to get things set up at our manufacturing facility. We are really happy to be working with our manufacturing partner, who has been making products for some of the top toy and robotics companies in the world for over 30 years. As crowd-funding supporters, youmade it possible for us to work with them. They have large volume requirements that we wouldn’t otherwise be able to meet without your support.
Their toy room, which contains lots of toys they’ve manufactured. Looks like a dream!
We were really selective about who we chose to work with. We picked a partner who…
Is capable of manufacturing at a very high level of quality while being competitive on price.
Has strong engineering capabilities and can help us design for manufacturing at scale.
Can make sure Bo & Yana meet our safety, reliability, and performance requirements.
Has extensive experience in toy manufacturing.
Has the manufacturing scale we need to ramp up production.
Has very high standards for environmental and work conditions.
Last but not least, we were familiar with their process since some of our friends and team members have worked with them before. Our engineering team has worked in similar roles at world class companies like Apple and frog design, so they’ve been around the block a couple of times too. We are making sure that Bo & Yana are made with love and live up to the high standards we hold for ourselves as a company.
Our team worked with them side-by-side for a week to get Bo & Yana ready for manufacturing. We created test robots to evaluate the gearboxes and motors, making sure that Bo could move the way our prototypes moved, and checked all the components that are going into Bo & Yana for quality and cost.
In this photo, we’re calibrating Bo’s head motors!
Our manufacturing partner is creating entirely new tools and molds for Bo & Yana, so we also reviewed their designs and made changes to ensure that the parts can be injection molded easily and reliably. Even though the physical design of the robot is pretty set, we might add in some more functionality and sensors that will make playing with Bo & Yana more fun!
A test version of Bo! We tested all the electrical and mechanical components.
We toured the factory to make sure the assembly and test methodologies are just right. All in all, we’ve set the schedule and are off to a great start. We’ll be updating you more on how Bo & Yana will be coming to life!
Our small team is growing day by day! Today we are introducing John Moretti, who will be working on mechanical aspects of robot design. After working at NASA for a brief stint as a rocket scientist, he decided that it would be much more fun to get into toy invention. He specializes in brainstorming new toy concepts and can build them out too! He has a deep toy design background with experience working on classics like Barbie, Elmo, and Hot Wheels.
Where are you from? Woodside, CA
What was your major? Aerospace Engineering at UC San Diego and Industrial Design at the Academy of Art University
What was your favorite toy as a kid? Teddy Ruxpin. Teddy was the first toy I ever had that really came to life. I still have him today and he still works, even though he is missing his lower jaw and talks like he is possessed!
John as a kid! He’s a rare Bay Area native.
How did you learn how to program? I had taken a C programming class before, but the first time I realized how much fun programming could be was when I first used a Basic Stamp in an art class when I was in college. I used it to create a plant that would swing its branches out and scare people when they walked by. That was the first time I learned how to control motors and sensors through programming. This class was actually one of the main reasons I went back to school to study toy design!
What are your hidden talents? I am especially talented with an X-Acto blade and super glue.
Why did you join Play-i? I joined because I know how great these robots will be when kids realize they can make them do just about anything they can imagine.
What is your role and what do you hope to do? I am involved with the mechanical aspects of production. I am also working on new, super fun ways to play with Bo and Yana.
What will you be doing when you’re not building robots? I keep busy with lots of hobbies. I like to work on my 50′s pickup truck and am continuously trying to add more things to my very small man cave. I try to survive triathlons in the summer as a way to counter-act the lack of working out that I do during the rest of the year. I am not ashamed that I know more about Barbie dolls than most 7 year old girls- and that I play with them, too.
This is a Barbie product that John helped design! Image courtesy of metro.co.uk
Currently, my main focus is trying to come up with ways to make my 5 month old daughter laugh. Finally, I don’t like to brag, but I did win a trophy for winning an UNO tournament when I was 6 years old. I still have the trophy. It may or may not be on my mantel.