While thinking and playing around to see if I could figure out some way to implement tensegrity growth, I realized that there were some important regularities in tensegrities that I was missing. I stared for a long time at Ken Snelson's Needle Tower and started to see what was a recurring pattern. Of course, the great Ken Snelson knew this kind of thing decades ago, and probably spent lots of time climbing around huge tensegrities and feeling them around him while building them. I don't get that opportunity, so my discoveries (if you call them that) are about how to formulate it all in software so we can vastly accelerate time and evolve virtual tensegrities.

The regularity that struck me was a triangle that you often see connecting the joint at the end of one bar to both ends of another bar. Most cables are involved in such a relationship, so I decided to formalize that by creating a class called BarJoint which holds a Bar, a Joint, and the two Cables that connect them into a triangle. Why bother? Well..

There's a simplification available in there! (Also, there's an opportunity to create a phenotypical attribute that is easily expressed, which will help with genetics later). A BarJoint can be used to ensure that the two cables' spans add up to the bar's span, or a little less. The point is, the cables' spans are derived quantities, so their spans are no longer "data". Instead we can just talk about the proportion of the total span the cables each have. One number for two cables. It may be difficult for you to imagine how important this is for us, but it should eventually become clear. An appreciation for this reduction of information is what you need when you're approaching design genetically.

One key thing is that most of the cables in tensegrities are involved in such triangles, and since there are lots more cables than bars, this takes a big chunk out of the number of numbers that will represent a tensegrity (genetically, if you will). Also, since I'm thinking in terms of having the bars contain the "genes", it has been set up so that the bars hold references to the BarJoints that they are involved with. Bars will eventually manipulate the proportion number I mention above for their associated BarJoints.

You can see the first true tensegrity (six bars that don't cross) bounce around here: http://www.darwinathome.org/tensegrity-20071016/. Every cable in this tensegrity is part of a BarJoint. That won't be the case when we build tensegrity columns like Snelson's Needle tower, since there are extra cables between the "modules".

Technorati Tags: