aboutsummaryrefslogtreecommitdiff
path: root/examples/64_distordable_object.pd
blob: 54d5aa6b006b8a705a23b9c28d7f5717f762e97a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
#N canvas 656 184 734 630 10;
#X declare -lib Gem -path ../;
#X obj 52 340 pmpd2d;
#X obj 52 78 loadbang;
#X obj 64 101 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1
-1;
#N canvas 551 233 1328 695 creation 0;
#X obj 631 -17 inlet;
#X obj 641 11 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1
-1;
#X obj 632 44 t b b b b b b b b b b b;
#X msg 1082 220 reset;
#X obj 614 611 outlet;
#X obj 951 188 until;
#X obj 951 220 f;
#X obj 1023 272 + 1;
#X msg 993 188 0;
#X obj 951 346 pack f f;
#X msg 951 371 mass net 1 1 \$1 \$2;
#X msg 1074 468 print;
#X obj 986 298 % 20;
#X obj 951 299 / 20;
#X obj 951 320 i;
#X obj 951 267 t f f f f;
#X obj 823 334 until;
#X obj 823 366 f;
#X obj 895 418 + 1;
#X obj 823 413 t f f f f;
#X obj 824 443 + 1;
#X obj 822 471 pack f f;
#X msg 823 312 19;
#X obj 838 174 until;
#X obj 838 206 f;
#X msg 880 174 0;
#X obj 899 237 + 1;
#X obj 863 308 * 20;
#X msg 838 152 20;
#X msg 951 166 400;
#X obj 659 331 until;
#X obj 659 363 f;
#X obj 731 415 + 1;
#X obj 659 410 t f f f f;
#X obj 658 468 pack f f;
#X obj 674 171 until;
#X obj 674 203 f;
#X msg 716 171 0;
#X obj 751 246 + 1;
#X obj 699 305 * 20;
#X msg 659 309 20;
#X msg 674 149 19;
#X obj 660 440 + 20;
#X obj 493 333 until;
#X obj 493 365 f;
#X obj 565 417 + 1;
#X obj 493 412 t f f f f;
#X obj 492 470 pack f f;
#X obj 508 173 until;
#X obj 508 205 f;
#X msg 550 173 0;
#X obj 593 253 + 1;
#X obj 533 307 * 20;
#X msg 508 151 19;
#X msg 493 311 19;
#X obj 494 442 + 21;
#X obj 338 333 until;
#X obj 338 365 f;
#X obj 410 417 + 1;
#X obj 338 412 t f f f f;
#X obj 337 470 pack f f;
#X obj 353 173 until;
#X obj 353 205 f;
#X msg 395 173 0;
#X obj 411 256 + 1;
#X obj 378 307 * 20;
#X msg 353 151 19;
#X msg 338 311 19;
#X obj 394 450 + 1;
#X obj 352 280 t b f f;
#X obj 507 280 t b f f;
#X obj 673 278 t b f f;
#X obj 837 281 t b f f;
#X obj 340 442 + 20;
#X msg 1095 274 min -9 -9 \, max 29 29;
#X msg 339 498 link mesh \$1 \$2 0.03 0.1;
#X msg 497 497 link mesh \$1 \$2 0.03 0.1;
#X msg 661 496 link mesh \$1 \$2 0.03 0.1;
#X msg 823 496 link mesh \$1 \$2 0.03 0.1;
#X obj 170 335 until;
#X obj 170 367 f;
#X obj 242 419 + 1;
#X obj 170 414 t f f f f;
#X obj 169 472 pack f f;
#X obj 185 175 until;
#X obj 185 207 f;
#X msg 227 175 0;
#X obj 270 255 + 1;
#X obj 210 309 * 20;
#X obj 15 335 until;
#X obj 15 367 f;
#X obj 87 419 + 1;
#X obj 15 414 t f f f f;
#X obj 14 472 pack f f;
#X obj 30 175 until;
#X obj 30 207 f;
#X msg 72 175 0;
#X obj 88 258 + 1;
#X obj 55 309 * 20;
#X obj 29 282 t b f f;
#X obj 184 282 t b f f;
#X msg 20 502 link mesh \$1 \$2 0.03 0.1;
#X msg 174 499 link mesh \$1 \$2 0.03 0.1;
#X obj 71 452 + 2;
#X msg 15 313 18;
#X msg 30 153 18;
#X obj 171 444 + 42;
#X msg 184 153 18;
#X msg 170 313 18;
#X obj 17 444 + 40;
#X connect 0 0 2 0;
#X connect 1 0 2 0;
#X connect 2 0 105 0;
#X connect 2 1 107 0;
#X connect 2 2 74 0;
#X connect 2 4 53 0;
#X connect 2 4 66 0;
#X connect 2 7 41 0;
#X connect 2 8 28 0;
#X connect 2 9 29 0;
#X connect 2 10 3 0;
#X connect 2 10 8 0;
#X connect 2 10 25 0;
#X connect 2 10 37 0;
#X connect 2 10 50 0;
#X connect 2 10 63 0;
#X connect 2 10 86 0;
#X connect 2 10 96 0;
#X connect 3 0 4 0;
#X connect 5 0 6 0;
#X connect 6 0 15 0;
#X connect 7 0 6 1;
#X connect 8 0 6 1;
#X connect 9 0 10 0;
#X connect 10 0 4 0;
#X connect 11 0 4 0;
#X connect 12 0 9 1;
#X connect 13 0 14 0;
#X connect 14 0 9 0;
#X connect 15 0 13 0;
#X connect 15 1 12 0;
#X connect 15 2 7 0;
#X connect 16 0 17 0;
#X connect 17 0 19 0;
#X connect 18 0 17 1;
#X connect 19 0 20 0;
#X connect 19 1 21 1;
#X connect 19 2 18 0;
#X connect 20 0 21 0;
#X connect 21 0 78 0;
#X connect 22 0 16 0;
#X connect 23 0 24 0;
#X connect 24 0 72 0;
#X connect 25 0 24 1;
#X connect 26 0 24 1;
#X connect 27 0 17 1;
#X connect 28 0 23 0;
#X connect 29 0 5 0;
#X connect 30 0 31 0;
#X connect 31 0 33 0;
#X connect 32 0 31 1;
#X connect 33 0 42 0;
#X connect 33 1 34 1;
#X connect 33 2 32 0;
#X connect 34 0 77 0;
#X connect 35 0 36 0;
#X connect 36 0 71 0;
#X connect 37 0 36 1;
#X connect 38 0 36 1;
#X connect 39 0 31 1;
#X connect 40 0 30 0;
#X connect 41 0 35 0;
#X connect 42 0 34 0;
#X connect 43 0 44 0;
#X connect 44 0 46 0;
#X connect 45 0 44 1;
#X connect 46 0 55 0;
#X connect 46 1 47 1;
#X connect 46 2 45 0;
#X connect 47 0 76 0;
#X connect 48 0 49 0;
#X connect 49 0 70 0;
#X connect 50 0 49 1;
#X connect 51 0 49 1;
#X connect 52 0 44 1;
#X connect 53 0 48 0;
#X connect 54 0 43 0;
#X connect 55 0 47 0;
#X connect 56 0 57 0;
#X connect 57 0 59 0;
#X connect 58 0 57 1;
#X connect 59 0 73 0;
#X connect 59 1 68 0;
#X connect 59 2 58 0;
#X connect 60 0 75 0;
#X connect 61 0 62 0;
#X connect 62 0 69 0;
#X connect 63 0 62 1;
#X connect 64 0 62 1;
#X connect 65 0 57 1;
#X connect 66 0 61 0;
#X connect 67 0 56 0;
#X connect 68 0 60 1;
#X connect 69 0 67 0;
#X connect 69 1 65 0;
#X connect 69 2 64 0;
#X connect 70 0 54 0;
#X connect 70 1 52 0;
#X connect 70 2 51 0;
#X connect 71 0 40 0;
#X connect 71 1 39 0;
#X connect 71 2 38 0;
#X connect 72 0 22 0;
#X connect 72 1 27 0;
#X connect 72 2 26 0;
#X connect 73 0 60 0;
#X connect 74 0 4 0;
#X connect 75 0 4 0;
#X connect 76 0 4 0;
#X connect 77 0 4 0;
#X connect 78 0 4 0;
#X connect 79 0 80 0;
#X connect 80 0 82 0;
#X connect 81 0 80 1;
#X connect 82 0 106 0;
#X connect 82 1 83 1;
#X connect 82 2 81 0;
#X connect 83 0 102 0;
#X connect 84 0 85 0;
#X connect 85 0 100 0;
#X connect 86 0 85 1;
#X connect 87 0 85 1;
#X connect 88 0 80 1;
#X connect 89 0 90 0;
#X connect 90 0 92 0;
#X connect 91 0 90 1;
#X connect 92 0 109 0;
#X connect 92 1 103 0;
#X connect 92 2 91 0;
#X connect 93 0 101 0;
#X connect 94 0 95 0;
#X connect 95 0 99 0;
#X connect 96 0 95 1;
#X connect 97 0 95 1;
#X connect 98 0 90 1;
#X connect 99 0 104 0;
#X connect 99 1 98 0;
#X connect 99 2 97 0;
#X connect 100 0 108 0;
#X connect 100 1 88 0;
#X connect 100 2 87 0;
#X connect 103 0 93 1;
#X connect 104 0 89 0;
#X connect 105 0 94 0;
#X connect 106 0 83 0;
#X connect 107 0 84 0;
#X connect 108 0 79 0;
#X connect 109 0 93 0;
#X restore 52 126 pd creation;
#X obj 69 264 gemhead;
#X obj 69 287 t b;
#X obj 54 45 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 1 1
;
#N canvas 483 221 591 562 linkrender 0;
#X obj 146 9 inlet;
#X obj 67 285 separator;
#X obj 150 148 t b f;
#X obj 67 368 curve 2;
#X obj 177 178 pack f f;
#X msg 177 201 \$1 \$2 0;
#X obj 261 177 pack f f;
#X msg 261 200 \$1 \$2 0;
#X obj 146 97 unpack f f f f f;
#X obj 67 224 gemhead 45;
#X obj 67 116 loadbang;
#X msg 67 174 0;
#X msg 77 337 res 2;
#X obj 77 311 loadbang;
#X obj 67 265 translateXYZ -10 -10 0;
#X obj 67 246 scaleXYZ 0.2 0.2 0.2;
#X obj 146 53 route mesh;
#X connect 0 0 16 0;
#X connect 1 0 3 0;
#X connect 2 0 9 0;
#X connect 2 1 4 0;
#X connect 4 0 5 0;
#X connect 5 0 3 1;
#X connect 6 0 7 0;
#X connect 7 0 3 2;
#X connect 8 1 2 0;
#X connect 8 2 4 1;
#X connect 8 3 6 0;
#X connect 8 4 6 1;
#X connect 9 0 15 0;
#X connect 10 0 11 0;
#X connect 11 0 9 0;
#X connect 12 0 3 0;
#X connect 13 0 12 0;
#X connect 14 0 1 0;
#X connect 15 0 14 0;
#X connect 16 0 8 0;
#X restore 52 385 pd linkrender;
#N canvas 266 267 304 262 create_gem 0;
#X msg 137 179 0 \, destroy;
#X obj 118 104 inlet;
#X obj 118 129 sel 1 0;
#X msg 118 156 reset \, create \, 1;
#X obj 118 200 gemwin;
#X connect 0 0 4 0;
#X connect 1 0 2 0;
#X connect 2 0 3 0;
#X connect 2 1 0 0;
#X connect 3 0 4 0;
#X restore 75 45 pd create_gem;
#X obj 239 119 pack f f;
#X obj 239 143 spigot 0;
#X obj 255 47 gemmouse 40 -40;
#X obj 239 97 - 10;
#X obj 281 98 + 30;
#X obj 240 73 f;
#X obj 207 -13 gemhead;
#X obj 207 10 t b;
#X obj 207 53 until;
#X obj 52 363 route linkEnd testLink;
#X msg 151 406 setInactive \$1 \, setLinkId \$1 broken;
#X obj 480 70 gemhead 45;
#X obj 480 113 translateXYZ -10 -10 0;
#X obj 480 92 scaleXYZ 0.2 0.2 0.2;
#X obj 503 -1 gemmouse 40 -40;
#X obj 503 34 - 10;
#X obj 536 34 + 30;
#X obj 480 134 translateXYZ;
#X obj 480 155 circle 2;
#X obj 151 385 route break plastic;
#X msg 207 197 bang \, forceY net -1e-05 \,;
#X msg 451 38 0;
#X obj 451 14 loadbang;
#X obj 26 -19 declare -lib Gem -path ../;
#X text 239 7 simulation speed x20;
#X text 188 331 ask pmpd to test the forces of each links;
#X msg 69 308 linkEnd mesh;
#X obj 181 225 t b b;
#X obj 181 265 spigot 0;
#X obj 281 263 spigot 0;
#X obj 226 226 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0
1;
#X obj 326 243 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0
1;
#X text 86 100 reset object;
#X msg 239 169 iCircle net \$1 \$2 1 -0.03 1 0 0 0 1;
#X text 247 224 plastic distortion;
#X text 347 241 breakable link;
#X msg 181 286 testLink plastic Id mesh forceSup 0.004;
#X msg 205 436 setLCurrent mesh 0.005;
#X msg 282 311 testLink break Id mesh forceSup 0.01;
#X msg 207 32 20;
#X text 62 492 Click and drag the mouse cursor over the object : you
can interact with it. If forces in the links are superior to 0.004
\, the connection lenght will adapt a bit (plastic deformation). If
forces are even bigger (> 0.01) \, the link will break.;
#X text 378 407 link with forces > 0.01 breaks;
#X text 350 438 link with forces > 0.004 adpats 0.5% of their length
;
#X connect 0 0 18 0;
#X connect 1 0 3 0;
#X connect 2 0 3 0;
#X connect 3 0 0 0;
#X connect 4 0 5 0;
#X connect 5 0 35 0;
#X connect 6 0 8 0;
#X connect 9 0 10 0;
#X connect 10 0 42 0;
#X connect 11 0 14 1;
#X connect 11 1 13 0;
#X connect 11 2 10 1;
#X connect 12 0 9 0;
#X connect 13 0 9 1;
#X connect 14 0 12 0;
#X connect 15 0 16 0;
#X connect 16 0 48 0;
#X connect 17 0 14 0;
#X connect 17 0 36 0;
#X connect 17 0 29 0;
#X connect 18 0 7 0;
#X connect 18 1 28 0;
#X connect 19 0 0 0;
#X connect 20 0 22 0;
#X connect 21 0 26 0;
#X connect 22 0 21 0;
#X connect 23 0 24 0;
#X connect 23 1 25 0;
#X connect 23 2 20 0;
#X connect 24 0 26 1;
#X connect 25 0 26 2;
#X connect 26 0 27 0;
#X connect 28 0 19 0;
#X connect 28 1 46 0;
#X connect 29 0 0 0;
#X connect 30 0 20 0;
#X connect 31 0 30 0;
#X connect 35 0 0 0;
#X connect 36 0 37 0;
#X connect 36 1 38 0;
#X connect 37 0 45 0;
#X connect 38 0 47 0;
#X connect 39 0 37 1;
#X connect 40 0 38 1;
#X connect 42 0 0 0;
#X connect 45 0 0 0;
#X connect 46 0 0 0;
#X connect 47 0 0 0;
#X connect 48 0 17 0;