1 00:00:03,210 --> 00:00:04,800 PROFESSOR: All right, so this lecture 2 00:00:04,800 --> 00:00:09,200 we talked about lots of cool origami design software, all 3 00:00:09,200 --> 00:00:11,430 written by Tomohiro Tachi. 4 00:00:11,430 --> 00:00:15,470 We had Origamizer, Freeform Origami Designer, Rigid Origami 5 00:00:15,470 --> 00:00:16,379 Simulator. 6 00:00:16,379 --> 00:00:19,070 And then he talked about a bunch of other things 7 00:00:19,070 --> 00:00:21,320 that he's built using that kind of technology, 8 00:00:21,320 --> 00:00:24,080 like cylinder folding and so on. 9 00:00:24,080 --> 00:00:25,510 And I got a bunch of questions. 10 00:00:25,510 --> 00:00:28,820 So first is an exercise. 11 00:00:28,820 --> 00:00:32,479 If you haven't picked up handouts, grab them. 12 00:00:32,479 --> 00:00:34,750 Let's fold something from Origamizer. 13 00:00:34,750 --> 00:00:38,120 And I made the pretty much the simplest possible thing 14 00:00:38,120 --> 00:00:42,854 you can make, which is four squares coming together. 15 00:00:42,854 --> 00:00:44,270 And so this is the crease pattern, 16 00:00:44,270 --> 00:00:45,395 and we're going to fold it. 17 00:00:45,395 --> 00:00:49,830 You can start folding now if you like. 18 00:00:49,830 --> 00:00:52,149 So I'll do it too. 19 00:00:52,149 --> 00:00:54,440 So the first step in folding a crease pattern like this 20 00:00:54,440 --> 00:00:56,290 is to precrease all the folds. 21 00:00:56,290 --> 00:00:59,240 The easiest way to do that is to precrease them all mountain. 22 00:00:59,240 --> 00:01:02,480 And these black guys, we're actually going to fold-- I'm 23 00:01:02,480 --> 00:01:04,879 going to make a rectangular region here, 24 00:01:04,879 --> 00:01:07,750 because I didn't trim the paper to the square. 25 00:01:07,750 --> 00:01:10,500 So you've got a fold along these two black lines 26 00:01:10,500 --> 00:01:12,390 and all of these guys. 27 00:01:12,390 --> 00:01:19,090 So it's a good exercise in folding crease patterns, 28 00:01:19,090 --> 00:01:22,090 if you didn't already do one NP set two, which is due today. 29 00:01:26,285 --> 00:01:28,410 When you're mountain folding, you can pretty easily 30 00:01:28,410 --> 00:01:31,190 guide along a straight line. 31 00:01:31,190 --> 00:01:33,010 So you just fold, unfold, fold, unfold. 32 00:01:47,691 --> 00:01:50,190 Don't worry about the mountain valley pattern at this point. 33 00:01:54,220 --> 00:01:56,100 It's really hard to precrease a valley. 34 00:02:57,780 --> 00:03:00,330 When you're precreasing the non-horizontal and vertical 35 00:03:00,330 --> 00:03:03,250 folds, make sure you only crease the part that's marked. 36 00:03:03,250 --> 00:03:04,380 Don't go too far. 37 00:04:06,979 --> 00:04:07,520 How we doing? 38 00:04:07,520 --> 00:04:09,721 How many people have precreased? 39 00:04:09,721 --> 00:04:10,470 No one, all right. 40 00:04:10,470 --> 00:04:10,970 I win. 41 00:04:13,600 --> 00:04:15,965 It helps that I've already made a couple of these. 42 00:04:15,965 --> 00:04:18,579 This is what it's going to look like when it's folded. 43 00:04:18,579 --> 00:04:21,000 On the back, you'll have the four rectangles. 44 00:04:21,000 --> 00:04:21,820 Beautiful. 45 00:04:21,820 --> 00:04:25,520 And then on the front where all the color is, 46 00:04:25,520 --> 00:04:27,400 you see all the crease pattern. 47 00:04:27,400 --> 00:04:31,850 And so we're going to-- as Origamizer always does, 48 00:04:31,850 --> 00:04:37,710 it adds these tabs, the tuck parts, along each of the edges. 49 00:04:37,710 --> 00:04:40,150 And that the vertex you've got a slightly more complicated 50 00:04:40,150 --> 00:04:42,209 thing. 51 00:04:42,209 --> 00:04:43,875 So that's what we're going to be making. 52 00:04:48,510 --> 00:04:52,670 This is an example of the tried and tested advanced origami 53 00:04:52,670 --> 00:04:54,310 folding of almost anything. 54 00:04:54,310 --> 00:04:58,160 First precrease all the creases, then fold all the creases. 55 00:04:58,160 --> 00:05:00,150 Then you have your model, pretty much. 56 00:05:05,830 --> 00:05:08,650 But the precreasing is usually the really tedious part. 57 00:05:08,650 --> 00:05:10,310 When we're feeling high tech, we'll 58 00:05:10,310 --> 00:05:13,960 precrease with a sign cutter, which 59 00:05:13,960 --> 00:05:18,140 is a computer-controlled robotic knife blade. 60 00:05:18,140 --> 00:05:19,780 We'll score along the creases. 61 00:05:19,780 --> 00:05:22,820 Or a laser cutter, which can burn halfway through the paper. 62 00:05:22,820 --> 00:05:27,150 Or pick your favorite tool. 63 00:05:27,150 --> 00:05:29,550 The fanciest is a computer-controlled ball 64 00:05:29,550 --> 00:05:32,030 burnisher. 65 00:05:32,030 --> 00:05:33,870 Once you've precreased everything mountain, 66 00:05:33,870 --> 00:05:37,064 you want to reverse in particular the black lines. 67 00:05:37,064 --> 00:05:38,730 Those are really the only important ones 68 00:05:38,730 --> 00:05:43,630 to reverse, I find, in this model. 69 00:05:43,630 --> 00:05:46,186 So those are all going to be valley. 70 00:05:46,186 --> 00:05:49,480 You want to invert them to be valleys. 71 00:06:33,740 --> 00:06:37,950 Once you've got those guys, you can collapse your flaps. 72 00:06:37,950 --> 00:06:38,840 Here's the fun part. 73 00:06:42,590 --> 00:06:45,370 Ideally, you can collapse maybe all four of them at once. 74 00:06:45,370 --> 00:06:47,438 Let's see. 75 00:06:47,438 --> 00:06:49,550 It's been hours since I've folded one of these. 76 00:06:49,550 --> 00:06:51,740 I've forgotten how it's done. 77 00:06:51,740 --> 00:06:54,660 You get this kind of floppy version. 78 00:06:54,660 --> 00:06:58,000 These polygons aren't flat like they're supposed to be. 79 00:06:58,000 --> 00:07:01,270 And this is where we have too much material at the vertex 80 00:07:01,270 --> 00:07:01,770 here. 81 00:07:01,770 --> 00:07:03,500 And so there's these tucks, which 82 00:07:03,500 --> 00:07:07,630 are just crimps, as we've been calling them. 83 00:07:07,630 --> 00:07:11,460 And the blue here is mountain, the way I've set it up. 84 00:07:11,460 --> 00:07:13,660 So you just do all of those crimps. 85 00:07:13,660 --> 00:07:14,754 Mountain valley. 86 00:07:14,754 --> 00:07:15,420 Mountain valley. 87 00:07:15,420 --> 00:07:17,440 It's kind of like little simple folds 88 00:07:17,440 --> 00:07:19,940 but in this three-dimensional state. 89 00:07:19,940 --> 00:07:22,320 And when you put them all in, it just 90 00:07:22,320 --> 00:07:24,000 makes exactly the desired form. 91 00:07:24,000 --> 00:07:27,805 That's because this is has been designed 92 00:07:27,805 --> 00:07:30,180 to have exactly the right angles after you do the crimps. 93 00:07:30,180 --> 00:07:33,620 And there's only one-- if your paper was rigid, 94 00:07:33,620 --> 00:07:37,580 there'd be only one possible shape this could take on. 95 00:07:37,580 --> 00:07:41,297 And there it is. 96 00:07:41,297 --> 00:07:42,920 This is supposed to be-- usually, 97 00:07:42,920 --> 00:07:46,250 you fold it this way so that all the crease lines that you print 98 00:07:46,250 --> 00:07:49,370 are on the backside, so you can't see them. 99 00:07:49,370 --> 00:07:51,290 So then you have your perfect model out here. 100 00:07:51,290 --> 00:07:54,490 Not so perfect. 101 00:07:54,490 --> 00:07:56,670 You'd just be exposing the origami side 102 00:07:56,670 --> 00:07:58,800 with the tucks hidden on the backside. 103 00:07:58,800 --> 00:08:00,510 Usually, you also want to hide the tucks. 104 00:08:00,510 --> 00:08:02,926 But of course, if you want to get it the other way around, 105 00:08:02,926 --> 00:08:05,230 you just fold the blue valleys. 106 00:08:05,230 --> 00:08:07,160 The red's mountains. 107 00:08:07,160 --> 00:08:09,331 But I find it's a little easier to fold this way, 108 00:08:09,331 --> 00:08:10,830 where you can see what you're doing. 109 00:08:10,830 --> 00:08:14,351 You can see all the crease lines you're making. 110 00:08:14,351 --> 00:08:16,200 I can see the advanced folders are already 111 00:08:16,200 --> 00:08:18,470 going on to the next one. 112 00:08:18,470 --> 00:08:21,420 This one is six squares, all coming together. 113 00:08:21,420 --> 00:08:25,630 When folded, it looks something like this. 114 00:08:25,630 --> 00:08:29,390 But note that the crease pattern as I've drawn it kind of 115 00:08:29,390 --> 00:08:33,400 requires you to cut out this outer shape, 116 00:08:33,400 --> 00:08:35,940 because I haven't drawn the creases that are outside there, 117 00:08:35,940 --> 00:08:37,270 to make it easier to fold. 118 00:08:37,270 --> 00:08:39,539 So if you're folding ahead, ideally, you 119 00:08:39,539 --> 00:08:43,032 cut along all the black lines in the outside. 120 00:08:43,032 --> 00:08:43,870 Those guys. 121 00:08:43,870 --> 00:08:47,050 And then when you want to put in these tucks-- you see how these 122 00:08:47,050 --> 00:08:51,170 are lined up-- you just want to crimp that. 123 00:08:51,170 --> 00:08:52,170 All right. 124 00:08:52,170 --> 00:08:54,349 You can keep folding at home. 125 00:08:54,349 --> 00:08:56,390 I want to show you a little bit about the process 126 00:08:56,390 --> 00:08:57,760 of making that crease pattern. 127 00:08:57,760 --> 00:08:59,960 It's pretty easy once you know how, 128 00:08:59,960 --> 00:09:01,480 but if you haven't done it before, 129 00:09:01,480 --> 00:09:04,240 the first time is a little bit challenging. 130 00:09:04,240 --> 00:09:07,460 I use a 3D-- first you draw your 3D squares 131 00:09:07,460 --> 00:09:09,440 that you want to make. 132 00:09:09,440 --> 00:09:12,210 I use a program called Rhinoceros 3D, which 133 00:09:12,210 --> 00:09:14,280 has a pretty cheap academic license, 134 00:09:14,280 --> 00:09:18,220 and it's commonly used around here in architecture. 135 00:09:18,220 --> 00:09:21,466 You get a top-down view and a perspective view, 136 00:09:21,466 --> 00:09:22,590 and all these great things. 137 00:09:22,590 --> 00:09:25,150 In this case, I just wanted to draw four squares in a plane, 138 00:09:25,150 --> 00:09:28,380 so it was pretty simple. 139 00:09:28,380 --> 00:09:31,270 I should have the file here. 140 00:09:31,270 --> 00:09:32,040 Four squares. 141 00:09:37,600 --> 00:09:39,660 So it looks like this. 142 00:09:39,660 --> 00:09:45,675 I've got my four squares like that. 143 00:09:45,675 --> 00:09:46,420 Very exciting. 144 00:09:46,420 --> 00:09:48,370 Here's what it looks like in three dimensions. 145 00:09:48,370 --> 00:09:49,500 Wow. 146 00:09:49,500 --> 00:09:54,320 Then you export that into DXF format. 147 00:09:54,320 --> 00:09:56,880 Or sorry, into OBJ format. 148 00:09:56,880 --> 00:10:00,920 So you save as OBJ. 149 00:10:00,920 --> 00:10:04,140 You've got a zillion options. 150 00:10:04,140 --> 00:10:05,820 You want to polygon mesh. 151 00:10:05,820 --> 00:10:06,970 Polylines. 152 00:10:06,970 --> 00:10:07,730 UNIX. 153 00:10:07,730 --> 00:10:11,890 That works for me, though some variations may also work. 154 00:10:11,890 --> 00:10:16,120 Then you've got your OBJ file. 155 00:10:16,120 --> 00:10:20,085 You run Origamizer, which looks like this. 156 00:10:23,640 --> 00:10:29,130 And you can drag in your new OBJ file. 157 00:10:29,130 --> 00:10:29,730 Here it is. 158 00:10:29,730 --> 00:10:30,680 Exciting model here. 159 00:10:30,680 --> 00:10:33,810 This is in three dimensions. 160 00:10:33,810 --> 00:10:38,550 And then you say develop. 161 00:10:38,550 --> 00:10:40,850 Actually, first you should probably do angle condition, 162 00:10:40,850 --> 00:10:42,460 and then develop. 163 00:10:42,460 --> 00:10:46,950 Now you've got something like a crease pattern. 164 00:10:46,950 --> 00:10:48,586 It's actually just placing the squares, 165 00:10:48,586 --> 00:10:50,710 and you can change how the squares are placed here. 166 00:10:50,710 --> 00:10:53,043 I spread them out a little bit so that this tuck was not 167 00:10:53,043 --> 00:10:54,090 super tiny. 168 00:10:54,090 --> 00:10:55,930 This model isn't very constrained. 169 00:10:55,930 --> 00:10:58,380 And then you say crease pattern generation, 170 00:10:58,380 --> 00:11:00,840 and you get your crease pattern. 171 00:11:00,840 --> 00:11:03,060 And you can adjust how spread out 172 00:11:03,060 --> 00:11:05,860 you want these, how big you want your tucks to be. 173 00:11:05,860 --> 00:11:10,000 I made it nice and square, and something like that size. 174 00:11:10,000 --> 00:11:14,690 Then when you save, you get a crease pattern in DXF format. 175 00:11:14,690 --> 00:11:18,640 And then hopefully your drawing program can edit DXF. 176 00:11:18,640 --> 00:11:20,740 I think I opened it in Rhino, then exported 177 00:11:20,740 --> 00:11:24,140 to Adobe Illustrator, and then open in Illustrator. 178 00:11:24,140 --> 00:11:26,420 I removed all this stuff on the outside, 179 00:11:26,420 --> 00:11:29,540 because I just wanted this square boundary. 180 00:11:29,540 --> 00:11:32,550 But you can do whatever you like. 181 00:11:32,550 --> 00:11:37,620 So that's Origamizer in action. 182 00:11:37,620 --> 00:11:39,600 Wow, 900 frames a second. 183 00:11:39,600 --> 00:11:42,330 That's fast. 184 00:11:42,330 --> 00:11:44,400 Of course, if you do more complicated models, 185 00:11:44,400 --> 00:11:46,796 it can be a little more involved. 186 00:11:46,796 --> 00:11:47,670 We've seen the bunny. 187 00:11:47,670 --> 00:11:48,610 What haven't we seen? 188 00:11:48,610 --> 00:11:49,580 A mask. 189 00:11:49,580 --> 00:11:51,230 Never done this one. 190 00:11:51,230 --> 00:11:53,750 You should see develop. 191 00:11:53,750 --> 00:11:54,420 Boom. 192 00:11:54,420 --> 00:11:55,760 There it goes. 193 00:11:55,760 --> 00:12:00,310 And spreading them out, trying to solve all the constraints, 194 00:12:00,310 --> 00:12:01,850 at some point it will converge. 195 00:12:01,850 --> 00:12:04,390 In the lower left, you can see its current error value. 196 00:12:04,390 --> 00:12:08,650 When that gets down to zero you have a perfect crease pattern. 197 00:12:08,650 --> 00:12:10,130 Except for these green regions. 198 00:12:10,130 --> 00:12:15,190 The green regions means that the tucks in the 3D model, some 199 00:12:15,190 --> 00:12:17,640 of the-- it's a little hard to turnaround. 200 00:12:17,640 --> 00:12:21,469 Some of the tucks may be intersecting. 201 00:12:21,469 --> 00:12:23,010 So if we look closely we can probably 202 00:12:23,010 --> 00:12:25,490 find some tucks that are crossing each other. 203 00:12:25,490 --> 00:12:27,800 And if you want to deal with that in the software-- 204 00:12:27,800 --> 00:12:30,860 not just somehow fiddle around with it with origami-- 205 00:12:30,860 --> 00:12:33,350 there's a tool which is split extra wide tucks. 206 00:12:33,350 --> 00:12:35,920 If you look at one of these, the green thing 207 00:12:35,920 --> 00:12:37,340 is the edge-tucking molecule. 208 00:12:37,340 --> 00:12:40,400 If you look at that, it will subdivide 209 00:12:40,400 --> 00:12:41,996 into two edge-tucking molecules. 210 00:12:41,996 --> 00:12:43,120 Now they're half this tall. 211 00:12:43,120 --> 00:12:45,159 They don't go as deep into this model. 212 00:12:45,159 --> 00:12:46,700 And they're less likely to intersect. 213 00:12:46,700 --> 00:12:48,199 As long as you've got a green thing, 214 00:12:48,199 --> 00:12:49,730 there's potential intersection. 215 00:12:49,730 --> 00:12:51,880 When you're done, this is probably a valid crease 216 00:12:51,880 --> 00:12:52,970 pattern, at this point. 217 00:12:52,970 --> 00:12:54,900 A little bit of green. 218 00:12:54,900 --> 00:12:56,140 Hopefully they're OK. 219 00:12:56,140 --> 00:12:59,467 You can keep splitting if it continues to be a problem. 220 00:12:59,467 --> 00:13:00,925 It just adds more and more creases. 221 00:13:03,550 --> 00:13:09,150 So that's how to use Origamizer, if you haven't used it already. 222 00:13:09,150 --> 00:13:11,500 And go back to slides. 223 00:13:14,180 --> 00:13:16,435 And the slide progression of that. 224 00:13:20,020 --> 00:13:21,280 Cool . 225 00:13:21,280 --> 00:13:23,770 So the next question is about-- essentially, it's 226 00:13:23,770 --> 00:13:25,780 a question about what makes a convex vertex 227 00:13:25,780 --> 00:13:28,944 versus a concave vertex. 228 00:13:28,944 --> 00:13:30,360 Concave is a little bit ambiguous, 229 00:13:30,360 --> 00:13:34,290 so usually we say non-convex, to mean the opposite of convex. 230 00:13:34,290 --> 00:13:36,740 So I'll use non-convex. 231 00:13:36,740 --> 00:13:39,940 Essentially, there are two or three kinds of vertices, 232 00:13:39,940 --> 00:13:41,910 depending on how you count. 233 00:13:41,910 --> 00:13:50,040 We've got something like this vertex of a tetrahedron. 234 00:13:50,040 --> 00:13:52,970 This would be convex, meaning that if you 235 00:13:52,970 --> 00:13:57,630 look at the sum of the angles of material at that vertex, 236 00:13:57,630 --> 00:14:01,470 that sum of angles is less than 360. 237 00:14:01,470 --> 00:14:03,720 You could also have a flat vertex, 238 00:14:03,720 --> 00:14:05,550 where it's equal to 360. 239 00:14:05,550 --> 00:14:06,855 That's what we just made. 240 00:14:06,855 --> 00:14:09,110 I've got four squares coming together, 241 00:14:09,110 --> 00:14:10,920 four 90-degree angles. 242 00:14:10,920 --> 00:14:14,680 Sum of those angles is 360. 243 00:14:14,680 --> 00:14:16,590 Or you could have a non-convex vertex. 244 00:14:19,750 --> 00:14:22,600 Non-convex, it's bigger than 360. 245 00:14:22,600 --> 00:14:25,520 And that's a little harder to draw. 246 00:14:25,520 --> 00:14:30,420 So I made what I call the canonical-- 247 00:14:30,420 --> 00:14:33,790 it's a nice clean orthogonal, meaning all the bases are 248 00:14:33,790 --> 00:14:35,460 horizontal, vertical, or the other way. 249 00:14:38,080 --> 00:14:38,890 Non-convex vertex. 250 00:14:38,890 --> 00:14:41,920 This has six 90-degree angles coming together. 251 00:14:41,920 --> 00:14:44,566 Six times 90 is bigger than 365. 252 00:14:44,566 --> 00:14:47,430 It's 540. 253 00:14:47,430 --> 00:14:51,720 So this is, of course, inspired by the video game Q'bert. 254 00:14:51,720 --> 00:14:53,700 Play it back in the day. 255 00:14:53,700 --> 00:14:55,470 And when you put it into Origamizer, 256 00:14:55,470 --> 00:14:57,910 it gives you some kind of layout like this. 257 00:14:57,910 --> 00:14:59,500 Then you ask for the creases. 258 00:14:59,500 --> 00:15:00,600 And boom, you've got it. 259 00:15:00,600 --> 00:15:03,120 And the thing that I printed out had this removed, 260 00:15:03,120 --> 00:15:05,730 which requires you to cut here, unfortunately. 261 00:15:05,730 --> 00:15:09,950 I also made the squares go all the way to the tip. 262 00:15:09,950 --> 00:15:11,790 Place them differently, and you end up 263 00:15:11,790 --> 00:15:12,832 with this crease pattern. 264 00:15:12,832 --> 00:15:14,706 And this is a little trickier, because you've 265 00:15:14,706 --> 00:15:16,070 got some extra tucks in here. 266 00:15:16,070 --> 00:15:17,400 They're quite small. 267 00:15:17,400 --> 00:15:22,100 And depending on how accurate you want to be, 268 00:15:22,100 --> 00:15:24,800 it's a little hard to fold it in exactly the right shape. 269 00:15:24,800 --> 00:15:26,460 Looks pretty good. 270 00:15:26,460 --> 00:15:29,380 It's got some-- little bit messy here in the center. 271 00:15:29,380 --> 00:15:31,380 If I use better paper, it'll be a little easier. 272 00:15:34,150 --> 00:15:35,600 So that's a non-convex vertex. 273 00:15:35,600 --> 00:15:37,710 And in some sense, the point of Origamizer 274 00:15:37,710 --> 00:15:40,760 was to deal with non-convex vertices, not just convex ones. 275 00:15:40,760 --> 00:15:42,930 Convex ones, you can kind of wrap around the paper, 276 00:15:42,930 --> 00:15:44,780 and just tuck away the extra material. 277 00:15:44,780 --> 00:15:46,590 Non-convex, you really have to tuck away 278 00:15:46,590 --> 00:15:50,710 material in a clever way in order to get all of these guys 279 00:15:50,710 --> 00:15:51,430 to come together. 280 00:15:51,430 --> 00:15:54,630 Because normally, on a sheet of paper, everything looks flat. 281 00:15:54,630 --> 00:15:56,210 Everything should add up to 360. 282 00:15:56,210 --> 00:15:58,310 But if you hide away material, you 283 00:15:58,310 --> 00:16:00,810 can get more corners to come together, 284 00:16:00,810 --> 00:16:03,930 and that's what lets you get non-convex vertices. 285 00:16:03,930 --> 00:16:07,662 So that's where that came from. 286 00:16:07,662 --> 00:16:09,120 You can't just take a convex vertex 287 00:16:09,120 --> 00:16:12,090 and flip it inside, because intrinsically, on the surface, 288 00:16:12,090 --> 00:16:13,880 it'll still look like a convex vertex, 289 00:16:13,880 --> 00:16:16,340 even if it's popped inside out. 290 00:16:16,340 --> 00:16:18,210 Some of the angles won't change. 291 00:16:18,210 --> 00:16:22,280 Still be less than 360. 292 00:16:22,280 --> 00:16:23,910 Cool. 293 00:16:23,910 --> 00:16:29,279 Next thing I wanted to show is Freeform Origami. 294 00:16:29,279 --> 00:16:31,820 In particular, there's a bunch of different modes in Freeform 295 00:16:31,820 --> 00:16:34,600 Origami, and they weren't really showing much in the videos. 296 00:16:34,600 --> 00:16:38,120 So I'm going to show you a little bit about how it works. 297 00:16:38,120 --> 00:16:42,410 So you download Freeform Origami . 298 00:16:42,410 --> 00:16:46,085 All this software is Windows only at the moment. 299 00:16:48,610 --> 00:16:51,470 So then you open your favorite model. 300 00:16:51,470 --> 00:16:54,860 It can be a 3D model or a 2D model. 301 00:16:54,860 --> 00:16:57,140 Miura-ori is a really nice example to work with. 302 00:16:57,140 --> 00:16:59,350 This is just straight lines in one direction, 303 00:16:59,350 --> 00:17:02,350 and then a zigzag in the other direction. 304 00:17:02,350 --> 00:17:04,760 I've got your 3D view on the left and right. 305 00:17:04,760 --> 00:17:06,925 Now these views are not enabled, because I 306 00:17:06,925 --> 00:17:08,550 haven't turned on a lot of constraints. 307 00:17:08,550 --> 00:17:11,650 Now, as you see, there's a lot of different constraints 308 00:17:11,650 --> 00:17:14,220 I can turn on or off. 309 00:17:14,220 --> 00:17:17,680 In this case, I will turn on developable, 310 00:17:17,680 --> 00:17:21,700 which means that each of these vertices in this 3D model 311 00:17:21,700 --> 00:17:23,460 are flat, according to this model, 312 00:17:23,460 --> 00:17:26,359 so you want to constrain some of the angles to add up to 360. 313 00:17:26,359 --> 00:17:29,140 That means that it came from a sheet of paper. 314 00:17:29,140 --> 00:17:31,370 That makes it a folding. 315 00:17:31,370 --> 00:17:34,130 So this is different from the target in Origamizer, 316 00:17:34,130 --> 00:17:35,570 where it's just a 3D model. 317 00:17:35,570 --> 00:17:38,212 And now you can see up here the crease pattern, 318 00:17:38,212 --> 00:17:39,670 which will actually fold into that. 319 00:17:39,670 --> 00:17:42,330 Because a developable, you can just locally unfold it, 320 00:17:42,330 --> 00:17:45,550 and you'll get a picture like that. 321 00:17:45,550 --> 00:17:48,320 The other thing I want to turn on is flat foldability. 322 00:17:48,320 --> 00:17:51,250 This is Kawasaki's condition. 323 00:17:51,250 --> 00:17:55,900 So it's going to enforce that this angle plus this angle 324 00:17:55,900 --> 00:17:57,200 equals 180. 325 00:17:57,200 --> 00:17:59,710 Or the sum of the odds equals the sum of the evens. 326 00:17:59,710 --> 00:18:02,230 When you add that constraint you guarantee a flat folding, 327 00:18:02,230 --> 00:18:04,640 and then this picture is the shadow pattern, 328 00:18:04,640 --> 00:18:07,230 if you make that flat folding, and just draw them 329 00:18:07,230 --> 00:18:08,900 on top of each other. 330 00:18:08,900 --> 00:18:10,760 OK, so those are my constraints, and that 331 00:18:10,760 --> 00:18:12,440 turns on all of my views. 332 00:18:12,440 --> 00:18:16,900 Now I can do-- currently, I am in simulation mode. 333 00:18:16,900 --> 00:18:19,980 This means it's acting like a physical piece of paper. 334 00:18:19,980 --> 00:18:22,590 So when I drag on a corner, it'll 335 00:18:22,590 --> 00:18:25,320 try to fold that up, or unfold it. 336 00:18:25,320 --> 00:18:27,540 But this stuff on the right, the crease pattern, 337 00:18:27,540 --> 00:18:29,510 is not changing. 338 00:18:29,510 --> 00:18:32,900 So this model, because it has a lot of boundary edges, 339 00:18:32,900 --> 00:18:35,210 it has a bunch of degrees of freedom. 340 00:18:35,210 --> 00:18:37,440 So I was like number of degrees-- number of boundary 341 00:18:37,440 --> 00:18:40,280 edges minus 3 is the number of degrees of freedom, 342 00:18:40,280 --> 00:18:42,150 in this general picture. 343 00:18:42,150 --> 00:18:44,225 They're crushed. 344 00:18:46,779 --> 00:18:47,570 So that's the idea. 345 00:18:47,570 --> 00:18:49,528 You can also hold down spacebar, and it'll just 346 00:18:49,528 --> 00:18:52,080 try to fold everything, kind of uniformly. 347 00:18:52,080 --> 00:18:55,570 Or you can hit B, and it'll unfold everything uniformly. 348 00:18:55,570 --> 00:18:57,970 So this is all, again, not changing the crease pattern 349 00:18:57,970 --> 00:18:58,820 up here. 350 00:18:58,820 --> 00:19:01,630 If I move away from simulation mode, 351 00:19:01,630 --> 00:19:04,320 if I turn this check box off, now I'm 352 00:19:04,320 --> 00:19:06,305 allowing the crease pattern up here to vary. 353 00:19:06,305 --> 00:19:11,610 So if you watch this upper right corner, as I drag on this guy, 354 00:19:11,610 --> 00:19:12,960 crease pattern changes. 355 00:19:12,960 --> 00:19:16,750 It's now allowing the whole thing to be flexible. 356 00:19:16,750 --> 00:19:18,480 And I can do things like, oh, maybe I 357 00:19:18,480 --> 00:19:21,787 want to make this really high up here. 358 00:19:21,787 --> 00:19:23,870 And this is stuff you could not do with Miura-ori. 359 00:19:23,870 --> 00:19:26,900 We're changing the Miura-ori pattern. 360 00:19:26,900 --> 00:19:28,410 Zoom out over here. 361 00:19:28,410 --> 00:19:29,580 See what's going on. 362 00:19:29,580 --> 00:19:31,890 Maybe I want to bring these guys up as well. 363 00:19:34,770 --> 00:19:36,530 I can't make any 3D shape, because I 364 00:19:36,530 --> 00:19:40,650 am constrained by-- a little too exciting. 365 00:19:40,650 --> 00:19:42,360 You can always hit Control-Z to undo. 366 00:19:42,360 --> 00:19:44,960 Sometimes it's hard to satisfy all the constraints 367 00:19:44,960 --> 00:19:46,710 that I give it. 368 00:19:46,710 --> 00:19:48,620 We can do things like snap there. 369 00:19:48,620 --> 00:19:52,057 And wow, cool. 370 00:19:52,057 --> 00:19:53,515 So you have to be a little careful. 371 00:19:53,515 --> 00:19:56,386 This requires some finesse. 372 00:19:56,386 --> 00:19:58,510 Because the constraints are not always satisfiable. 373 00:19:58,510 --> 00:20:00,690 But this, whatever I'm making, at all times 374 00:20:00,690 --> 00:20:02,879 will come from one piece of paper-- 375 00:20:02,879 --> 00:20:04,670 and you can print out this crease pattern-- 376 00:20:04,670 --> 00:20:06,850 and it will be flat foldable. 377 00:20:06,850 --> 00:20:09,310 And the cool theorem by Tomohiro is 378 00:20:09,310 --> 00:20:11,924 that if you have a valid 3D state, 379 00:20:11,924 --> 00:20:14,340 like the one on the left, and you know it's flat foldable, 380 00:20:14,340 --> 00:20:16,120 and it came from a sheet of paper, then 381 00:20:16,120 --> 00:20:17,860 it will actually be rigidly foldable. 382 00:20:17,860 --> 00:20:19,430 And so we can unfold this thing. 383 00:20:19,430 --> 00:20:20,520 Whoa. 384 00:20:20,520 --> 00:20:24,040 Or fold it, in theory. 385 00:20:24,040 --> 00:20:24,700 I see. 386 00:20:24,700 --> 00:20:29,100 The problem is I should first turn on simulation mode. 387 00:20:29,100 --> 00:20:30,990 I don't want the pattern to change. 388 00:20:30,990 --> 00:20:33,670 Then I let it fold, or unfold, and then it 389 00:20:33,670 --> 00:20:34,610 will be well behaved. 390 00:20:34,610 --> 00:20:36,130 This is guaranteed to work. 391 00:20:36,130 --> 00:20:38,930 When I have simulation mode on, anything could happen. 392 00:20:38,930 --> 00:20:40,972 So it could explode. 393 00:20:40,972 --> 00:20:43,160 But that's how Freeform Origami works. 394 00:20:43,160 --> 00:20:50,260 So this question here was-- yeah, if you pull on a point 395 00:20:50,260 --> 00:20:51,810 when you're in simulation mode, you 396 00:20:51,810 --> 00:20:53,540 won't change the crease pattern. 397 00:20:53,540 --> 00:20:55,396 But if you turn off simulation mode, which 398 00:20:55,396 --> 00:20:59,250 is called design mode, then you can really change the pattern, 399 00:20:59,250 --> 00:21:02,010 and get it to fold into something that you want. 400 00:21:02,010 --> 00:21:04,540 And here's an example of something 401 00:21:04,540 --> 00:21:06,140 designed with this method. 402 00:21:06,140 --> 00:21:10,860 And then we waterjet cut it with little tabs. 403 00:21:10,860 --> 00:21:12,850 And this only folds once. 404 00:21:12,850 --> 00:21:16,420 You can't unfold it, or else the tabs will break. 405 00:21:16,420 --> 00:21:17,854 But it's pretty cool. 406 00:21:17,854 --> 00:21:19,270 And you can just print out these-- 407 00:21:19,270 --> 00:21:23,920 this is made from one sheet steel and folded by hand. 408 00:21:23,920 --> 00:21:25,660 This was made back when Tomohiro was 409 00:21:25,660 --> 00:21:29,260 visiting for that guest lecture. 410 00:21:29,260 --> 00:21:33,640 So first we made a paper model, made sure it looked good. 411 00:21:33,640 --> 00:21:36,940 And this one, we'll fold rigidly. 412 00:21:36,940 --> 00:21:40,040 And we made another version, which I couldn't find. 413 00:21:40,040 --> 00:21:43,220 It was metal, but [INAUDIBLE] ridges folds rigidly, 414 00:21:43,220 --> 00:21:45,739 like the videos that he showed. 415 00:21:45,739 --> 00:21:48,280 AUDIENCE: Erik, what is the name of the program you're using? 416 00:21:48,280 --> 00:21:50,490 PROFESSOR: This is called Freeform Origami. 417 00:21:50,490 --> 00:21:52,520 Or maybe Freeform Orgami Designer. 418 00:21:52,520 --> 00:21:55,980 All of these, if you search for Tomohiro Tachi software. 419 00:21:55,980 --> 00:21:58,950 It's also linked in some of these slides. 420 00:21:58,950 --> 00:22:01,020 You will find all three of these programs. 421 00:22:01,020 --> 00:22:03,240 I haven't yet shown Rigid Origami Simulator. 422 00:22:06,950 --> 00:22:10,200 Because it's, in some sense, assumed by Freeform Origami, 423 00:22:10,200 --> 00:22:11,890 because Freefrom Origami can also 424 00:22:11,890 --> 00:22:14,830 do the folding with keeping all the panels rigid. 425 00:22:14,830 --> 00:22:19,330 But they have some differences, which I might talk about now. 426 00:22:19,330 --> 00:22:24,190 Next question is, on the slides, Tomohiro 427 00:22:24,190 --> 00:22:25,690 showed there were tons of equations. 428 00:22:25,690 --> 00:22:27,119 He didn't talk about any of them, 429 00:22:27,119 --> 00:22:28,660 and some people really wanted to know 430 00:22:28,660 --> 00:22:31,340 about these great equations or the conditions. 431 00:22:31,340 --> 00:22:34,250 What are the constraints that go on in Origamizer, Rigid Origami 432 00:22:34,250 --> 00:22:36,730 Simulator, and Freeform Origami. 433 00:22:36,730 --> 00:22:37,820 And there are a bunch. 434 00:22:37,820 --> 00:22:40,820 And I don't want to go into them in lots of detail, 435 00:22:40,820 --> 00:22:43,080 because it can get complicated. 436 00:22:43,080 --> 00:22:45,790 But I'll give you a high-level picture of what's going on. 437 00:22:45,790 --> 00:22:48,751 So first one, this is Rigid Origami Simulator, 438 00:22:48,751 --> 00:22:49,750 which I didn't show you. 439 00:22:49,750 --> 00:22:52,036 But basically, you take in a crease pattern. 440 00:22:52,036 --> 00:22:53,910 You can hit spacebar to make everything fold. 441 00:22:53,910 --> 00:22:56,090 You can hit B to make everything unfold. 442 00:22:56,090 --> 00:22:57,630 And it keeps all the panels rigid. 443 00:22:57,630 --> 00:22:59,430 That's its goal. 444 00:22:59,430 --> 00:23:02,810 And there's essentially-- this software is written in a way 445 00:23:02,810 --> 00:23:05,815 that the geometry of each of these faces 446 00:23:05,815 --> 00:23:07,690 is determined by the original crease pattern. 447 00:23:07,690 --> 00:23:10,319 So you don't-- that's just given to you. 448 00:23:10,319 --> 00:23:11,860 And the only thing really that's free 449 00:23:11,860 --> 00:23:13,780 are the bend angles at each crease. 450 00:23:13,780 --> 00:23:18,230 So it parameterizes this 3D model by the bend angles. 451 00:23:18,230 --> 00:23:19,970 And when you parameterize by bend angles, 452 00:23:19,970 --> 00:23:22,070 there's one key constraint you need, 453 00:23:22,070 --> 00:23:24,635 which is that if you walk around a vertex 454 00:23:24,635 --> 00:23:26,470 and you say, OK I bend by this. 455 00:23:26,470 --> 00:23:28,680 And then I bend by this, and bend, bend, bend. 456 00:23:28,680 --> 00:23:30,380 I should end up back where I started. 457 00:23:30,380 --> 00:23:33,191 Otherwise, there'll be a tear in the paper, at the corner. 458 00:23:33,191 --> 00:23:35,190 So if you're going to prioritize by bend angles, 459 00:23:35,190 --> 00:23:37,544 you have a cyclic constraint around each vertex. 460 00:23:37,544 --> 00:23:39,210 And that is the one constraint you have. 461 00:23:39,210 --> 00:23:43,075 This was originally described by Belcastro and Hull. 462 00:23:43,075 --> 00:23:45,170 I know some of you know. 463 00:23:45,170 --> 00:23:49,190 And so around a vertex, basically, 464 00:23:49,190 --> 00:23:54,220 every time you have a face of paper, you turn by that amount. 465 00:23:54,220 --> 00:23:56,810 There's matrix B. It's a rotation. 466 00:23:56,810 --> 00:24:00,330 Then you rotate around that crease by however 467 00:24:00,330 --> 00:24:02,280 much the crease angle is. 468 00:24:02,280 --> 00:24:04,440 And then you rotate around the face, 469 00:24:04,440 --> 00:24:05,910 and you rotate, rotate, rotate. 470 00:24:05,910 --> 00:24:08,890 You take the composition of all these rotations. 471 00:24:08,890 --> 00:24:10,880 That should end up with the trivial rotation, 472 00:24:10,880 --> 00:24:12,247 which is do nothing. 473 00:24:12,247 --> 00:24:13,830 Otherwise, there would be a tear here. 474 00:24:13,830 --> 00:24:18,100 So this is a constraint on the angles 475 00:24:18,100 --> 00:24:19,750 it's a somewhat complicated constraint. 476 00:24:19,750 --> 00:24:22,750 It involves sines and cosines of the angles. 477 00:24:22,750 --> 00:24:26,060 But otherwise, if you ignore the sine, cosine, stuff, 478 00:24:26,060 --> 00:24:27,170 this is actually linear. 479 00:24:27,170 --> 00:24:29,670 This is a bunch of matrices, rotation matrices. 480 00:24:29,670 --> 00:24:31,110 You're just composing them. 481 00:24:31,110 --> 00:24:34,610 So it's relatively clean. 482 00:24:34,610 --> 00:24:36,205 And then you get your folding motion. 483 00:24:39,640 --> 00:24:44,885 A little tricky to do by hand, but very easy on a computer 484 00:24:44,885 --> 00:24:47,010 to solve that linear system. 485 00:24:47,010 --> 00:24:49,790 OK, next we have Freeform Origami Simulator, 486 00:24:49,790 --> 00:24:52,300 what I just showed you. 487 00:24:52,300 --> 00:24:54,044 This has two constraints. 488 00:24:54,044 --> 00:24:55,960 Or there are two constraints that I turned on. 489 00:24:55,960 --> 00:24:58,380 There are, in general, more that you could turn on. 490 00:24:58,380 --> 00:25:00,210 One of them is developability. 491 00:25:00,210 --> 00:25:05,030 So here, we want to start from a piece of paper. 492 00:25:05,030 --> 00:25:07,170 And so we want the sum of the angles to be 360. 493 00:25:07,170 --> 00:25:10,140 So that is just a sum constraint. 494 00:25:10,140 --> 00:25:12,980 The other condition we want is flat foldability, 495 00:25:12,980 --> 00:25:14,800 which is the Kawasaki condition. 496 00:25:14,800 --> 00:25:16,929 If you satisfy both of these, we know 497 00:25:16,929 --> 00:25:18,720 that you'll be rigidly foldable, and that's 498 00:25:18,720 --> 00:25:20,340 kind of what Freeform Origami is about. 499 00:25:20,340 --> 00:25:21,256 You can turn them off. 500 00:25:21,256 --> 00:25:23,360 You can turn on other constraints as well. 501 00:25:23,360 --> 00:25:27,080 There are bunch in there, but those are kind of the core two 502 00:25:27,080 --> 00:25:29,470 that you typically want to use. 503 00:25:29,470 --> 00:25:31,960 And so it's always solving these constraints. 504 00:25:31,960 --> 00:25:34,830 So those two systems have relatively simple constraint 505 00:25:34,830 --> 00:25:37,360 systems, although Freeform Origami 506 00:25:37,360 --> 00:25:39,200 has a lot of extra bells and whistles. 507 00:25:39,200 --> 00:25:40,665 So you could do cool design. 508 00:25:40,665 --> 00:25:42,040 You can try to force two vertices 509 00:25:42,040 --> 00:25:44,960 to come together, and so on. 510 00:25:44,960 --> 00:25:47,970 You can try to make mountains be folded as mountains, 511 00:25:47,970 --> 00:25:49,220 and valleys folded as valleys. 512 00:25:49,220 --> 00:25:50,960 You can constrain which way creases go. 513 00:25:50,960 --> 00:25:52,335 Those are inequality constraints. 514 00:25:55,400 --> 00:25:57,450 The last one I want to talk about is Origamizer. 515 00:25:57,450 --> 00:25:59,700 This has a lot of constraints, and this 516 00:25:59,700 --> 00:26:03,620 is where it's probably more insightful to go through them. 517 00:26:03,620 --> 00:26:06,050 So remember we're trying to place these polygons 518 00:26:06,050 --> 00:26:08,940 into the plane so that these edge-tucking molecules are 519 00:26:08,940 --> 00:26:09,710 very simple. 520 00:26:09,710 --> 00:26:12,070 They're just a single crease. 521 00:26:12,070 --> 00:26:14,170 So that's our-- first we're going 522 00:26:14,170 --> 00:26:18,152 to just sort of paramaterize how things are set up. 523 00:26:18,152 --> 00:26:19,610 Suppose you've got two faces, which 524 00:26:19,610 --> 00:26:21,870 share an edge in the polyhedron, the thing you're 525 00:26:21,870 --> 00:26:22,940 trying to make. 526 00:26:22,940 --> 00:26:25,290 We want to place those two faces somewhere 527 00:26:25,290 --> 00:26:27,370 in the piece of paper. 528 00:26:27,370 --> 00:26:29,660 And there's a rotation. 529 00:26:29,660 --> 00:26:33,660 So here, we've separated this edge from this edge. 530 00:26:33,660 --> 00:26:36,540 And if we extend those lines, they form some angle. 531 00:26:36,540 --> 00:26:38,760 We're going to call that angle theta ij. 532 00:26:38,760 --> 00:26:41,860 That's one of our variables that we get to play with. 533 00:26:41,860 --> 00:26:44,260 The other thing is how distant are they. 534 00:26:44,260 --> 00:26:44,960 There's wij. 535 00:26:44,960 --> 00:26:47,740 Here, and wji here. 536 00:26:47,740 --> 00:26:50,390 And just for that prioritization to make sense, 537 00:26:50,390 --> 00:26:53,450 you've got to satisfy a couple of conditions, 538 00:26:53,450 --> 00:26:57,440 that if you look at theta ji versus ij, it's negated. 539 00:26:57,440 --> 00:26:59,740 And if you look at the w's, you can 540 00:26:59,740 --> 00:27:03,150 take the sine of half the angle theta, 541 00:27:03,150 --> 00:27:06,950 and that tells you how much this w differs from this w. 542 00:27:06,950 --> 00:27:12,610 So these are two relatively simple constraints. 543 00:27:12,610 --> 00:27:17,490 Then, like in the previous two-- like in Rigid Origami 544 00:27:17,490 --> 00:27:20,700 Simulator, you have to have closure around a vertex. 545 00:27:20,700 --> 00:27:25,280 If we're placing these two parameters, w and theta, 546 00:27:25,280 --> 00:27:27,784 denote how this guy's placed relative to this guy. 547 00:27:27,784 --> 00:27:29,950 And then you can-- if you look around a vertex where 548 00:27:29,950 --> 00:27:31,731 all these faces meet, there's the way 549 00:27:31,731 --> 00:27:33,480 this is parameterized with aspect to this, 550 00:27:33,480 --> 00:27:34,938 and this to this, and this to this. 551 00:27:34,938 --> 00:27:36,250 Those should be consistent. 552 00:27:36,250 --> 00:27:38,830 And in terms of the thetas, it means 553 00:27:38,830 --> 00:27:41,700 that you should do one full turn around the vertex. 554 00:27:41,700 --> 00:27:43,627 You've got these theta i's. 555 00:27:43,627 --> 00:27:45,210 Then you've got these alpha i's, which 556 00:27:45,210 --> 00:27:46,540 are the angles of the face. 557 00:27:46,540 --> 00:27:47,930 Then you turn by theta. 558 00:27:47,930 --> 00:27:48,620 Turn by alpha. 559 00:27:48,620 --> 00:27:50,080 Theta, alpha, blah, blah, blah. 560 00:27:50,080 --> 00:27:52,462 In the end, you should get 360. 561 00:27:52,462 --> 00:27:53,920 And the equation's written this way 562 00:27:53,920 --> 00:27:57,989 because these are the variables that you want to constrain. 563 00:27:57,989 --> 00:27:59,280 These quantities are all known. 564 00:27:59,280 --> 00:28:00,863 You know all the alphas ahead of time. 565 00:28:00,863 --> 00:28:02,560 Those are the angles of your surface. 566 00:28:02,560 --> 00:28:05,310 So this is a linear constraint on the thetas. 567 00:28:09,000 --> 00:28:12,190 So there's also a similar constraint on the w's. 568 00:28:12,190 --> 00:28:13,740 This is a little bit messier. 569 00:28:13,740 --> 00:28:18,660 It involves rotations, involving these angles 570 00:28:18,660 --> 00:28:20,980 and this other angle, capital theta, 571 00:28:20,980 --> 00:28:23,069 which is the sum of thetas and alphas. 572 00:28:23,069 --> 00:28:24,860 But it's essentially saying the same thing, 573 00:28:24,860 --> 00:28:28,130 that this closed loop is actually a polygon. 574 00:28:28,130 --> 00:28:30,790 It should come back to where it started. 575 00:28:30,790 --> 00:28:35,260 So if you do this walk, you end up back at your origin, 0, 0. 576 00:28:38,540 --> 00:28:41,700 Next constraint is the convexity of the piece of paper. 577 00:28:41,700 --> 00:28:44,690 So you're trying to-- you want the polygons on the outside 578 00:28:44,690 --> 00:28:47,920 to form a nice convex polygon, because you can always 579 00:28:47,920 --> 00:28:49,730 fold the convex polygon from a square. 580 00:28:49,730 --> 00:28:51,820 And so this is just a very simple constraint 581 00:28:51,820 --> 00:28:55,000 that, at the boundary, you have these-- 582 00:28:55,000 --> 00:28:56,996 the thetas should be greater or equal to 180. 583 00:28:56,996 --> 00:29:00,080 That's very simple. 584 00:29:00,080 --> 00:29:02,870 Next one, these get a little bit more 585 00:29:02,870 --> 00:29:07,521 technical to make the molecules guaranteed to work. 586 00:29:07,521 --> 00:29:09,520 And so, in particular, an edge-tucking molecule, 587 00:29:09,520 --> 00:29:12,500 we want this to be a nice convex polygon. 588 00:29:12,500 --> 00:29:15,020 And so this is actually fairly easy to constrain, 589 00:29:15,020 --> 00:29:18,850 but all these angles should be in the right range. 590 00:29:18,850 --> 00:29:20,495 Don't want any giant angle. 591 00:29:20,495 --> 00:29:21,870 You don't want these to basically 592 00:29:21,870 --> 00:29:24,200 flip open to be more than 180. 593 00:29:24,200 --> 00:29:25,120 That would be bad. 594 00:29:27,800 --> 00:29:30,630 The vertex-tucking molecule is a little trickier. 595 00:29:30,630 --> 00:29:32,420 There are two main constraints we need. 596 00:29:32,420 --> 00:29:35,210 One is that the thing that you fold, which is kind of floppy 597 00:29:35,210 --> 00:29:36,835 and has too much material, you want 598 00:29:36,835 --> 00:29:39,740 it to have too much material, not too little material. 599 00:29:39,740 --> 00:29:42,710 You want each of these angles in the tabs 600 00:29:42,710 --> 00:29:46,220 to be greater than or equal to the desired angle over here, 601 00:29:46,220 --> 00:29:49,440 so that you can just add in a tuck, like these guys. 602 00:29:49,440 --> 00:29:51,450 Add in one of these little pleats 603 00:29:51,450 --> 00:29:53,940 to reduce the angle to whatever you need. 604 00:29:53,940 --> 00:29:56,300 If it's too small, no matter how much you fold it, 605 00:29:56,300 --> 00:29:57,240 it'll stay too small. 606 00:29:57,240 --> 00:29:59,760 So it's like the guy who keeps cutting the board 607 00:29:59,760 --> 00:30:03,650 and he says, "I keep cutting it, but it's still too short." 608 00:30:03,650 --> 00:30:05,390 So you want it to be too long initially, 609 00:30:05,390 --> 00:30:08,030 so you can cut it to just the right length. 610 00:30:08,030 --> 00:30:12,020 The angle to just the right length. 611 00:30:12,020 --> 00:30:14,790 This involves all these angles, which I don't want to define, 612 00:30:14,790 --> 00:30:17,694 but you can compute what the angle is here. 613 00:30:17,694 --> 00:30:19,610 It's easy to compute what the target angle is. 614 00:30:19,610 --> 00:30:21,180 You just measure it on the 3D model 615 00:30:21,180 --> 00:30:23,040 after you compute the type proxy. 616 00:30:23,040 --> 00:30:27,570 And so you're constraining the thetas, 617 00:30:27,570 --> 00:30:31,604 or constraining this fee value. 618 00:30:31,604 --> 00:30:34,470 All right, so then the other constraint 619 00:30:34,470 --> 00:30:36,970 is this tuck depth condition, which 620 00:30:36,970 --> 00:30:40,620 says this is the non-intersection parts. 621 00:30:40,620 --> 00:30:43,775 So you want these tucks to not hit each other. 622 00:30:43,775 --> 00:30:45,900 They're not so deep that they penetrate each other. 623 00:30:45,900 --> 00:30:48,108 And I don't want to go into the details of how that's 624 00:30:48,108 --> 00:30:49,920 specified, but it's another constraint. 625 00:30:49,920 --> 00:30:52,850 Now over all, these constraints are 626 00:30:52,850 --> 00:30:55,060 fairly complicated and non-linear. 627 00:30:55,060 --> 00:30:59,300 But Origamizer solves them approximately. 628 00:30:59,300 --> 00:31:02,500 And if you let it converge, and if it says it's got zero error, 629 00:31:02,500 --> 00:31:04,320 it has solved them. 630 00:31:04,320 --> 00:31:06,990 But it can take a while. 631 00:31:06,990 --> 00:31:12,630 So one of the questions was, can we do an example by hand 632 00:31:12,630 --> 00:31:14,200 to solve all of these systems? 633 00:31:14,200 --> 00:31:16,210 And the short answer is no. 634 00:31:16,210 --> 00:31:18,570 You really need a computer to solve something like this. 635 00:31:18,570 --> 00:31:20,950 At least I would. 636 00:31:20,950 --> 00:31:24,056 The solution method is essentially Newton's method, 637 00:31:24,056 --> 00:31:25,680 that you may have seen in some context. 638 00:31:25,680 --> 00:31:28,055 But this is a high-dimensional version of Newton's method 639 00:31:28,055 --> 00:31:32,520 to solve non-linear systems, and it involves the Jacobian-- 640 00:31:32,520 --> 00:31:34,294 I'll just wave my hands-- which is 641 00:31:34,294 --> 00:31:36,960 partial derivatives with respect to all the different parameters 642 00:31:36,960 --> 00:31:38,740 you have. 643 00:31:38,740 --> 00:31:42,750 These are vectors, so this is a big matrix. 644 00:31:42,750 --> 00:31:44,820 And then you do a sequence of iterations 645 00:31:44,820 --> 00:31:47,510 using this method, which is a little easier to see 646 00:31:47,510 --> 00:31:49,430 in this picture. 647 00:31:49,430 --> 00:31:51,430 Essentially there are two things going on. 648 00:31:51,430 --> 00:31:54,650 So you're reacting to-- suppose you have a valid solution 649 00:31:54,650 --> 00:31:55,400 right now. 650 00:31:55,400 --> 00:31:57,370 Then someone drags on a vertex. 651 00:31:57,370 --> 00:31:58,880 When they drag on a vertex, let's 652 00:31:58,880 --> 00:32:01,610 say they drag it along a straight line. 653 00:32:01,610 --> 00:32:03,930 That's a linear motion of a vertex. 654 00:32:03,930 --> 00:32:05,680 And that will start violating constraints. 655 00:32:05,680 --> 00:32:08,020 If you go in that direction, probably not very good 656 00:32:08,020 --> 00:32:10,700 for all these constraints. 657 00:32:10,700 --> 00:32:12,840 In Freefrom Origami, you have-- the edge 658 00:32:12,840 --> 00:32:15,030 lengths should all stay the same. 659 00:32:15,030 --> 00:32:17,700 If you're in simulation mode. 660 00:32:17,700 --> 00:32:22,510 So as you drag crazy, you're invalid. 661 00:32:22,510 --> 00:32:24,830 So the first thing you do is project. 662 00:32:24,830 --> 00:32:27,240 And this is, I call, an oiler step. 663 00:32:27,240 --> 00:32:31,490 You project that direction to be a direction that 664 00:32:31,490 --> 00:32:34,455 is perpendicular to all of your constraints, 665 00:32:34,455 --> 00:32:35,830 which means that it preserves all 666 00:32:35,830 --> 00:32:38,280 the constraints to the first order. 667 00:32:38,280 --> 00:32:41,901 And that's, I think, this first red step. 668 00:32:41,901 --> 00:32:42,400 Sorry. 669 00:32:42,400 --> 00:32:43,937 In general, these green steps would 670 00:32:43,937 --> 00:32:46,020 be if you just preserve things to the first order. 671 00:32:46,020 --> 00:32:48,440 But if you keep following motions that 672 00:32:48,440 --> 00:32:52,870 are kind of correct-- they're correct to the first order-- 673 00:32:52,870 --> 00:32:54,990 you'll eventually drift away from correctness. 674 00:32:54,990 --> 00:32:59,250 And so you have to correct with the second derivative-- 675 00:32:59,250 --> 00:33:03,170 and that's these yellow steps-- to try 676 00:33:03,170 --> 00:33:05,430 to get back to a solution. 677 00:33:05,430 --> 00:33:07,660 So as you're dragging, first, you 678 00:33:07,660 --> 00:33:09,410 correct to be correct to the first order. 679 00:33:09,410 --> 00:33:11,030 You make a step in that direction. 680 00:33:11,030 --> 00:33:12,720 Then you do the sequence of second order steps 681 00:33:12,720 --> 00:33:14,570 to get closer and closer to where things are actually 682 00:33:14,570 --> 00:33:15,070 correct. 683 00:33:15,070 --> 00:33:16,390 If that made sense, great. 684 00:33:16,390 --> 00:33:19,610 If not, you should take a course on numerical methods 685 00:33:19,610 --> 00:33:20,720 in computer science. 686 00:33:20,720 --> 00:33:22,300 A little beyond what we can do here. 687 00:33:22,300 --> 00:33:24,050 And so I'm just going to leave it at that. 688 00:33:28,210 --> 00:33:29,670 Cool. 689 00:33:29,670 --> 00:33:32,330 Couple other questions about things Tomohiro said. 690 00:33:32,330 --> 00:33:34,890 So he said, it seems you don't need 691 00:33:34,890 --> 00:33:37,044 to worry about NP completeness of flat foldability. 692 00:33:37,044 --> 00:33:38,460 That's actually something we'll be 693 00:33:38,460 --> 00:33:39,951 covering in the next lecture. 694 00:33:39,951 --> 00:33:42,200 So if you don't know what that means yet, don't worry. 695 00:33:42,200 --> 00:33:43,790 We'll be talking about it. 696 00:33:43,790 --> 00:33:45,659 But it means, at the high level, it 697 00:33:45,659 --> 00:33:47,200 says it's competitionally intractable 698 00:33:47,200 --> 00:33:49,900 to make things fold flat. 699 00:33:49,900 --> 00:33:51,290 And yet, he's solving it. 700 00:33:51,290 --> 00:33:53,570 Why is that OK? 701 00:33:53,570 --> 00:33:55,680 There's a couple things going on. 702 00:33:55,680 --> 00:33:59,980 In some sense here, we don't care 703 00:33:59,980 --> 00:34:02,024 about true flat foldabilities. 704 00:34:02,024 --> 00:34:03,690 Sometimes, he'd like to fold all the way 705 00:34:03,690 --> 00:34:05,780 to the flat state for compactness, and so on. 706 00:34:05,780 --> 00:34:08,100 That would be nice. 707 00:34:08,100 --> 00:34:10,714 But in particular, he just wants local flat foldability. 708 00:34:10,714 --> 00:34:13,060 He knows that if you have Kawasaki's condition, 709 00:34:13,060 --> 00:34:14,850 then you guarantee a rigid motion 710 00:34:14,850 --> 00:34:17,940 to fold for a little bit of time, and you can prove that. 711 00:34:17,940 --> 00:34:21,269 And so if you're just trying to get rigidly foldable things, 712 00:34:21,269 --> 00:34:23,310 it's enough to have local flat foldability, which 713 00:34:23,310 --> 00:34:25,954 we do know how to solve in linear time. 714 00:34:25,954 --> 00:34:27,370 And that's the Kawasaki condition, 715 00:34:27,370 --> 00:34:29,909 and that's what he's solving. 716 00:34:29,909 --> 00:34:32,237 And so, essentially, whatever he makes 717 00:34:32,237 --> 00:34:34,070 will fold for at least a little bit of time. 718 00:34:34,070 --> 00:34:35,989 And if he's lucky, it'll fold all the way to flat. 719 00:34:35,989 --> 00:34:36,699 Sometimes not. 720 00:34:36,699 --> 00:34:39,106 Sometimes might get collision in between. 721 00:34:39,106 --> 00:34:40,730 So you always get something that folds. 722 00:34:40,730 --> 00:34:43,230 And then if it doesn't fall the way, you can try tweaking it 723 00:34:43,230 --> 00:34:44,739 until it does. 724 00:34:44,739 --> 00:34:46,610 So that's the high level version. 725 00:34:46,610 --> 00:34:51,460 But you can, in some sense, sidestep NP completeness here. 726 00:34:54,972 --> 00:34:57,180 I think there's still some interesting open problems. 727 00:34:57,180 --> 00:35:02,070 In this setting, it seems like, say, Freeform Origami Designer. 728 00:35:02,070 --> 00:35:07,865 It seems like you really-- yeah. 729 00:35:07,865 --> 00:35:08,990 I have to leave it at that. 730 00:35:08,990 --> 00:35:10,740 I don't know exactly how to formulate the open problem 731 00:35:10,740 --> 00:35:10,920 here. 732 00:35:10,920 --> 00:35:12,711 But I think there are interesting questions 733 00:35:12,711 --> 00:35:16,020 about proving NP completeness doesn't matter as much here. 734 00:35:18,900 --> 00:35:20,320 OK, another cool question. 735 00:35:20,320 --> 00:35:23,340 This is getting a bit higher level. 736 00:35:23,340 --> 00:35:26,444 This is rather tedious to fold by hand, as you've now learned, 737 00:35:26,444 --> 00:35:28,860 especially if you're going to make something like a bunny. 738 00:35:28,860 --> 00:35:30,830 Can we make a machine to do this? 739 00:35:30,830 --> 00:35:33,320 And so I wanted to show you a couple examples of machines 740 00:35:33,320 --> 00:35:35,790 for folding that have sidestepped 741 00:35:35,790 --> 00:35:37,300 the printing by hand. 742 00:35:37,300 --> 00:35:42,740 This is an origami robot made at CMU by Devin Balkcom. 743 00:35:42,740 --> 00:35:44,530 He was a Ph.D. student at the time. 744 00:35:44,530 --> 00:35:45,930 And he's taking a piece of paper. 745 00:35:45,930 --> 00:35:46,580 It's a robot. 746 00:35:46,580 --> 00:35:47,260 It's open loop. 747 00:35:47,260 --> 00:35:50,360 It has no feedback, has no censors, or anything. 748 00:35:50,360 --> 00:35:56,320 It is preprogrammed like an assembly machine to fold. 749 00:35:56,320 --> 00:35:58,820 Essentially, it can do simple folds. 750 00:35:58,820 --> 00:36:00,260 So it's got a little suction guy, 751 00:36:00,260 --> 00:36:02,850 to move things around, crease. 752 00:36:02,850 --> 00:36:05,350 Eventually it accumulates error if it does a ton of steps, 753 00:36:05,350 --> 00:36:07,540 so you'd need a closed-loop system with a camera 754 00:36:07,540 --> 00:36:09,070 or something to get that. 755 00:36:09,070 --> 00:36:11,100 But it actually does a pretty decent job. 756 00:36:11,100 --> 00:36:14,370 This is real time. 757 00:36:14,370 --> 00:36:18,440 In this case, I think it's finished. 758 00:36:18,440 --> 00:36:20,170 One more fold. 759 00:36:20,170 --> 00:36:22,130 Crunch. 760 00:36:22,130 --> 00:36:23,926 It's pretty impressive what it can do it. 761 00:36:23,926 --> 00:36:25,550 But it can really only do simple folds. 762 00:36:25,550 --> 00:36:29,751 It's going to have an issue if things really unfold it a lot. 763 00:36:29,751 --> 00:36:32,150 It might accidentally hit something. 764 00:36:32,150 --> 00:36:33,905 And this should be a samurai hat. 765 00:36:37,220 --> 00:36:40,284 Tweaking it a little bit by hand. 766 00:36:40,284 --> 00:36:43,910 Wow, it looks like a tetrahedron. 767 00:36:43,910 --> 00:36:45,750 OK, so that was one example. 768 00:36:45,750 --> 00:36:47,690 Here's a more modern example. 769 00:36:47,690 --> 00:36:49,640 This was done at Harvard just last year. 770 00:36:49,640 --> 00:36:53,050 And this is a process involving laser-cutting individual 771 00:36:53,050 --> 00:36:56,150 components, aligning them with these tabs. 772 00:36:56,150 --> 00:36:57,870 Sorry, these pins. 773 00:36:57,870 --> 00:37:00,570 Assembling them together to make hinges. 774 00:37:00,570 --> 00:37:04,230 So they use laser cutting, and to get 775 00:37:04,230 --> 00:37:09,020 two-dimensional surfaces, they use folding to make 3D shapes. 776 00:37:09,020 --> 00:37:10,840 Kind of like pop-up cards. 777 00:37:10,840 --> 00:37:12,775 This is what a typical hinge looks like. 778 00:37:12,775 --> 00:37:14,400 They've got all the different materials 779 00:37:14,400 --> 00:37:17,290 here to attach different parts. 780 00:37:17,290 --> 00:37:19,682 And these piezoelectric folding actuators. 781 00:37:19,682 --> 00:37:20,890 This is their overall design. 782 00:37:20,890 --> 00:37:23,480 They're trying to make a bee robotic bee. 783 00:37:23,480 --> 00:37:26,870 And this is what the final created thing looks like. 784 00:37:26,870 --> 00:37:28,930 It's mostly carbon fiber. 785 00:37:28,930 --> 00:37:32,085 And then these are the piezoelectric actuators. 786 00:37:32,085 --> 00:37:33,710 So this is the thing they want to make. 787 00:37:33,710 --> 00:37:36,560 They build a scaffold around it that causes the whole thing 788 00:37:36,560 --> 00:37:39,090 to fold into its desired 3D shape. 789 00:37:39,090 --> 00:37:40,485 So they're taking flat parts. 790 00:37:40,485 --> 00:37:42,610 And they want to do things like take this flat part 791 00:37:42,610 --> 00:37:43,580 and raise it. 792 00:37:43,580 --> 00:37:44,490 So what do they do? 793 00:37:44,490 --> 00:37:48,000 They add two hinges to make this part move 794 00:37:48,000 --> 00:37:50,630 along this straight up and down motion. 795 00:37:50,630 --> 00:37:53,150 And then each of-- that's just a scaffold. 796 00:37:53,150 --> 00:37:55,420 Each of the gray parts they actually want to build. 797 00:37:55,420 --> 00:37:57,350 They add the appropriate hinges to cause 798 00:37:57,350 --> 00:38:00,020 it to fold in exactly the way they like. 799 00:38:00,020 --> 00:38:02,780 So here, for example, the wing is staying vertical. 800 00:38:02,780 --> 00:38:05,390 This part-- it keeps moving around on me-- 801 00:38:05,390 --> 00:38:06,940 is turning 90 degrees. 802 00:38:06,940 --> 00:38:08,640 You do that with all the parts. 803 00:38:08,640 --> 00:38:12,640 You get them all to fold like that. 804 00:38:12,640 --> 00:38:15,600 Here's a prototype in real life. 805 00:38:18,150 --> 00:38:19,600 And then here's the final version. 806 00:38:19,600 --> 00:38:24,380 This is actually in real time, so it folds really fast. 807 00:38:24,380 --> 00:38:24,880 Zoom. 808 00:38:24,880 --> 00:38:27,960 And then you've got your assembled thing. 809 00:38:27,960 --> 00:38:28,460 One more. 810 00:38:31,440 --> 00:38:34,240 And then they add this particular metal 811 00:38:34,240 --> 00:38:36,490 that fuses the hinges together, so 812 00:38:36,490 --> 00:38:39,710 that they will no longer unfold. 813 00:38:39,710 --> 00:38:42,660 So that's what it looks like locked. 814 00:38:42,660 --> 00:38:44,770 It's all done in an automatic process. 815 00:38:44,770 --> 00:38:47,395 And then you laser cut all of the scaffold away, 816 00:38:47,395 --> 00:38:48,770 and you've got your finish thing. 817 00:38:48,770 --> 00:38:51,380 A sense of scale, this is super, super tiny. 818 00:38:51,380 --> 00:38:53,500 It's tedious to fold these by hand. 819 00:38:53,500 --> 00:38:56,760 And in this way, they can mass produce them. 820 00:38:56,760 --> 00:38:59,150 Here's what it looks like when you connect a battery. 821 00:38:59,150 --> 00:39:04,460 Either it will fold at 1 Hertz or at 30 Hertz, which 822 00:39:04,460 --> 00:39:08,020 you can barely see, because it's a 30 Hertz video. 823 00:39:08,020 --> 00:39:11,347 So you get your robotic bee. 824 00:39:11,347 --> 00:39:12,430 It's not yet controllable. 825 00:39:12,430 --> 00:39:13,888 It doesn't have a battery attached, 826 00:39:13,888 --> 00:39:16,970 but it's extremely lightweight, and very powerful. 827 00:39:16,970 --> 00:39:21,240 This is a 3D printed prototype they made first. 828 00:39:21,240 --> 00:39:24,760 And you can use it to mass produce your objects. 829 00:39:24,760 --> 00:39:26,420 Essentially, automatic procedure. 830 00:39:26,420 --> 00:39:29,630 And it's all by layering up flat layers, 831 00:39:29,630 --> 00:39:32,147 and then getting it to fold into 3D things. 832 00:39:32,147 --> 00:39:33,980 And so you could imagine something like this 833 00:39:33,980 --> 00:39:36,710 to execute some complicated foldings, 834 00:39:36,710 --> 00:39:39,510 although that's future work. 835 00:39:39,510 --> 00:39:42,000 This is, in some sense, a fairly simple thing to build. 836 00:39:42,000 --> 00:39:44,760 And we're working on making more complicated things. 837 00:39:44,760 --> 00:39:46,630 So that was some robotic folding for you. 838 00:39:49,420 --> 00:39:52,280 Next question is, any cool open problems here? 839 00:39:52,280 --> 00:39:56,010 So I have two related to rigid origami. 840 00:39:58,890 --> 00:40:02,900 One of them is, if I give you a crease pattern, 841 00:40:02,900 --> 00:40:06,820 tell me whether it is rigidly foldable at least a little bit 842 00:40:06,820 --> 00:40:09,080 or to the first order or something. 843 00:40:09,080 --> 00:40:12,760 So I'll just give you something, like this will fold rigidly. 844 00:40:12,760 --> 00:40:14,799 I want to say yes or no, does this fold? 845 00:40:14,799 --> 00:40:16,340 Seems like a pretty natural question. 846 00:40:16,340 --> 00:40:19,370 And indeed, if all the vertices are degree four like this, 847 00:40:19,370 --> 00:40:20,990 only four four edges coming together, 848 00:40:20,990 --> 00:40:23,220 we can solve it efficiently. 849 00:40:23,220 --> 00:40:27,200 But given a more complicated general pattern, 850 00:40:27,200 --> 00:40:29,530 characterize when that is possible. 851 00:40:29,530 --> 00:40:31,742 We don't have a good algorithm for that. 852 00:40:31,742 --> 00:40:32,950 I don't know if there is one. 853 00:40:35,680 --> 00:40:38,310 The more general question is-- that's kind of an analysis 854 00:40:38,310 --> 00:40:38,810 question. 855 00:40:38,810 --> 00:40:42,870 The design problem is, I want to design cool rigid origami. 856 00:40:42,870 --> 00:40:46,460 And we've seen bunches of examples of rigid origami. 857 00:40:46,460 --> 00:40:49,770 Here's a new one I wanted to show. 858 00:40:49,770 --> 00:40:50,810 The Hexa Pot. 859 00:40:50,810 --> 00:40:54,600 I believe this is rigid origami, as a kick starter on this. 860 00:40:54,600 --> 00:40:56,550 And here is one of them. 861 00:40:56,550 --> 00:40:58,340 It folds nice and flat. 862 00:40:58,340 --> 00:41:02,330 And it has this 3D state, where you can boil water 863 00:41:02,330 --> 00:41:03,710 on your camping stove. 864 00:41:03,710 --> 00:41:06,110 And they have a video of cooking noodles. 865 00:41:06,110 --> 00:41:07,140 It cooks noodles. 866 00:41:07,140 --> 00:41:08,190 It cooks pasta. 867 00:41:08,190 --> 00:41:09,720 It cooks sausages. 868 00:41:09,720 --> 00:41:12,220 Anything you could imagine, you can cook in here, 869 00:41:12,220 --> 00:41:14,210 as long as it fits in this space. 870 00:41:14,210 --> 00:41:17,430 That's waterproof, obviously. 871 00:41:17,430 --> 00:41:20,300 We saw the telescope lens. 872 00:41:20,300 --> 00:41:22,330 We saw this origami stent. 873 00:41:22,330 --> 00:41:24,100 How are these designed? 874 00:41:24,100 --> 00:41:24,970 Inspiration. 875 00:41:24,970 --> 00:41:27,390 Some human had a cool idea, tried it out, 876 00:41:27,390 --> 00:41:29,640 proved that it actually folded rigidly. 877 00:41:29,640 --> 00:41:32,140 Great. 878 00:41:32,140 --> 00:41:33,830 But can we come up with algorithms 879 00:41:33,830 --> 00:41:36,080 to design things like this? 880 00:41:36,080 --> 00:41:39,140 Could you close the door? 881 00:41:39,140 --> 00:41:41,960 Here's another just one-off example. 882 00:41:41,960 --> 00:41:43,030 You may have seen these. 883 00:41:43,030 --> 00:41:45,750 These are called shopping bags, and they're usually 884 00:41:45,750 --> 00:41:46,720 paper shopping bags. 885 00:41:46,720 --> 00:41:49,310 They're usually folded along this crease pattern. 886 00:41:49,310 --> 00:41:52,830 It turns out that's not possible if all the panels are rigid. 887 00:41:52,830 --> 00:41:54,940 This thing cannot fold at all. 888 00:41:54,940 --> 00:41:58,001 It's rigid, if the panels are made of steel. 889 00:41:58,001 --> 00:41:59,500 And it's actually fairly easy to see 890 00:41:59,500 --> 00:42:01,930 that, if you look at this corner, 891 00:42:01,930 --> 00:42:04,730 these are four 90-degree angles coming together. 892 00:42:04,730 --> 00:42:07,650 And if you look at four 90-degree angles, two 893 00:42:07,650 --> 00:42:11,110 straight lines, like in a map, you could fold one of them. 894 00:42:11,110 --> 00:42:13,080 But only when you get all the way to 180 can 895 00:42:13,080 --> 00:42:14,660 you fold the other way. 896 00:42:14,660 --> 00:42:17,260 So right now, this guy is folded 90 degrees. 897 00:42:17,260 --> 00:42:20,770 This can't fold at all, which means this fold angle is zero. 898 00:42:20,770 --> 00:42:22,870 And we know from Tomohiro's lecture 899 00:42:22,870 --> 00:42:26,170 that a degree four vertex has one degree of freedom. 900 00:42:26,170 --> 00:42:28,300 So this if this is zero, they all have to be zero. 901 00:42:28,300 --> 00:42:31,890 And so the whole thing is rigid. 902 00:42:31,890 --> 00:42:33,420 Of course, if you add extra creases, 903 00:42:33,420 --> 00:42:36,570 this is done with that Devin Balkcom and Marty. 904 00:42:36,570 --> 00:42:39,290 So the same robotic folding guy. 905 00:42:39,290 --> 00:42:41,710 Here's a visual proof of what goes wrong. 906 00:42:41,710 --> 00:42:43,470 You end up with a tear here. 907 00:42:43,470 --> 00:42:47,970 You can fold everything except one of those guys. 908 00:42:47,970 --> 00:42:50,630 If you add extra creases, you can kind of 909 00:42:50,630 --> 00:42:53,370 roll the lip of the bag down, and repeat 910 00:42:53,370 --> 00:42:55,120 that until it's really short. 911 00:42:55,120 --> 00:43:00,300 And then once it's below this height of one to two, 912 00:43:00,300 --> 00:43:04,362 you can just crush it like a garment box. 913 00:43:04,362 --> 00:43:05,320 And so you can do that. 914 00:43:05,320 --> 00:43:06,580 You can actually fold this thing flat, 915 00:43:06,580 --> 00:43:08,210 and you can undo it and unfold it. 916 00:43:08,210 --> 00:43:11,510 An interesting open question is, these paper bags 917 00:43:11,510 --> 00:43:13,820 are manufactured in their flat state. 918 00:43:13,820 --> 00:43:15,760 If I give you a flat paper bag, can you 919 00:43:15,760 --> 00:43:17,810 open it by adding creases? 920 00:43:17,810 --> 00:43:20,500 I don't think we know the answer to that. 921 00:43:20,500 --> 00:43:22,609 But we conjecture the answer is yes. 922 00:43:22,609 --> 00:43:24,650 There are a bunch of different designs out there. 923 00:43:24,650 --> 00:43:27,330 This is done with-- it's hard to read. 924 00:43:27,330 --> 00:43:29,400 But this is with [INAUDIBLE] in particular, 925 00:43:29,400 --> 00:43:31,270 who did the origami stent. 926 00:43:31,270 --> 00:43:33,090 It's kind of a twisting box. 927 00:43:33,090 --> 00:43:36,590 Works up to a cubicle box. 928 00:43:36,590 --> 00:43:40,020 And he just had a paper with Woo this year 929 00:43:40,020 --> 00:43:42,030 on a more practical folding. 930 00:43:42,030 --> 00:43:44,740 So when we roll the lip, we get a lot of layers of material. 931 00:43:44,740 --> 00:43:46,880 This one works for fairly a tall bag. 932 00:43:46,880 --> 00:43:48,590 I forget exactly heart how tall. 933 00:43:48,590 --> 00:43:50,410 Maybe three to one. 934 00:43:50,410 --> 00:43:53,190 And it has a fairly small number of layers. 935 00:43:53,190 --> 00:43:55,300 They even built one out of sheet metal 936 00:43:55,300 --> 00:43:58,690 to prove this is a practical way to make rigid shopping bags. 937 00:44:01,200 --> 00:44:04,070 And the last question here is, could you 938 00:44:04,070 --> 00:44:06,090 make one crease pattern that folds 939 00:44:06,090 --> 00:44:07,510 into two different shapes? 940 00:44:07,510 --> 00:44:09,760 Could you make an Origamizer that at one point 941 00:44:09,760 --> 00:44:10,699 will make one shape? 942 00:44:10,699 --> 00:44:12,740 And then you super-impose another crease pattern, 943 00:44:12,740 --> 00:44:16,910 ideally sharing lots of creases, to make a different shape? 944 00:44:16,910 --> 00:44:20,520 And the answer is, watch the next lecture. 945 00:44:20,520 --> 00:44:23,200 Yes, we will be talking about universal hinge patterns, where 946 00:44:23,200 --> 00:44:24,991 you take a different subset of the creases. 947 00:44:24,991 --> 00:44:28,110 You can fold anything, provided it's made up of little cubes. 948 00:44:28,110 --> 00:44:31,130 And that's one answer to that question. 949 00:44:31,130 --> 00:44:32,077 Any other questions? 950 00:44:32,077 --> 00:44:32,577 Yes. 951 00:44:32,577 --> 00:44:35,439 AUDIENCE: Erik, going back to the rigid foldability, 952 00:44:35,439 --> 00:44:37,108 you do understand rigid foldability has 953 00:44:37,108 --> 00:44:38,301 a single vertex, right? 954 00:44:38,301 --> 00:44:39,740 It's just a global [INAUDIBLE]. 955 00:44:39,740 --> 00:44:40,448 PROFESSOR: Right. 956 00:44:40,448 --> 00:44:43,660 Rigid foldability of the single vertex is easy. 957 00:44:43,660 --> 00:44:47,870 Almost anything is rigidly foldable. 958 00:44:47,870 --> 00:44:50,380 But yeah, its general crease pattern [INAUDIBLE]. 959 00:44:50,380 --> 00:44:53,350 AUDIENCE: So it's very similar to the flat foldability 960 00:44:53,350 --> 00:44:56,320 [INAUDIBLE]. 961 00:44:56,320 --> 00:44:58,170 PROFESSOR: Yeah, it's like flat foldability, 962 00:44:58,170 --> 00:44:59,830 except for flat foldability, we know 963 00:44:59,830 --> 00:45:02,600 that testing a single vertex is easy. 964 00:45:02,600 --> 00:45:05,010 Testing a whole crease pattern is NP hard. 965 00:45:05,010 --> 00:45:07,320 What'd we'd like to prove is either NP hardness, 966 00:45:07,320 --> 00:45:10,240 or get an algorithm for rigid foldability. 967 00:45:10,240 --> 00:45:12,480 AUDIENCE: There's no such result [INAUDIBLE]. 968 00:45:12,480 --> 00:45:14,146 PROFESSOR: Right, there's no such result 969 00:45:14,146 --> 00:45:17,200 for rigid foldability yet. 970 00:45:17,200 --> 00:45:18,900 Other questions? 971 00:45:18,900 --> 00:45:19,750 All right. 972 00:45:19,750 --> 00:45:22,430 Enjoy folding.