Class 12: Tensegrities

Flash and JavaScript are required for this feature.

Download the video from iTunes U or the Internet Archive.

Description: This class covers several examples of tensegrity structures and in Freeform software. A question on linear programming's application to the motions and stresses is addressed.

Speaker: Erik Demaine

PROFESSOR: Alright, lecture 12 is about tensegrities, like this one which you saw. And when they're rigid-- infinitesimal rigidity, and carpenter's rule theorem, all in one quick lecture. So, just a couple questions about tensegrities. Well first is about infinitesimal rigidity in general. This is sort of extra, bonus. I talked about one reason why this dot product condition is the right thing, which is based on projection.

But there are other ways to think about it. So let's say we have an edge, vw-- actually I think I'll draw it w on the left. So here's vw. We would think of this point is being c of w, that's your configuration. This point is c of e. Then we were talking about when, if you have a velocity vector, d of w, and a velocity vector--

Say something like this, d of v, when it preserves the length of this bar to the first order. And the condition we had was c of v minus c of w dot product with d of v minus d of w equals 0. So the question-- so the way we said in class this works is if you look at the projected length of this vector onto the segment, that's essentially how much shorter, in this case it gets shorter, in this case this is how much longer the segment gets to the first order.

And that corresponds to d of v dot product with this vector, because this vector, c of v minus c of w is this direction here. c of v minus c of w. So if you take the dot product with this vector, you get that projected length. You want those two dot products to be equal. And so you want the difference to be 0. That's one way to think about it.

But, in fact, this quantity also has an intuitive notion, if you've done some basic mechanics. This is the relative motion of v with respect to w. So it's like-- well imagine w is not moving. To do that you just subtract d of w from all motions. Then w will remain stationary to the first order, so all first order motions.

So then what's the motion of v? Well, it's going to be d of v minus d of w, because everything get's subtracted by d of w. So that it is-- minus d of w corresponds to drawing that vector in the other direction, and then adding that to d of w corresponds to this kind of picture. This is minus d of w. And so this vector is d of v minus d of w.

That's the sum of those two vectors. And the claim is what we want is for these two vectors to be perpendicular to each other. The edge and the motion. And this makes a lot of sense, because we're imagining w as not moving, so it's just v moving. And we want the motion of v to be perpendicular locally, to the segment, because that's going to preserve the length.

So that's actually, I think, an even more intuitive way to see it. And since this video, this lecture video, has been online for two years, every year so I get an email saying hey, you asked what is d of w minus d of w mean? And, yes, I didn't realize it at the time, but it's just relative motion. And so, yeah. It's like if you're moving along this circle, centered at w, that's where you want to be, either straight up or straight down.

Clear? Some bonus intuition. It's a little harder to see the other conditions from this perspective, at least I find it harder to see. But I guess I shouldn't claim that, or else I'm going to get more emails in the future. Let's see, if you want it to be-- what does the dot product being greater or equal to 0 mean? It probably means that this angle is obtuse, which means that the lengths getting longer.

And less than or equal to 0 means that the angle is getting non-obtuse. And if the dot product rule of the cosine of the angle, you should be able to figure that out. But it's a little bit less memorized in my head. Whereas dot product equals 0, everyone remembers that's being perpendicular. So this was struts and cables.

Next question was, a couple questions here. One is how can you say the tensegrity you showed is rigid? Because you can flex it. This doesn't look very rigid, this guy here. It looks quite flexible. And then there was another question, by someone else, saying why did you use springs to represent bars? And these are sort of the same question. This is flexible because the springs are flexible.

The idea with the springs, I mean I'm just guessing why this model is made this way, springs are nice because they do have a natural resting length. So in that sense, they want to be a given length. And if you pull on them they try to restore the original length. Also if you push on them, you can do it, but they try to restore to there resting length.

And right now these guys are all on their resting length. And what's cool about this is you could kind of feel the resistance. I mean this is what happens in any material, you pull on it, it can maybe pull a little bit, but it gives a lot of force going back to its original state. These-- I don't know, these cables, probably you could stretch that material and very tiny amount.

I could feel the force, it's a little less visible. Here you can actually see the force and, because it's so much smaller, it's easier to feel what's going on in here. I think that's the intuition. You could, of course, construct these with steel bars. It's just then it wouldn't move, it would be a little less exciting. So it's up to you, of course. But this is just one way to build models of tensegrities.

But it's also why it's so flexible, because these bars are not super strong. But what's kind of fun is you feel the equilibrium stress here, that things go back to where they were originally. They kind of hold in position there, because all the stresses here balance out. And one more kind of question is about-- sculpture-- tensegrity sculptures are cool so I thought I'd show you a few more examples.

The sort of-- the master here is Kenneth Snelson. I think he possibly invented tensegrities. And I showed one example in lecture, but these are many more. He's been doing it since the '60s. Some of them are very big, I have some measurements here. This guy is 85 feet long and rests on these three posts. And it's a little hard to see the cables here, but it's all struts and cables.

So using these bars to be-- actually they might be bars in this picture. I think they might be rigid even when they're struts. And some more. This is one of the longest, at 72 feet. And this is the tallest, at 90 feet. Pretty impressive. This is a taller version of the one that I showed last time, or in lecture.

So I'm not sure how he designs them, he's an artist by trade. Whether he uses computational tools, or gadgets, or I'm not sure, it would be interesting to talk to him, actually. But if you want to see more examples of this sculpture, this is just a piece of it, go to his website. On the design side, our good friend, Tomohio Tachi, who do the origami Origamizer Bunny, has also done a tensegrity bunny.

And he didn't design this by hand, as you might imagine. He designed it with a new piece of software that hasn't yet been released, called Freeform Tensegrity. You start with a polyhedron, and there's a few different initial constructions that kind of set that thing up as a kind of tensegrity. And then it solves to make it balance, to have an equilibrium stress.

And on the right is the stress. These are what a structural engineer would call force polygons. It's essentially the-- it's like if you take this graph and you rotate-- this is all in 3D, by the way, so a little tricky. That's rotating. In this case he's pulling on things, trying to force vertices to come together. And the whole thing is updating.

And as long as this number down here is close to 0, here it's 10 to the minus 20, it's a pretty good approximation of 0, then this thing is in equilibrium. It's again, solving all those constraints like we have before. So force polygons. You take every edge, you rotate it 90 degrees, and then sort of con-- imagine constructing a little polygon around each face.

So you scale the edge by the stress in there, and those polygons should close up to be 0, if, at the vertex, you satisfy equilibrium. And you can draw all those polygons. Those polygons can be joined together to make one kind of graph. And if that graph closes up, then you have an equilibrium stress. So it's kind of a neat way to visualize that the thing is rigid.

Or rather that it would hold all of these edges at fixed length, and you have to verify that the bar structure is rigid, but this is presumably constructed to have that property. So hopefully this software will be released at some point. It definitely looks like a cool way to play around with tensegrities and design things. Question?

AUDIENCE: Is there any way to see what happens to the equilibrium stresses [INAUDIBLE]?

Uh. I see, yeah. That's a good question. So can you see what happens if I-- like when that one, when I tweak it and then wobbles. Yeah. It would be nice to see that in simulation, definitely. This software is based on free form origami designer, and that has the two modes, right? One where you can change the crease pattern, and one where it tries to stay, keep it fixed.

So I'm not sure whether the software has the same two modes, but it certainly could, that's definitely computable. You could basically ignore the concerns for awhile, pull on something, then let go, let it restore the constraints without it changing the tensegrity, like it's doing here. And you should see it wobble. In fact, in that case you'd probably want to use a less good numerical method.

Because you don't want it to stabilize as quickly, you'd like to see it jiggle for a while. So it should be doable. Could be an interesting project to extend the software, if it hasn't been implemented yet. I could ask him. I asked him last night, he say that the plan is to release it at some point, but not quite ready for prime time yet. Other questions about this?

So I think this would be fun to play with. If you want to build some tensegrities there's a couple descriptions of how to do this out of various, easy to find, household objects like straws, or with these wove rubber bands, things like that. So you can check out-- George Hart has two construction web pages about them.

They're linked from this slide, if you go to the lecture. That was all I had for questions. Any more questions about this lecture? All perfectly clear? We'll be seeing a lot more stuff about locked linkages, the carpenter's rule part, which is at the end of class in the next two-three lectures.

AUDIENCE: Can you explain how infinitesimal motions--

Well, in general, a linear program is something like-- you have a matrix and you multiply it by a vector. And then you have, let's say, in our case we have greater than or equal to 0. So when I say 0 I mean 0 0 0. The dual of a linear program is what you get by transposing the matrix, basically.

So you get-- you rotate it 90 degrees, or actually flip around that diagonal, so all the columns become rows, rows become columns. So now you've got some other thing here, which is going to be this big. It's probably going to be less than or equal to something that big. So this is a transpose, this is y, and this is usually called c, this is, in general called little b.

And they are relations between these two things, is the short version. But you can kind of see-- so in principle, if we take-- this is, in our case, this is basically the rigidity matrix. This is rigidity matrix prime, in the lecture. Because if we want to write greater than or equal to 0, struts are just fine. Cables we negate everything in the row. Bars, where we have equality, we need both the original version and the negated version of that row.

But if we just imagine struts for the moment, because I mean subsets everything-- well, can be simulated by struts and negative struts, struts and cables. Then we had the number of rows here, this was essentially the number of edges in our linkage. And the number of columns here was d times n, this was the number of degrees of freedom. These are the coordinates of all of our things.

And then x here was actually our velocity vectors, and so on. Well, actually, I should probably write that. So this, what we're calling velocity vector's, d. This is our-- It's like conflict. This is different d. These are the d vectors, the derivatives. So, what would these things be? Well the columns here are going to be edges. And the rows are going to be coordinates.

And remember equilibrium stress looks like this. Basically for every vertex we have sum over all other vertices, let's say v w is an edge of, what is it, stress of vw times c of-- I forget whether c of v minus c of w or the reverse, equals 0. So this should look good. The number of these constraints is-- well here it says it's the number of vertices.

But in fact, when you say equals zero, this is a vector sum, so this has d coordinates. When you say that equals 0, that's d constraints. So they're d times n constraints. And how many things are involved in the constraints? Well essentially the edges, every edge has a term in here. So that's kind of why that looks right. You have to go through the algebra and exactly what's written here, to see that when you transpose it, you do exactly get this constraint.

And there's the issue of equals 0, versus greater than or equal to 0. So that's a little bit more subtle. But that's the short version. And you also have to check that the-- when your strut or cable, you get just a sign constraint on this thing. That's maybe a little less obvious. But at least a high level, this looks right. And the relations about the primal and the dual linear program about--

So for example, this linear program, which is characterizing all infinitesimal motions, if you find an infinitesimal motion, twice that vector or the set of vectors is also an infinitesimal motion. So the solution space to this linear program is what's called a convex polyhedral cone. Meaning-- I mean this is sort of the beginning of a cone, but it goes off to infinity.

You could take any motion you find and scale it off to infinity. You always include the origin 0, 0, 0. Because you can always do no motion. But any motion can be scaled up. So if this thing has a solution at all, other than the 0, 0, 0, motion, it's an unbounded lp, meaning you go off to infinity. And when the primal lp is unbounded you know things about the dual, which I forget.

But you cannot have one being unbound and the other being something else. And so that guarantees that there's an equilibrium stress. That's roughly how it works. Are there questions?