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.


Using divided surfaces for complex arrays

User Question: can you make a cable stayed bridge in Revit? Can you do it such that each precast element is distinct and can be individually documented?

Of course, using the method I'll show below, your category ends up being curtain panel. Mwah, mwah. These are modeled as solid sections, the final application would need to be far more nuanced. However, I think this exercise demonstrates how divided surfaces can be used as a sophisticated 3 dimensional array tool. The basic setup for the precast section of bridge uses the same technique of offsetting points shown in this tutorial.
The video is fast and dirty (replaying a journal file), I'll try and add more detail and explanation later. Run time about four and a half minutes.

Suggested listening for this video


From Inside the Factory: Revit as a Database

I like to think of Revit as a database in 3d Modeling drag. RDB Link, an add-in that creates a bi-directional link between Revit and an Access database, really highlights this facet of the platform. Tom Vollaro explores some of the possibilities in this great little video posted on Inside the Factory. It really makes my head swim thinking of the possible ways you could hook up your model to external drivers with this plug in, definitely check it out.