20100228

Visual Programming for Parents and Kids

There are many things to be thankful about when raising a kid in this era: ubiquitous sushi, a chicken pox vaccine, badass female Star Wars characters, etc. However, thanks to the nice folks at the MIT Media Lab and Lego, design computation geeks also have Mindstorms. Mindstorms is a programmable Lego kit that allows you to build robots, or cars, or toilet flushers, or whatever and make simple programs to determine their behavior. In addition to a few small servo motors, and sensor devices (proximity detector, color sensor, microphone, etc), the kit comes with a small brick of a brain that can be wired up to your computer to download the programs.

However, the best part is the programing environment itself. Talk about you-put-your-peanut-butter-in-my chocolate. This is you-put-your-Rhino/Grasshopper-in-my-Lego. I mean, if Mindstorms was around when I was an adolescent, I never would have developed enough social skills to have a kid and play with Mindstorms.

The interface is one of a growing number of "visual programming" environments out there, and while it is probably a little out of reach of my 6 year old, I think it's right at the level of an architect. The principles are simple, these blocks are for actions (turn the motor forward 1/2 turn or turn the motor back for 5 seconds), these are for inputs (when something is 5 feet away, go to the next block), and these are logical operations and data flow (loops, if/then, etc). Then there's a whole advanced set of actions that we haven't even dipped our toes into yet with variables, randomizers, even the ability to reference external data. Frankly I don't know of ANY program that wouldn't benefit from this kind of toolset.

Anyone who has spent ten minutes in Grasshopper will get this interface. More importantly for the future of mainstream design, the reverse is true. That is to say, there is a whole generation coming up that takes parametric design and componentized relationships for granted. How awesome is that!

It's funny to even be able to do this, but you can compare and contrast the functionality and UI of Grasshopper and Mindstorms. I would say though that Grasshopper has done a much better job in terms of zoom controls and organizing components on the canvas, Mindstorms drives like a garbage barge in comparison. But Mindstorms really nailed the idea of expressing the particular superpowers embedded in each component. For instance, compare the information that you get access to inside a "move" component in MS:


versus a the feedback in a grasshopper "move"



Now, don't misunderstand, I realize that the components do different things, and the MS component is compressing more tools into less componts than GH. Also, I am a total novice at both Grasshopper and Mindstorms. But the clarity with which both environments have figured out how to present what is essentially a coding environment is breathtaking.

More importantly, when my son, Green Octopus Spiderman, asks "Poppa, can you make my robot blast yours when it gets close enough to reach" I can figure it out. For instance, this snippet of code controls 2 robots.





The upper two pieces allows GOS's Robot "The Stinger" to be controlled by the keypads on the little Lego brain, so he can jab my robot "The Crazed Weasel" at will and advance and retreat. The lower section just sets the Weasel madly slashing down and up the moment the stinger gets in range. The Stinger usually wins, but GOS cheats.


It's like Survival Research Labs without the flame throwers.

GOS goes and tells my wife that he just kicked my robot's butt and learned how to make a looping, if/then statement, which leads to my wife looking at me and singing (to the tune of "the Blue Danube Waltz") "Dork, dork, dork, dork, dork! DorkDork-DorkDork!"
True, I'm a dork and I'm proud.

5 comments:

  1. Always be proud of your dorkness! I wanted to give a soldering iron to our oldest on his 6th birthday. Got shot down by the wife.

    ReplyDelete
  2. We have this toy at our house and my 10 yr old loves it. I try to let him do all the engineering (software and mechanical) or I think it would quickly cease to be his toy and it would become mine.

    ReplyDelete
  3. Zach, love the old school wheels on your 'bot. I'm sure your son was dissing you for those. ;-)
    I can't wait to pull out my old legos soon for my 4 year old. Haven't taken the plunge on the Mindstorms yet, because like Jeff, I'm afraid it'll become my toy instead. Guess I'll have to buy two...

    ReplyDelete
  4. I don't know if its good or bad this didn't exist when I played with legos. I might have either been a total recluse or a mars rover designer. I still have memories trying to figure out how to make a helicopter with stacked counter rotating blades...took months.

    ReplyDelete
  5. @Matt: WHAT?! Someone in the future has to fix all our tech! Seriously, some kid gets a soldering iron and all our base will belong to him.

    Mindstorms are a total blast. My son has one and we work on the code together - some great skillz can be developed with the NXT system, I'll tell ya!

    ReplyDelete