From c050bb9a7595860bf72e7c407ff3e8cbd7e77480 Mon Sep 17 00:00:00 2001 From: Cyrille Henry Date: Fri, 9 Apr 2004 16:55:47 +0000 Subject: This commit was generated by cvs2svn to compensate for changes in r1590, which included commits to RCS files with non-trunk default branches. svn path=/trunk/externals/pmpd/; revision=1591 --- exemples/00_pmpd.pd | 36 + exemples/01_basics.pd | 769 +++++++++++ exemples/02_string.pd | 163 +++ exemples/03_chaos2D.pd | 180 +++ exemples/04_3D_exemple.pd | 71 + exemples/05_corde2D.pd | 452 ++++++ exemples/06_pyramide3D.pd | 249 ++++ exemples/07_corde3D.pd | 601 ++++++++ exemples/08_ball2D.pd | 315 +++++ exemples/09_tutorial2D.pd | 269 ++++ exemples/10_game.pd | 908 ++++++++++++ exemples/11_comportement.pd | 974 +++++++++++++ exemples/12_exitation.pd | 1838 +++++++++++++++++++++++++ exemples/13_plane3D.pd | 460 +++++++ exemples/14_MP_curve3d.pd | 471 +++++++ exemples/15_constant_force_field.pd | 283 ++++ exemples/16_name_and_interactors.pd | 148 ++ exemples/17_rnd_mouvmnt_and_obstacles.pd | 74 + exemples/18_flipper.pd | 265 ++++ exemples/19_vertex.pd | 107 ++ exemples/20_moving_vertex.pd | 117 ++ exemples/21_fluid_circulation_cylinder.pd | 199 +++ exemples/22_gaz_molecules.pd | 204 +++ exemples/23_test.pd | 339 +++++ exemples/24_sand.pd | 140 ++ exemples/25_sand2.pd | 230 ++++ exemples/26_sand3.pd | 234 ++++ exemples/27_tLia.pd | 874 ++++++++++++ exemples/28_Lia.pd | 108 ++ exemples/29_aglom.pd | 104 ++ exemples/30_falling_aglom.pd | 167 +++ exemples/31_paste.pd | 206 +++ exemples/32_Kelvin_Helmoltz_instability.pd | 160 +++ exemples/33_vorticity_ellipse.pd | 369 +++++ exemples/34_cigarette_smoke.pd | 326 +++++ exemples/35_gravitation.pd | 74 + exemples/36_3D_interactors.pd | 781 +++++++++++ exemples/37_hollywood_planette_explosion.pd | 480 +++++++ exemples/38_elastique_membrane_on_a_sphere.pd | 1413 +++++++++++++++++++ exemples/39_blob.pd | 696 ++++++++++ exemples/40_i3D.pd | 214 +++ exemples/41_morfing.pd | 265 ++++ exemples/42_tentacule.pd | 453 ++++++ exemples/43_game.pd | 1251 +++++++++++++++++ exemples/44_flag.pd | 806 +++++++++++ exemples/45_newWave.pd | 775 +++++++++++ exemples/46_non_linear.pd | 191 +++ exemples/aglom.pd | 43 + exemples/aglom2.pd | 43 + exemples/aglom3.pd | 23 + exemples/aglom4.pd | 24 + exemples/blob.pd | 105 ++ exemples/ch_gemwin.pd | 170 +++ exemples/ch_uzi.pd | 22 + exemples/constructor.pd | 773 +++++++++++ exemples/explose1.pd | 12 + exemples/explose2.pd | 12 + exemples/fluide_masse.pd | 34 + exemples/fluide_masse2.pd | 138 ++ exemples/fluide_masse3.pd | 17 + exemples/fluide_masse4.pd | 30 + exemples/fluide_masse5.pd | 66 + exemples/fluide_masse6.pd | 17 + exemples/game_line.pd | 70 + exemples/gemLia.pd | 21 + exemples/gemLia2.pd | 10 + exemples/gemMasse.pd | 18 + exemples/gemMasse2.pd | 12 + exemples/gemMasse3.pd | 27 + exemples/i3D.pd | 21 + exemples/i3D2.pd | 83 ++ exemples/mass_link.pd | 82 ++ exemples/mass_link2.pd | 24 + exemples/mass_link3.pd | 90 ++ exemples/mountain.pd | 144 ++ exemples/pd_lia.pd | 19 + exemples/pd_lia2.pd | 19 + exemples/pd_masse.pd | 44 + exemples/pd_masse2.pd | 15 + exemples/rain.pd | 16 + exemples/rain1.pd | 16 + exemples/sand.pd | 29 + exemples/smoke.pd | 55 + exemples/smoke1.pd | 32 + exemples/smoke_vortex.pd | 41 + exemples/tut_lia.pd | 19 + exemples/tut_masse.pd | 15 + exemples/vortex.pd | 26 + exemples/vortex2.pd | 53 + help/help-iAmbient2D.pd | 61 + help/help-iAmbient3D.pd | 76 + help/help-iCircle2D.pd | 83 ++ help/help-iCircle3D.pd | 70 + help/help-iCylinder3D.pd | 90 ++ help/help-iLine2D.pd | 58 + help/help-iPlane3D.pd | 55 + help/help-iSeg2D.pd | 64 + help/help-iSphere3D.pd | 67 + help/help-lia.pd | 114 ++ help/help-lia2D.pd | 68 + help/help-lia3D.pd | 68 + help/help-masse.pd | 55 + help/help-masse2D.pd | 77 ++ help/help-masse3D.pd | 80 ++ help/help-pmpd.pd | 259 ++++ help/help-tCircle2D.pd | 40 + help/help-tCircle3D.pd | 59 + help/help-tCube3D.pd | 37 + help/help-tCylinder3D.pd | 58 + help/help-tLia2D.pd | 31 + help/help-tLia3D.pd | 31 + help/help-tLine2D.pd | 47 + help/help-tPlane3D.pd | 41 + help/help-tSeg2D.pd | 47 + help/help-tSphere3D.pd | 37 + help/help-tSquare2D.pd | 29 + src/iAmbient2D.c | 200 +++ src/iAmbient3D.c | 259 ++++ src/iCircle2D.c | 276 ++++ src/iCircle3D.c | 211 +++ src/iCylinder3D.c | 292 ++++ src/iLine2D.c | 179 +++ src/iPlane3D.c | 193 +++ src/iSeg2D.c | 175 +++ src/iSphere3D.c | 253 ++++ src/lia.c | 162 +++ src/lia2D.c | 213 +++ src/lia3D.c | 238 ++++ src/makefile | 95 ++ src/masse.c | 153 ++ src/masse2D.c | 810 +++++++++++ src/masse3D.c | 1093 +++++++++++++++ src/pmpd.c | 146 ++ src/tCircle2D.c | 113 ++ src/tCircle3D.c | 195 +++ src/tCube3D.c | 114 ++ src/tCylinder3D.c | 218 +++ src/tLia2D.c | 157 +++ src/tLia3D.c | 153 ++ src/tLine2D.c | 137 ++ src/tPlane3D.c | 175 +++ src/tSeg2D.c | 139 ++ src/tSphere3D.c | 128 ++ src/tSquare2D.c | 92 ++ 144 files changed, 30710 insertions(+) create mode 100755 exemples/00_pmpd.pd create mode 100755 exemples/01_basics.pd create mode 100755 exemples/02_string.pd create mode 100755 exemples/03_chaos2D.pd create mode 100755 exemples/04_3D_exemple.pd create mode 100755 exemples/05_corde2D.pd create mode 100755 exemples/06_pyramide3D.pd create mode 100755 exemples/07_corde3D.pd create mode 100755 exemples/08_ball2D.pd create mode 100755 exemples/09_tutorial2D.pd create mode 100755 exemples/10_game.pd create mode 100755 exemples/11_comportement.pd create mode 100755 exemples/12_exitation.pd create mode 100755 exemples/13_plane3D.pd create mode 100755 exemples/14_MP_curve3d.pd create mode 100755 exemples/15_constant_force_field.pd create mode 100755 exemples/16_name_and_interactors.pd create mode 100755 exemples/17_rnd_mouvmnt_and_obstacles.pd create mode 100755 exemples/18_flipper.pd create mode 100755 exemples/19_vertex.pd create mode 100755 exemples/20_moving_vertex.pd create mode 100755 exemples/21_fluid_circulation_cylinder.pd create mode 100755 exemples/22_gaz_molecules.pd create mode 100755 exemples/23_test.pd create mode 100755 exemples/24_sand.pd create mode 100755 exemples/25_sand2.pd create mode 100755 exemples/26_sand3.pd create mode 100755 exemples/27_tLia.pd create mode 100755 exemples/28_Lia.pd create mode 100755 exemples/29_aglom.pd create mode 100755 exemples/30_falling_aglom.pd create mode 100755 exemples/31_paste.pd create mode 100755 exemples/32_Kelvin_Helmoltz_instability.pd create mode 100755 exemples/33_vorticity_ellipse.pd create mode 100755 exemples/34_cigarette_smoke.pd create mode 100755 exemples/35_gravitation.pd create mode 100755 exemples/36_3D_interactors.pd create mode 100755 exemples/37_hollywood_planette_explosion.pd create mode 100755 exemples/38_elastique_membrane_on_a_sphere.pd create mode 100755 exemples/39_blob.pd create mode 100755 exemples/40_i3D.pd create mode 100755 exemples/41_morfing.pd create mode 100755 exemples/42_tentacule.pd create mode 100755 exemples/43_game.pd create mode 100755 exemples/44_flag.pd create mode 100755 exemples/45_newWave.pd create mode 100755 exemples/46_non_linear.pd create mode 100755 exemples/aglom.pd create mode 100755 exemples/aglom2.pd create mode 100755 exemples/aglom3.pd create mode 100755 exemples/aglom4.pd create mode 100755 exemples/blob.pd create mode 100755 exemples/ch_gemwin.pd create mode 100755 exemples/ch_uzi.pd create mode 100755 exemples/constructor.pd create mode 100755 exemples/explose1.pd create mode 100755 exemples/explose2.pd create mode 100755 exemples/fluide_masse.pd create mode 100755 exemples/fluide_masse2.pd create mode 100755 exemples/fluide_masse3.pd create mode 100755 exemples/fluide_masse4.pd create mode 100755 exemples/fluide_masse5.pd create mode 100755 exemples/fluide_masse6.pd create mode 100755 exemples/game_line.pd create mode 100755 exemples/gemLia.pd create mode 100755 exemples/gemLia2.pd create mode 100755 exemples/gemMasse.pd create mode 100755 exemples/gemMasse2.pd create mode 100755 exemples/gemMasse3.pd create mode 100755 exemples/i3D.pd create mode 100755 exemples/i3D2.pd create mode 100755 exemples/mass_link.pd create mode 100755 exemples/mass_link2.pd create mode 100755 exemples/mass_link3.pd create mode 100755 exemples/mountain.pd create mode 100755 exemples/pd_lia.pd create mode 100755 exemples/pd_lia2.pd create mode 100755 exemples/pd_masse.pd create mode 100755 exemples/pd_masse2.pd create mode 100755 exemples/rain.pd create mode 100755 exemples/rain1.pd create mode 100755 exemples/sand.pd create mode 100755 exemples/smoke.pd create mode 100755 exemples/smoke1.pd create mode 100755 exemples/smoke_vortex.pd create mode 100755 exemples/tut_lia.pd create mode 100755 exemples/tut_masse.pd create mode 100755 exemples/vortex.pd create mode 100755 exemples/vortex2.pd create mode 100755 help/help-iAmbient2D.pd create mode 100755 help/help-iAmbient3D.pd create mode 100755 help/help-iCircle2D.pd create mode 100755 help/help-iCircle3D.pd create mode 100755 help/help-iCylinder3D.pd create mode 100755 help/help-iLine2D.pd create mode 100755 help/help-iPlane3D.pd create mode 100755 help/help-iSeg2D.pd create mode 100755 help/help-iSphere3D.pd create mode 100755 help/help-lia.pd create mode 100755 help/help-lia2D.pd create mode 100755 help/help-lia3D.pd create mode 100755 help/help-masse.pd create mode 100755 help/help-masse2D.pd create mode 100755 help/help-masse3D.pd create mode 100755 help/help-pmpd.pd create mode 100755 help/help-tCircle2D.pd create mode 100755 help/help-tCircle3D.pd create mode 100755 help/help-tCube3D.pd create mode 100755 help/help-tCylinder3D.pd create mode 100755 help/help-tLia2D.pd create mode 100755 help/help-tLia3D.pd create mode 100755 help/help-tLine2D.pd create mode 100755 help/help-tPlane3D.pd create mode 100755 help/help-tSeg2D.pd create mode 100755 help/help-tSphere3D.pd create mode 100755 help/help-tSquare2D.pd create mode 100755 src/iAmbient2D.c create mode 100755 src/iAmbient3D.c create mode 100755 src/iCircle2D.c create mode 100755 src/iCircle3D.c create mode 100755 src/iCylinder3D.c create mode 100755 src/iLine2D.c create mode 100755 src/iPlane3D.c create mode 100755 src/iSeg2D.c create mode 100755 src/iSphere3D.c create mode 100755 src/lia.c create mode 100755 src/lia2D.c create mode 100755 src/lia3D.c create mode 100755 src/makefile create mode 100755 src/masse.c create mode 100755 src/masse2D.c create mode 100755 src/masse3D.c create mode 100755 src/pmpd.c create mode 100755 src/tCircle2D.c create mode 100755 src/tCircle3D.c create mode 100755 src/tCube3D.c create mode 100755 src/tCylinder3D.c create mode 100755 src/tLia2D.c create mode 100755 src/tLia3D.c create mode 100755 src/tLine2D.c create mode 100755 src/tPlane3D.c create mode 100755 src/tSeg2D.c create mode 100755 src/tSphere3D.c create mode 100755 src/tSquare2D.c diff --git a/exemples/00_pmpd.pd b/exemples/00_pmpd.pd new file mode 100755 index 0000000..5fd0af6 --- /dev/null +++ b/exemples/00_pmpd.pd @@ -0,0 +1,36 @@ +#N canvas 69 504 385 281 10; +#X obj 17 29 pmpd; +#X text 64 28 this object load the pmpd lib in memory.; +#X text 17 54 you are ready to try the exemples patchs. Please do not +run 2 exemples in the same time (somes use same send and receive name). +; +#N canvas 0 0 297 347 cpu 0; +#X obj 118 168 cputime; +#X obj 118 28 loadbang; +#X obj 118 112 metro 1000; +#X msg 118 56 1; +#X floatatom 118 84 0 0 0 0 - - -; +#X obj 118 140 t b b; +#X obj 118 228 * 0.1; +#X obj 118 197 int; +#X text 163 84 <-- on/off; +#X text 163 228 CPU load in percent; +#X obj 118 252 outlet; +#X connect 0 0 7 0; +#X connect 1 0 3 0; +#X connect 2 0 5 0; +#X connect 3 0 4 0; +#X connect 4 0 2 0; +#X connect 5 0 0 0; +#X connect 5 1 0 1; +#X connect 6 0 10 0; +#X connect 7 0 6 0; +#X restore 20 212 pd cpu; +#X floatatom 20 233 5 0 0 0 - - -; +#X text 17 169 for big patch : look at the cpu used \, you have to +reduce the simulation speed if your computer is to slow.; +#X text 17 102 For most exmples \, a recent version of gem is neaded. +; +#X text 17 126 exemples are the files begginig with xx_name. xx is +a number. others files are abstractions used by this examples.; +#X connect 3 0 4 0; diff --git a/exemples/01_basics.pd b/exemples/01_basics.pd new file mode 100755 index 0000000..8fd596e --- /dev/null +++ b/exemples/01_basics.pd @@ -0,0 +1,769 @@ +#N canvas 517 121 515 653 12; +#X text 66 243 physical modeling for pure data using a collection of +physical ojects.; +#X obj 8 250 pmpd; +#N canvas 0 0 623 384 read 0; +#X text 123 207 cyrille.henry@la-kitchen.fr; +#X text 412 312 ch20031213; +#X text 30 25 The aim of this collection of objects is to create physical +behavior with pure data. It's not audio synthesis. But it can be used +for the creation of parameters that can be used for driving an audio +or video synthesis.; +#X text 30 101 Most of the examples use GEM \, to allow visualization +of the "physical" geometry \, but you don't need it to use this collection. +; +#X text 30 161 any comments \, criticism \, suggestions \, help would +be highly apreciated :; +#X text 28 240 informations can be find :; +#X text 122 263 http://drpichon.free.fr/pmpd/; +#X restore 69 296 pd read me first; +#N canvas 0 0 663 567 basics 0; +#X text 34 30 Object in this collection can be mass \, link and interactor +\, in 1D \, 2D or 3D.; +#X text 47 69 Masses (mass \, mass2D \, mass3D) are ponctual. They've +got a weight \, and know their position. They can move when they receive +a force \, acording to physical rules.; +#X text 47 126 Link (link \, link2D \, link3D) are the basic interaction +beetween 2 masses. It is a visco-elastic link. The link object receive +the position of 2 masses \, compute the force beetween the 2 masses +and output a force for each mass.; +#X text 47 202 Interactors are a kind of link \, but influence a group +of masses at once. They can be used for global interaction. We will +look further into it later.; +#X text 32 272 This collection of objects can be interconnected for +the creation of "physical" structures. Such structures can then move +\, and distord themselves \, according to forces applied to them.; +#X text 29 350 The resulting movements are very natural \, due to the +physical equations used to define the objects.; +#X text 30 418 all objects can be created using pmpd.name \, instead +of name in order to avoid name conflict between libraries.; +#X text 29 466 ex :; +#X text 219 466 are the same objects.; +#X obj 183 466 lia; +#X obj 65 466 pmpd.link; +#X obj 145 466 link; +#X restore 69 324 pd basics; +#N canvas 434 60 645 737 global_description 0; +#X obj 34 169 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 +-1; +#X obj 34 268 print; +#X obj 34 217 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 +-1; +#X text 57 165 1; +#X text 58 216 2; +#X text 36 452 Here is the basic connection beetween 2 masses :; +#X obj 40 591 lia; +#X text 36 529 You can also create things like this :; +#X text 32 23 For patching simplification \, objects in this collection +only have "cold" inlets. The computation speed depends on an external +metronome. This metronome should bang alternatively all links in the +model and then masses of the model.; +#X text 33 103 mass and link have a name corresponding to their class +name. They will receive everything sent to this name.; +#X text 159 236 clicking on bang 1 or 2 is equivalent; +#X text 32 304 As you sould send a bang alternatively to links and +masses \, you sould give diferent names to the links group and masses +group.; +#X text 36 361 Masses output their position when you bang them. This +position depends on the forces applied to the mass.; +#X text 36 401 Links output a force according to the position of the +masses when you bang them. This force sould be applied to the same +mass.; +#X text 40 626 The masse1 will never receive forces \, so it will never +move. It is useful for creating a structure attached to a fixed point. +; +#X obj 40 558 mass masse1; +#X obj 76 591 mass masse2; +#X obj 110 489 masse; +#X obj 156 489 lia; +#X obj 195 489 masse; +#X obj 34 188 s foo1; +#X obj 34 237 masse2D foo1; +#X connect 0 0 20 0; +#X connect 2 0 21 0; +#X connect 6 1 16 0; +#X connect 15 0 6 0; +#X connect 16 0 6 1; +#X connect 17 0 18 0; +#X connect 18 0 17 0; +#X connect 18 1 19 0; +#X connect 19 0 18 1; +#X connect 21 0 1 0; +#X restore 69 353 pd global_description; +#N canvas 0 0 762 661 test 0; +#X msg 108 98 1; +#X msg 74 98 0; +#X msg 41 98 -1; +#X msg 141 98 2; +#X obj 15 16 loadbang; +#X floatatom 41 169 5 0 0 0 - - -; +#X msg 106 390 1; +#X msg 72 390 0; +#X msg 39 390 -1; +#X msg 139 390 2; +#X floatatom 39 461 5 0 0 0 - - -; +#X floatatom 37 325 5 0 0 0 - - -; +#X msg 106 508 1; +#X msg 72 508 0; +#X msg 39 508 -1; +#X msg 139 508 2; +#X floatatom 39 579 5 0 0 0 - - -; +#X text 247 61 A force to a masse make it to move at a constant speed. +You can accelerate it or decelerate it using message box. a nul force +as no effect.; +#X floatatom 172 267 5 0 0 0 - - -; +#X msg 104 264 1; +#X msg 70 264 0; +#X msg 37 264 -1; +#X msg 137 264 2; +#X text 247 405 Viscosity link : the force is proportinal to the deformation +speed of the link; +#X text 249 265 Rigidity link : the force is proportional to the elongation +of the link. (the right inlet is not used \, so the like take is defauld +value : 0.) Lengh of the link is null.; +#X text 238 529 Visco-elasic link : the effect is the somme of the +2 previus link.; +#X obj 15 69 s foo2; +#X obj 41 142 mass foo2 10 0 0; +#X obj 37 298 link foo2 0 0.1 0; +#X obj 39 434 link foo2 0 0 0.1; +#X obj 39 552 link foo2 0 0.1 0.1; +#X obj 15 43 metro 300; +#X connect 0 0 27 0; +#X connect 1 0 27 0; +#X connect 2 0 27 0; +#X connect 3 0 27 0; +#X connect 4 0 31 0; +#X connect 6 0 29 0; +#X connect 7 0 29 0; +#X connect 8 0 29 0; +#X connect 9 0 29 0; +#X connect 12 0 30 0; +#X connect 13 0 30 0; +#X connect 14 0 30 0; +#X connect 15 0 30 0; +#X connect 18 0 28 0; +#X connect 19 0 28 0; +#X connect 20 0 28 0; +#X connect 21 0 28 0; +#X connect 22 0 28 0; +#X connect 27 0 5 0; +#X connect 28 0 11 0; +#X connect 29 0 10 0; +#X connect 30 0 16 0; +#X connect 31 0 26 0; +#X restore 71 474 pd test; +#N canvas 394 231 879 595 simple_exemple 0; +#X obj 356 237 vsl 15 128 0 127 0 0 empty empty empty 0 -8 0 8 -262144 +-1 -1 0 0; +#X obj 74 98 hradio 15 1 0 5 empty empty empty 0 -6 0 8 -262144 -1 +-1 0; +#N canvas 477 25 445 299 preset 0; +#X msg 36 193 setK 0.05 \, setD 0 \, setD2 30; +#X msg 55 166 setK 1 \, setD 0 \, setD2 30; +#X msg 75 138 setK 1 \, setD 0 \, setD2 200; +#X obj 36 16 inlet; +#X obj 115 254 outlet; +#X msg 95 108 setK 300 \, setD 300 \, setD2 5; +#X obj 36 43 sel 2 1 0 3 4; +#X msg 115 78 setK 3000 \, setD 1000 \, setD2 5000; +#X connect 0 0 4 0; +#X connect 1 0 4 0; +#X connect 2 0 4 0; +#X connect 3 0 6 0; +#X connect 5 0 4 0; +#X connect 6 0 0 0; +#X connect 6 1 1 0; +#X connect 6 2 2 0; +#X connect 6 3 5 0; +#X connect 6 4 7 0; +#X connect 7 0 4 0; +#X restore 74 119 pd preset; +#X obj 336 237 vsl 15 128 0 127 0 0 empty empty empty 0 -8 0 8 -262144 +-1 -1 0 0; +#X text 80 415 the masse is link to the cursor with diferents kinf +of liaison (see the preset); +#X text 71 18 comportement of a single masse link to a fixed point +with a visco elastic link.; +#X text 173 95 <- diferents comportement of the link; +#N canvas 0 0 268 186 stuff 0; +#X obj 13 20 loadbang; +#X obj 48 97 s \$0-lia; +#X obj 13 72 t b b; +#X obj 13 123 s \$0-masse; +#X obj 13 45 metro 5; +#X obj 89 20 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 +-1; +#X msg 124 92 reset; +#X msg 89 66 resetL \, resetF; +#X obj 89 40 t b b; +#X connect 0 0 4 0; +#X connect 2 0 3 0; +#X connect 2 1 1 0; +#X connect 4 0 2 0; +#X connect 5 0 8 0; +#X connect 6 0 3 0; +#X connect 7 0 1 0; +#X connect 8 0 7 0; +#X connect 8 1 6 0; +#X restore 75 65 pd stuff; +#X text 98 346 click or move the slider ->; +#X text 396 346 look at the mouvement of the masse (the right slider) +; +#X text 80 481 surch system can be usefull for replacing the line object +of pd when more natural evolution is neaded...; +#X obj 169 167 lia \$0-lia 0 1 0 200; +#X obj 356 167 masse \$0-masse 10000 0; +#X connect 1 0 2 0; +#X connect 2 0 11 0; +#X connect 3 0 11 0; +#X connect 11 1 12 0; +#X connect 12 0 0 0; +#X connect 12 0 11 1; +#X restore 71 501 pd simple_exemple; +#X text 95 389 look at mass and link help file :; +#X obj 96 407 mass; +#X obj 96 437 link; +#N canvas 108 97 450 541 list 0; +#X obj 190 135 iAmbient2D; +#X obj 305 137 iAmbient3D; +#X obj 190 166 iCircle2D; +#X obj 306 257 iCylinder3D; +#X obj 305 227 iCircle3D; +#X obj 190 196 iLine2D; +#X obj 305 197 iPlane3D; +#X obj 190 225 iSeg2D; +#X obj 305 168 iSphere3D; +#X obj 192 75 lia2D; +#X obj 306 75 lia3D; +#X obj 79 76 lia; +#X obj 79 48 mass; +#X obj 192 48 mass2D; +#X obj 306 48 mass3D; +#X text 78 25 1D; +#X text 191 27 2D; +#X text 304 28 3D; +#X text 21 46 basic; +#X text 19 136 interactors; +#X text 24 328 test; +#X obj 192 327 tLia2D; +#X obj 307 327 tLia3D; +#X obj 192 389 tCircle2D; +#X obj 192 419 tLine2D; +#X obj 192 448 tSeg2D; +#X obj 305 480 tCylinder3D; +#X obj 306 420 tPlane3D; +#X obj 306 450 tCircle3D; +#X obj 306 390 tSphere3D; +#X obj 192 358 tSquare2D; +#X obj 307 359 tCube3D; +#X restore 71 531 pd list of pmpd's object; +#X obj 10 200 cnv 15 15 15 Ma1 M1 empty 2 10 192 14 -1 -66577 0; +#X obj 24 185 cnv 15 15 15 Ma3 M3 empty 2 10 192 14 -1 -66577 0; +#X obj 39 172 cnv 15 15 15 Ma5 M5 empty 2 10 192 14 -1 -66577 0; +#X obj 79 200 cnv 15 15 15 Ma9 M9 empty 2 10 192 14 -1 -66577 0; +#X obj 183 200 cnv 15 15 15 empty M29 empty 2 10 64 14 -1 -66577 0 +; +#X obj 120 200 cnv 15 15 15 Ma2 M2 empty 2 10 192 14 -1 -66577 0; +#X obj 119 160 cnv 15 15 15 Ma4 M4 empty 2 10 192 14 -1 -66577 0; +#X obj 100 170 cnv 15 15 15 Ma6 M6 empty 2 10 192 14 -1 -66577 0; +#X obj 80 160 cnv 15 15 15 Ma8 M8 empty 2 10 192 14 -1 -66577 0; +#X obj 120 180 cnv 15 15 15 Ma11 M11 empty 2 10 192 14 -1 -66577 0 +; +#X obj 79 180 cnv 15 15 15 Ma12 M12 empty 2 10 192 14 -1 -66577 0; +#X obj 184 172 cnv 15 15 15 Ma14 M14 empty 2 10 192 14 -1 -66577 0 +; +#X obj 198 187 cnv 15 15 15 Ma13 M13 empty 2 10 192 14 -1 -66577 0 +; +#X obj 169 185 cnv 15 15 15 Ma15 M15 empty 2 10 192 14 -1 -66577 0 +; +#X obj 239 180 cnv 15 15 15 empty M30 empty 2 10 64 14 -1 -66577 0 +; +#X obj 260 160 cnv 15 15 15 Ma20 M20 empty 2 10 192 14 -1 -66577 0 +; +#X obj 259 180 cnv 15 15 15 Ma17 M17 empty 2 10 192 14 -1 -66577 0 +; +#X obj 239 200 cnv 15 15 15 Ma19 M19 empty 2 10 192 14 -1 -66577 0 +; +#X obj 259 200 cnv 15 15 15 Ma18 M18 empty 2 10 192 14 -1 -66577 0 +; +#N canvas 0 0 470 320 pmpd 0; +#X obj 7 196 s masse; +#X obj 32 168 s link; +#X msg 143 132 reset; +#X obj 7 70 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0 1; +#X obj 7 88 metro 50; +#N canvas 154 59 1126 757 structure 0; +#N canvas 0 0 478 328 masse1 0; +#X obj 79 57 inlet; +#X obj 79 195 outlet; +#X msg 79 110 \; M1 pos \$1 \$2 \;; +#X obj 79 84 mass2D masse 1 10 50 0 1000 0 200; +#X connect 0 0 3 0; +#X connect 3 0 2 0; +#X connect 3 0 1 0; +#X restore 14 253 pd masse1; +#N canvas 0 0 470 320 masse3 0; +#X obj 79 57 inlet; +#X obj 79 195 outlet; +#X msg 79 110 \; M3 pos \$1 \$2 \;; +#X obj 79 84 mass2D masse 1 10 30 0 1000 0 200; +#X connect 0 0 3 0; +#X connect 3 0 2 0; +#X connect 3 0 1 0; +#X restore 23 143 pd masse3; +#N canvas 0 0 474 324 masse5 0; +#X obj 79 57 inlet; +#X obj 79 195 outlet; +#X msg 79 110 \; M5 pos \$1 \$2 \;; +#X obj 78 84 mass2D masse 1 10 10 0 1000 0 200; +#X connect 0 0 3 0; +#X connect 3 0 2 0; +#X connect 3 0 1 0; +#X restore 26 58 pd masse5; +#N canvas 0 0 472 322 masse7 0; +#X obj 79 57 inlet; +#X obj 79 195 outlet; +#X msg 79 110 \; M7 pos \$1 \$2 \;; +#X obj 79 84 mass2D masse 1 30 10 0 1000 0 200; +#X connect 0 0 3 0; +#X connect 3 0 2 0; +#X connect 3 0 1 0; +#X restore 324 62 pd masse7; +#X obj 132 -19 r G; +#X obj 17 215 link2D link 10 0.8; +#X obj 20 180 link2D link 10 0.8 0 0.1; +#X obj 163 213 link2D link 12 0.8; +#X obj 18 96 link2D link 10 0.8 0 0.1; +#N canvas 0 0 494 344 masse2 0; +#X obj 79 57 inlet; +#X obj 100 154 outlet; +#X msg 79 110 \; M2 pos \$1 \$2 \;; +#X obj 79 84 mass2D masse 1 120 50 0 1000 0 200; +#X connect 0 0 3 0; +#X connect 3 0 2 0; +#X connect 3 0 1 0; +#X restore 486 317 pd masse2; +#N canvas 0 0 486 336 masse4 0; +#X obj 79 57 inlet; +#X obj 79 195 outlet; +#X msg 79 110 \; M4 pos \$1 \$2 \;; +#X obj 79 84 mass2D masse 1 120 10 0 1000 0 200; +#X connect 0 0 3 0; +#X connect 3 0 2 0; +#X connect 3 0 1 0; +#X restore 503 33 pd masse4; +#N canvas 0 0 484 334 masse6 0; +#X obj 79 57 inlet; +#X obj 79 195 outlet; +#X msg 79 110 \; M6 pos \$1 \$2 \;; +#X obj 78 84 mass2D masse 1 100 20 0 1000 0 200; +#X connect 0 0 3 0; +#X connect 3 0 2 0; +#X connect 3 0 1 0; +#X restore 640 109 pd masse6; +#N canvas 0 0 482 332 masse8 0; +#X obj 79 57 inlet; +#X obj 79 195 outlet; +#X msg 80 110 \; M8 pos \$1 \$2 \;; +#X obj 79 84 mass2D masse 1 80 10 0 1000 0 200; +#X connect 0 0 3 0; +#X connect 3 0 2 0; +#X connect 3 0 1 0; +#X restore 767 36 pd masse8; +#N canvas 0 0 484 334 masse9 0; +#X obj 79 57 inlet; +#X obj 79 195 outlet; +#X msg 79 110 \; M9 pos \$1 \$2 \;; +#X obj 78 84 mass2D masse 1 80 50 0 1000 0 200; +#X connect 0 0 3 0; +#X connect 3 0 2 0; +#X connect 3 0 1 0; +#X restore 722 335 pd masse9; +#N canvas 0 0 484 334 masse11 0; +#X obj 79 57 inlet; +#X obj 79 195 outlet; +#X msg 79 110 \; M11 pos \$1 \$2 \;; +#X obj 78 84 mass2D masse 1 120 30 0 1000 0 200; +#X connect 0 0 3 0; +#X connect 3 0 2 0; +#X connect 3 0 1 0; +#X restore 490 216 pd masse11; +#N canvas 0 0 484 334 masse12 0; +#X obj 79 57 inlet; +#X obj 79 195 outlet; +#X msg 79 110 \; M12 pos \$1 \$2 \;; +#X obj 78 84 mass2D masse 1 80 30 0 1000 0 200; +#X connect 0 0 3 0; +#X connect 3 0 2 0; +#X connect 3 0 1 0; +#X restore 821 226 pd masse12; +#X obj 497 -9 r G; +#X msg 499 9 force2D 0 0.1; +#X obj 486 266 link2D link 12 0.3 0.1; +#X obj 691 281 link2D link 12 0.3 0.1; +#X obj 676 192 link2D link 12 0.3; +#X obj 665 154 link2D link 12 0.3; +#X obj 531 185 link2D link 12 0.3; +#X obj 509 157 link2D link 12 0.3; +#X obj 469 131 link2D link 12 0.3 0.1; +#X obj 737 109 link2D link 12 0.3 0.1; +#X obj 592 45 link2D link 12 0.3; +#X obj 570 315 link2D link 12 0.3; +#X msg 132 7 force2D 0 0.3; +#X obj 636 214 link2D link 12 0.3; +#N canvas 0 0 488 338 masse1 0; +#X obj 79 57 inlet; +#X obj 79 195 outlet; +#X msg 79 110 \; M16 pos \$1 \$2 \;; +#X obj 79 84 mass2D masse 1 170 50 0 1000 0 200; +#X connect 0 0 3 0; +#X connect 3 0 2 0; +#X connect 3 0 1 0; +#X restore 18 610 pd masse1; +#N canvas 0 0 476 326 masse3 0; +#X obj 79 57 inlet; +#X obj 79 195 outlet; +#X msg 79 110 \; M15 pos \$1 \$2 \;; +#X obj 79 84 mass2D masse 1 170 30 0 1000 0 200; +#X connect 0 0 3 0; +#X connect 3 0 2 0; +#X connect 3 0 1 0; +#X restore 27 500 pd masse3; +#N canvas 0 0 482 332 masse5 0; +#X obj 79 57 inlet; +#X obj 79 195 outlet; +#X msg 79 110 \; M14 pos \$1 \$2 \;; +#X obj 78 84 mass2D masse 1 170 10 0 1000 0 200; +#X connect 0 0 3 0; +#X connect 3 0 2 0; +#X connect 3 0 1 0; +#X restore 30 415 pd masse5; +#N canvas 0 0 480 330 masse7 0; +#X obj 79 57 inlet; +#X obj 79 195 outlet; +#X msg 79 109 \; M13 pos \$1 \$2 \;; +#X obj 79 84 mass2D masse 1 190 10 0 1000 0 200; +#X connect 0 0 3 0; +#X connect 3 0 2 0; +#X connect 3 0 1 0; +#X restore 363 409 pd masse7; +#X obj 46 316 r G; +#X obj 21 572 link2D link 10 0.8; +#X obj 24 537 link2D link 10 0.8 0 0.1; +#X obj 160 570 link2D link 12 0.8; +#X obj 29 458 link2D link 10 0.8 0 0.1; +#X msg 46 342 force2D 0 0.3; +#N canvas 0 0 500 350 masse1 0; +#X obj 79 57 inlet; +#X obj 79 195 outlet; +#X msg 98 115 \; M20 pos \$1 \$2 \;; +#X obj 79 83 mass2D masse 1 260 10 0 1000 0 200; +#X connect 0 0 3 0; +#X connect 3 0 2 0; +#X connect 3 0 1 0; +#X restore 533 628 pd masse1; +#N canvas 0 0 482 332 masse3 0; +#X obj 79 57 inlet; +#X obj 79 195 outlet; +#X msg 79 110 \; M17 pos \$1 \$2 \;; +#X obj 79 84 mass2D masse 1 260 30 0 1000 0 200; +#X connect 0 0 3 0; +#X connect 3 0 2 0; +#X connect 3 0 1 0; +#X restore 542 518 pd masse3; +#N canvas 0 0 484 334 masse5 0; +#X obj 79 57 inlet; +#X obj 79 195 outlet; +#X msg 79 110 \; M18 pos \$1 \$2 \;; +#X obj 78 84 mass2D masse 1 260 50 0 1000 0 200; +#X connect 0 0 3 0; +#X connect 3 0 2 0; +#X connect 3 0 1 0; +#X restore 545 433 pd masse5; +#N canvas 217 191 484 334 masse7 0; +#X obj 79 57 inlet; +#X obj 79 195 outlet; +#X msg 79 109 \; M19 pos \$1 \$2 \;; +#X obj 79 84 mass2D masse 1 240 50 0 1000 0 200; +#X connect 0 0 3 0; +#X connect 3 0 2 0; +#X connect 3 0 1 0; +#X restore 856 420 pd masse7; +#X obj 561 376 r G; +#X obj 536 590 link2D link 10 0.8; +#X obj 539 555 link2D link 10 0.8 0 0.1; +#X obj 675 588 link2D link 12 0.8; +#X obj 544 476 link2D link 10 0.8 0 0.1; +#X msg 561 402 force2D 0 0.3; +#X obj 669 75 link2D link 12 0.5 0.1; +#X obj 494 242 link2D link 12 0.5; +#X obj 665 237 link2D link 12 0.5; +#X obj 485 74 link2D link 12 0.5 0.1; +#N canvas 0 0 476 326 masse8 0; +#X obj 79 57 inlet; +#X obj 79 195 outlet; +#X obj 79 84 mass2D masse 1 30 30 0 1000 0 200; +#X msg 103 110 \; M28 pos \$1 \$2 \;; +#X connect 0 0 2 0; +#X connect 2 0 3 0; +#X connect 2 0 1 0; +#X restore 347 153 pd masse8; +#X obj 251 101 link2D link 10 0.8 0 0.1; +#X obj 139 47 link2D link 10 0.8; +#X obj 143 73 link2D link 14 0.6; +#X obj 146 126 link2D link 14 0.6; +#X obj 160 154 link2D link 10 0.8; +#X obj 148 410 link2D link 10 0.8; +#X obj 144 433 link2D link 14 0.6; +#X obj 141 504 link2D link 10 0.8; +#X obj 144 480 link2D link 14 0.6; +#N canvas 0 0 484 334 masse7 0; +#X obj 79 57 inlet; +#X obj 79 195 outlet; +#X msg 79 109 \; M29 pos \$1 \$2 \;; +#X obj 79 86 mass2D masse 1 190 30 0 1000 0 200; +#X connect 0 0 3 0; +#X connect 3 0 2 0; +#X connect 3 0 1 0; +#X restore 341 492 pd masse7; +#X obj 251 453 link2D link 10 0.8 0 0.1; +#N canvas 217 191 486 336 masse7 0; +#X obj 79 57 inlet; +#X obj 79 195 outlet; +#X obj 79 84 mass2D masse 1 240 30 0 1000 0 200; +#X msg 77 109 \; M30 pos \$1 \$2 \;; +#X connect 0 0 2 0; +#X connect 2 0 3 0; +#X connect 2 0 1 0; +#X restore 840 522 pd masse7; +#X obj 690 430 link2D link 10 0.8; +#X obj 678 519 link2D link 10 0.8; +#X obj 683 493 link2D link 14 0.6; +#X obj 689 451 link2D link 14 0.6; +#X obj 740 471 link2D link 10 0.8 0 0.1; +#X connect 0 0 5 1; +#X connect 0 0 6 1; +#X connect 0 0 7 0; +#X connect 1 0 6 0; +#X connect 1 0 8 1; +#X connect 1 0 57 0; +#X connect 1 0 59 0; +#X connect 2 0 5 0; +#X connect 2 0 8 0; +#X connect 2 0 56 0; +#X connect 2 0 58 0; +#X connect 3 0 7 1; +#X connect 3 0 55 0; +#X connect 3 0 56 1; +#X connect 3 0 57 1; +#X connect 4 0 28 0; +#X connect 5 0 2 0; +#X connect 5 1 0 0; +#X connect 6 0 1 0; +#X connect 6 1 0 0; +#X connect 7 0 0 0; +#X connect 7 1 3 0; +#X connect 8 0 2 0; +#X connect 8 1 1 0; +#X connect 9 0 18 1; +#X connect 9 0 23 0; +#X connect 9 0 27 0; +#X connect 9 0 51 0; +#X connect 10 0 20 0; +#X connect 10 0 21 0; +#X connect 10 0 24 1; +#X connect 10 0 26 0; +#X connect 10 0 53 0; +#X connect 11 0 50 0; +#X connect 11 0 51 1; +#X connect 11 0 52 0; +#X connect 11 0 53 1; +#X connect 12 0 22 1; +#X connect 12 0 23 1; +#X connect 12 0 25 1; +#X connect 12 0 26 1; +#X connect 12 0 50 1; +#X connect 13 0 19 0; +#X connect 13 0 21 1; +#X connect 13 0 27 1; +#X connect 13 0 52 1; +#X connect 14 0 18 0; +#X connect 14 0 22 0; +#X connect 14 0 24 0; +#X connect 14 0 29 0; +#X connect 15 0 19 1; +#X connect 15 0 20 1; +#X connect 15 0 25 0; +#X connect 15 0 29 1; +#X connect 16 0 17 0; +#X connect 17 0 14 0; +#X connect 17 0 10 0; +#X connect 17 0 12 0; +#X connect 17 0 9 0; +#X connect 17 0 13 0; +#X connect 17 0 11 0; +#X connect 17 0 15 0; +#X connect 18 0 14 0; +#X connect 18 1 9 0; +#X connect 19 0 13 0; +#X connect 19 1 15 0; +#X connect 20 0 10 0; +#X connect 20 1 15 0; +#X connect 21 0 10 0; +#X connect 21 1 13 0; +#X connect 22 0 14 0; +#X connect 22 1 12 0; +#X connect 23 0 9 0; +#X connect 23 1 12 0; +#X connect 24 0 14 0; +#X connect 24 1 10 0; +#X connect 25 0 15 0; +#X connect 25 1 12 0; +#X connect 26 0 10 0; +#X connect 26 1 12 0; +#X connect 27 0 9 0; +#X connect 27 1 13 0; +#X connect 28 0 2 0; +#X connect 28 0 1 0; +#X connect 28 0 0 0; +#X connect 28 0 3 0; +#X connect 28 0 54 0; +#X connect 29 0 14 0; +#X connect 29 1 15 0; +#X connect 30 0 35 1; +#X connect 30 0 36 1; +#X connect 30 0 37 0; +#X connect 31 0 36 0; +#X connect 31 0 38 1; +#X connect 31 0 61 0; +#X connect 31 0 62 0; +#X connect 32 0 35 0; +#X connect 32 0 38 0; +#X connect 32 0 60 0; +#X connect 32 0 63 0; +#X connect 33 0 37 1; +#X connect 33 0 60 1; +#X connect 33 0 61 1; +#X connect 33 0 65 0; +#X connect 34 0 39 0; +#X connect 35 0 32 0; +#X connect 35 1 30 0; +#X connect 36 0 31 0; +#X connect 36 1 30 0; +#X connect 37 0 30 0; +#X connect 37 1 33 0; +#X connect 38 0 32 0; +#X connect 38 1 31 0; +#X connect 39 0 32 0; +#X connect 39 0 31 0; +#X connect 39 0 30 0; +#X connect 39 0 33 0; +#X connect 39 0 64 0; +#X connect 40 0 45 1; +#X connect 40 0 46 1; +#X connect 40 0 47 0; +#X connect 41 0 46 0; +#X connect 41 0 48 1; +#X connect 41 0 68 0; +#X connect 41 0 70 0; +#X connect 42 0 45 0; +#X connect 42 0 48 0; +#X connect 42 0 67 0; +#X connect 42 0 69 0; +#X connect 43 0 47 1; +#X connect 43 0 67 1; +#X connect 43 0 70 1; +#X connect 43 0 71 0; +#X connect 44 0 49 0; +#X connect 45 0 42 0; +#X connect 45 1 40 0; +#X connect 46 0 41 0; +#X connect 46 1 40 0; +#X connect 47 0 40 0; +#X connect 47 1 43 0; +#X connect 48 0 42 0; +#X connect 48 1 41 0; +#X connect 49 0 42 0; +#X connect 49 0 41 0; +#X connect 49 0 40 0; +#X connect 49 0 43 0; +#X connect 49 0 66 0; +#X connect 50 0 11 0; +#X connect 50 1 12 0; +#X connect 51 0 9 0; +#X connect 51 1 11 0; +#X connect 52 0 11 0; +#X connect 52 1 13 0; +#X connect 53 0 10 0; +#X connect 53 1 11 0; +#X connect 54 0 55 1; +#X connect 54 0 58 1; +#X connect 54 0 59 1; +#X connect 55 0 3 0; +#X connect 55 1 54 0; +#X connect 56 0 2 0; +#X connect 56 1 3 0; +#X connect 57 0 1 0; +#X connect 57 1 3 0; +#X connect 58 0 2 0; +#X connect 58 1 54 0; +#X connect 59 0 1 0; +#X connect 59 1 54 0; +#X connect 60 0 32 0; +#X connect 60 1 33 0; +#X connect 61 0 31 0; +#X connect 61 1 33 0; +#X connect 62 0 31 0; +#X connect 62 1 64 0; +#X connect 63 0 32 0; +#X connect 63 1 64 0; +#X connect 64 0 62 1; +#X connect 64 0 63 1; +#X connect 64 0 65 1; +#X connect 65 0 33 0; +#X connect 65 1 64 0; +#X connect 66 0 68 1; +#X connect 66 0 69 1; +#X connect 66 0 71 1; +#X connect 67 0 42 0; +#X connect 67 1 43 0; +#X connect 68 0 41 0; +#X connect 68 1 66 0; +#X connect 69 0 42 0; +#X connect 69 1 66 0; +#X connect 70 0 41 0; +#X connect 70 1 43 0; +#X connect 71 0 43 0; +#X connect 71 1 66 0; +#X restore 121 193 pd structure; +#X msg 118 157 resetL \, resetF; +#X obj 7 112 t b b; +#X obj 42 135 s G; +#X obj 118 110 t b b; +#X obj 116 66 inlet; +#X obj 62 24 loadbang; +#X obj 30 66 delay 3000; +#X connect 2 0 0 0; +#X connect 3 0 4 0; +#X connect 4 0 7 0; +#X connect 6 0 1 0; +#X connect 7 0 0 0; +#X connect 7 1 1 0; +#X connect 7 1 8 0; +#X connect 9 0 6 0; +#X connect 9 1 2 0; +#X connect 10 0 9 0; +#X connect 11 0 9 0; +#X connect 11 0 12 0; +#X connect 12 0 4 0; +#X restore 9 597 pd pmpd; +#X obj 9 575 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 +-1; +#X obj 1 216 cnv 10 500 10 empty empty empty 20 12 0 14 -99865 -66577 +0; +#X obj 53 187 cnv 15 15 15 Ma7 M7 empty 2 10 192 14 -1 -66577 0; +#X obj 38 200 cnv 15 15 15 empty M28 empty 2 10 64 14 -1 -66577 0; +#X obj 155 200 cnv 15 15 15 Ma16 M16 empty 2 10 192 14 -1 -66577 0 +; +#X connect 31 0 30 0; diff --git a/exemples/02_string.pd b/exemples/02_string.pd new file mode 100755 index 0000000..4ec372a --- /dev/null +++ b/exemples/02_string.pd @@ -0,0 +1,163 @@ +#N canvas 45 79 876 551 12; +#X obj 379 253 vsl 15 128 0 127 0 0 empty empty empty 0 -8 0 8 -262144 +-1 -1 3587 1; +#X obj 397 253 vsl 15 128 0 127 0 0 empty empty empty 0 -8 0 8 -262144 +-1 -1 3075 1; +#X obj 415 253 vsl 15 128 0 127 0 0 empty empty empty 0 -8 0 8 -262144 +-1 -1 2562 1; +#X obj 433 253 vsl 15 128 0 127 0 0 empty empty empty 0 -8 0 8 -262144 +-1 -1 2050 1; +#X obj 451 253 vsl 15 128 0 127 0 0 empty empty empty 0 -8 0 8 -262144 +-1 -1 1537 1; +#X obj 469 253 vsl 15 128 0 127 0 0 empty empty empty 0 -8 0 8 -262144 +-1 -1 1025 1; +#X obj 361 253 vsl 15 128 0 127 0 0 empty empty empty 0 -8 0 8 -262144 +-1 -1 4100 1; +#X obj 9 35 metro 10; +#X obj 9 10 loadbang; +#X text 138 362 move the first slider ->; +#X text 570 368 <- or the last one; +#X text 268 11 This is the first exemple of physical modeling; +#X text 268 33 this is an elastic string; +#X obj 487 253 vsl 15 128 0 127 0 0 empty empty empty 0 -8 0 8 -262144 +-1 -1 512 1; +#X obj 505 253 vsl 15 128 0 127 0 0 empty empty empty 0 -8 0 8 -262144 +-1 -1 0 1; +#X obj 9 62 t b b; +#X obj 44 87 s \$0-link; +#X obj 9 113 s \$0-mass; +#X text 158 95 <- metronome send bangs to mass and link and gives the +general computation speed; +#X text 135 409 all the slider are "link" together with a link. slider +got a mass so they have inertial.; +#X obj 3 196 lia \$0-link 0 1 1; +#X obj 151 196 lia \$0-link 0 1 1; +#X obj 300 196 lia \$0-link 0 1 1; +#X obj 449 196 lia \$0-link 0 1 1; +#X obj 599 196 lia \$0-link 0 1 1; +#X obj 747 196 lia \$0-link 0 1 1; +#X obj 896 196 lia \$0-link 0 1 1; +#X obj 1045 196 lia \$0-link 0 1 1; +#X obj 146 172 masse \$0-mass 30; +#X obj 294 171 masse \$0-mass 30; +#X obj 444 172 masse \$0-mass 30; +#X obj 595 172 masse \$0-mass 30; +#X obj 743 171 masse \$0-mass 30; +#X obj 894 171 masse \$0-mass 30; +#X obj 1041 171 masse \$0-mass 30; +#X text 135 451 You can see the propagation of a wave \, and physical +properties of a kind of elastic string.; +#X text 160 132 masses and link has to be compute one after the other. +; +#X obj 749 384 mtof; +#X obj 749 433 line; +#X msg 749 409 \$1 15; +#X obj 749 458 osc~; +#X obj 805 384 mtof; +#X obj 805 433 line; +#X msg 805 409 \$1 15; +#X obj 805 458 osc~; +#X obj 860 384 mtof; +#X obj 860 433 line; +#X msg 860 409 \$1 15; +#X obj 860 458 osc~; +#X obj 916 383 mtof; +#X obj 916 432 line; +#X msg 916 408 \$1 15; +#X obj 916 457 osc~; +#X obj 972 382 mtof; +#X obj 972 431 line; +#X msg 972 407 \$1 15; +#X obj 972 456 osc~; +#X obj 1027 382 mtof; +#X obj 1027 431 line; +#X msg 1027 407 \$1 15; +#X obj 1027 456 osc~; +#X obj 1083 382 mtof; +#X obj 1083 431 line; +#X msg 1083 407 \$1 15; +#X obj 1083 456 osc~; +#X obj 880 534 dac~; +#X obj 880 510 *~ 0.1; +#X obj 933 510 *~ 0.1; +#X connect 0 0 37 0; +#X connect 1 0 41 0; +#X connect 2 0 45 0; +#X connect 3 0 49 0; +#X connect 4 0 53 0; +#X connect 5 0 57 0; +#X connect 6 0 20 0; +#X connect 7 0 15 0; +#X connect 8 0 7 0; +#X connect 13 0 61 0; +#X connect 14 0 27 1; +#X connect 15 0 17 0; +#X connect 15 1 16 0; +#X connect 20 1 28 0; +#X connect 21 0 28 0; +#X connect 21 1 29 0; +#X connect 22 0 29 0; +#X connect 22 1 30 0; +#X connect 23 0 30 0; +#X connect 23 1 31 0; +#X connect 24 0 31 0; +#X connect 24 1 32 0; +#X connect 25 0 32 0; +#X connect 25 1 33 0; +#X connect 26 0 33 0; +#X connect 26 1 34 0; +#X connect 27 0 34 0; +#X connect 28 0 0 0; +#X connect 28 0 20 1; +#X connect 28 0 21 0; +#X connect 29 0 1 0; +#X connect 29 0 21 1; +#X connect 29 0 22 0; +#X connect 30 0 2 0; +#X connect 30 0 22 1; +#X connect 30 0 23 0; +#X connect 31 0 3 0; +#X connect 31 0 23 1; +#X connect 31 0 24 0; +#X connect 32 0 4 0; +#X connect 32 0 24 1; +#X connect 32 0 25 0; +#X connect 33 0 5 0; +#X connect 33 0 25 1; +#X connect 33 0 26 0; +#X connect 34 0 13 0; +#X connect 34 0 26 1; +#X connect 34 0 27 0; +#X connect 37 0 39 0; +#X connect 38 0 40 0; +#X connect 39 0 38 0; +#X connect 40 0 66 0; +#X connect 41 0 43 0; +#X connect 42 0 44 0; +#X connect 43 0 42 0; +#X connect 44 0 66 0; +#X connect 45 0 47 0; +#X connect 46 0 48 0; +#X connect 47 0 46 0; +#X connect 48 0 66 0; +#X connect 48 0 67 0; +#X connect 49 0 51 0; +#X connect 50 0 52 0; +#X connect 51 0 50 0; +#X connect 52 0 66 0; +#X connect 52 0 67 0; +#X connect 53 0 55 0; +#X connect 54 0 56 0; +#X connect 55 0 54 0; +#X connect 56 0 66 0; +#X connect 56 0 67 0; +#X connect 57 0 59 0; +#X connect 58 0 60 0; +#X connect 59 0 58 0; +#X connect 60 0 67 0; +#X connect 61 0 63 0; +#X connect 62 0 64 0; +#X connect 63 0 62 0; +#X connect 64 0 67 0; +#X connect 66 0 65 0; +#X connect 67 0 65 1; diff --git a/exemples/03_chaos2D.pd b/exemples/03_chaos2D.pd new file mode 100755 index 0000000..9753384 --- /dev/null +++ b/exemples/03_chaos2D.pd @@ -0,0 +1,180 @@ +#N canvas 1 4 843 542 12; +#X obj 16 98 t b b; +#X obj 16 50 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0 1 +; +#X obj 73 233 unpack s f f; +#X obj 177 293 vsl 15 128 0 127 0 0 empty empty empty 0 -8 0 8 -262144 +-1 -1 8300 1; +#X obj 121 343 hsl 128 15 0 127 0 0 empty empty empty -2 -6 0 8 -262144 +-1 -1 10100 1; +#X obj 16 71 metro 50; +#X msg 360 291 setK \$1; +#X msg 434 265 setD \$1; +#X msg 507 237 setM \$1; +#X floatatom 360 216 5 0 20 0 - - -; +#X floatatom 434 214 5 0 30 0 - - -; +#X floatatom 507 214 5 3 100 0 - - -; +#N canvas 796 335 379 269 gem 0; +#X obj 197 20 gemhead; +#X msg 47 96 0 \, destroy; +#X obj 13 124 gemwin; +#X obj 197 152 circle 0.5; +#X obj 182 47 inlet; +#X obj 182 72 unpack s f f; +#X obj 197 124 translateXYZ; +#X obj 13 19 inlet; +#X obj 13 45 sel 1; +#X obj 227 99 / 30; +#X obj 273 99 / 30; +#X msg 13 71 reset \, create \, 1; +#X connect 0 0 6 0; +#X connect 1 0 2 0; +#X connect 4 0 5 0; +#X connect 5 1 9 0; +#X connect 5 2 10 0; +#X connect 6 0 3 0; +#X connect 7 0 8 0; +#X connect 8 0 11 0; +#X connect 8 1 1 0; +#X connect 9 0 6 1; +#X connect 10 0 6 2; +#X connect 11 0 2 0; +#X restore 19 233 pd gem; +#X obj 19 186 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0 1 +; +#N canvas 513 286 485 188 structure 0; +#N canvas 272 241 298 174 lia_left 0; +#X obj 194 68 inlet; +#X obj 194 121 outlet; +#X obj 31 95 lia2D \$0-lia 70 1 0 0; +#X obj 31 38 masse2D border_mass 1 -64 0; +#X connect 0 0 2 1; +#X connect 2 1 1 0; +#X connect 3 0 2 0; +#X restore 22 57 pd lia_left; +#N canvas 345 616 329 171 lia_down 0; +#X obj 181 53 inlet; +#X obj 181 106 outlet; +#X obj 18 80 lia2D \$0-lia 70 1 0 0; +#X obj 18 23 masse2D border_mass 1 0 -64; +#X connect 0 0 2 1; +#X connect 2 1 1 0; +#X connect 3 0 2 0; +#X restore 117 90 pd lia_down; +#N canvas 506 199 290 152 lia_up 0; +#X obj 187 52 inlet; +#X obj 187 105 outlet; +#X obj 24 79 lia2D \$0-lia 70 1 0 0; +#X obj 24 22 masse2D border_mass 1 0 64; +#X connect 0 0 2 1; +#X connect 2 1 1 0; +#X connect 3 0 2 0; +#X restore 121 29 pd lia_up; +#X obj 222 93 outlet; +#N canvas 703 434 355 273 lia_right 0; +#X obj 191 65 inlet; +#X obj 191 118 outlet; +#X obj 28 92 lia2D \$0-lia 70 1 0 0; +#X obj 28 35 masse2D border_mass 1 64 0; +#X connect 0 0 2 1; +#X connect 2 1 1 0; +#X connect 3 0 2 0; +#X restore 320 58 pd lia_right; +#X obj 120 57 masse2D \$0-masse 8 37 19; +#X connect 0 0 5 0; +#X connect 1 0 5 0; +#X connect 2 0 5 0; +#X connect 4 0 5 0; +#X connect 5 0 3 0; +#X connect 5 0 2 0; +#X connect 5 0 1 0; +#X connect 5 0 0 0; +#X connect 5 0 4 0; +#X restore 62 206 pd structure; +#X obj 360 265 / 10; +#X obj 360 239 + 1; +#X obj 64 100 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 +-1; +#X obj 30 124 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 +-1; +#X msg 434 190 0; +#X obj 164 6 loadbang; +#X obj 118 263 + 64; +#X obj 164 263 + 64; +#X obj 434 238 / 10; +#X text 42 47 <- click here; +#X msg 360 190 3; +#X msg 164 61 resetF; +#X obj 235 11 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 +-1; +#X obj 164 32 t b b; +#X msg 177 83 force2D -100 140; +#X obj 51 123 s \$0-lia; +#X obj 16 147 s \$0-masse; +#X msg 199 108 reset; +#X obj 507 265 s \$0-masse; +#X obj 360 323 s \$0-lia; +#X text 269 8 <- reset the simulation; +#X text 52 182 <- visualization (need gem); +#X text 359 135 you can change physical properties of the system. take +care of numerical instability (especially with fast movement); +#X text 276 388 The mass is connected to the 4 borders of the screen +with 4 link (without damping). The movement of the masses (should) +follow a chaotic equation.; +#X obj 40 445 osc~; +#X obj 40 420 mtof; +#X obj 40 395 line; +#X obj 97 394 *; +#X obj 39 471 *~; +#X obj 97 445 line~; +#X obj 39 497 dac~; +#X obj 97 369 / 256; +#X msg 97 419 \$1 100; +#X msg 40 369 \$1 100; +#X msg 507 189 20; +#X connect 0 0 31 0; +#X connect 0 1 30 0; +#X connect 1 0 5 0; +#X connect 2 1 21 0; +#X connect 2 2 22 0; +#X connect 5 0 0 0; +#X connect 6 0 34 0; +#X connect 7 0 34 0; +#X connect 8 0 33 0; +#X connect 9 0 16 0; +#X connect 10 0 23 0; +#X connect 11 0 8 0; +#X connect 13 0 12 0; +#X connect 14 0 2 0; +#X connect 14 0 12 1; +#X connect 15 0 6 0; +#X connect 16 0 15 0; +#X connect 17 0 30 0; +#X connect 18 0 31 0; +#X connect 19 0 10 0; +#X connect 20 0 28 0; +#X connect 21 0 4 0; +#X connect 21 0 48 0; +#X connect 22 0 3 0; +#X connect 22 0 46 0; +#X connect 23 0 7 0; +#X connect 25 0 9 0; +#X connect 26 0 30 0; +#X connect 27 0 28 0; +#X connect 28 0 26 0; +#X connect 28 0 29 0; +#X connect 28 1 32 0; +#X connect 29 0 31 0; +#X connect 32 0 31 0; +#X connect 39 0 43 0; +#X connect 40 0 39 0; +#X connect 41 0 40 0; +#X connect 42 0 47 0; +#X connect 43 0 45 0; +#X connect 43 0 45 1; +#X connect 44 0 43 1; +#X connect 46 0 42 1; +#X connect 46 0 42 0; +#X connect 47 0 44 0; +#X connect 48 0 41 0; +#X connect 49 0 11 0; diff --git a/exemples/04_3D_exemple.pd b/exemples/04_3D_exemple.pd new file mode 100755 index 0000000..670cee7 --- /dev/null +++ b/exemples/04_3D_exemple.pd @@ -0,0 +1,71 @@ +#N canvas 21 21 607 384 12; +#X obj 82 222 t b b; +#X obj 82 198 metro 10; +#X obj 82 164 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0 1 +; +#N canvas 451 422 544 277 gem 0; +#X obj 267 18 gemhead; +#X msg 47 96 0 \, destroy; +#X obj 252 45 inlet; +#X obj 267 146 translateXYZ; +#X obj 13 19 inlet; +#X obj 13 45 sel 1; +#X obj 252 70 unpack s f f f; +#X obj 13 124 gemwin 50; +#X msg 13 71 reset \, lighting 1 \, create \, 1; +#X obj 421 50 gemhead; +#X obj 419 74 world_light; +#X msg 342 193 20; +#X obj 342 170 loadbang; +#X obj 228 110 pack f f f; +#X obj 267 216 sphere 0.1; +#X obj 377 109 gemhead; +#X obj 376 220 sphere 1; +#X obj 377 135 alpha; +#X obj 376 196 color 1 1 1 0.5; +#X connect 0 0 3 0; +#X connect 1 0 7 0; +#X connect 2 0 6 0; +#X connect 3 0 14 0; +#X connect 4 0 5 0; +#X connect 5 0 8 0; +#X connect 5 1 1 0; +#X connect 6 1 3 1; +#X connect 6 1 13 0; +#X connect 6 2 3 2; +#X connect 6 2 13 1; +#X connect 6 3 3 3; +#X connect 6 3 13 2; +#X connect 8 0 7 0; +#X connect 9 0 10 0; +#X connect 11 0 14 2; +#X connect 11 0 16 2; +#X connect 12 0 11 0; +#X connect 15 0 17 0; +#X connect 17 0 18 0; +#X connect 18 0 16 0; +#X restore 39 323 pd gem; +#X obj 39 299 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0 1 +; +#X msg 207 181 force3D 1 0 0; +#X msg 215 204 force3D 0 1 0; +#X msg 223 227 force3D 0 0 1; +#X text 112 160 <- start here; +#X text 62 296 <- gem simulation; +#X text 347 205 <- send X \, Y \, Z forces; +#X obj 82 264 masse3D 0 10; +#X obj 189 264 lia3D 0 1 1 1 0.03; +#X text 73 12 simulation of a 3D model. The small sphere is link in +the center of the big one with a 3D link. This link has the same diametter +than the big sphere.; +#X connect 0 0 11 0; +#X connect 0 1 12 0; +#X connect 1 0 0 0; +#X connect 2 0 1 0; +#X connect 4 0 3 0; +#X connect 5 0 11 0; +#X connect 6 0 11 0; +#X connect 7 0 11 0; +#X connect 11 0 12 0; +#X connect 11 0 3 1; +#X connect 12 0 11 0; diff --git a/exemples/05_corde2D.pd b/exemples/05_corde2D.pd new file mode 100755 index 0000000..d5f4136 --- /dev/null +++ b/exemples/05_corde2D.pd @@ -0,0 +1,452 @@ +#N canvas 80 32 844 550 12; +#N canvas 306 123 261 242 masse 0; +#X obj 24 23 inlet; +#X obj 24 83 outlet; +#X obj 83 138 gemhead; +#X obj 84 85 unpack s f f; +#X obj 83 169 translateXYZ 0 0 0; +#X obj 83 197 sphere 0.3; +#X obj 129 111 / 100; +#X obj 175 112 / 100; +#X obj 24 55 masse2D masse 10; +#X connect 0 0 8 0; +#X connect 2 0 4 0; +#X connect 3 1 6 0; +#X connect 3 2 7 0; +#X connect 4 0 5 0; +#X connect 6 0 4 1; +#X connect 7 0 4 2; +#X connect 8 0 1 0; +#X connect 8 0 3 0; +#X restore 143 446 pd masse; +#X obj 62 214 s lia; +#X obj 27 239 s masse; +#X obj 397 308 s masse; +#X msg 184 199 setK \$1; +#X msg 399 149 setM \$1; +#X obj 184 231 s lia; +#X obj 399 177 s masse; +#X obj 184 173 / 10; +#X obj 184 147 + 1; +#X obj 508 151 gemwin; +#X msg 515 122 0 \, destroy; +#X floatatom 184 125 5 10 100 0 - - -; +#X floatatom 245 127 5 0 3 0 - - -; +#X floatatom 399 126 5 20 500 0 - - -; +#X msg 411 278 force2D 2000 0; +#X obj 27 163 metro 10; +#X obj 27 187 t b b; +#X msg 396 335 force2D 0 5000; +#X msg 184 101 50; +#X msg 245 101 1; +#X msg 399 102 200; +#X obj 868 143 world_light; +#X obj 868 84 gemhead; +#X obj 868 114 rotateXYZ; +#X msg 397 250 force2D 0 1000; +#X msg 245 150 setD \$1; +#X obj 27 9 loadbang; +#X msg 108 99 reset; +#X obj 108 126 s masse; +#X obj 27 40 t b b b b; +#X msg 49 100 resetF; +#X obj 49 127 s lia; +#X floatatom 321 127 5 0 3 0 - - -; +#X msg 321 101 1; +#X msg 321 150 setD2 \$1; +#N canvas 306 123 570 357 masse 0; +#X obj 24 99 outlet; +#X obj 145 98 gemhead; +#X obj 137 134 unpack s f f; +#X obj 143 190 translateXYZ 0 0 0; +#X obj 144 224 sphere 0.3; +#X obj 185 160 / 100; +#X obj 228 161 / 100; +#X obj 25 70 masse2D masse2 10 -300 0; +#X connect 1 0 3 0; +#X connect 2 1 5 0; +#X connect 2 2 6 0; +#X connect 3 0 4 0; +#X connect 5 0 3 1; +#X connect 6 0 3 2; +#X connect 7 0 0 0; +#X connect 7 0 2 0; +#X restore 11 383 pd masse; +#X msg 396 366 force2D 5000 0; +#X text 461 7 2D string; +#X text 542 250 <- send Y force to all masses; +#X text 544 279 <- send X force to all masses; +#X text 540 335 <- send Y force to 2 masses; +#X text 542 364 <- send X force to 1 masses; +#N canvas 306 123 261 242 masse 0; +#X obj 24 23 inlet; +#X obj 24 83 outlet; +#X obj 83 138 gemhead; +#X obj 84 85 unpack s f f; +#X obj 83 169 translateXYZ 0 0 0; +#X obj 83 197 sphere 0.3; +#X obj 129 111 / 100; +#X obj 175 112 / 100; +#X obj 24 55 masse2D masse 10; +#X connect 0 0 8 0; +#X connect 2 0 4 0; +#X connect 3 1 6 0; +#X connect 3 2 7 0; +#X connect 4 0 5 0; +#X connect 6 0 4 1; +#X connect 7 0 4 2; +#X connect 8 0 1 0; +#X connect 8 0 3 0; +#X restore 281 449 pd masse; +#X obj 11 409 lia2D lia 30 1 1; +#X obj 158 408 lia2D lia 30 1 1; +#N canvas 306 123 261 242 masse 0; +#X obj 24 23 inlet; +#X obj 24 83 outlet; +#X obj 83 138 gemhead; +#X obj 84 85 unpack s f f; +#X obj 83 169 translateXYZ 0 0 0; +#X obj 83 197 sphere 0.3; +#X obj 129 111 / 100; +#X obj 175 112 / 100; +#X obj 24 55 masse2D masse 10; +#X connect 0 0 8 0; +#X connect 2 0 4 0; +#X connect 3 1 6 0; +#X connect 3 2 7 0; +#X connect 4 0 5 0; +#X connect 6 0 4 1; +#X connect 7 0 4 2; +#X connect 8 0 1 0; +#X connect 8 0 3 0; +#X restore 432 446 pd masse; +#N canvas 306 123 261 242 masse 0; +#X obj 24 23 inlet; +#X obj 24 83 outlet; +#X obj 83 138 gemhead; +#X obj 84 85 unpack s f f; +#X obj 83 169 translateXYZ 0 0 0; +#X obj 83 197 sphere 0.3; +#X obj 129 111 / 100; +#X obj 175 112 / 100; +#X obj 24 55 masse2D masse 10; +#X connect 0 0 8 0; +#X connect 2 0 4 0; +#X connect 3 1 6 0; +#X connect 3 2 7 0; +#X connect 4 0 5 0; +#X connect 6 0 4 1; +#X connect 7 0 4 2; +#X connect 8 0 1 0; +#X connect 8 0 3 0; +#X restore 570 449 pd masse; +#X obj 300 409 lia2D lia 30 1 1; +#X obj 447 408 lia2D lia 30 1 1; +#N canvas 306 123 261 242 masse 0; +#X obj 24 23 inlet; +#X obj 24 83 outlet; +#X obj 83 138 gemhead; +#X obj 84 85 unpack s f f; +#X obj 83 169 translateXYZ 0 0 0; +#X obj 83 197 sphere 0.3; +#X obj 129 111 / 100; +#X obj 175 112 / 100; +#X obj 24 55 masse2D masse 10; +#X connect 0 0 8 0; +#X connect 2 0 4 0; +#X connect 3 1 6 0; +#X connect 3 2 7 0; +#X connect 4 0 5 0; +#X connect 6 0 4 1; +#X connect 7 0 4 2; +#X connect 8 0 1 0; +#X connect 8 0 3 0; +#X restore 719 449 pd masse; +#X obj 596 408 lia2D lia 30 1 1; +#N canvas 306 123 261 242 masse 0; +#X obj 24 23 inlet; +#X obj 24 83 outlet; +#X obj 83 138 gemhead; +#X obj 84 85 unpack s f f; +#X obj 83 169 translateXYZ 0 0 0; +#X obj 83 197 sphere 0.3; +#X obj 129 111 / 100; +#X obj 175 112 / 100; +#X obj 24 55 masse2D masse 10; +#X connect 0 0 8 0; +#X connect 2 0 4 0; +#X connect 3 1 6 0; +#X connect 3 2 7 0; +#X connect 4 0 5 0; +#X connect 6 0 4 1; +#X connect 7 0 4 2; +#X connect 8 0 1 0; +#X connect 8 0 3 0; +#X restore 870 446 pd masse; +#N canvas 306 123 261 242 masse 0; +#X obj 24 23 inlet; +#X obj 24 83 outlet; +#X obj 83 138 gemhead; +#X obj 84 85 unpack s f f; +#X obj 83 169 translateXYZ 0 0 0; +#X obj 83 197 sphere 0.3; +#X obj 129 111 / 100; +#X obj 175 112 / 100; +#X obj 24 55 masse2D masse 10; +#X connect 0 0 8 0; +#X connect 2 0 4 0; +#X connect 3 1 6 0; +#X connect 3 2 7 0; +#X connect 4 0 5 0; +#X connect 6 0 4 1; +#X connect 7 0 4 2; +#X connect 8 0 1 0; +#X connect 8 0 3 0; +#X restore 1008 449 pd masse; +#X obj 738 409 lia2D lia 30 1 1; +#X obj 885 408 lia2D lia 30 1 1; +#N canvas 306 123 261 242 masse 0; +#X obj 24 23 inlet; +#X obj 24 83 outlet; +#X obj 83 138 gemhead; +#X obj 84 85 unpack s f f; +#X obj 83 169 translateXYZ 0 0 0; +#X obj 83 197 sphere 0.3; +#X obj 129 111 / 100; +#X obj 175 112 / 100; +#X obj 24 55 masse2D masse 10; +#X connect 0 0 8 0; +#X connect 2 0 4 0; +#X connect 3 1 6 0; +#X connect 3 2 7 0; +#X connect 4 0 5 0; +#X connect 6 0 4 1; +#X connect 7 0 4 2; +#X connect 8 0 1 0; +#X connect 8 0 3 0; +#X restore 156 589 pd masse; +#N canvas 306 123 261 242 masse 0; +#X obj 24 23 inlet; +#X obj 24 83 outlet; +#X obj 83 138 gemhead; +#X obj 84 85 unpack s f f; +#X obj 83 169 translateXYZ 0 0 0; +#X obj 83 197 sphere 0.3; +#X obj 129 111 / 100; +#X obj 175 112 / 100; +#X obj 24 55 masse2D masse 10; +#X connect 0 0 8 0; +#X connect 2 0 4 0; +#X connect 3 1 6 0; +#X connect 3 2 7 0; +#X connect 4 0 5 0; +#X connect 6 0 4 1; +#X connect 7 0 4 2; +#X connect 8 0 1 0; +#X connect 8 0 3 0; +#X restore 294 592 pd masse; +#X obj 24 552 lia2D lia 30 1 1; +#X obj 171 551 lia2D lia 30 1 1; +#N canvas 306 123 261 242 masse 0; +#X obj 24 23 inlet; +#X obj 24 83 outlet; +#X obj 83 138 gemhead; +#X obj 84 85 unpack s f f; +#X obj 83 169 translateXYZ 0 0 0; +#X obj 83 197 sphere 0.3; +#X obj 129 111 / 100; +#X obj 175 112 / 100; +#X obj 24 55 masse2D masse 10; +#X connect 0 0 8 0; +#X connect 2 0 4 0; +#X connect 3 1 6 0; +#X connect 3 2 7 0; +#X connect 4 0 5 0; +#X connect 6 0 4 1; +#X connect 7 0 4 2; +#X connect 8 0 1 0; +#X connect 8 0 3 0; +#X restore 445 589 pd masse; +#N canvas 306 123 261 242 masse 0; +#X obj 24 23 inlet; +#X obj 24 83 outlet; +#X obj 83 138 gemhead; +#X obj 84 85 unpack s f f; +#X obj 83 169 translateXYZ 0 0 0; +#X obj 83 197 sphere 0.3; +#X obj 129 111 / 100; +#X obj 175 112 / 100; +#X obj 24 55 masse2D masse 10; +#X connect 0 0 8 0; +#X connect 2 0 4 0; +#X connect 3 1 6 0; +#X connect 3 2 7 0; +#X connect 4 0 5 0; +#X connect 6 0 4 1; +#X connect 7 0 4 2; +#X connect 8 0 1 0; +#X connect 8 0 3 0; +#X restore 583 592 pd masse; +#X obj 313 552 lia2D lia 30 1 1; +#X obj 460 551 lia2D lia 30 1 1; +#N canvas 306 123 261 242 masse 0; +#X obj 24 23 inlet; +#X obj 24 83 outlet; +#X obj 83 138 gemhead; +#X obj 84 85 unpack s f f; +#X obj 83 169 translateXYZ 0 0 0; +#X obj 83 197 sphere 0.3; +#X obj 129 111 / 100; +#X obj 175 112 / 100; +#X obj 24 55 masse2D masse 10; +#X connect 0 0 8 0; +#X connect 2 0 4 0; +#X connect 3 1 6 0; +#X connect 3 2 7 0; +#X connect 4 0 5 0; +#X connect 6 0 4 1; +#X connect 7 0 4 2; +#X connect 8 0 1 0; +#X connect 8 0 3 0; +#X restore 732 592 pd masse; +#X obj 609 551 lia2D lia 30 1 1; +#N canvas 306 123 261 242 masse 0; +#X obj 24 23 inlet; +#X obj 24 83 outlet; +#X obj 83 138 gemhead; +#X obj 84 85 unpack s f f; +#X obj 83 169 translateXYZ 0 0 0; +#X obj 83 197 sphere 0.3; +#X obj 129 111 / 100; +#X obj 175 112 / 100; +#X obj 24 55 masse2D masse 10; +#X connect 0 0 8 0; +#X connect 2 0 4 0; +#X connect 3 1 6 0; +#X connect 3 2 7 0; +#X connect 4 0 5 0; +#X connect 6 0 4 1; +#X connect 7 0 4 2; +#X connect 8 0 1 0; +#X connect 8 0 3 0; +#X restore 883 589 pd masse; +#N canvas 306 123 265 246 masse 0; +#X obj 24 83 outlet; +#X obj 83 138 gemhead; +#X obj 84 85 unpack s f f; +#X obj 83 169 translateXYZ 0 0 0; +#X obj 83 197 sphere 0.3; +#X obj 129 111 / 100; +#X obj 175 112 / 100; +#X obj 24 55 masse2D masse2 10 300; +#X connect 1 0 3 0; +#X connect 2 1 5 0; +#X connect 2 2 6 0; +#X connect 3 0 4 0; +#X connect 5 0 3 1; +#X connect 6 0 3 2; +#X connect 7 0 0 0; +#X connect 7 0 2 0; +#X restore 1021 524 pd masse; +#X obj 751 552 lia2D lia 30 1 1; +#X obj 898 551 lia2D lia 30 1 1; +#X msg 508 95 reset \, lighting 1 \, create \, 1; +#X obj 112 15 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 +-1; +#X text 325 23 masses are link together like in an elastic string. +; +#X text 30 652 The extrem right and extreme left masses are fixed : +the does not receive a force. they are neaded for the model to be link +to a special point in the screen.; +#X text 742 94 <- 1; +#X connect 0 0 44 1; +#X connect 0 0 45 0; +#X connect 4 0 6 0; +#X connect 5 0 7 0; +#X connect 8 0 4 0; +#X connect 9 0 8 0; +#X connect 11 0 10 0; +#X connect 12 0 9 0; +#X connect 13 0 26 0; +#X connect 14 0 5 0; +#X connect 15 0 3 0; +#X connect 16 0 17 0; +#X connect 17 0 2 0; +#X connect 17 1 1 0; +#X connect 18 0 0 0; +#X connect 18 0 43 0; +#X connect 19 0 12 0; +#X connect 20 0 13 0; +#X connect 21 0 14 0; +#X connect 23 0 24 0; +#X connect 24 0 22 0; +#X connect 25 0 3 0; +#X connect 26 0 6 0; +#X connect 27 0 30 0; +#X connect 28 0 29 0; +#X connect 30 0 16 0; +#X connect 30 1 31 0; +#X connect 30 2 28 0; +#X connect 30 3 19 0; +#X connect 30 3 20 0; +#X connect 30 3 21 0; +#X connect 30 3 34 0; +#X connect 31 0 32 0; +#X connect 33 0 35 0; +#X connect 34 0 33 0; +#X connect 35 0 6 0; +#X connect 36 0 44 0; +#X connect 37 0 46 0; +#X connect 43 0 45 1; +#X connect 43 0 48 0; +#X connect 44 1 0 0; +#X connect 45 0 0 0; +#X connect 45 1 43 0; +#X connect 46 0 48 1; +#X connect 46 0 49 0; +#X connect 47 0 49 1; +#X connect 47 0 51 0; +#X connect 48 0 43 0; +#X connect 48 1 46 0; +#X connect 49 0 46 0; +#X connect 49 1 47 0; +#X connect 50 0 51 1; +#X connect 50 0 54 0; +#X connect 51 0 47 0; +#X connect 51 1 50 0; +#X connect 52 0 54 1; +#X connect 52 0 55 0; +#X connect 53 0 55 1; +#X connect 53 0 58 0; +#X connect 54 0 50 0; +#X connect 54 1 52 0; +#X connect 55 0 52 0; +#X connect 55 1 53 0; +#X connect 56 0 58 1; +#X connect 56 0 59 0; +#X connect 57 0 59 1; +#X connect 57 0 62 0; +#X connect 58 0 53 0; +#X connect 58 1 56 0; +#X connect 59 0 56 0; +#X connect 59 1 57 0; +#X connect 60 0 62 1; +#X connect 60 0 63 0; +#X connect 61 0 63 1; +#X connect 61 0 65 0; +#X connect 62 0 57 0; +#X connect 62 1 60 0; +#X connect 63 0 60 0; +#X connect 63 1 61 0; +#X connect 64 0 65 1; +#X connect 64 0 68 0; +#X connect 65 0 61 0; +#X connect 65 1 64 0; +#X connect 66 0 68 1; +#X connect 66 0 69 0; +#X connect 67 0 69 1; +#X connect 68 0 64 0; +#X connect 68 1 66 0; +#X connect 69 0 66 0; +#X connect 70 0 10 0; +#X connect 71 0 30 0; diff --git a/exemples/06_pyramide3D.pd b/exemples/06_pyramide3D.pd new file mode 100755 index 0000000..e3c7d9d --- /dev/null +++ b/exemples/06_pyramide3D.pd @@ -0,0 +1,249 @@ +#N canvas 516 258 695 581 12; +#N canvas 381 0 941 947 forme 0; +#X obj 22 676 translateXYZ; +#X obj 16 646 unpack s f f f; +#X obj 22 705 sphere 0.3; +#X obj 143 676 translateXYZ; +#X obj 137 646 unpack s f f f; +#X obj 143 705 sphere 0.3; +#X obj 391 677 translateXYZ; +#X obj 385 647 unpack s f f f; +#X obj 391 706 sphere 0.3; +#X obj 264 678 translateXYZ; +#X obj 258 648 unpack s f f f; +#X obj 264 707 sphere 0.3; +#X obj 303 15 inlet; +#X obj 11 762 gemhead; +#X obj 22 605 gemhead; +#X obj 142 606 gemhead; +#X obj 264 604 gemhead; +#X obj 390 604 gemhead; +#X msg 31 811 \$1 \$2 \$3; +#X msg 62 788 \$1 \$2 \$3; +#X obj 235 766 gemhead; +#X msg 269 816 \$1 \$2 \$3; +#X msg 286 788 \$1 \$2 \$3; +#X obj 360 764 gemhead; +#X msg 394 814 \$1 \$2 \$3; +#X msg 411 790 \$1 \$2 \$3; +#X obj 475 764 gemhead; +#X msg 509 813 \$1 \$2 \$3; +#X msg 526 789 \$1 \$2 \$3; +#X obj 581 763 gemhead; +#X msg 615 813 \$1 \$2 \$3; +#X msg 632 789 \$1 \$2 \$3; +#X obj 11 842 curve 2; +#X obj 236 846 curve 2; +#X obj 360 844 curve 2; +#X obj 581 843 curve 2; +#X obj 120 761 gemhead; +#X msg 140 810 \$1 \$2 \$3; +#X msg 171 787 \$1 \$2 \$3; +#X obj 120 841 curve 2; +#X obj 718 762 gemhead; +#X msg 738 811 \$1 \$2 \$3; +#X obj 718 842 curve 2; +#X obj 475 843 curve 2; +#X obj 27 283 masse3D masse 10 -1 0 0; +#X obj 107 123 lia3D lia 1 3 1 0.1; +#X obj 322 63 masse3D masse 10 1 0 0; +#X obj 422 138 lia3D lia 1 3 1 0.1; +#X obj 289 246 lia3D lia 1 3 1 0.1; +#X obj 276 306 lia3D lia 1 3 1 0.1; +#X obj 91 403 lia3D lia 1 3 1 0.1; +#X obj 287 486 masse3D masse 10 0 1 0; +#X obj 458 375 lia3D lia 1 3 1 0.1; +#X obj 570 273 masse3D masse 10 0 0; +#X obj 758 271 lia3D lia2 1 0.6 0 0; +#X connect 0 0 2 0; +#X connect 1 1 0 1; +#X connect 1 2 0 2; +#X connect 1 3 0 3; +#X connect 3 0 5 0; +#X connect 4 1 3 1; +#X connect 4 2 3 2; +#X connect 4 3 3 3; +#X connect 6 0 8 0; +#X connect 7 1 6 1; +#X connect 7 2 6 2; +#X connect 7 3 6 3; +#X connect 9 0 11 0; +#X connect 10 1 9 1; +#X connect 10 2 9 2; +#X connect 10 3 9 3; +#X connect 12 0 46 0; +#X connect 13 0 32 0; +#X connect 14 0 0 0; +#X connect 15 0 3 0; +#X connect 16 0 9 0; +#X connect 17 0 6 0; +#X connect 18 0 32 1; +#X connect 19 0 32 2; +#X connect 20 0 33 0; +#X connect 21 0 33 1; +#X connect 22 0 33 2; +#X connect 23 0 34 0; +#X connect 24 0 34 1; +#X connect 25 0 34 2; +#X connect 26 0 43 0; +#X connect 27 0 43 1; +#X connect 28 0 43 2; +#X connect 29 0 35 0; +#X connect 30 0 35 1; +#X connect 31 0 35 2; +#X connect 36 0 39 0; +#X connect 37 0 39 1; +#X connect 38 0 39 2; +#X connect 40 0 42 0; +#X connect 41 0 42 1; +#X connect 44 0 50 0; +#X connect 44 0 45 0; +#X connect 44 0 48 0; +#X connect 44 0 1 0; +#X connect 44 0 18 0; +#X connect 44 0 37 0; +#X connect 44 0 21 0; +#X connect 45 0 44 0; +#X connect 45 1 46 0; +#X connect 46 0 45 1; +#X connect 46 0 47 0; +#X connect 46 0 49 1; +#X connect 46 0 4 0; +#X connect 46 0 22 0; +#X connect 46 0 28 0; +#X connect 46 0 30 0; +#X connect 47 0 46 0; +#X connect 47 1 53 0; +#X connect 48 0 44 0; +#X connect 48 1 53 0; +#X connect 49 0 51 0; +#X connect 49 1 46 0; +#X connect 50 0 44 0; +#X connect 50 1 51 0; +#X connect 51 0 50 1; +#X connect 51 0 52 0; +#X connect 51 0 49 0; +#X connect 51 0 10 0; +#X connect 51 0 19 0; +#X connect 51 0 24 0; +#X connect 51 0 27 0; +#X connect 52 0 51 0; +#X connect 52 1 53 0; +#X connect 53 0 52 1; +#X connect 53 0 48 1; +#X connect 53 0 7 0; +#X connect 53 0 38 0; +#X connect 53 0 25 0; +#X connect 53 0 31 0; +#X connect 53 0 41 0; +#X connect 53 0 47 1; +#X connect 53 0 54 0; +#X connect 54 0 53 0; +#X restore 39 472 pd forme; +#X obj 10 26 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0 1 +; +#X obj 78 105 s lia; +#X obj 10 104 s masse; +#X obj 36 343 s masse; +#X obj 10 47 metro 50; +#X msg 193 73 destroy; +#X msg 166 48 reset \, create \, 1 \, lighting 1; +#X obj 166 106 gemwin; +#X obj 458 107 world_light; +#X obj 78 129 s lia2; +#X msg 36 242 force3D 0 0 1; +#X msg 44 266 force3D 0 1 0; +#X msg 53 290 force3D 1 0 0; +#X obj 458 82 gemhead 1; +#X msg 39 385 force3D 0 0 10; +#X msg 45 409 force3D 0 10 0; +#X msg 54 433 force3D 10 0 0; +#X msg 61 314 force3D 2 1 1; +#X obj 10 73 t b b; +#N canvas 518 337 782 499 change 0; +#X msg 102 189 setK \$1; +#X msg 170 189 setD \$1; +#X msg 33 73 setM \$1; +#X floatatom 102 162 5 0 0 0 - - -; +#X floatatom 170 162 5 0 0 0 - - -; +#X floatatom 33 50 5 5 100 0 - - -; +#X obj 33 216 s lia; +#X obj 33 99 s masse; +#X floatatom 33 163 5 0 0 0 - - -; +#X msg 33 189 setL \$1; +#X obj 36 380 s lia2; +#X floatatom 36 297 5 0 0 0 - - -; +#X msg 36 319 setL \$1; +#X msg 33 140 1; +#X msg 171 140 1; +#X msg 102 139 3; +#X msg 33 26 10; +#X msg 102 319 setK \$1; +#X msg 170 319 setD \$1; +#X floatatom 102 293 5 0 0 0 - - -; +#X floatatom 170 293 5 0 0 0 - - -; +#X text 106 27 <- default value; +#X text 109 100 weight of the masse; +#X text 317 137 <- default values; +#X text 315 189 pyramide liaison properties; +#X text 257 270 <- default values; +#X text 258 318 liaison beetween the pyramide and a fixed point (0 +\, 0 \, 0); +#X msg 36 273 1; +#X msg 102 270 0.6; +#X msg 171 271 0; +#X floatatom 238 162 5 0 0 0 - - -; +#X msg 238 189 setD2 \$1; +#X msg 239 140 0.1; +#X text 36 429 take care to extrem values; +#X connect 0 0 6 0; +#X connect 1 0 6 0; +#X connect 2 0 7 0; +#X connect 3 0 0 0; +#X connect 4 0 1 0; +#X connect 5 0 2 0; +#X connect 8 0 9 0; +#X connect 9 0 6 0; +#X connect 11 0 12 0; +#X connect 12 0 10 0; +#X connect 13 0 8 0; +#X connect 14 0 4 0; +#X connect 15 0 3 0; +#X connect 16 0 5 0; +#X connect 17 0 10 0; +#X connect 18 0 10 0; +#X connect 19 0 17 0; +#X connect 20 0 18 0; +#X connect 27 0 11 0; +#X connect 28 0 19 0; +#X connect 29 0 20 0; +#X connect 30 0 31 0; +#X connect 31 0 6 0; +#X connect 32 0 30 0; +#X restore 459 44 pd change physical properties; +#X text 215 262 <- send forces to the 4 masses; +#X text 225 378 <- send forces to a masses; +#X text 227 474 <- structure and gem stuff; +#X text 76 168 4 masses are all link together \, with the same kind +of link.; +#X text 73 193 A link is add to a mass \, for the structure to stay +in the screen.; +#X text 89 552 If the line does not display corectly \, you sould upgrade +GEM; +#X text 44 22 <- 1; +#X text 399 48 <- 2; +#X connect 1 0 5 0; +#X connect 5 0 19 0; +#X connect 6 0 8 0; +#X connect 7 0 8 0; +#X connect 11 0 4 0; +#X connect 12 0 4 0; +#X connect 13 0 4 0; +#X connect 14 0 9 0; +#X connect 15 0 0 0; +#X connect 16 0 0 0; +#X connect 17 0 0 0; +#X connect 18 0 4 0; +#X connect 19 0 3 0; +#X connect 19 1 2 0; +#X connect 19 1 10 0; diff --git a/exemples/07_corde3D.pd b/exemples/07_corde3D.pd new file mode 100755 index 0000000..8f48fa4 --- /dev/null +++ b/exemples/07_corde3D.pd @@ -0,0 +1,601 @@ +#N canvas 102 60 816 578 12; +#N canvas 663 236 288 320 masse 0; +#X obj 25 38 inlet; +#X obj 25 99 outlet; +#X obj 76 228 translateXYZ 0 0 0; +#X obj 76 256 sphere 0.3; +#X obj 121 127 / 100; +#X obj 168 127 / 100; +#X obj 76 162 r gemhead; +#X obj 76 191 separator; +#X obj 86 100 unpack s f f f; +#X obj 215 128 / 100; +#X obj 25 70 masse3D masse 10; +#X connect 0 0 10 0; +#X connect 2 0 3 0; +#X connect 4 0 2 1; +#X connect 5 0 2 2; +#X connect 6 0 7 0; +#X connect 7 0 2 0; +#X connect 8 1 4 0; +#X connect 8 2 5 0; +#X connect 8 3 9 0; +#X connect 9 0 2 3; +#X connect 10 0 1 0; +#X connect 10 0 8 0; +#X restore 99 622 pd masse; +#N canvas 470 145 282 116 lia 0; +#X obj 177 23 inlet; +#X obj 177 78 outlet; +#X obj 86 23 inlet; +#X obj 86 78 outlet; +#X obj 86 51 lia3D lia 50 10 0; +#X connect 0 0 4 1; +#X connect 2 0 4 0; +#X connect 4 0 3 0; +#X connect 4 1 1 0; +#X restore 47 593 pd lia; +#X obj 23 83 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 1 1 +; +#X obj 94 188 s lia; +#X obj 23 187 s masse; +#X obj 540 417 s masse; +#X msg 392 179 setK \$1; +#X msg 613 131 setM \$1; +#X obj 392 206 s lia; +#X obj 613 159 s masse; +#X obj 392 153 / 10; +#X obj 392 127 + 1; +#X obj 43 314 gemwin; +#X msg 62 281 0 \, destroy; +#X floatatom 392 105 5 0 0 0 - - -; +#X floatatom 529 109 5 0 0 0 - - -; +#X floatatom 613 108 5 0 0 0 - - -; +#X obj 392 47 loadbang; +#X obj 23 104 metro 10; +#X obj 23 128 t b b; +#X msg 392 81 50; +#X msg 613 84 200; +#X obj 251 115 world_light; +#X obj 251 87 gemhead; +#X text 194 158 <- gravity simulation; +#X obj 535 304 s gemhead; +#X obj 535 223 gemhead; +#X obj 535 279 rotateXYZ; +#X floatatom 557 253 5 0 0 0 - - -; +#X floatatom 607 254 5 0 0 0 - - -; +#X floatatom 657 254 5 0 0 0 - - -; +#X msg 158 479 force3D 1000 0 0; +#X msg 179 503 force3D 0 1000 0; +#X msg 196 525 force3D 0 0 1000; +#X msg 556 391 force3D 1000 0 0; +#X msg 550 368 force3D 0 0 500; +#X msg 540 346 force3D 0 500 0; +#N canvas 846 252 304 336 masse 0; +#X obj 25 99 outlet; +#X obj 75 228 translateXYZ 0 0 0; +#X obj 75 256 sphere 0.3; +#X obj 121 127 / 100; +#X obj 167 127 / 100; +#X obj 75 162 r gemhead; +#X obj 75 191 separator; +#X obj 86 100 unpack s f f f; +#X obj 214 128 / 100; +#X obj 24 71 masse3D 0 10 0 300 5; +#X connect 1 0 2 0; +#X connect 3 0 1 1; +#X connect 4 0 1 2; +#X connect 5 0 6 0; +#X connect 6 0 1 0; +#X connect 7 1 3 0; +#X connect 7 2 4 0; +#X connect 7 3 8 0; +#X connect 8 0 1 3; +#X connect 9 0 0 0; +#X connect 9 0 7 0; +#X restore 47 562 pd masse; +#X msg 529 132 setD2 \$1; +#X msg 58 156 force3D 0 -8 0; +#X msg 506 517 force3D 0 0 2000; +#X msg 490 495 force3D 0 2000 0; +#X msg 468 471 force3D 2000 0 0; +#X floatatom 445 110 5 0 0 0 - - -; +#X msg 445 133 setD \$1; +#X msg 445 84 1; +#X msg 529 83 1; +#N canvas 663 236 288 320 masse 0; +#X obj 25 38 inlet; +#X obj 25 99 outlet; +#X obj 76 228 translateXYZ 0 0 0; +#X obj 76 256 sphere 0.3; +#X obj 121 127 / 100; +#X obj 168 127 / 100; +#X obj 76 162 r gemhead; +#X obj 76 191 separator; +#X obj 86 100 unpack s f f f; +#X obj 215 128 / 100; +#X obj 25 70 masse3D masse 10; +#X connect 0 0 10 0; +#X connect 2 0 3 0; +#X connect 4 0 2 1; +#X connect 5 0 2 2; +#X connect 6 0 7 0; +#X connect 7 0 2 0; +#X connect 8 1 4 0; +#X connect 8 2 5 0; +#X connect 8 3 9 0; +#X connect 9 0 2 3; +#X connect 10 0 1 0; +#X connect 10 0 8 0; +#X restore 174 623 pd masse; +#N canvas 470 145 282 116 lia 0; +#X obj 177 23 inlet; +#X obj 177 78 outlet; +#X obj 86 23 inlet; +#X obj 86 78 outlet; +#X obj 86 51 lia3D lia 50 10 0; +#X connect 0 0 4 1; +#X connect 2 0 4 0; +#X connect 4 0 3 0; +#X connect 4 1 1 0; +#X restore 128 593 pd lia; +#N canvas 663 236 288 320 masse 0; +#X obj 25 38 inlet; +#X obj 25 99 outlet; +#X obj 76 228 translateXYZ 0 0 0; +#X obj 76 256 sphere 0.3; +#X obj 121 127 / 100; +#X obj 168 127 / 100; +#X obj 76 162 r gemhead; +#X obj 76 191 separator; +#X obj 86 100 unpack s f f f; +#X obj 215 128 / 100; +#X obj 25 70 masse3D masse 10; +#X connect 0 0 10 0; +#X connect 2 0 3 0; +#X connect 4 0 2 1; +#X connect 5 0 2 2; +#X connect 6 0 7 0; +#X connect 7 0 2 0; +#X connect 8 1 4 0; +#X connect 8 2 5 0; +#X connect 8 3 9 0; +#X connect 9 0 2 3; +#X connect 10 0 1 0; +#X connect 10 0 8 0; +#X restore 245 623 pd masse; +#N canvas 470 145 282 116 lia 0; +#X obj 177 23 inlet; +#X obj 177 78 outlet; +#X obj 86 23 inlet; +#X obj 86 78 outlet; +#X obj 86 51 lia3D lia 50 10 0; +#X connect 0 0 4 1; +#X connect 2 0 4 0; +#X connect 4 0 3 0; +#X connect 4 1 1 0; +#X restore 193 594 pd lia; +#N canvas 663 236 288 320 masse 0; +#X obj 25 38 inlet; +#X obj 25 99 outlet; +#X obj 76 228 translateXYZ 0 0 0; +#X obj 76 256 sphere 0.3; +#X obj 121 127 / 100; +#X obj 168 127 / 100; +#X obj 76 162 r gemhead; +#X obj 76 191 separator; +#X obj 86 100 unpack s f f f; +#X obj 215 128 / 100; +#X obj 25 70 masse3D masse 10; +#X connect 0 0 10 0; +#X connect 2 0 3 0; +#X connect 4 0 2 1; +#X connect 5 0 2 2; +#X connect 6 0 7 0; +#X connect 7 0 2 0; +#X connect 8 1 4 0; +#X connect 8 2 5 0; +#X connect 8 3 9 0; +#X connect 9 0 2 3; +#X connect 10 0 1 0; +#X connect 10 0 8 0; +#X restore 320 624 pd masse; +#N canvas 470 145 282 116 lia 0; +#X obj 177 23 inlet; +#X obj 177 78 outlet; +#X obj 86 23 inlet; +#X obj 86 78 outlet; +#X obj 86 51 lia3D lia 50 10 0; +#X connect 0 0 4 1; +#X connect 2 0 4 0; +#X connect 4 0 3 0; +#X connect 4 1 1 0; +#X restore 274 594 pd lia; +#N canvas 663 236 288 320 masse 0; +#X obj 25 38 inlet; +#X obj 25 99 outlet; +#X obj 76 228 translateXYZ 0 0 0; +#X obj 76 256 sphere 0.3; +#X obj 121 127 / 100; +#X obj 168 127 / 100; +#X obj 76 162 r gemhead; +#X obj 76 191 separator; +#X obj 86 100 unpack s f f f; +#X obj 215 128 / 100; +#X obj 25 70 masse3D masse 10; +#X connect 0 0 10 0; +#X connect 2 0 3 0; +#X connect 4 0 2 1; +#X connect 5 0 2 2; +#X connect 6 0 7 0; +#X connect 7 0 2 0; +#X connect 8 1 4 0; +#X connect 8 2 5 0; +#X connect 8 3 9 0; +#X connect 9 0 2 3; +#X connect 10 0 1 0; +#X connect 10 0 8 0; +#X restore 393 626 pd masse; +#N canvas 470 145 282 116 lia 0; +#X obj 177 23 inlet; +#X obj 177 78 outlet; +#X obj 86 23 inlet; +#X obj 86 78 outlet; +#X obj 86 51 lia3D lia 50 10 0; +#X connect 0 0 4 1; +#X connect 2 0 4 0; +#X connect 4 0 3 0; +#X connect 4 1 1 0; +#X restore 341 597 pd lia; +#N canvas 663 236 288 320 masse 0; +#X obj 25 38 inlet; +#X obj 25 99 outlet; +#X obj 76 228 translateXYZ 0 0 0; +#X obj 76 256 sphere 0.3; +#X obj 121 127 / 100; +#X obj 168 127 / 100; +#X obj 76 162 r gemhead; +#X obj 76 191 separator; +#X obj 86 100 unpack s f f f; +#X obj 215 128 / 100; +#X obj 25 70 masse3D masse 10; +#X connect 0 0 10 0; +#X connect 2 0 3 0; +#X connect 4 0 2 1; +#X connect 5 0 2 2; +#X connect 6 0 7 0; +#X connect 7 0 2 0; +#X connect 8 1 4 0; +#X connect 8 2 5 0; +#X connect 8 3 9 0; +#X connect 9 0 2 3; +#X connect 10 0 1 0; +#X connect 10 0 8 0; +#X restore 468 627 pd masse; +#N canvas 470 145 284 118 lia 0; +#X obj 177 23 inlet; +#X obj 177 78 outlet; +#X obj 86 23 inlet; +#X obj 86 78 outlet; +#X obj 86 51 lia3D lia 50 10 0; +#X connect 0 0 4 1; +#X connect 2 0 4 0; +#X connect 4 0 3 0; +#X connect 4 1 1 0; +#X restore 422 597 pd lia; +#N canvas 663 236 288 320 masse 0; +#X obj 25 38 inlet; +#X obj 25 99 outlet; +#X obj 76 228 translateXYZ 0 0 0; +#X obj 76 256 sphere 0.3; +#X obj 121 127 / 100; +#X obj 168 127 / 100; +#X obj 76 162 r gemhead; +#X obj 76 191 separator; +#X obj 86 100 unpack s f f f; +#X obj 215 128 / 100; +#X obj 25 70 masse3D masse 10; +#X connect 0 0 10 0; +#X connect 2 0 3 0; +#X connect 4 0 2 1; +#X connect 5 0 2 2; +#X connect 6 0 7 0; +#X connect 7 0 2 0; +#X connect 8 1 4 0; +#X connect 8 2 5 0; +#X connect 8 3 9 0; +#X connect 9 0 2 3; +#X connect 10 0 1 0; +#X connect 10 0 8 0; +#X restore 539 627 pd masse; +#N canvas 470 145 282 116 lia 0; +#X obj 177 23 inlet; +#X obj 177 78 outlet; +#X obj 86 23 inlet; +#X obj 86 78 outlet; +#X obj 86 51 lia3D lia 50 10 0; +#X connect 0 0 4 1; +#X connect 2 0 4 0; +#X connect 4 0 3 0; +#X connect 4 1 1 0; +#X restore 487 598 pd lia; +#N canvas 470 145 282 116 lia 0; +#X obj 177 23 inlet; +#X obj 177 78 outlet; +#X obj 86 23 inlet; +#X obj 86 78 outlet; +#X obj 86 51 lia3D lia 50 10 0; +#X connect 0 0 4 1; +#X connect 2 0 4 0; +#X connect 4 0 3 0; +#X connect 4 1 1 0; +#X restore 568 598 pd lia; +#N canvas 663 236 288 320 masse 0; +#X obj 25 38 inlet; +#X obj 25 99 outlet; +#X obj 76 228 translateXYZ 0 0 0; +#X obj 76 256 sphere 0.3; +#X obj 121 127 / 100; +#X obj 168 127 / 100; +#X obj 76 162 r gemhead; +#X obj 76 191 separator; +#X obj 86 100 unpack s f f f; +#X obj 215 128 / 100; +#X obj 25 70 masse3D masse 10; +#X connect 0 0 10 0; +#X connect 2 0 3 0; +#X connect 4 0 2 1; +#X connect 5 0 2 2; +#X connect 6 0 7 0; +#X connect 7 0 2 0; +#X connect 8 1 4 0; +#X connect 8 2 5 0; +#X connect 8 3 9 0; +#X connect 9 0 2 3; +#X connect 10 0 1 0; +#X connect 10 0 8 0; +#X restore 613 627 pd masse; +#N canvas 663 236 288 320 masse 0; +#X obj 25 38 inlet; +#X obj 25 99 outlet; +#X obj 76 228 translateXYZ 0 0 0; +#X obj 76 256 sphere 0.3; +#X obj 121 127 / 100; +#X obj 168 127 / 100; +#X obj 76 162 r gemhead; +#X obj 76 191 separator; +#X obj 86 100 unpack s f f f; +#X obj 215 128 / 100; +#X obj 25 70 masse3D masse 10; +#X connect 0 0 10 0; +#X connect 2 0 3 0; +#X connect 4 0 2 1; +#X connect 5 0 2 2; +#X connect 6 0 7 0; +#X connect 7 0 2 0; +#X connect 8 1 4 0; +#X connect 8 2 5 0; +#X connect 8 3 9 0; +#X connect 9 0 2 3; +#X connect 10 0 1 0; +#X connect 10 0 8 0; +#X restore 686 629 pd masse; +#N canvas 470 145 282 116 lia 0; +#X obj 177 23 inlet; +#X obj 177 78 outlet; +#X obj 86 23 inlet; +#X obj 86 78 outlet; +#X obj 86 51 lia3D lia 50 10 0; +#X connect 0 0 4 1; +#X connect 2 0 4 0; +#X connect 4 0 3 0; +#X connect 4 1 1 0; +#X restore 634 600 pd lia; +#N canvas 663 236 288 320 masse 0; +#X obj 25 38 inlet; +#X obj 25 99 outlet; +#X obj 76 228 translateXYZ 0 0 0; +#X obj 76 256 sphere 0.3; +#X obj 121 127 / 100; +#X obj 168 127 / 100; +#X obj 76 162 r gemhead; +#X obj 76 191 separator; +#X obj 86 100 unpack s f f f; +#X obj 215 128 / 100; +#X obj 25 70 masse3D masse 10; +#X connect 0 0 10 0; +#X connect 2 0 3 0; +#X connect 4 0 2 1; +#X connect 5 0 2 2; +#X connect 6 0 7 0; +#X connect 7 0 2 0; +#X connect 8 1 4 0; +#X connect 8 2 5 0; +#X connect 8 3 9 0; +#X connect 9 0 2 3; +#X connect 10 0 1 0; +#X connect 10 0 8 0; +#X restore 761 630 pd masse; +#N canvas 470 145 282 116 lia 0; +#X obj 177 23 inlet; +#X obj 177 78 outlet; +#X obj 86 23 inlet; +#X obj 86 78 outlet; +#X obj 86 51 lia3D lia 50 10 0; +#X connect 0 0 4 1; +#X connect 2 0 4 0; +#X connect 4 0 3 0; +#X connect 4 1 1 0; +#X restore 715 600 pd lia; +#N canvas 663 236 288 320 masse 0; +#X obj 25 38 inlet; +#X obj 25 99 outlet; +#X obj 76 228 translateXYZ 0 0 0; +#X obj 76 256 sphere 0.3; +#X obj 121 127 / 100; +#X obj 168 127 / 100; +#X obj 76 162 r gemhead; +#X obj 76 191 separator; +#X obj 86 100 unpack s f f f; +#X obj 215 128 / 100; +#X obj 25 70 masse3D masse 10; +#X connect 0 0 10 0; +#X connect 2 0 3 0; +#X connect 4 0 2 1; +#X connect 5 0 2 2; +#X connect 6 0 7 0; +#X connect 7 0 2 0; +#X connect 8 1 4 0; +#X connect 8 2 5 0; +#X connect 8 3 9 0; +#X connect 9 0 2 3; +#X connect 10 0 1 0; +#X connect 10 0 8 0; +#X restore 832 630 pd masse; +#N canvas 470 145 282 116 lia 0; +#X obj 177 23 inlet; +#X obj 177 78 outlet; +#X obj 86 23 inlet; +#X obj 86 78 outlet; +#X obj 86 51 lia3D lia 50 10 0; +#X connect 0 0 4 1; +#X connect 2 0 4 0; +#X connect 4 0 3 0; +#X connect 4 1 1 0; +#X restore 780 601 pd lia; +#N canvas 663 236 288 320 masse 0; +#X obj 25 38 inlet; +#X obj 25 99 outlet; +#X obj 76 228 translateXYZ 0 0 0; +#X obj 76 256 sphere 0.3; +#X obj 121 127 / 100; +#X obj 168 127 / 100; +#X obj 76 162 r gemhead; +#X obj 76 191 separator; +#X obj 86 100 unpack s f f f; +#X obj 215 128 / 100; +#X obj 25 70 masse3D masse 10; +#X connect 0 0 10 0; +#X connect 2 0 3 0; +#X connect 4 0 2 1; +#X connect 5 0 2 2; +#X connect 6 0 7 0; +#X connect 7 0 2 0; +#X connect 8 1 4 0; +#X connect 8 2 5 0; +#X connect 8 3 9 0; +#X connect 9 0 2 3; +#X connect 10 0 1 0; +#X connect 10 0 8 0; +#X restore 907 631 pd masse; +#N canvas 470 145 282 116 lia 0; +#X obj 177 23 inlet; +#X obj 177 78 outlet; +#X obj 86 23 inlet; +#X obj 86 78 outlet; +#X obj 86 51 lia3D lia 50 10 0; +#X connect 0 0 4 1; +#X connect 2 0 4 0; +#X connect 4 0 3 0; +#X connect 4 1 1 0; +#X restore 861 601 pd lia; +#X msg 43 253 reset \, lighting 1 \, create \, 1; +#X text 433 12 string 3D; +#X text 25 366 At the initialisation \, all the masse are in the same +point (0 \, 0). The masse move to find the minimal energy of the system. +; +#X text 720 366 <- send forces to all the masses; +#X text 654 491 <- send forces to specific masses; +#X text 21 421 The gravity simulation is a force vertical force aply +to all masses.; +#X text 710 252 <- rotate the model in 3D; +#X text 55 78 <- 1; +#X text 289 255 <- 2; +#X connect 0 0 1 1; +#X connect 0 0 48 0; +#X connect 1 1 0 0; +#X connect 2 0 18 0; +#X connect 6 0 8 0; +#X connect 7 0 9 0; +#X connect 10 0 6 0; +#X connect 11 0 10 0; +#X connect 13 0 12 0; +#X connect 14 0 11 0; +#X connect 15 0 38 0; +#X connect 16 0 7 0; +#X connect 17 0 21 0; +#X connect 17 0 46 0; +#X connect 17 0 20 0; +#X connect 17 0 45 0; +#X connect 18 0 19 0; +#X connect 19 0 4 0; +#X connect 19 1 3 0; +#X connect 19 1 39 0; +#X connect 20 0 14 0; +#X connect 21 0 16 0; +#X connect 23 0 22 0; +#X connect 26 0 27 0; +#X connect 27 0 25 0; +#X connect 28 0 27 1; +#X connect 29 0 27 2; +#X connect 30 0 27 3; +#X connect 31 0 0 0; +#X connect 32 0 0 0; +#X connect 33 0 0 0; +#X connect 34 0 5 0; +#X connect 35 0 5 0; +#X connect 36 0 5 0; +#X connect 37 0 1 0; +#X connect 38 0 8 0; +#X connect 39 0 4 0; +#X connect 40 0 55 0; +#X connect 41 0 55 0; +#X connect 42 0 55 0; +#X connect 43 0 44 0; +#X connect 44 0 8 0; +#X connect 45 0 43 0; +#X connect 46 0 15 0; +#X connect 47 0 48 1; +#X connect 47 0 50 0; +#X connect 48 0 0 0; +#X connect 48 1 47 0; +#X connect 49 0 50 1; +#X connect 49 0 52 0; +#X connect 50 0 47 0; +#X connect 50 1 49 0; +#X connect 51 0 52 1; +#X connect 51 0 54 0; +#X connect 52 0 49 0; +#X connect 52 1 51 0; +#X connect 53 0 54 1; +#X connect 53 0 56 0; +#X connect 54 0 51 0; +#X connect 54 1 53 0; +#X connect 55 0 56 1; +#X connect 55 0 58 0; +#X connect 56 0 53 0; +#X connect 56 1 55 0; +#X connect 57 0 58 1; +#X connect 57 0 59 0; +#X connect 58 0 55 0; +#X connect 58 1 57 0; +#X connect 59 0 57 0; +#X connect 59 1 60 0; +#X connect 60 0 62 0; +#X connect 60 0 59 1; +#X connect 61 0 62 1; +#X connect 61 0 64 0; +#X connect 62 0 60 0; +#X connect 62 1 61 0; +#X connect 63 0 64 1; +#X connect 63 0 66 0; +#X connect 64 0 61 0; +#X connect 64 1 63 0; +#X connect 65 0 66 1; +#X connect 65 0 68 0; +#X connect 66 0 63 0; +#X connect 66 1 65 0; +#X connect 67 0 68 1; +#X connect 68 0 65 0; +#X connect 68 1 67 0; +#X connect 69 0 12 0; diff --git a/exemples/08_ball2D.pd b/exemples/08_ball2D.pd new file mode 100755 index 0000000..f7bcf3e --- /dev/null +++ b/exemples/08_ball2D.pd @@ -0,0 +1,315 @@ +#N canvas 43 5 837 614 12; +#X obj 212 146 t b b; +#X obj 212 98 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0 1 +; +#X obj 36 384 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 +-1; +#X msg 62 90 0 \, destroy; +#X obj 28 118 gemwin; +#X msg 28 65 reset \, create \, 1; +#N canvas 510 193 994 722 structure 0; +#X obj 124 314 pd_lia \$0; +#X obj 213 373 pd_lia \$0; +#X obj 49 445 pd_lia \$0; +#X obj 198 502 pd_lia \$0; +#X obj 189 113 pd_lia \$0; +#X obj 69 161 pd_lia \$0; +#X obj 201 187 pd_lia \$0; +#X obj 279 598 pd_lia \$0; +#X obj 410 562 pd_lia \$0; +#X obj 580 585 pd_lia \$0; +#X obj 310 327 pd_lia \$0; +#X obj 388 330 pd_lia \$0; +#X obj 468 330 pd_lia \$0; +#X obj 338 427 pd_lia \$0; +#X obj 509 422 pd_lia \$0; +#X obj 304 26 pd_lia \$0; +#X obj 441 57 pd_lia \$0; +#X obj 347 129 pd_lia \$0; +#X obj 308 231 pd_lia \$0; +#X obj 304 280 pd_lia \$0; +#X obj 393 227 pd_lia \$0; +#X obj 475 227 pd_lia \$0; +#X obj 562 277 pd_lia \$0; +#X obj 604 358 pd_lia \$0; +#X obj 678 291 pd_lia \$0; +#X obj 604 221 pd_lia \$0; +#X obj 499 135 pd_lia \$0; +#X obj 571 43 pd_lia \$0; +#X obj 612 101 pd_lia \$0; +#X obj 749 179 pd_lia \$0; +#X obj 763 429 pd_lia \$0; +#X obj 671 510 pd_lia \$0; +#X obj 28 21 inlet; +#N canvas 0 0 450 300 lia 0; +#X obj 266 35 inlet; +#X obj 274 100 outlet; +#X obj 12 32 inlet; +#X obj 6 93 outlet; +#X obj 47 61 lia2D lia 0 10 10 0.001; +#X connect 0 0 4 1; +#X connect 2 0 4 0; +#X connect 4 0 3 0; +#X connect 4 1 1 0; +#X restore 28 52 pd lia; +#X obj 27 290 pd_masse -1 0 \$0; +#X obj 37 101 loadbang; +#X obj 407 274 pd_masse 0 0 \$0; +#X obj 124 43 pd_masse -0.7 0.7 \$0; +#X obj 123 558 pd_masse -0.7 -0.7 \$0; +#X obj 399 624 pd_masse 0 -1 \$0; +#X obj 436 16 pd_masse 0 1 \$0; +#X obj 680 64 pd_masse 0.7 0.7 \$0; +#X obj 766 285 pd_masse 1 0 \$0; +#X obj 748 552 pd_masse 0.7 -0.7 \$0; +#X obj 554 253 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 +-1; +#X connect 0 0 37 0; +#X connect 0 1 38 0; +#X connect 1 0 37 0; +#X connect 1 1 39 0; +#X connect 2 0 34 0; +#X connect 2 1 38 0; +#X connect 3 0 34 0; +#X connect 3 1 39 0; +#X connect 4 0 34 0; +#X connect 4 1 40 0; +#X connect 5 0 34 0; +#X connect 5 1 37 0; +#X connect 6 0 40 0; +#X connect 6 1 38 0; +#X connect 7 0 38 0; +#X connect 7 1 39 0; +#X connect 8 0 38 0; +#X connect 8 1 43 0; +#X connect 9 0 39 0; +#X connect 9 1 43 0; +#X connect 10 0 38 0; +#X connect 10 1 36 0; +#X connect 11 0 36 0; +#X connect 11 1 39 0; +#X connect 12 0 36 0; +#X connect 12 1 43 0; +#X connect 13 0 34 0; +#X connect 13 1 43 0; +#X connect 14 0 38 0; +#X connect 14 1 42 0; +#X connect 15 0 37 0; +#X connect 15 1 40 0; +#X connect 16 0 37 0; +#X connect 16 1 41 0; +#X connect 17 0 34 0; +#X connect 17 1 41 0; +#X connect 18 0 37 0; +#X connect 18 1 36 0; +#X connect 19 0 34 0; +#X connect 19 1 36 0; +#X connect 20 0 36 0; +#X connect 20 1 40 0; +#X connect 21 0 36 0; +#X connect 21 1 41 0; +#X connect 22 0 36 0; +#X connect 22 1 42 0; +#X connect 23 0 39 0; +#X connect 23 1 41 0; +#X connect 24 0 43 0; +#X connect 24 1 41 0; +#X connect 25 0 40 0; +#X connect 25 1 43 0; +#X connect 26 0 37 0; +#X connect 26 1 42 0; +#X connect 27 0 40 0; +#X connect 27 1 41 0; +#X connect 28 0 40 0; +#X connect 28 1 42 0; +#X connect 29 0 41 0; +#X connect 29 1 42 0; +#X connect 30 0 42 0; +#X connect 30 1 43 0; +#X connect 31 0 39 0; +#X connect 31 1 42 0; +#X connect 32 0 33 0; +#X connect 33 1 36 0; +#X connect 34 0 2 0; +#X connect 34 0 3 0; +#X connect 34 0 4 0; +#X connect 34 0 5 0; +#X connect 34 0 13 0; +#X connect 34 0 17 0; +#X connect 34 0 19 0; +#X connect 35 0 36 1; +#X connect 36 0 10 1; +#X connect 36 0 11 0; +#X connect 36 0 12 0; +#X connect 36 0 18 1; +#X connect 36 0 19 1; +#X connect 36 0 20 0; +#X connect 36 0 21 0; +#X connect 36 0 22 0; +#X connect 36 0 33 1; +#X connect 37 0 0 0; +#X connect 37 0 1 0; +#X connect 37 0 5 1; +#X connect 37 0 15 0; +#X connect 37 0 16 0; +#X connect 37 0 18 0; +#X connect 37 0 26 0; +#X connect 38 0 0 1; +#X connect 38 0 2 1; +#X connect 38 0 6 1; +#X connect 38 0 7 0; +#X connect 38 0 8 0; +#X connect 38 0 10 0; +#X connect 38 0 14 0; +#X connect 39 0 1 1; +#X connect 39 0 3 1; +#X connect 39 0 7 1; +#X connect 39 0 9 0; +#X connect 39 0 11 1; +#X connect 39 0 23 0; +#X connect 39 0 31 0; +#X connect 40 0 4 1; +#X connect 40 0 6 0; +#X connect 40 0 15 1; +#X connect 40 0 20 1; +#X connect 40 0 25 0; +#X connect 40 0 27 0; +#X connect 40 0 28 0; +#X connect 41 0 16 1; +#X connect 41 0 17 1; +#X connect 41 0 21 1; +#X connect 41 0 23 1; +#X connect 41 0 24 1; +#X connect 41 0 27 1; +#X connect 41 0 29 0; +#X connect 42 0 14 1; +#X connect 42 0 22 1; +#X connect 42 0 26 1; +#X connect 42 0 28 1; +#X connect 42 0 29 1; +#X connect 42 0 30 0; +#X connect 42 0 31 1; +#X connect 43 0 8 1; +#X connect 43 0 9 1; +#X connect 43 0 12 1; +#X connect 43 0 13 1; +#X connect 43 0 24 0; +#X connect 43 0 25 1; +#X connect 43 0 30 1; +#X connect 44 0 36 1; +#X restore 39 346 pd structure; +#X msg 284 401 force2D 0 5; +#X msg 340 427 force2D 5 0; +#X obj 212 119 metro 50; +#X obj 55 383 loadbang; +#X msg 286 455 force2D 0 -5; +#X msg 229 428 force2D -5 0; +#X obj 247 171 s \$0-lia; +#X obj 212 199 s \$0-masse; +#X obj 285 487 s \$0-masse; +#X msg 87 439 reset; +#X msg 61 491 resetL; +#X msg 36 517 resetF; +#X obj 36 411 t b b b; +#X obj 274 226 iAmbient2D \$0-masse 0 -0.2; +#X text 223 250 ambient Force \, simulating gravity; +#X text 179 63 <- create Gem windows; +#X obj 36 548 s \$0-lia; +#X obj 87 464 s \$0-masse; +#X text 251 96 <- on / off; +#X text 451 425 <- send forces to the structure; +#X text 222 549 If the line does not display corectly \, you sould +upgrade GEM; +#X obj 37 260 square 3.9; +#X obj 37 203 gemhead 11; +#X obj 37 231 color 0 0.5 0; +#X msg 209 293 \; pd dsp 1 \;; +#X msg 291 292 \; pd dsp 0 \;; +#X text 236 11 Forces aply to a mass create sound.; +#X text 234 31 each masse got a diferent frequency; +#X msg 517 312 setK \$1; +#X msg 591 286 setD \$1; +#X msg 733 258 setM \$1; +#X floatatom 517 237 5 -10 200 0 - - -; +#X floatatom 591 235 5 0 0 0 - - -; +#X floatatom 733 235 5 0 0 0 - - -; +#X obj 517 286 / 10; +#X obj 517 260 + 1; +#X obj 591 259 / 10; +#X msg 517 210 100; +#X msg 591 211 25; +#X msg 733 209 50; +#X floatatom 658 235 5 0 0 0 - - -; +#X obj 658 259 / 10; +#X msg 658 286 setD2 \$1; +#X msg 658 211 1; +#X obj 517 344 s \$0-lia; +#X obj 733 286 s \$0-masse; +#X text 517 157 you can change physical properties; +#X text 515 182 this will change the sound; +#X floatatom 373 143 5 0 0 0 - - -; +#X msg 373 167 setFY \$1; +#N canvas 316 568 450 300 gemmouse 0; +#X obj 31 26 gemmouse; +#X obj 31 57 / 62.5; +#X obj 31 80 - 4; +#X obj 31 133 pack f f; +#X msg 31 158 position2D \$1 \$2; +#X obj 155 109 spigot; +#X obj 152 82 r \$0-lia; +#X obj 154 135 s lia; +#X obj 66 83 / -62.5; +#X obj 66 106 + 4; +#X obj 32 193 outlet; +#X connect 0 0 1 0; +#X connect 0 1 8 0; +#X connect 0 2 5 1; +#X connect 1 0 2 0; +#X connect 2 0 3 0; +#X connect 3 0 4 0; +#X connect 4 0 10 0; +#X connect 5 0 7 0; +#X connect 6 0 5 0; +#X connect 8 0 9 0; +#X connect 9 0 3 1; +#X restore 39 319 pd gemmouse; +#X connect 0 0 14 0; +#X connect 0 1 13 0; +#X connect 0 1 20 0; +#X connect 1 0 9 0; +#X connect 2 0 19 0; +#X connect 3 0 4 0; +#X connect 5 0 4 0; +#X connect 7 0 15 0; +#X connect 8 0 15 0; +#X connect 9 0 0 0; +#X connect 10 0 19 0; +#X connect 11 0 15 0; +#X connect 12 0 15 0; +#X connect 16 0 24 0; +#X connect 17 0 23 0; +#X connect 18 0 23 0; +#X connect 19 0 18 0; +#X connect 19 1 17 0; +#X connect 19 2 16 0; +#X connect 29 0 30 0; +#X connect 30 0 28 0; +#X connect 35 0 51 0; +#X connect 36 0 51 0; +#X connect 37 0 52 0; +#X connect 38 0 42 0; +#X connect 39 0 43 0; +#X connect 40 0 37 0; +#X connect 41 0 35 0; +#X connect 42 0 41 0; +#X connect 43 0 36 0; +#X connect 44 0 38 0; +#X connect 45 0 39 0; +#X connect 46 0 40 0; +#X connect 47 0 48 0; +#X connect 48 0 49 0; +#X connect 49 0 51 0; +#X connect 50 0 47 0; +#X connect 55 0 56 0; +#X connect 56 0 20 0; +#X connect 57 0 6 0; diff --git a/exemples/09_tutorial2D.pd b/exemples/09_tutorial2D.pd new file mode 100755 index 0000000..5de0ee6 --- /dev/null +++ b/exemples/09_tutorial2D.pd @@ -0,0 +1,269 @@ +#N canvas 57 28 600 601 12; +#N canvas 623 135 520 309 init 0; +#X msg 200 169 setK \$1; +#X msg 274 143 setD \$1; +#X msg 416 115 setM \$1; +#X floatatom 200 94 5 -10 200 0 - - -; +#X floatatom 274 92 5 0 0 0 - - -; +#X floatatom 416 92 5 0 0 0 - - -; +#X obj 416 143 s masse; +#X obj 200 143 / 10; +#X obj 200 117 + 1; +#X obj 274 116 / 10; +#X msg 200 67 100; +#X msg 274 68 25; +#X msg 416 66 50; +#X obj 49 50 loadbang; +#X floatatom 341 92 5 0 0 0 - - -; +#X obj 341 116 / 10; +#X msg 341 143 setD2 \$1; +#X msg 341 68 1; +#X obj 139 23 inlet; +#X obj 47 201 s tut_masse; +#X obj 200 201 s tut_lia; +#X msg 44 84 setXmin -3.8; +#X msg 58 110 setXmax 3.8; +#X msg 81 131 setYmin -3.8; +#X msg 95 157 setYmax 3.8; +#X connect 0 0 20 0; +#X connect 1 0 20 0; +#X connect 2 0 6 0; +#X connect 3 0 8 0; +#X connect 4 0 9 0; +#X connect 5 0 2 0; +#X connect 7 0 0 0; +#X connect 8 0 7 0; +#X connect 9 0 1 0; +#X connect 10 0 3 0; +#X connect 11 0 4 0; +#X connect 12 0 5 0; +#X connect 13 0 21 0; +#X connect 13 0 22 0; +#X connect 13 0 23 0; +#X connect 13 0 24 0; +#X connect 14 0 15 0; +#X connect 15 0 16 0; +#X connect 16 0 20 0; +#X connect 17 0 14 0; +#X connect 18 0 21 0; +#X connect 18 0 22 0; +#X connect 18 0 23 0; +#X connect 18 0 24 0; +#X connect 21 0 19 0; +#X connect 22 0 19 0; +#X connect 23 0 19 0; +#X connect 24 0 19 0; +#X restore 168 43 pd init; +#X obj 42 92 t b b; +#X obj 42 44 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0 1 +; +#X obj 329 22 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 +-1; +#X msg 75 231 0 \, destroy; +#X obj 41 259 gemwin; +#X msg 41 206 reset \, create \, 1; +#N canvas 115 18 1382 984 structure 0; +#X obj 503 58 tut_lia; +#X obj 193 331 tut_lia; +#X obj 243 219 tut_lia; +#X obj 353 120 tut_lia; +#X obj 1022 465 tut_lia; +#X obj 791 778 tut_lia; +#X obj 910 681 tut_lia; +#X obj 997 574 tut_lia; +#X obj 988 236 tut_lia; +#X obj 746 55 tut_lia; +#X obj 907 142 tut_lia; +#X obj 1009 345 tut_lia; +#X obj 556 793 tut_lia; +#X obj 188 450 tut_lia; +#X obj 252 593 tut_lia; +#X obj 384 717 tut_lia; +#X obj 654 751 tut_lia; +#X obj 801 707 tut_lia; +#X obj 850 622 tut_lia; +#X obj 902 500 tut_lia; +#X obj 908 405 tut_lia; +#X obj 907 301 tut_lia; +#X obj 865 207 tut_lia; +#X obj 769 154 tut_lia; +#X obj 226 276 tut_masse -0.9 0.4; +#X obj 422 90 tut_masse -0.4 0.9; +#X obj 997 291 tut_masse 0.9 0.4; +#X obj 637 815 tut_masse 0 -1; +#X obj 972 633 tut_masse 0.7 -0.7; +#X obj 947 189 tut_masse 0.7 0.7; +#X obj 173 374 tut_masse -1 0; +#X obj 272 165 tut_masse -0.7 0.7; +#X obj 304 648 tut_masse -0.7 -0.7; +#X obj 837 97 tut_masse 0.4 0.9; +#X obj 207 520 tut_masse -0.9 -0.4; +#X obj 1015 400 tut_masse 1 0; +#X obj 445 758 tut_masse -0.4 -0.9; +#X obj 873 734 tut_masse 0.4 -0.9; +#X obj 598 28 tut_masse 0 1; +#X obj 1017 517 tut_masse 0.9 -0.4; +#X connect 0 0 25 0; +#X connect 0 1 38 0; +#X connect 1 0 30 0; +#X connect 1 1 24 0; +#X connect 2 0 31 0; +#X connect 2 1 24 0; +#X connect 3 0 31 0; +#X connect 3 1 25 0; +#X connect 4 0 39 0; +#X connect 4 1 35 0; +#X connect 5 0 27 0; +#X connect 5 1 37 0; +#X connect 6 0 37 0; +#X connect 6 1 28 0; +#X connect 7 0 28 0; +#X connect 7 1 39 0; +#X connect 8 0 29 0; +#X connect 8 1 26 0; +#X connect 9 0 38 0; +#X connect 9 1 33 0; +#X connect 10 0 33 0; +#X connect 10 1 29 0; +#X connect 11 0 26 0; +#X connect 11 1 35 0; +#X connect 12 0 36 0; +#X connect 12 1 27 0; +#X connect 13 0 30 0; +#X connect 13 1 34 0; +#X connect 14 0 34 0; +#X connect 14 1 32 0; +#X connect 15 0 32 0; +#X connect 15 1 36 0; +#X connect 16 0 38 0; +#X connect 16 1 27 0; +#X connect 17 0 25 0; +#X connect 17 1 37 0; +#X connect 18 0 31 0; +#X connect 18 1 28 0; +#X connect 19 0 24 0; +#X connect 19 1 39 0; +#X connect 20 0 30 0; +#X connect 20 1 35 0; +#X connect 21 0 34 0; +#X connect 21 1 26 0; +#X connect 22 0 32 0; +#X connect 22 1 29 0; +#X connect 23 0 36 0; +#X connect 23 1 33 0; +#X connect 24 0 1 1; +#X connect 24 0 2 1; +#X connect 24 0 19 0; +#X connect 25 0 0 0; +#X connect 25 0 3 1; +#X connect 25 0 17 0; +#X connect 26 0 8 1; +#X connect 26 0 11 0; +#X connect 26 0 21 1; +#X connect 27 0 5 0; +#X connect 27 0 12 1; +#X connect 27 0 16 1; +#X connect 28 0 7 0; +#X connect 28 0 6 1; +#X connect 28 0 18 1; +#X connect 29 0 8 0; +#X connect 29 0 10 1; +#X connect 29 0 22 1; +#X connect 30 0 1 0; +#X connect 30 0 13 0; +#X connect 30 0 20 0; +#X connect 31 0 2 0; +#X connect 31 0 3 0; +#X connect 31 0 18 0; +#X connect 32 0 15 0; +#X connect 32 0 14 1; +#X connect 32 0 22 0; +#X connect 33 0 10 0; +#X connect 33 0 9 1; +#X connect 33 0 23 1; +#X connect 34 0 13 1; +#X connect 34 0 14 0; +#X connect 34 0 21 0; +#X connect 35 0 4 1; +#X connect 35 0 11 1; +#X connect 35 0 20 1; +#X connect 36 0 12 0; +#X connect 36 0 15 1; +#X connect 36 0 23 0; +#X connect 37 0 5 1; +#X connect 37 0 6 0; +#X connect 37 0 17 1; +#X connect 38 0 0 1; +#X connect 38 0 9 0; +#X connect 38 0 16 0; +#X connect 39 0 4 0; +#X connect 39 0 7 1; +#X connect 39 0 19 1; +#X restore 417 325 pd structure; +#X obj 329 45 loadbang; +#X msg 244 270 force2D 0 2; +#X msg 190 295 force2D -2 0; +#X msg 247 322 force2D 0 -2; +#X msg 301 294 force2D 2 0; +#X obj 329 74 t b b b; +#X msg 380 99 reset; +#X msg 355 124 resetL; +#X msg 329 152 resetF; +#X obj 42 65 metro 50; +#X msg 54 150 force2D 0 -0.1; +#X obj 168 22 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 +-1; +#X obj 246 354 s tut_masse; +#X obj 42 178 s tut_masse; +#X obj 77 117 s tut_lia; +#X text 39 403 You can use this exemple to try to make you own structure. +; +#X text 58 506 Go to pd structure; +#X text 59 526 Remove everything; +#X text 41 427 look at the structure \, and look a the patch : a lia +is corespnding to a segment \, and a maase is a white sphere; +#X text 41 462 everyting is here to make a 2D structure easilly; +#X text 40 486 to make your own strucute :; +#X text 59 546 put "tut_masse" object in the screen where you want +to put your masse in the gem windows.; +#X text 58 658 create a "tut_lia" object for each link you whant to +put in the structure.; +#X text 60 726 The structure is ready. you should now do the initialisation +part :; +#X text 222 19 <- init; +#X text 375 20 <- reset; +#X text 59 763 click on pd init : this will give a minimal and maximal +position to the masse. (for them to stay on the screen).; +#X text 60 806 click on reset : this will tell the link to learn there +good initial lenght \, reset forces etc...; +#X text 59 584 when all masse are there \, you can specifie them ther +initial position : edit "tut_masse" object and add 2 float corresponding +to ther X and Y position in the GEM screen. (should be about from -4 +to 4); +#X text 59 694 connect them to the masse (link and masses as to be +connected in 2 way : mass to link and link to mass).; +#X text 61 846 now \, you are ready for toggle the metro on...; +#X text 30 887 If the line does not display corectly \, you sould upgrade +GEM; +#X text 192 204 <- create; +#X connect 1 0 21 0; +#X connect 1 1 18 0; +#X connect 1 1 22 0; +#X connect 2 0 17 0; +#X connect 3 0 13 0; +#X connect 4 0 5 0; +#X connect 6 0 5 0; +#X connect 8 0 13 0; +#X connect 9 0 20 0; +#X connect 10 0 20 0; +#X connect 11 0 20 0; +#X connect 12 0 20 0; +#X connect 13 0 16 0; +#X connect 13 1 15 0; +#X connect 13 2 14 0; +#X connect 14 0 21 0; +#X connect 15 0 22 0; +#X connect 16 0 22 0; +#X connect 17 0 1 0; +#X connect 18 0 21 0; +#X connect 19 0 0 0; diff --git a/exemples/10_game.pd b/exemples/10_game.pd new file mode 100755 index 0000000..447916c --- /dev/null +++ b/exemples/10_game.pd @@ -0,0 +1,908 @@ +#N canvas 507 158 593 464 12; +#N canvas 623 135 500 289 init 0; +#X msg 200 169 setK \$1; +#X msg 274 143 setD \$1; +#X msg 416 115 setM \$1; +#X floatatom 200 94 5 -10 200 0 - - -; +#X floatatom 274 92 5 0 0 0 - - -; +#X floatatom 416 92 5 0 0 0 - - -; +#X obj 416 143 s masse; +#X obj 200 143 / 10; +#X obj 200 117 + 1; +#X obj 274 116 / 10; +#X msg 200 67 100; +#X msg 274 68 25; +#X msg 416 66 50; +#X obj 47 50 loadbang; +#X floatatom 341 92 5 0 0 0 - - -; +#X obj 341 116 / 10; +#X msg 341 143 setD2 \$1; +#X msg 341 68 1; +#X obj 47 201 s \$0-masse; +#X obj 200 201 s \$0-lia; +#X msg 47 84 setXmin -3.8; +#X msg 61 107 setXmax 3.8; +#X msg 77 130 setYmin -3.8; +#X msg 90 153 setYmax 3.8; +#X connect 0 0 19 0; +#X connect 1 0 19 0; +#X connect 2 0 6 0; +#X connect 3 0 8 0; +#X connect 4 0 9 0; +#X connect 5 0 2 0; +#X connect 7 0 0 0; +#X connect 8 0 7 0; +#X connect 9 0 1 0; +#X connect 10 0 3 0; +#X connect 11 0 4 0; +#X connect 12 0 5 0; +#X connect 13 0 20 0; +#X connect 13 0 21 0; +#X connect 13 0 22 0; +#X connect 13 0 23 0; +#X connect 14 0 15 0; +#X connect 15 0 16 0; +#X connect 16 0 19 0; +#X connect 17 0 14 0; +#X connect 20 0 18 0; +#X connect 21 0 18 0; +#X connect 22 0 18 0; +#X connect 23 0 18 0; +#X restore 429 282 pd init; +#X obj 30 69 t b b; +#X obj 30 21 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0 1 +; +#X obj 343 10 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 +-1; +#X msg 64 218 0 \, destroy; +#X obj 30 246 gemwin; +#X msg 30 193 reset \, create \, 1; +#N canvas 298 0 776 832 structure 0; +#N canvas 0 0 452 302 lia 0; +#X obj 177 35 inlet; +#X obj 171 96 outlet; +#X obj 12 32 inlet; +#X obj 6 93 outlet; +#X msg 56 156 \$1 \$2 0; +#X obj 24 186 gemhead; +#X obj 26 210 curve 2; +#X msg 134 155 \$1 \$2 0; +#X obj 45 61 lia2D \$0-lia 0 10 2.5 0.1; +#X connect 0 0 7 0; +#X connect 0 0 8 1; +#X connect 2 0 4 0; +#X connect 2 0 8 0; +#X connect 4 0 6 1; +#X connect 5 0 6 0; +#X connect 7 0 6 2; +#X connect 8 0 3 0; +#X connect 8 1 1 0; +#X restore 29 94 pd lia; +#N canvas 0 0 452 302 lia 0; +#X obj 177 35 inlet; +#X obj 171 96 outlet; +#X obj 12 32 inlet; +#X obj 6 93 outlet; +#X msg 56 156 \$1 \$2 0; +#X obj 24 186 gemhead; +#X obj 26 210 curve 2; +#X msg 134 155 \$1 \$2 0; +#X obj 45 61 lia2D \$0-lia 0 10 2.5 0.1; +#X connect 0 0 7 0; +#X connect 0 0 8 1; +#X connect 2 0 4 0; +#X connect 2 0 8 0; +#X connect 4 0 6 1; +#X connect 5 0 6 0; +#X connect 7 0 6 2; +#X connect 8 0 3 0; +#X connect 8 1 1 0; +#X restore 80 187 pd lia; +#N canvas 0 0 452 302 lia 0; +#X obj 177 35 inlet; +#X obj 171 96 outlet; +#X obj 12 32 inlet; +#X obj 6 93 outlet; +#X msg 56 156 \$1 \$2 0; +#X obj 24 186 gemhead; +#X obj 26 210 curve 2; +#X msg 134 155 \$1 \$2 0; +#X obj 45 61 lia2D \$0-lia 0 10 2.5 0.1; +#X connect 0 0 7 0; +#X connect 0 0 8 1; +#X connect 2 0 4 0; +#X connect 2 0 8 0; +#X connect 4 0 6 1; +#X connect 5 0 6 0; +#X connect 7 0 6 2; +#X connect 8 0 3 0; +#X connect 8 1 1 0; +#X restore 36 296 pd lia; +#N canvas 0 0 452 302 lia 0; +#X obj 177 35 inlet; +#X obj 171 96 outlet; +#X obj 12 32 inlet; +#X obj 6 93 outlet; +#X msg 56 156 \$1 \$2 0; +#X obj 24 186 gemhead; +#X obj 26 210 curve 2; +#X msg 134 155 \$1 \$2 0; +#X obj 45 61 lia2D \$0-lia 0 10 2.5 0.1; +#X connect 0 0 7 0; +#X connect 0 0 8 1; +#X connect 2 0 4 0; +#X connect 2 0 8 0; +#X connect 4 0 6 1; +#X connect 5 0 6 0; +#X connect 7 0 6 2; +#X connect 8 0 3 0; +#X connect 8 1 1 0; +#X restore 33 499 pd lia; +#N canvas 0 0 452 302 lia 0; +#X obj 177 35 inlet; +#X obj 171 96 outlet; +#X obj 12 32 inlet; +#X obj 6 93 outlet; +#X msg 56 156 \$1 \$2 0; +#X obj 24 186 gemhead; +#X obj 26 210 curve 2; +#X msg 134 155 \$1 \$2 0; +#X obj 45 61 lia2D \$0-lia 0 10 2.5 0.1; +#X connect 0 0 7 0; +#X connect 0 0 8 1; +#X connect 2 0 4 0; +#X connect 2 0 8 0; +#X connect 4 0 6 1; +#X connect 5 0 6 0; +#X connect 7 0 6 2; +#X connect 8 0 3 0; +#X connect 8 1 1 0; +#X restore 35 675 pd lia; +#N canvas 0 0 452 302 lia 0; +#X obj 177 35 inlet; +#X obj 171 96 outlet; +#X obj 12 32 inlet; +#X obj 6 93 outlet; +#X msg 56 156 \$1 \$2 0; +#X obj 24 186 gemhead; +#X obj 26 210 curve 2; +#X msg 134 155 \$1 \$2 0; +#X obj 45 61 lia2D \$0-lia 0 10 2.5 0.1; +#X connect 0 0 7 0; +#X connect 0 0 8 1; +#X connect 2 0 4 0; +#X connect 2 0 8 0; +#X connect 4 0 6 1; +#X connect 5 0 6 0; +#X connect 7 0 6 2; +#X connect 8 0 3 0; +#X connect 8 1 1 0; +#X restore 87 740 pd lia; +#N canvas 0 0 452 302 lia 0; +#X obj 177 35 inlet; +#X obj 171 96 outlet; +#X obj 12 32 inlet; +#X obj 6 93 outlet; +#X msg 56 156 \$1 \$2 0; +#X obj 24 186 gemhead; +#X obj 26 210 curve 2; +#X msg 134 155 \$1 \$2 0; +#X obj 45 61 lia2D \$0-lia 0 10 2.5 0.1; +#X connect 0 0 7 0; +#X connect 0 0 8 1; +#X connect 2 0 4 0; +#X connect 2 0 8 0; +#X connect 4 0 6 1; +#X connect 5 0 6 0; +#X connect 7 0 6 2; +#X connect 8 0 3 0; +#X connect 8 1 1 0; +#X restore 88 716 pd lia; +#N canvas 0 0 452 302 lia 0; +#X obj 177 35 inlet; +#X obj 171 96 outlet; +#X obj 12 32 inlet; +#X obj 6 93 outlet; +#X msg 56 156 \$1 \$2 0; +#X obj 24 186 gemhead; +#X obj 26 210 curve 2; +#X msg 134 155 \$1 \$2 0; +#X obj 45 61 lia2D \$0-lia 0 10 2.5 0.1; +#X connect 0 0 7 0; +#X connect 0 0 8 1; +#X connect 2 0 4 0; +#X connect 2 0 8 0; +#X connect 4 0 6 1; +#X connect 5 0 6 0; +#X connect 7 0 6 2; +#X connect 8 0 3 0; +#X connect 8 1 1 0; +#X restore 81 574 pd lia; +#N canvas 0 0 452 302 lia 0; +#X obj 177 35 inlet; +#X obj 171 96 outlet; +#X obj 12 32 inlet; +#X obj 6 93 outlet; +#X msg 56 156 \$1 \$2 0; +#X obj 24 186 gemhead; +#X obj 26 210 curve 2; +#X msg 134 155 \$1 \$2 0; +#X obj 45 61 lia2D \$0-lia 0 10 2.5 0.1; +#X connect 0 0 7 0; +#X connect 0 0 8 1; +#X connect 2 0 4 0; +#X connect 2 0 8 0; +#X connect 4 0 6 1; +#X connect 5 0 6 0; +#X connect 7 0 6 2; +#X connect 8 0 3 0; +#X connect 8 1 1 0; +#X restore 82 548 pd lia; +#N canvas 0 0 452 302 lia 0; +#X obj 177 35 inlet; +#X obj 171 96 outlet; +#X obj 12 32 inlet; +#X obj 6 93 outlet; +#X msg 56 156 \$1 \$2 0; +#X obj 24 186 gemhead; +#X obj 26 210 curve 2; +#X msg 134 155 \$1 \$2 0; +#X obj 45 61 lia2D \$0-lia 0 10 2.5 0.1; +#X connect 0 0 7 0; +#X connect 0 0 8 1; +#X connect 2 0 4 0; +#X connect 2 0 8 0; +#X connect 4 0 6 1; +#X connect 5 0 6 0; +#X connect 7 0 6 2; +#X connect 8 0 3 0; +#X connect 8 1 1 0; +#X restore 71 370 pd lia; +#N canvas 0 0 452 302 lia 0; +#X obj 177 35 inlet; +#X obj 171 96 outlet; +#X obj 12 32 inlet; +#X obj 6 93 outlet; +#X msg 56 156 \$1 \$2 0; +#X obj 24 186 gemhead; +#X obj 26 210 curve 2; +#X msg 134 155 \$1 \$2 0; +#X obj 45 61 lia2D \$0-lia 0 10 2.5 0.1; +#X connect 0 0 7 0; +#X connect 0 0 8 1; +#X connect 2 0 4 0; +#X connect 2 0 8 0; +#X connect 4 0 6 1; +#X connect 5 0 6 0; +#X connect 7 0 6 2; +#X connect 8 0 3 0; +#X connect 8 1 1 0; +#X restore 72 345 pd lia; +#N canvas 0 0 452 302 lia 0; +#X obj 177 35 inlet; +#X obj 171 96 outlet; +#X obj 12 32 inlet; +#X obj 6 93 outlet; +#X msg 56 156 \$1 \$2 0; +#X obj 24 186 gemhead; +#X obj 26 210 curve 2; +#X msg 134 155 \$1 \$2 0; +#X obj 45 61 lia2D \$0-lia 0 10 2.5 0.1; +#X connect 0 0 7 0; +#X connect 0 0 8 1; +#X connect 2 0 4 0; +#X connect 2 0 8 0; +#X connect 4 0 6 1; +#X connect 5 0 6 0; +#X connect 7 0 6 2; +#X connect 8 0 3 0; +#X connect 8 1 1 0; +#X restore 359 17 pd lia; +#N canvas 0 0 452 302 lia 0; +#X obj 177 35 inlet; +#X obj 171 96 outlet; +#X obj 12 32 inlet; +#X obj 6 93 outlet; +#X msg 56 156 \$1 \$2 0; +#X obj 24 186 gemhead; +#X obj 26 210 curve 2; +#X msg 134 155 \$1 \$2 0; +#X obj 45 61 lia2D \$0-lia 0 10 2.5 0.1; +#X connect 0 0 7 0; +#X connect 0 0 8 1; +#X connect 2 0 4 0; +#X connect 2 0 8 0; +#X connect 4 0 6 1; +#X connect 5 0 6 0; +#X connect 7 0 6 2; +#X connect 8 0 3 0; +#X connect 8 1 1 0; +#X restore 354 206 pd lia; +#N canvas 0 0 452 302 lia 0; +#X obj 177 35 inlet; +#X obj 171 96 outlet; +#X obj 12 32 inlet; +#X obj 6 93 outlet; +#X msg 56 156 \$1 \$2 0; +#X obj 24 186 gemhead; +#X obj 26 210 curve 2; +#X msg 134 155 \$1 \$2 0; +#X obj 45 61 lia2D \$0-lia 0 10 2.5 0.1; +#X connect 0 0 7 0; +#X connect 0 0 8 1; +#X connect 2 0 4 0; +#X connect 2 0 8 0; +#X connect 4 0 6 1; +#X connect 5 0 6 0; +#X connect 7 0 6 2; +#X connect 8 0 3 0; +#X connect 8 1 1 0; +#X restore 342 400 pd lia; +#N canvas 0 0 452 302 lia 0; +#X obj 177 35 inlet; +#X obj 171 96 outlet; +#X obj 12 32 inlet; +#X obj 6 93 outlet; +#X msg 56 156 \$1 \$2 0; +#X obj 24 186 gemhead; +#X obj 26 210 curve 2; +#X msg 134 155 \$1 \$2 0; +#X obj 45 61 lia2D \$0-lia 0 10 2.5 0.1; +#X connect 0 0 7 0; +#X connect 0 0 8 1; +#X connect 2 0 4 0; +#X connect 2 0 8 0; +#X connect 4 0 6 1; +#X connect 5 0 6 0; +#X connect 7 0 6 2; +#X connect 8 0 3 0; +#X connect 8 1 1 0; +#X restore 354 608 pd lia; +#N canvas 0 0 452 302 lia 0; +#X obj 177 35 inlet; +#X obj 171 96 outlet; +#X obj 12 32 inlet; +#X obj 6 93 outlet; +#X msg 56 156 \$1 \$2 0; +#X obj 24 186 gemhead; +#X obj 26 210 curve 2; +#X msg 134 155 \$1 \$2 0; +#X obj 45 61 lia2D \$0-lia 0 10 2.5 0.1; +#X connect 0 0 7 0; +#X connect 0 0 8 1; +#X connect 2 0 4 0; +#X connect 2 0 8 0; +#X connect 4 0 6 1; +#X connect 5 0 6 0; +#X connect 7 0 6 2; +#X connect 8 0 3 0; +#X connect 8 1 1 0; +#X restore 349 770 pd lia; +#N canvas 0 0 452 302 lia 0; +#X obj 177 35 inlet; +#X obj 171 96 outlet; +#X obj 12 32 inlet; +#X obj 6 93 outlet; +#X msg 56 156 \$1 \$2 0; +#X obj 24 186 gemhead; +#X obj 26 210 curve 2; +#X msg 134 155 \$1 \$2 0; +#X obj 45 61 lia2D \$0-lia 0 10 2.5 0.1; +#X connect 0 0 7 0; +#X connect 0 0 8 1; +#X connect 2 0 4 0; +#X connect 2 0 8 0; +#X connect 4 0 6 1; +#X connect 5 0 6 0; +#X connect 7 0 6 2; +#X connect 8 0 3 0; +#X connect 8 1 1 0; +#X restore 601 748 pd lia; +#N canvas 0 0 452 302 lia 0; +#X obj 177 35 inlet; +#X obj 171 96 outlet; +#X obj 12 32 inlet; +#X obj 6 93 outlet; +#X msg 56 156 \$1 \$2 0; +#X obj 24 186 gemhead; +#X obj 26 210 curve 2; +#X msg 134 155 \$1 \$2 0; +#X obj 45 61 lia2D \$0-lia 0 10 2.5 0.1; +#X connect 0 0 7 0; +#X connect 0 0 8 1; +#X connect 2 0 4 0; +#X connect 2 0 8 0; +#X connect 4 0 6 1; +#X connect 5 0 6 0; +#X connect 7 0 6 2; +#X connect 8 0 3 0; +#X connect 8 1 1 0; +#X restore 601 726 pd lia; +#N canvas 0 0 452 302 lia 0; +#X obj 177 35 inlet; +#X obj 171 96 outlet; +#X obj 12 32 inlet; +#X obj 6 93 outlet; +#X msg 56 156 \$1 \$2 0; +#X obj 24 186 gemhead; +#X obj 26 210 curve 2; +#X msg 134 155 \$1 \$2 0; +#X obj 45 61 lia2D \$0-lia 0 10 2.5 0.1; +#X connect 0 0 7 0; +#X connect 0 0 8 1; +#X connect 2 0 4 0; +#X connect 2 0 8 0; +#X connect 4 0 6 1; +#X connect 5 0 6 0; +#X connect 7 0 6 2; +#X connect 8 0 3 0; +#X connect 8 1 1 0; +#X restore 657 680 pd lia; +#N canvas 0 0 452 302 lia 0; +#X obj 177 35 inlet; +#X obj 171 96 outlet; +#X obj 12 32 inlet; +#X obj 6 93 outlet; +#X msg 56 156 \$1 \$2 0; +#X obj 24 186 gemhead; +#X obj 26 210 curve 2; +#X msg 134 155 \$1 \$2 0; +#X obj 45 61 lia2D \$0-lia 0 10 2.5 0.1; +#X connect 0 0 7 0; +#X connect 0 0 8 1; +#X connect 2 0 4 0; +#X connect 2 0 8 0; +#X connect 4 0 6 1; +#X connect 5 0 6 0; +#X connect 7 0 6 2; +#X connect 8 0 3 0; +#X connect 8 1 1 0; +#X restore 604 579 pd lia; +#N canvas 0 0 452 302 lia 0; +#X obj 177 35 inlet; +#X obj 171 96 outlet; +#X obj 12 32 inlet; +#X obj 6 93 outlet; +#X msg 56 156 \$1 \$2 0; +#X obj 24 186 gemhead; +#X obj 26 210 curve 2; +#X msg 134 155 \$1 \$2 0; +#X obj 45 61 lia2D \$0-lia 0 10 2.5 0.1; +#X connect 0 0 7 0; +#X connect 0 0 8 1; +#X connect 2 0 4 0; +#X connect 2 0 8 0; +#X connect 4 0 6 1; +#X connect 5 0 6 0; +#X connect 7 0 6 2; +#X connect 8 0 3 0; +#X connect 8 1 1 0; +#X restore 604 555 pd lia; +#N canvas 0 0 452 302 lia 0; +#X obj 177 35 inlet; +#X obj 171 96 outlet; +#X obj 12 32 inlet; +#X obj 6 93 outlet; +#X msg 56 156 \$1 \$2 0; +#X obj 24 186 gemhead; +#X obj 26 210 curve 2; +#X msg 134 155 \$1 \$2 0; +#X obj 45 61 lia2D \$0-lia 0 10 2.5 0.1; +#X connect 0 0 7 0; +#X connect 0 0 8 1; +#X connect 2 0 4 0; +#X connect 2 0 8 0; +#X connect 4 0 6 1; +#X connect 5 0 6 0; +#X connect 7 0 6 2; +#X connect 8 0 3 0; +#X connect 8 1 1 0; +#X restore 651 490 pd lia; +#N canvas 0 0 452 302 lia 0; +#X obj 177 35 inlet; +#X obj 171 96 outlet; +#X obj 12 32 inlet; +#X obj 6 93 outlet; +#X msg 56 156 \$1 \$2 0; +#X obj 24 186 gemhead; +#X obj 26 210 curve 2; +#X msg 134 155 \$1 \$2 0; +#X obj 45 61 lia2D \$0-lia 0 10 2.5 0.1; +#X connect 0 0 7 0; +#X connect 0 0 8 1; +#X connect 2 0 4 0; +#X connect 2 0 8 0; +#X connect 4 0 6 1; +#X connect 5 0 6 0; +#X connect 7 0 6 2; +#X connect 8 0 3 0; +#X connect 8 1 1 0; +#X restore 578 365 pd lia; +#N canvas 0 0 452 302 lia 0; +#X obj 177 35 inlet; +#X obj 171 96 outlet; +#X obj 12 32 inlet; +#X obj 6 93 outlet; +#X msg 56 156 \$1 \$2 0; +#X obj 24 186 gemhead; +#X obj 26 210 curve 2; +#X msg 134 155 \$1 \$2 0; +#X obj 45 61 lia2D \$0-lia 0 10 2.5 0.1; +#X connect 0 0 7 0; +#X connect 0 0 8 1; +#X connect 2 0 4 0; +#X connect 2 0 8 0; +#X connect 4 0 6 1; +#X connect 5 0 6 0; +#X connect 7 0 6 2; +#X connect 8 0 3 0; +#X connect 8 1 1 0; +#X restore 576 342 pd lia; +#N canvas 0 0 452 302 lia 0; +#X obj 177 35 inlet; +#X obj 171 96 outlet; +#X obj 12 32 inlet; +#X obj 6 93 outlet; +#X msg 56 156 \$1 \$2 0; +#X obj 24 186 gemhead; +#X obj 26 210 curve 2; +#X msg 134 155 \$1 \$2 0; +#X obj 45 61 lia2D \$0-lia 0 10 2.5 0.1; +#X connect 0 0 7 0; +#X connect 0 0 8 1; +#X connect 2 0 4 0; +#X connect 2 0 8 0; +#X connect 4 0 6 1; +#X connect 5 0 6 0; +#X connect 7 0 6 2; +#X connect 8 0 3 0; +#X connect 8 1 1 0; +#X restore 642 293 pd lia; +#N canvas 0 0 452 302 lia 0; +#X obj 177 35 inlet; +#X obj 171 96 outlet; +#X obj 12 32 inlet; +#X obj 6 93 outlet; +#X msg 56 156 \$1 \$2 0; +#X obj 24 186 gemhead; +#X obj 26 210 curve 2; +#X msg 134 155 \$1 \$2 0; +#X obj 45 61 lia2D \$0-lia 0 10 2.5 0.1; +#X connect 0 0 7 0; +#X connect 0 0 8 1; +#X connect 2 0 4 0; +#X connect 2 0 8 0; +#X connect 4 0 6 1; +#X connect 5 0 6 0; +#X connect 7 0 6 2; +#X connect 8 0 3 0; +#X connect 8 1 1 0; +#X restore 575 180 pd lia; +#N canvas 0 0 452 302 lia 0; +#X obj 177 35 inlet; +#X obj 171 96 outlet; +#X obj 12 32 inlet; +#X obj 6 93 outlet; +#X msg 56 156 \$1 \$2 0; +#X obj 24 186 gemhead; +#X obj 26 210 curve 2; +#X msg 134 155 \$1 \$2 0; +#X obj 45 61 lia2D \$0-lia 0 10 2.5 0.1; +#X connect 0 0 7 0; +#X connect 0 0 8 1; +#X connect 2 0 4 0; +#X connect 2 0 8 0; +#X connect 4 0 6 1; +#X connect 5 0 6 0; +#X connect 7 0 6 2; +#X connect 8 0 3 0; +#X connect 8 1 1 0; +#X restore 643 101 pd lia; +#N canvas 0 0 454 304 masse 0; +#X obj 26 38 inlet; +#X obj 11 137 outlet; +#X obj 25 104 unpack s f f; +#X obj 285 48 gemhead; +#X obj 284 89 translateXYZ; +#X obj 281 131 sphere 0.1; +#X obj 24 65 masse2D \$0-masse 50 -0.3 2; +#X connect 0 0 6 0; +#X connect 2 1 4 1; +#X connect 2 2 4 2; +#X connect 3 0 4 0; +#X connect 4 0 5 0; +#X connect 6 0 2 0; +#X connect 6 0 1 0; +#X restore 30 7 pd masse; +#N canvas 0 0 454 304 masse 0; +#X obj 26 38 inlet; +#X obj 11 137 outlet; +#X obj 25 104 unpack s f f; +#X obj 285 48 gemhead; +#X obj 284 89 translateXYZ; +#X obj 281 131 sphere 0.1; +#X obj 24 65 masse2D \$0-masse 50 -0.3 1.5; +#X connect 0 0 6 0; +#X connect 2 1 4 1; +#X connect 2 2 4 2; +#X connect 3 0 4 0; +#X connect 4 0 5 0; +#X connect 6 0 2 0; +#X connect 6 0 1 0; +#X restore 32 214 pd masse; +#N canvas 0 0 458 308 masse 0; +#X obj 26 38 inlet; +#X obj 11 137 outlet; +#X obj 25 104 unpack s f f; +#X obj 285 48 gemhead; +#X obj 284 89 translateXYZ; +#X obj 281 131 sphere 0.1; +#X obj 24 65 masse2D \$0-masse 50 -0.3 1; +#X connect 0 0 6 0; +#X connect 2 1 4 1; +#X connect 2 2 4 2; +#X connect 3 0 4 0; +#X connect 4 0 5 0; +#X connect 6 0 2 0; +#X connect 6 0 1 0; +#X restore 35 398 pd masse; +#N canvas 0 0 454 304 masse 0; +#X obj 26 38 inlet; +#X obj 11 137 outlet; +#X obj 25 104 unpack s f f; +#X obj 285 48 gemhead; +#X obj 284 89 translateXYZ; +#X obj 281 131 sphere 0.1; +#X obj 24 65 masse2D \$0-masse 50 -0.3 0.5; +#X connect 0 0 6 0; +#X connect 2 1 4 1; +#X connect 2 2 4 2; +#X connect 3 0 4 0; +#X connect 4 0 5 0; +#X connect 6 0 2 0; +#X connect 6 0 1 0; +#X restore 38 611 pd masse; +#N canvas 0 0 454 304 masse 0; +#X obj 26 38 inlet; +#X obj 11 137 outlet; +#X obj 25 104 unpack s f f; +#X obj 285 48 gemhead; +#X obj 284 89 translateXYZ; +#X obj 281 131 sphere 0.1; +#X obj 24 65 masse2D \$0-masse 50 -0.3 0; +#X connect 0 0 6 0; +#X connect 2 1 4 1; +#X connect 2 2 4 2; +#X connect 3 0 4 0; +#X connect 4 0 5 0; +#X connect 6 0 2 0; +#X connect 6 0 1 0; +#X restore 32 768 pd masse; +#N canvas 0 0 454 304 masse 0; +#X obj 26 38 inlet; +#X obj 11 137 outlet; +#X obj 25 104 unpack s f f; +#X obj 285 48 gemhead; +#X obj 284 89 translateXYZ; +#X obj 281 131 sphere 0.1; +#X obj 23 66 masse2D \$0-masse 50 0.3 2; +#X connect 0 0 6 0; +#X connect 2 1 4 1; +#X connect 2 2 4 2; +#X connect 3 0 4 0; +#X connect 4 0 5 0; +#X connect 6 0 2 0; +#X connect 6 0 1 0; +#X restore 642 14 pd masse; +#N canvas 0 0 454 304 masse 0; +#X obj 26 38 inlet; +#X obj 11 137 outlet; +#X obj 25 104 unpack s f f; +#X obj 285 48 gemhead; +#X obj 284 89 translateXYZ; +#X obj 281 131 sphere 0.1; +#X obj 24 65 masse2D \$0-masse 50 0.3 1.5; +#X connect 0 0 6 0; +#X connect 2 1 4 1; +#X connect 2 2 4 2; +#X connect 3 0 4 0; +#X connect 4 0 5 0; +#X connect 6 0 2 0; +#X connect 6 0 1 0; +#X restore 640 202 pd masse; +#N canvas 0 0 454 304 masse 0; +#X obj 26 38 inlet; +#X obj 11 137 outlet; +#X obj 25 104 unpack s f f; +#X obj 285 48 gemhead; +#X obj 284 89 translateXYZ; +#X obj 281 131 sphere 0.1; +#X obj 25 65 masse2D \$0-masse 50 0.3 1; +#X connect 0 0 6 0; +#X connect 2 1 4 1; +#X connect 2 2 4 2; +#X connect 3 0 4 0; +#X connect 4 0 5 0; +#X connect 6 0 2 0; +#X connect 6 0 1 0; +#X restore 647 393 pd masse; +#N canvas 0 0 454 304 masse 0; +#X obj 26 38 inlet; +#X obj 11 137 outlet; +#X obj 25 104 unpack s f f; +#X obj 285 48 gemhead; +#X obj 284 89 translateXYZ; +#X obj 281 131 sphere 0.1; +#X obj 24 65 masse2D \$0-masse 50 0.3 0.5; +#X connect 0 0 6 0; +#X connect 2 1 4 1; +#X connect 2 2 4 2; +#X connect 3 0 4 0; +#X connect 4 0 5 0; +#X connect 6 0 2 0; +#X connect 6 0 1 0; +#X restore 655 614 pd masse; +#N canvas 0 0 456 306 masse 0; +#X obj 26 38 inlet; +#X obj 11 137 outlet; +#X obj 25 104 unpack s f f; +#X obj 285 48 gemhead; +#X obj 284 89 translateXYZ; +#X obj 281 131 sphere 0.1; +#X obj 24 65 masse2D \$0-masse 50 0.3 0; +#X connect 0 0 6 0; +#X connect 2 1 4 1; +#X connect 2 2 4 2; +#X connect 3 0 4 0; +#X connect 4 0 5 0; +#X connect 6 0 2 0; +#X connect 6 0 1 0; +#X restore 654 776 pd masse; +#X connect 0 0 27 0; +#X connect 0 1 28 0; +#X connect 1 0 28 0; +#X connect 1 1 32 0; +#X connect 2 0 28 0; +#X connect 2 1 29 0; +#X connect 3 0 29 0; +#X connect 3 1 30 0; +#X connect 4 0 30 0; +#X connect 4 1 31 0; +#X connect 5 0 31 0; +#X connect 5 1 35 0; +#X connect 6 0 31 0; +#X connect 6 1 34 0; +#X connect 7 0 30 0; +#X connect 7 1 34 0; +#X connect 8 0 30 0; +#X connect 8 1 33 0; +#X connect 9 0 29 0; +#X connect 9 1 33 0; +#X connect 10 0 29 0; +#X connect 10 1 32 0; +#X connect 11 0 27 0; +#X connect 11 1 32 0; +#X connect 12 0 28 0; +#X connect 12 1 33 0; +#X connect 13 0 29 0; +#X connect 13 1 34 0; +#X connect 14 0 30 0; +#X connect 14 1 35 0; +#X connect 15 0 31 0; +#X connect 15 1 36 0; +#X connect 16 0 30 0; +#X connect 16 1 36 0; +#X connect 17 0 29 0; +#X connect 17 1 36 0; +#X connect 18 0 35 0; +#X connect 18 1 36 0; +#X connect 19 0 29 0; +#X connect 19 1 35 0; +#X connect 20 0 28 0; +#X connect 20 1 35 0; +#X connect 21 0 34 0; +#X connect 21 1 35 0; +#X connect 22 0 28 0; +#X connect 22 1 34 0; +#X connect 23 0 27 0; +#X connect 23 1 34 0; +#X connect 24 0 33 0; +#X connect 24 1 34 0; +#X connect 25 0 27 0; +#X connect 25 1 33 0; +#X connect 26 0 32 0; +#X connect 26 1 33 0; +#X connect 27 0 0 0; +#X connect 27 0 11 0; +#X connect 27 0 25 0; +#X connect 27 0 23 0; +#X connect 28 0 0 1; +#X connect 28 0 2 0; +#X connect 28 0 12 0; +#X connect 28 0 1 0; +#X connect 28 0 22 0; +#X connect 28 0 20 0; +#X connect 29 0 2 1; +#X connect 29 0 3 0; +#X connect 29 0 13 0; +#X connect 29 0 9 0; +#X connect 29 0 10 0; +#X connect 29 0 19 0; +#X connect 29 0 17 0; +#X connect 30 0 3 1; +#X connect 30 0 4 0; +#X connect 30 0 14 0; +#X connect 30 0 7 0; +#X connect 30 0 8 0; +#X connect 30 0 16 0; +#X connect 31 0 4 1; +#X connect 31 0 15 0; +#X connect 31 0 5 0; +#X connect 31 0 6 0; +#X connect 32 0 26 0; +#X connect 32 0 11 1; +#X connect 32 0 1 1; +#X connect 32 0 10 1; +#X connect 33 0 26 1; +#X connect 33 0 24 0; +#X connect 33 0 12 1; +#X connect 33 0 25 1; +#X connect 33 0 9 1; +#X connect 33 0 8 1; +#X connect 34 0 24 1; +#X connect 34 0 21 0; +#X connect 34 0 13 1; +#X connect 34 0 22 1; +#X connect 34 0 23 1; +#X connect 34 0 6 1; +#X connect 34 0 7 1; +#X connect 35 0 21 1; +#X connect 35 0 18 0; +#X connect 35 0 14 1; +#X connect 35 0 19 1; +#X connect 35 0 20 1; +#X connect 35 0 5 1; +#X connect 36 0 18 1; +#X connect 36 0 15 1; +#X connect 36 0 16 1; +#X connect 36 0 17 1; +#X restore 429 310 pd structure; +#X obj 341 31 loadbang; +#X msg 256 256 force2D 0 2; +#X msg 202 281 force2D -2 0; +#X msg 259 308 force2D 0 -2; +#X msg 313 280 force2D 2 0; +#X obj 65 94 s \$0-lia; +#X obj 30 155 s \$0-masse; +#X obj 341 60 t b b b; +#X msg 392 85 reset; +#X msg 367 110 resetL; +#X msg 341 138 resetF; +#X obj 257 340 s \$0-masse; +#X obj 30 42 metro 50; +#X msg 42 127 force2D 0 -0.1; +#X text 54 402 small game : try to put the structure horizontally on +the floor \, and then back to vertical.; +#X text 383 8 <- reset; +#X text 93 17 <- 1; +#X text 180 194 <- 2; +#X connect 1 0 14 0; +#X connect 1 1 21 0; +#X connect 1 1 13 0; +#X connect 2 0 20 0; +#X connect 3 0 15 0; +#X connect 4 0 5 0; +#X connect 6 0 5 0; +#X connect 8 0 15 0; +#X connect 9 0 19 0; +#X connect 10 0 19 0; +#X connect 11 0 19 0; +#X connect 12 0 19 0; +#X connect 15 0 18 0; +#X connect 15 1 17 0; +#X connect 15 2 16 0; +#X connect 16 0 14 0; +#X connect 17 0 13 0; +#X connect 18 0 13 0; +#X connect 20 0 1 0; +#X connect 21 0 14 0; diff --git a/exemples/11_comportement.pd b/exemples/11_comportement.pd new file mode 100755 index 0000000..d63ae0b --- /dev/null +++ b/exemples/11_comportement.pd @@ -0,0 +1,974 @@ +#N canvas 575 348 594 486 12; +#X obj 32 75 t b b; +#X obj 32 27 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0 1 +; +#X obj 298 29 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 +-1; +#X msg 65 236 0 \, destroy; +#X obj 31 264 gemwin; +#X msg 31 211 reset \, create \, 1; +#N canvas 598 38 899 956 structure 0; +#N canvas 0 0 452 302 lia 0; +#X obj 177 35 inlet; +#X obj 171 96 outlet; +#X obj 12 32 inlet; +#X obj 6 93 outlet; +#X msg 56 156 \$1 \$2 0; +#X obj 24 186 gemhead; +#X obj 26 210 curve 2; +#X msg 134 155 \$1 \$2 0; +#X obj 45 61 lia2D \$0-lia 0 10 2.5 0.1; +#X connect 0 0 7 0; +#X connect 0 0 8 1; +#X connect 2 0 4 0; +#X connect 2 0 8 0; +#X connect 4 0 6 1; +#X connect 5 0 6 0; +#X connect 7 0 6 2; +#X connect 8 0 3 0; +#X connect 8 1 1 0; +#X restore 29 94 pd lia; +#N canvas 0 0 452 302 lia 0; +#X obj 177 35 inlet; +#X obj 171 96 outlet; +#X obj 12 32 inlet; +#X obj 6 93 outlet; +#X msg 56 156 \$1 \$2 0; +#X obj 24 186 gemhead; +#X obj 26 210 curve 2; +#X msg 134 155 \$1 \$2 0; +#X obj 45 61 lia2D \$0-lia 0 10 2.5 0.1; +#X connect 0 0 7 0; +#X connect 0 0 8 1; +#X connect 2 0 4 0; +#X connect 2 0 8 0; +#X connect 4 0 6 1; +#X connect 5 0 6 0; +#X connect 7 0 6 2; +#X connect 8 0 3 0; +#X connect 8 1 1 0; +#X restore 80 187 pd lia; +#N canvas 0 0 452 302 lia 0; +#X obj 177 35 inlet; +#X obj 171 96 outlet; +#X obj 12 32 inlet; +#X obj 6 93 outlet; +#X msg 56 156 \$1 \$2 0; +#X obj 24 186 gemhead; +#X obj 26 210 curve 2; +#X msg 134 155 \$1 \$2 0; +#X obj 45 61 lia2D \$0-lia 0 10 2.5 0.1; +#X connect 0 0 7 0; +#X connect 0 0 8 1; +#X connect 2 0 4 0; +#X connect 2 0 8 0; +#X connect 4 0 6 1; +#X connect 5 0 6 0; +#X connect 7 0 6 2; +#X connect 8 0 3 0; +#X connect 8 1 1 0; +#X restore 36 296 pd lia; +#N canvas 0 0 452 302 lia 0; +#X obj 177 35 inlet; +#X obj 171 96 outlet; +#X obj 12 32 inlet; +#X obj 6 93 outlet; +#X msg 56 156 \$1 \$2 0; +#X obj 24 186 gemhead; +#X obj 26 210 curve 2; +#X msg 134 155 \$1 \$2 0; +#X obj 45 61 lia2D \$0-lia 0 10 2.5 0.1; +#X connect 0 0 7 0; +#X connect 0 0 8 1; +#X connect 2 0 4 0; +#X connect 2 0 8 0; +#X connect 4 0 6 1; +#X connect 5 0 6 0; +#X connect 7 0 6 2; +#X connect 8 0 3 0; +#X connect 8 1 1 0; +#X restore 33 499 pd lia; +#N canvas 0 0 452 302 lia 0; +#X obj 177 35 inlet; +#X obj 171 96 outlet; +#X obj 12 32 inlet; +#X obj 6 93 outlet; +#X msg 56 156 \$1 \$2 0; +#X obj 24 186 gemhead; +#X obj 26 210 curve 2; +#X msg 134 155 \$1 \$2 0; +#X obj 45 61 lia2D \$0-lia 0 10 2.5 0.1; +#X connect 0 0 7 0; +#X connect 0 0 8 1; +#X connect 2 0 4 0; +#X connect 2 0 8 0; +#X connect 4 0 6 1; +#X connect 5 0 6 0; +#X connect 7 0 6 2; +#X connect 8 0 3 0; +#X connect 8 1 1 0; +#X restore 35 675 pd lia; +#N canvas 0 0 452 302 lia 0; +#X obj 177 35 inlet; +#X obj 171 96 outlet; +#X obj 12 32 inlet; +#X obj 6 93 outlet; +#X msg 56 156 \$1 \$2 0; +#X obj 24 186 gemhead; +#X obj 26 210 curve 2; +#X msg 134 155 \$1 \$2 0; +#X obj 45 61 lia2D \$0-lia 0 10 2.5 0.1; +#X connect 0 0 7 0; +#X connect 0 0 8 1; +#X connect 2 0 4 0; +#X connect 2 0 8 0; +#X connect 4 0 6 1; +#X connect 5 0 6 0; +#X connect 7 0 6 2; +#X connect 8 0 3 0; +#X connect 8 1 1 0; +#X restore 87 740 pd lia; +#N canvas 0 0 452 302 lia 0; +#X obj 177 35 inlet; +#X obj 171 96 outlet; +#X obj 12 32 inlet; +#X obj 6 93 outlet; +#X msg 56 156 \$1 \$2 0; +#X obj 24 186 gemhead; +#X obj 26 210 curve 2; +#X msg 134 155 \$1 \$2 0; +#X obj 45 61 lia2D \$0-lia 0 10 2.5 0.1; +#X connect 0 0 7 0; +#X connect 0 0 8 1; +#X connect 2 0 4 0; +#X connect 2 0 8 0; +#X connect 4 0 6 1; +#X connect 5 0 6 0; +#X connect 7 0 6 2; +#X connect 8 0 3 0; +#X connect 8 1 1 0; +#X restore 88 716 pd lia; +#N canvas 0 0 452 302 lia 0; +#X obj 177 35 inlet; +#X obj 171 96 outlet; +#X obj 12 32 inlet; +#X obj 6 93 outlet; +#X msg 56 156 \$1 \$2 0; +#X obj 24 186 gemhead; +#X obj 26 210 curve 2; +#X msg 134 155 \$1 \$2 0; +#X obj 45 61 lia2D \$0-lia 0 10 2.5 0.1; +#X connect 0 0 7 0; +#X connect 0 0 8 1; +#X connect 2 0 4 0; +#X connect 2 0 8 0; +#X connect 4 0 6 1; +#X connect 5 0 6 0; +#X connect 7 0 6 2; +#X connect 8 0 3 0; +#X connect 8 1 1 0; +#X restore 81 574 pd lia; +#N canvas 0 0 452 302 lia 0; +#X obj 177 35 inlet; +#X obj 171 96 outlet; +#X obj 12 32 inlet; +#X obj 6 93 outlet; +#X msg 56 156 \$1 \$2 0; +#X obj 24 186 gemhead; +#X obj 26 210 curve 2; +#X msg 134 155 \$1 \$2 0; +#X obj 45 61 lia2D \$0-lia 0 10 2.5 0.1; +#X connect 0 0 7 0; +#X connect 0 0 8 1; +#X connect 2 0 4 0; +#X connect 2 0 8 0; +#X connect 4 0 6 1; +#X connect 5 0 6 0; +#X connect 7 0 6 2; +#X connect 8 0 3 0; +#X connect 8 1 1 0; +#X restore 82 548 pd lia; +#N canvas 0 0 452 302 lia 0; +#X obj 177 35 inlet; +#X obj 171 96 outlet; +#X obj 12 32 inlet; +#X obj 6 93 outlet; +#X msg 56 156 \$1 \$2 0; +#X obj 24 186 gemhead; +#X obj 26 210 curve 2; +#X msg 134 155 \$1 \$2 0; +#X obj 45 61 lia2D \$0-lia 0 10 2.5 0.1; +#X connect 0 0 7 0; +#X connect 0 0 8 1; +#X connect 2 0 4 0; +#X connect 2 0 8 0; +#X connect 4 0 6 1; +#X connect 5 0 6 0; +#X connect 7 0 6 2; +#X connect 8 0 3 0; +#X connect 8 1 1 0; +#X restore 71 370 pd lia; +#N canvas 0 0 452 302 lia 0; +#X obj 177 35 inlet; +#X obj 171 96 outlet; +#X obj 12 32 inlet; +#X obj 6 93 outlet; +#X msg 56 156 \$1 \$2 0; +#X obj 24 186 gemhead; +#X obj 26 210 curve 2; +#X msg 134 155 \$1 \$2 0; +#X obj 45 61 lia2D \$0-lia 0 10 2.5 0.1; +#X connect 0 0 7 0; +#X connect 0 0 8 1; +#X connect 2 0 4 0; +#X connect 2 0 8 0; +#X connect 4 0 6 1; +#X connect 5 0 6 0; +#X connect 7 0 6 2; +#X connect 8 0 3 0; +#X connect 8 1 1 0; +#X restore 72 345 pd lia; +#N canvas 0 0 452 302 lia 0; +#X obj 177 35 inlet; +#X obj 171 96 outlet; +#X obj 12 32 inlet; +#X obj 6 93 outlet; +#X msg 56 156 \$1 \$2 0; +#X obj 24 186 gemhead; +#X obj 26 210 curve 2; +#X msg 134 155 \$1 \$2 0; +#X obj 45 61 lia2D \$0-lia 0 10 2.5 0.1; +#X connect 0 0 7 0; +#X connect 0 0 8 1; +#X connect 2 0 4 0; +#X connect 2 0 8 0; +#X connect 4 0 6 1; +#X connect 5 0 6 0; +#X connect 7 0 6 2; +#X connect 8 0 3 0; +#X connect 8 1 1 0; +#X restore 359 17 pd lia; +#N canvas 0 0 452 302 lia 0; +#X obj 177 35 inlet; +#X obj 171 96 outlet; +#X obj 12 32 inlet; +#X obj 6 93 outlet; +#X msg 56 156 \$1 \$2 0; +#X obj 24 186 gemhead; +#X obj 26 210 curve 2; +#X msg 134 155 \$1 \$2 0; +#X obj 45 61 lia2D \$0-lia 0 10 2.5 0.1; +#X connect 0 0 7 0; +#X connect 0 0 8 1; +#X connect 2 0 4 0; +#X connect 2 0 8 0; +#X connect 4 0 6 1; +#X connect 5 0 6 0; +#X connect 7 0 6 2; +#X connect 8 0 3 0; +#X connect 8 1 1 0; +#X restore 354 206 pd lia; +#N canvas 0 0 452 302 lia 0; +#X obj 177 35 inlet; +#X obj 171 96 outlet; +#X obj 12 32 inlet; +#X obj 6 93 outlet; +#X msg 56 156 \$1 \$2 0; +#X obj 24 186 gemhead; +#X obj 26 210 curve 2; +#X msg 134 155 \$1 \$2 0; +#X obj 45 61 lia2D \$0-lia 0 10 2.5 0.1; +#X connect 0 0 7 0; +#X connect 0 0 8 1; +#X connect 2 0 4 0; +#X connect 2 0 8 0; +#X connect 4 0 6 1; +#X connect 5 0 6 0; +#X connect 7 0 6 2; +#X connect 8 0 3 0; +#X connect 8 1 1 0; +#X restore 342 400 pd lia; +#N canvas 0 0 452 302 lia 0; +#X obj 177 35 inlet; +#X obj 171 96 outlet; +#X obj 12 32 inlet; +#X obj 6 93 outlet; +#X msg 56 156 \$1 \$2 0; +#X obj 24 186 gemhead; +#X obj 26 210 curve 2; +#X msg 134 155 \$1 \$2 0; +#X obj 45 61 lia2D \$0-lia 0 10 2.5 0.1; +#X connect 0 0 7 0; +#X connect 0 0 8 1; +#X connect 2 0 4 0; +#X connect 2 0 8 0; +#X connect 4 0 6 1; +#X connect 5 0 6 0; +#X connect 7 0 6 2; +#X connect 8 0 3 0; +#X connect 8 1 1 0; +#X restore 354 608 pd lia; +#N canvas 0 0 452 302 lia 0; +#X obj 177 35 inlet; +#X obj 171 96 outlet; +#X obj 12 32 inlet; +#X obj 6 93 outlet; +#X msg 56 156 \$1 \$2 0; +#X obj 24 186 gemhead; +#X obj 26 210 curve 2; +#X msg 134 155 \$1 \$2 0; +#X obj 45 61 lia2D \$0-lia 0 10 2.5 0.1; +#X connect 0 0 7 0; +#X connect 0 0 8 1; +#X connect 2 0 4 0; +#X connect 2 0 8 0; +#X connect 4 0 6 1; +#X connect 5 0 6 0; +#X connect 7 0 6 2; +#X connect 8 0 3 0; +#X connect 8 1 1 0; +#X restore 349 770 pd lia; +#N canvas 0 0 452 302 lia 0; +#X obj 177 35 inlet; +#X obj 171 96 outlet; +#X obj 12 32 inlet; +#X obj 6 93 outlet; +#X msg 56 156 \$1 \$2 0; +#X obj 24 186 gemhead; +#X obj 26 210 curve 2; +#X msg 134 155 \$1 \$2 0; +#X obj 45 61 lia2D \$0-lia 0 10 2.5 0.1; +#X connect 0 0 7 0; +#X connect 0 0 8 1; +#X connect 2 0 4 0; +#X connect 2 0 8 0; +#X connect 4 0 6 1; +#X connect 5 0 6 0; +#X connect 7 0 6 2; +#X connect 8 0 3 0; +#X connect 8 1 1 0; +#X restore 601 748 pd lia; +#N canvas 0 0 452 302 lia 0; +#X obj 177 35 inlet; +#X obj 171 96 outlet; +#X obj 12 32 inlet; +#X obj 6 93 outlet; +#X msg 56 156 \$1 \$2 0; +#X obj 24 186 gemhead; +#X obj 26 210 curve 2; +#X msg 134 155 \$1 \$2 0; +#X obj 45 61 lia2D \$0-lia 0 10 2.5 0.1; +#X connect 0 0 7 0; +#X connect 0 0 8 1; +#X connect 2 0 4 0; +#X connect 2 0 8 0; +#X connect 4 0 6 1; +#X connect 5 0 6 0; +#X connect 7 0 6 2; +#X connect 8 0 3 0; +#X connect 8 1 1 0; +#X restore 601 726 pd lia; +#N canvas 0 0 452 302 lia 0; +#X obj 177 35 inlet; +#X obj 171 96 outlet; +#X obj 12 32 inlet; +#X obj 6 93 outlet; +#X msg 56 156 \$1 \$2 0; +#X obj 24 186 gemhead; +#X obj 26 210 curve 2; +#X msg 134 155 \$1 \$2 0; +#X obj 45 61 lia2D \$0-lia 0 10 2.5 0.1; +#X connect 0 0 7 0; +#X connect 0 0 8 1; +#X connect 2 0 4 0; +#X connect 2 0 8 0; +#X connect 4 0 6 1; +#X connect 5 0 6 0; +#X connect 7 0 6 2; +#X connect 8 0 3 0; +#X connect 8 1 1 0; +#X restore 657 680 pd lia; +#N canvas 0 0 452 302 lia 0; +#X obj 177 35 inlet; +#X obj 171 96 outlet; +#X obj 12 32 inlet; +#X obj 6 93 outlet; +#X msg 56 156 \$1 \$2 0; +#X obj 24 186 gemhead; +#X obj 26 210 curve 2; +#X msg 134 155 \$1 \$2 0; +#X obj 45 61 lia2D \$0-lia 0 10 2.5 0.1; +#X connect 0 0 7 0; +#X connect 0 0 8 1; +#X connect 2 0 4 0; +#X connect 2 0 8 0; +#X connect 4 0 6 1; +#X connect 5 0 6 0; +#X connect 7 0 6 2; +#X connect 8 0 3 0; +#X connect 8 1 1 0; +#X restore 604 579 pd lia; +#N canvas 0 0 452 302 lia 0; +#X obj 177 35 inlet; +#X obj 171 96 outlet; +#X obj 12 32 inlet; +#X obj 6 93 outlet; +#X msg 56 156 \$1 \$2 0; +#X obj 24 186 gemhead; +#X obj 26 210 curve 2; +#X msg 134 155 \$1 \$2 0; +#X obj 45 61 lia2D \$0-lia 0 10 2.5 0.1; +#X connect 0 0 7 0; +#X connect 0 0 8 1; +#X connect 2 0 4 0; +#X connect 2 0 8 0; +#X connect 4 0 6 1; +#X connect 5 0 6 0; +#X connect 7 0 6 2; +#X connect 8 0 3 0; +#X connect 8 1 1 0; +#X restore 604 555 pd lia; +#N canvas 0 0 452 302 lia 0; +#X obj 177 35 inlet; +#X obj 171 96 outlet; +#X obj 12 32 inlet; +#X obj 6 93 outlet; +#X msg 56 156 \$1 \$2 0; +#X obj 24 186 gemhead; +#X obj 26 210 curve 2; +#X msg 134 155 \$1 \$2 0; +#X obj 45 61 lia2D \$0-lia 0 10 2.5 0.1; +#X connect 0 0 7 0; +#X connect 0 0 8 1; +#X connect 2 0 4 0; +#X connect 2 0 8 0; +#X connect 4 0 6 1; +#X connect 5 0 6 0; +#X connect 7 0 6 2; +#X connect 8 0 3 0; +#X connect 8 1 1 0; +#X restore 651 490 pd lia; +#N canvas 0 0 452 302 lia 0; +#X obj 177 35 inlet; +#X obj 171 96 outlet; +#X obj 12 32 inlet; +#X obj 6 93 outlet; +#X msg 56 156 \$1 \$2 0; +#X obj 24 186 gemhead; +#X obj 26 210 curve 2; +#X msg 134 155 \$1 \$2 0; +#X obj 45 61 lia2D \$0-lia 0 10 2.5 0.1; +#X connect 0 0 7 0; +#X connect 0 0 8 1; +#X connect 2 0 4 0; +#X connect 2 0 8 0; +#X connect 4 0 6 1; +#X connect 5 0 6 0; +#X connect 7 0 6 2; +#X connect 8 0 3 0; +#X connect 8 1 1 0; +#X restore 578 365 pd lia; +#N canvas 0 0 452 302 lia 0; +#X obj 177 35 inlet; +#X obj 171 96 outlet; +#X obj 12 32 inlet; +#X obj 6 93 outlet; +#X msg 56 156 \$1 \$2 0; +#X obj 24 186 gemhead; +#X obj 26 210 curve 2; +#X msg 134 155 \$1 \$2 0; +#X obj 45 61 lia2D \$0-lia 0 10 2.5 0.1; +#X connect 0 0 7 0; +#X connect 0 0 8 1; +#X connect 2 0 4 0; +#X connect 2 0 8 0; +#X connect 4 0 6 1; +#X connect 5 0 6 0; +#X connect 7 0 6 2; +#X connect 8 0 3 0; +#X connect 8 1 1 0; +#X restore 576 342 pd lia; +#N canvas 0 0 452 302 lia 0; +#X obj 177 35 inlet; +#X obj 171 96 outlet; +#X obj 12 32 inlet; +#X obj 6 93 outlet; +#X msg 56 156 \$1 \$2 0; +#X obj 24 186 gemhead; +#X obj 26 210 curve 2; +#X msg 134 155 \$1 \$2 0; +#X obj 45 61 lia2D \$0-lia 0 10 2.5 0.1; +#X connect 0 0 7 0; +#X connect 0 0 8 1; +#X connect 2 0 4 0; +#X connect 2 0 8 0; +#X connect 4 0 6 1; +#X connect 5 0 6 0; +#X connect 7 0 6 2; +#X connect 8 0 3 0; +#X connect 8 1 1 0; +#X restore 642 293 pd lia; +#N canvas 0 0 452 302 lia 0; +#X obj 177 35 inlet; +#X obj 171 96 outlet; +#X obj 12 32 inlet; +#X obj 6 93 outlet; +#X msg 56 156 \$1 \$2 0; +#X obj 24 186 gemhead; +#X obj 26 210 curve 2; +#X msg 134 155 \$1 \$2 0; +#X obj 45 61 lia2D \$0-lia 0 10 2.5 0.1; +#X connect 0 0 7 0; +#X connect 0 0 8 1; +#X connect 2 0 4 0; +#X connect 2 0 8 0; +#X connect 4 0 6 1; +#X connect 5 0 6 0; +#X connect 7 0 6 2; +#X connect 8 0 3 0; +#X connect 8 1 1 0; +#X restore 575 180 pd lia; +#N canvas 0 0 452 302 lia 0; +#X obj 177 35 inlet; +#X obj 171 96 outlet; +#X obj 12 32 inlet; +#X obj 6 93 outlet; +#X msg 56 156 \$1 \$2 0; +#X obj 24 186 gemhead; +#X obj 26 210 curve 2; +#X msg 134 155 \$1 \$2 0; +#X obj 45 61 lia2D \$0-lia 0 10 2.5 0.1; +#X connect 0 0 7 0; +#X connect 0 0 8 1; +#X connect 2 0 4 0; +#X connect 2 0 8 0; +#X connect 4 0 6 1; +#X connect 5 0 6 0; +#X connect 7 0 6 2; +#X connect 8 0 3 0; +#X connect 8 1 1 0; +#X restore 643 101 pd lia; +#N canvas 0 0 454 304 masse 0; +#X obj 26 38 inlet; +#X obj 11 137 outlet; +#X obj 25 104 unpack s f f; +#X obj 285 48 gemhead; +#X obj 284 89 translateXYZ; +#X obj 281 131 sphere 0.1; +#X obj 24 65 masse2D \$0-masse 50 -0.3 2; +#X connect 0 0 6 0; +#X connect 2 1 4 1; +#X connect 2 2 4 2; +#X connect 3 0 4 0; +#X connect 4 0 5 0; +#X connect 6 0 2 0; +#X connect 6 0 1 0; +#X restore 30 7 pd masse; +#N canvas 0 0 454 304 masse 0; +#X obj 26 38 inlet; +#X obj 11 137 outlet; +#X obj 25 104 unpack s f f; +#X obj 285 48 gemhead; +#X obj 284 89 translateXYZ; +#X obj 281 131 sphere 0.1; +#X obj 24 65 masse2D \$0-masse 50 -0.3 1.5; +#X connect 0 0 6 0; +#X connect 2 1 4 1; +#X connect 2 2 4 2; +#X connect 3 0 4 0; +#X connect 4 0 5 0; +#X connect 6 0 2 0; +#X connect 6 0 1 0; +#X restore 32 214 pd masse; +#N canvas 0 0 458 308 masse 0; +#X obj 26 38 inlet; +#X obj 11 137 outlet; +#X obj 25 104 unpack s f f; +#X obj 285 48 gemhead; +#X obj 284 89 translateXYZ; +#X obj 281 131 sphere 0.1; +#X obj 24 65 masse2D \$0-masse 50 -0.3 1; +#X connect 0 0 6 0; +#X connect 2 1 4 1; +#X connect 2 2 4 2; +#X connect 3 0 4 0; +#X connect 4 0 5 0; +#X connect 6 0 2 0; +#X connect 6 0 1 0; +#X restore 35 398 pd masse; +#N canvas 0 0 456 306 masse 0; +#X obj 26 38 inlet; +#X obj 11 137 outlet; +#X obj 25 104 unpack s f f; +#X obj 285 48 gemhead; +#X obj 284 89 translateXYZ; +#X obj 281 131 sphere 0.1; +#X obj 24 65 masse2D \$0-masse 50 -0.3 0.5; +#X connect 0 0 6 0; +#X connect 2 1 4 1; +#X connect 2 2 4 2; +#X connect 3 0 4 0; +#X connect 4 0 5 0; +#X connect 6 0 2 0; +#X connect 6 0 1 0; +#X restore 38 611 pd masse; +#N canvas 0 0 454 304 masse 0; +#X obj 26 38 inlet; +#X obj 11 137 outlet; +#X obj 25 104 unpack s f f; +#X obj 285 48 gemhead; +#X obj 284 89 translateXYZ; +#X obj 281 131 sphere 0.1; +#X obj 24 65 masse2D \$0-masse 50 -0.3 0; +#X connect 0 0 6 0; +#X connect 2 1 4 1; +#X connect 2 2 4 2; +#X connect 3 0 4 0; +#X connect 4 0 5 0; +#X connect 6 0 2 0; +#X connect 6 0 1 0; +#X restore 32 768 pd masse; +#N canvas 0 0 454 304 masse 0; +#X obj 26 38 inlet; +#X obj 11 137 outlet; +#X obj 25 104 unpack s f f; +#X obj 285 48 gemhead; +#X obj 284 89 translateXYZ; +#X obj 281 131 sphere 0.1; +#X obj 23 66 masse2D \$0-masse 50 0.3 2; +#X connect 0 0 6 0; +#X connect 2 1 4 1; +#X connect 2 2 4 2; +#X connect 3 0 4 0; +#X connect 4 0 5 0; +#X connect 6 0 2 0; +#X connect 6 0 1 0; +#X restore 642 14 pd masse; +#N canvas 0 0 454 304 masse 0; +#X obj 26 38 inlet; +#X obj 11 137 outlet; +#X obj 25 104 unpack s f f; +#X obj 285 48 gemhead; +#X obj 284 89 translateXYZ; +#X obj 281 131 sphere 0.1; +#X obj 24 65 masse2D \$0-masse 50 0.3 1.5; +#X connect 0 0 6 0; +#X connect 2 1 4 1; +#X connect 2 2 4 2; +#X connect 3 0 4 0; +#X connect 4 0 5 0; +#X connect 6 0 2 0; +#X connect 6 0 1 0; +#X restore 640 202 pd masse; +#N canvas 0 0 454 304 masse 0; +#X obj 26 38 inlet; +#X obj 11 137 outlet; +#X obj 25 104 unpack s f f; +#X obj 285 48 gemhead; +#X obj 284 89 translateXYZ; +#X obj 281 131 sphere 0.1; +#X obj 25 65 masse2D \$0-masse 50 0.3 1; +#X connect 0 0 6 0; +#X connect 2 1 4 1; +#X connect 2 2 4 2; +#X connect 3 0 4 0; +#X connect 4 0 5 0; +#X connect 6 0 2 0; +#X connect 6 0 1 0; +#X restore 647 393 pd masse; +#N canvas 0 0 454 304 masse 0; +#X obj 26 38 inlet; +#X obj 11 137 outlet; +#X obj 25 104 unpack s f f; +#X obj 285 48 gemhead; +#X obj 284 89 translateXYZ; +#X obj 281 131 sphere 0.1; +#X obj 24 65 masse2D \$0-masse 50 0.3 0.5; +#X connect 0 0 6 0; +#X connect 2 1 4 1; +#X connect 2 2 4 2; +#X connect 3 0 4 0; +#X connect 4 0 5 0; +#X connect 6 0 2 0; +#X connect 6 0 1 0; +#X restore 655 614 pd masse; +#N canvas 0 0 456 306 masse 0; +#X obj 26 38 inlet; +#X obj 11 137 outlet; +#X obj 25 104 unpack s f f; +#X obj 285 48 gemhead; +#X obj 284 89 translateXYZ; +#X obj 281 131 sphere 0.1; +#X obj 24 65 masse2D \$0-masse 50 0.3 0; +#X connect 0 0 6 0; +#X connect 2 1 4 1; +#X connect 2 2 4 2; +#X connect 3 0 4 0; +#X connect 4 0 5 0; +#X connect 6 0 2 0; +#X connect 6 0 1 0; +#X restore 654 776 pd masse; +#X connect 0 0 27 0; +#X connect 0 1 28 0; +#X connect 1 0 28 0; +#X connect 1 1 32 0; +#X connect 2 0 28 0; +#X connect 2 1 29 0; +#X connect 3 0 29 0; +#X connect 3 1 30 0; +#X connect 4 0 30 0; +#X connect 4 1 31 0; +#X connect 5 0 31 0; +#X connect 5 1 35 0; +#X connect 6 0 31 0; +#X connect 6 1 34 0; +#X connect 7 0 30 0; +#X connect 7 1 34 0; +#X connect 8 0 30 0; +#X connect 8 1 33 0; +#X connect 9 0 29 0; +#X connect 9 1 33 0; +#X connect 10 0 29 0; +#X connect 10 1 32 0; +#X connect 11 0 27 0; +#X connect 11 1 32 0; +#X connect 12 0 28 0; +#X connect 12 1 33 0; +#X connect 13 0 29 0; +#X connect 13 1 34 0; +#X connect 14 0 30 0; +#X connect 14 1 35 0; +#X connect 15 0 31 0; +#X connect 15 1 36 0; +#X connect 16 0 30 0; +#X connect 16 1 36 0; +#X connect 17 0 29 0; +#X connect 17 1 36 0; +#X connect 18 0 35 0; +#X connect 18 1 36 0; +#X connect 19 0 29 0; +#X connect 19 1 35 0; +#X connect 20 0 28 0; +#X connect 20 1 35 0; +#X connect 21 0 34 0; +#X connect 21 1 35 0; +#X connect 22 0 28 0; +#X connect 22 1 34 0; +#X connect 23 0 27 0; +#X connect 23 1 34 0; +#X connect 24 0 33 0; +#X connect 24 1 34 0; +#X connect 25 0 27 0; +#X connect 25 1 33 0; +#X connect 26 0 32 0; +#X connect 26 1 33 0; +#X connect 27 0 0 0; +#X connect 27 0 11 0; +#X connect 27 0 25 0; +#X connect 27 0 23 0; +#X connect 28 0 0 1; +#X connect 28 0 2 0; +#X connect 28 0 12 0; +#X connect 28 0 1 0; +#X connect 28 0 22 0; +#X connect 28 0 20 0; +#X connect 29 0 2 1; +#X connect 29 0 3 0; +#X connect 29 0 13 0; +#X connect 29 0 9 0; +#X connect 29 0 10 0; +#X connect 29 0 19 0; +#X connect 29 0 17 0; +#X connect 30 0 3 1; +#X connect 30 0 4 0; +#X connect 30 0 14 0; +#X connect 30 0 7 0; +#X connect 30 0 8 0; +#X connect 30 0 16 0; +#X connect 31 0 4 1; +#X connect 31 0 15 0; +#X connect 31 0 5 0; +#X connect 31 0 6 0; +#X connect 32 0 26 0; +#X connect 32 0 11 1; +#X connect 32 0 1 1; +#X connect 32 0 10 1; +#X connect 33 0 26 1; +#X connect 33 0 24 0; +#X connect 33 0 12 1; +#X connect 33 0 25 1; +#X connect 33 0 9 1; +#X connect 33 0 8 1; +#X connect 34 0 24 1; +#X connect 34 0 21 0; +#X connect 34 0 13 1; +#X connect 34 0 22 1; +#X connect 34 0 23 1; +#X connect 34 0 6 1; +#X connect 34 0 7 1; +#X connect 35 0 21 1; +#X connect 35 0 18 0; +#X connect 35 0 14 1; +#X connect 35 0 19 1; +#X connect 35 0 20 1; +#X connect 35 0 5 1; +#X connect 36 0 18 1; +#X connect 36 0 15 1; +#X connect 36 0 16 1; +#X connect 36 0 17 1; +#X restore 407 307 pd structure; +#N canvas 157 92 871 502 init 0; +#X msg 245 351 setK \$1; +#X msg 427 318 setD \$1; +#X floatatom 245 276 5 -10 200 0 - - -; +#X floatatom 427 267 5 0 0 0 - - -; +#X obj 245 325 / 10; +#X obj 245 299 + 1; +#X obj 427 291 / 10; +#X obj 49 50 loadbang; +#X floatatom 611 259 5 0 0 0 - - -; +#X obj 611 283 / 10; +#X msg 611 310 setD2 \$1; +#X obj 47 201 s \$0-masse; +#X obj 245 383 s \$0-lia; +#X obj 217 28 loadbang; +#X obj 269 110 sel 0 1 2 3; +#X obj 268 71 r preset; +#X obj 406 25 loadbang; +#X obj 458 107 sel 0 1 2 3; +#X obj 457 68 r preset; +#X obj 593 22 loadbang; +#X obj 645 104 sel 0 1 2 3; +#X obj 644 65 r preset; +#X msg 224 144 25; +#X msg 414 141 7; +#X msg 601 138 1; +#X msg 275 143 1; +#X msg 651 137 0.1; +#X msg 463 140 0.2; +#X msg 326 142 30; +#X msg 514 139 13; +#X msg 701 136 0.1; +#X msg 371 142 10; +#X msg 560 139 0.2; +#X msg 747 136 0.2; +#X msg 44 84 setXmin -3.8; +#X msg 58 110 setXmax 3.8; +#X msg 75 135 setYmin -3.8; +#X msg 89 161 setYmax 3.8; +#X connect 0 0 12 0; +#X connect 1 0 12 0; +#X connect 2 0 5 0; +#X connect 3 0 6 0; +#X connect 4 0 0 0; +#X connect 5 0 4 0; +#X connect 6 0 1 0; +#X connect 7 0 34 0; +#X connect 7 0 35 0; +#X connect 7 0 36 0; +#X connect 7 0 37 0; +#X connect 8 0 9 0; +#X connect 9 0 10 0; +#X connect 10 0 12 0; +#X connect 13 0 22 0; +#X connect 14 0 22 0; +#X connect 14 1 25 0; +#X connect 14 2 28 0; +#X connect 14 3 31 0; +#X connect 15 0 14 0; +#X connect 16 0 23 0; +#X connect 17 0 23 0; +#X connect 17 1 27 0; +#X connect 17 2 29 0; +#X connect 17 3 32 0; +#X connect 18 0 17 0; +#X connect 19 0 24 0; +#X connect 20 0 24 0; +#X connect 20 1 26 0; +#X connect 20 2 30 0; +#X connect 20 3 33 0; +#X connect 21 0 20 0; +#X connect 22 0 2 0; +#X connect 23 0 3 0; +#X connect 24 0 8 0; +#X connect 25 0 2 0; +#X connect 26 0 8 0; +#X connect 27 0 3 0; +#X connect 28 0 2 0; +#X connect 29 0 3 0; +#X connect 30 0 8 0; +#X connect 31 0 2 0; +#X connect 32 0 3 0; +#X connect 33 0 8 0; +#X connect 34 0 11 0; +#X connect 35 0 11 0; +#X connect 36 0 11 0; +#X connect 37 0 11 0; +#X restore 407 280 pd init; +#X obj 319 28 loadbang; +#X msg 235 252 force2D 0 2; +#X msg 180 278 force2D -2 0; +#X msg 237 305 force2D 0 -2; +#X msg 291 277 force2D 2 0; +#X obj 32 48 metro 5; +#X obj 67 100 s \$0-lia; +#X obj 32 161 s \$0-masse; +#X obj 319 57 t b b b; +#X msg 370 82 reset; +#X msg 345 107 resetL; +#X msg 319 135 resetF; +#X obj 235 337 s \$0-masse; +#N canvas 894 558 454 304 gravite 0; +#X obj 80 154 inlet; +#X obj 79 241 outlet; +#X obj 80 184 f; +#X msg 81 213 force2D 0 \$1; +#X obj 185 29 loadbang; +#X obj 269 110 sel 0 1 2 3; +#X obj 268 71 r preset; +#X msg 224 144 -0.01; +#X msg 275 143 -0.003; +#X msg 325 142 -0.003; +#X msg 386 142 -0.03; +#X connect 0 0 2 0; +#X connect 2 0 3 0; +#X connect 3 0 1 0; +#X connect 4 0 7 0; +#X connect 5 0 7 0; +#X connect 5 1 8 0; +#X connect 5 2 9 0; +#X connect 5 3 10 0; +#X connect 6 0 5 0; +#X connect 7 0 2 1; +#X connect 8 0 2 1; +#X connect 9 0 2 1; +#X connect 10 0 2 1; +#X restore 80 129 pd gravite; +#X obj 451 118 vradio 15 1 0 4 empty empty empty 0 -6 0 8 -262144 -1 +-1 0; +#X obj 451 184 s preset; +#X text 52 410 the diferent preset show diferents kind of comportement +for the structure.; +#X text 55 25 <- 1; +#X text 174 213 <- 2; +#X connect 0 0 15 0; +#X connect 0 1 14 0; +#X connect 0 1 21 0; +#X connect 1 0 13 0; +#X connect 2 0 16 0; +#X connect 3 0 4 0; +#X connect 5 0 4 0; +#X connect 8 0 16 0; +#X connect 9 0 20 0; +#X connect 10 0 20 0; +#X connect 11 0 20 0; +#X connect 12 0 20 0; +#X connect 13 0 0 0; +#X connect 16 0 19 0; +#X connect 16 1 18 0; +#X connect 16 2 17 0; +#X connect 17 0 15 0; +#X connect 18 0 14 0; +#X connect 19 0 14 0; +#X connect 21 0 15 0; +#X connect 22 0 23 0; diff --git a/exemples/12_exitation.pd b/exemples/12_exitation.pd new file mode 100755 index 0000000..12cd023 --- /dev/null +++ b/exemples/12_exitation.pd @@ -0,0 +1,1838 @@ +#N canvas 120 -1 585 638 12; +#X obj 32 75 t b b; +#X obj 32 27 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 1 1 +; +#X obj 170 26 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 +-1; +#X msg 73 277 0 \, destroy; +#X obj 39 305 gemwin; +#X msg 39 252 reset \, create \, 1; +#N canvas 46 337 1195 749 structure 0; +#N canvas 0 0 452 302 lia 0; +#X obj 177 35 inlet; +#X obj 171 96 outlet; +#X obj 12 32 inlet; +#X obj 6 93 outlet; +#X msg 56 156 \$1 \$2 0; +#X obj 24 186 gemhead; +#X obj 26 210 curve 2; +#X msg 134 155 \$1 \$2 0; +#X obj 45 61 lia2D \$0-lia 0 10 2.5 0.1; +#X connect 0 0 7 0; +#X connect 0 0 8 1; +#X connect 2 0 4 0; +#X connect 2 0 8 0; +#X connect 4 0 6 1; +#X connect 5 0 6 0; +#X connect 7 0 6 2; +#X connect 8 0 3 0; +#X connect 8 1 1 0; +#X restore 25 279 pd lia; +#N canvas 0 0 452 302 lia 0; +#X obj 177 35 inlet; +#X obj 171 96 outlet; +#X obj 12 32 inlet; +#X obj 6 93 outlet; +#X msg 56 156 \$1 \$2 0; +#X obj 24 186 gemhead; +#X obj 26 210 curve 2; +#X msg 134 155 \$1 \$2 0; +#X obj 45 61 lia2D \$0-lia 0 10 2.5 0.1; +#X connect 0 0 7 0; +#X connect 0 0 8 1; +#X connect 2 0 4 0; +#X connect 2 0 8 0; +#X connect 4 0 6 1; +#X connect 5 0 6 0; +#X connect 7 0 6 2; +#X connect 8 0 3 0; +#X connect 8 1 1 0; +#X restore 77 344 pd lia; +#N canvas 0 0 452 302 lia 0; +#X obj 177 35 inlet; +#X obj 171 96 outlet; +#X obj 12 32 inlet; +#X obj 6 93 outlet; +#X msg 56 156 \$1 \$2 0; +#X obj 24 186 gemhead; +#X obj 26 210 curve 2; +#X msg 134 155 \$1 \$2 0; +#X obj 45 61 lia2D \$0-lia 0 10 2.5 0.1; +#X connect 0 0 7 0; +#X connect 0 0 8 1; +#X connect 2 0 4 0; +#X connect 2 0 8 0; +#X connect 4 0 6 1; +#X connect 5 0 6 0; +#X connect 7 0 6 2; +#X connect 8 0 3 0; +#X connect 8 1 1 0; +#X restore 119 216 pd lia; +#N canvas 0 0 452 302 lia 0; +#X obj 177 35 inlet; +#X obj 171 96 outlet; +#X obj 12 32 inlet; +#X obj 6 93 outlet; +#X msg 56 156 \$1 \$2 0; +#X obj 24 186 gemhead; +#X obj 26 210 curve 2; +#X msg 134 155 \$1 \$2 0; +#X obj 45 61 lia2D \$0-lia 0 10 2.5 0.1; +#X connect 0 0 7 0; +#X connect 0 0 8 1; +#X connect 2 0 4 0; +#X connect 2 0 8 0; +#X connect 4 0 6 1; +#X connect 5 0 6 0; +#X connect 7 0 6 2; +#X connect 8 0 3 0; +#X connect 8 1 1 0; +#X restore 114 378 pd lia; +#N canvas 0 0 452 302 lia 0; +#X obj 177 35 inlet; +#X obj 171 96 outlet; +#X obj 12 32 inlet; +#X obj 6 93 outlet; +#X msg 56 156 \$1 \$2 0; +#X obj 24 186 gemhead; +#X obj 26 210 curve 2; +#X msg 134 155 \$1 \$2 0; +#X obj 45 61 lia2D \$0-lia 0 10 2.5 0.1; +#X connect 0 0 7 0; +#X connect 0 0 8 1; +#X connect 2 0 4 0; +#X connect 2 0 8 0; +#X connect 4 0 6 1; +#X connect 5 0 6 0; +#X connect 7 0 6 2; +#X connect 8 0 3 0; +#X connect 8 1 1 0; +#X restore 141 350 pd lia; +#N canvas 0 0 452 302 lia 0; +#X obj 177 35 inlet; +#X obj 171 96 outlet; +#X obj 12 32 inlet; +#X obj 6 93 outlet; +#X msg 56 156 \$1 \$2 0; +#X obj 24 186 gemhead; +#X obj 26 210 curve 2; +#X msg 134 155 \$1 \$2 0; +#X obj 45 61 lia2D \$0-lia 0 10 2.5 0.1; +#X connect 0 0 7 0; +#X connect 0 0 8 1; +#X connect 2 0 4 0; +#X connect 2 0 8 0; +#X connect 4 0 6 1; +#X connect 5 0 6 0; +#X connect 7 0 6 2; +#X connect 8 0 3 0; +#X connect 8 1 1 0; +#X restore 197 282 pd lia; +#N canvas 0 0 460 310 masse 0; +#X obj 26 38 inlet; +#X obj 11 137 outlet; +#X obj 25 104 unpack s f f; +#X obj 285 48 gemhead; +#X obj 284 89 translateXYZ; +#X obj 281 131 sphere 0.1; +#X obj 24 65 masse2D \$0-masse 50 -1 0.5; +#X connect 0 0 6 0; +#X connect 2 1 4 1; +#X connect 2 2 4 2; +#X connect 3 0 4 0; +#X connect 4 0 5 0; +#X connect 6 0 2 0; +#X connect 6 0 1 0; +#X restore 28 215 pd masse; +#N canvas 0 0 456 306 masse 0; +#X obj 26 38 inlet; +#X obj 11 137 outlet; +#X obj 25 104 unpack s f f; +#X obj 285 48 gemhead; +#X obj 284 89 translateXYZ; +#X obj 281 131 sphere 0.1; +#X obj 24 65 masse2D \$0-masse 50 -1 0; +#X connect 0 0 6 0; +#X connect 2 1 4 1; +#X connect 2 2 4 2; +#X connect 3 0 4 0; +#X connect 4 0 5 0; +#X connect 6 0 2 0; +#X connect 6 0 1 0; +#X restore 22 372 pd masse; +#N canvas 0 0 456 306 masse 0; +#X obj 26 38 inlet; +#X obj 11 137 outlet; +#X obj 25 104 unpack s f f; +#X obj 285 48 gemhead; +#X obj 284 89 translateXYZ; +#X obj 281 131 sphere 0.1; +#X obj 24 65 masse2D \$0-masse 50 -0.5 0.5; +#X connect 0 0 6 0; +#X connect 2 1 4 1; +#X connect 2 2 4 2; +#X connect 3 0 4 0; +#X connect 4 0 5 0; +#X connect 6 0 2 0; +#X connect 6 0 1 0; +#X restore 195 216 pd masse; +#N canvas 0 0 458 308 masse 0; +#X obj 26 38 inlet; +#X obj 11 137 outlet; +#X obj 25 104 unpack s f f; +#X obj 285 48 gemhead; +#X obj 284 89 translateXYZ; +#X obj 281 131 sphere 0.1; +#X obj 24 65 masse2D \$0-masse 50 -0.5 0; +#X connect 0 0 6 0; +#X connect 2 1 4 1; +#X connect 2 2 4 2; +#X connect 3 0 4 0; +#X connect 4 0 5 0; +#X connect 6 0 2 0; +#X connect 6 0 1 0; +#X restore 194 379 pd masse; +#N canvas 0 0 452 302 lia 0; +#X obj 177 35 inlet; +#X obj 171 96 outlet; +#X obj 12 32 inlet; +#X obj 6 93 outlet; +#X msg 56 156 \$1 \$2 0; +#X obj 24 186 gemhead; +#X obj 26 210 curve 2; +#X msg 134 155 \$1 \$2 0; +#X obj 45 61 lia2D \$0-lia 0 10 2.5 0.1; +#X connect 0 0 7 0; +#X connect 0 0 8 1; +#X connect 2 0 4 0; +#X connect 2 0 8 0; +#X connect 4 0 6 1; +#X connect 5 0 6 0; +#X connect 7 0 6 2; +#X connect 8 0 3 0; +#X connect 8 1 1 0; +#X restore 365 279 pd lia; +#N canvas 0 0 452 302 lia 0; +#X obj 177 35 inlet; +#X obj 171 96 outlet; +#X obj 12 32 inlet; +#X obj 6 93 outlet; +#X msg 56 156 \$1 \$2 0; +#X obj 24 186 gemhead; +#X obj 26 210 curve 2; +#X msg 134 155 \$1 \$2 0; +#X obj 45 61 lia2D \$0-lia 0 10 2.5 0.1; +#X connect 0 0 7 0; +#X connect 0 0 8 1; +#X connect 2 0 4 0; +#X connect 2 0 8 0; +#X connect 4 0 6 1; +#X connect 5 0 6 0; +#X connect 7 0 6 2; +#X connect 8 0 3 0; +#X connect 8 1 1 0; +#X restore 417 344 pd lia; +#N canvas 0 0 452 302 lia 0; +#X obj 177 35 inlet; +#X obj 171 96 outlet; +#X obj 12 32 inlet; +#X obj 6 93 outlet; +#X msg 56 156 \$1 \$2 0; +#X obj 24 186 gemhead; +#X obj 26 210 curve 2; +#X msg 134 155 \$1 \$2 0; +#X obj 45 61 lia2D \$0-lia 0 10 2.5 0.1; +#X connect 0 0 7 0; +#X connect 0 0 8 1; +#X connect 2 0 4 0; +#X connect 2 0 8 0; +#X connect 4 0 6 1; +#X connect 5 0 6 0; +#X connect 7 0 6 2; +#X connect 8 0 3 0; +#X connect 8 1 1 0; +#X restore 459 216 pd lia; +#N canvas 0 0 452 302 lia 0; +#X obj 177 35 inlet; +#X obj 171 96 outlet; +#X obj 12 32 inlet; +#X obj 6 93 outlet; +#X msg 56 156 \$1 \$2 0; +#X obj 24 186 gemhead; +#X obj 26 210 curve 2; +#X msg 134 155 \$1 \$2 0; +#X obj 45 61 lia2D \$0-lia 0 10 2.5 0.1; +#X connect 0 0 7 0; +#X connect 0 0 8 1; +#X connect 2 0 4 0; +#X connect 2 0 8 0; +#X connect 4 0 6 1; +#X connect 5 0 6 0; +#X connect 7 0 6 2; +#X connect 8 0 3 0; +#X connect 8 1 1 0; +#X restore 454 378 pd lia; +#N canvas 0 0 452 302 lia 0; +#X obj 177 35 inlet; +#X obj 171 96 outlet; +#X obj 12 32 inlet; +#X obj 6 93 outlet; +#X msg 56 156 \$1 \$2 0; +#X obj 24 186 gemhead; +#X obj 26 210 curve 2; +#X msg 134 155 \$1 \$2 0; +#X obj 45 61 lia2D \$0-lia 0 10 2.5 0.1; +#X connect 0 0 7 0; +#X connect 0 0 8 1; +#X connect 2 0 4 0; +#X connect 2 0 8 0; +#X connect 4 0 6 1; +#X connect 5 0 6 0; +#X connect 7 0 6 2; +#X connect 8 0 3 0; +#X connect 8 1 1 0; +#X restore 481 350 pd lia; +#N canvas 0 0 452 302 lia 0; +#X obj 177 35 inlet; +#X obj 171 96 outlet; +#X obj 12 32 inlet; +#X obj 6 93 outlet; +#X msg 56 156 \$1 \$2 0; +#X obj 24 186 gemhead; +#X obj 26 210 curve 2; +#X msg 134 155 \$1 \$2 0; +#X obj 45 61 lia2D \$0-lia 0 10 2.5 0.1; +#X connect 0 0 7 0; +#X connect 0 0 8 1; +#X connect 2 0 4 0; +#X connect 2 0 8 0; +#X connect 4 0 6 1; +#X connect 5 0 6 0; +#X connect 7 0 6 2; +#X connect 8 0 3 0; +#X connect 8 1 1 0; +#X restore 537 282 pd lia; +#N canvas 0 0 456 306 masse 0; +#X obj 26 38 inlet; +#X obj 11 137 outlet; +#X obj 25 104 unpack s f f; +#X obj 285 48 gemhead; +#X obj 284 89 translateXYZ; +#X obj 281 131 sphere 0.1; +#X obj 24 65 masse2D \$0-masse 50 0 0.5; +#X connect 0 0 6 0; +#X connect 2 1 4 1; +#X connect 2 2 4 2; +#X connect 3 0 4 0; +#X connect 4 0 5 0; +#X connect 6 0 2 0; +#X connect 6 0 1 0; +#X restore 368 215 pd masse; +#N canvas 0 0 456 306 masse 0; +#X obj 26 38 inlet; +#X obj 11 137 outlet; +#X obj 25 104 unpack s f f; +#X obj 285 48 gemhead; +#X obj 284 89 translateXYZ; +#X obj 281 131 sphere 0.1; +#X obj 24 65 masse2D \$0-masse 50 0 0; +#X connect 0 0 6 0; +#X connect 2 1 4 1; +#X connect 2 2 4 2; +#X connect 3 0 4 0; +#X connect 4 0 5 0; +#X connect 6 0 2 0; +#X connect 6 0 1 0; +#X restore 362 372 pd masse; +#N canvas 0 0 456 306 masse 0; +#X obj 26 38 inlet; +#X obj 11 137 outlet; +#X obj 25 104 unpack s f f; +#X obj 285 48 gemhead; +#X obj 284 89 translateXYZ; +#X obj 281 131 sphere 0.1; +#X obj 24 65 masse2D \$0-masse 50 0.5 0.5; +#X connect 0 0 6 0; +#X connect 2 1 4 1; +#X connect 2 2 4 2; +#X connect 3 0 4 0; +#X connect 4 0 5 0; +#X connect 6 0 2 0; +#X connect 6 0 1 0; +#X restore 535 216 pd masse; +#N canvas 0 0 458 308 masse 0; +#X obj 26 38 inlet; +#X obj 11 137 outlet; +#X obj 25 104 unpack s f f; +#X obj 285 48 gemhead; +#X obj 284 89 translateXYZ; +#X obj 281 131 sphere 0.1; +#X obj 24 65 masse2D \$0-masse 50 0.5 0; +#X connect 0 0 6 0; +#X connect 2 1 4 1; +#X connect 2 2 4 2; +#X connect 3 0 4 0; +#X connect 4 0 5 0; +#X connect 6 0 2 0; +#X connect 6 0 1 0; +#X restore 534 378 pd masse; +#N canvas 0 0 452 302 lia 0; +#X obj 177 35 inlet; +#X obj 171 96 outlet; +#X obj 12 32 inlet; +#X obj 6 93 outlet; +#X msg 56 156 \$1 \$2 0; +#X obj 24 186 gemhead; +#X obj 26 210 curve 2; +#X msg 134 155 \$1 \$2 0; +#X obj 45 61 lia2D \$0-lia 0 10 2.5 0.1; +#X connect 0 0 7 0; +#X connect 0 0 8 1; +#X connect 2 0 4 0; +#X connect 2 0 8 0; +#X connect 4 0 6 1; +#X connect 5 0 6 0; +#X connect 7 0 6 2; +#X connect 8 0 3 0; +#X connect 8 1 1 0; +#X restore 735 282 pd lia; +#N canvas 0 0 452 302 lia 0; +#X obj 177 35 inlet; +#X obj 171 96 outlet; +#X obj 12 32 inlet; +#X obj 6 93 outlet; +#X msg 56 156 \$1 \$2 0; +#X obj 24 186 gemhead; +#X obj 26 210 curve 2; +#X msg 134 155 \$1 \$2 0; +#X obj 45 61 lia2D \$0-lia 0 10 2.5 0.1; +#X connect 0 0 7 0; +#X connect 0 0 8 1; +#X connect 2 0 4 0; +#X connect 2 0 8 0; +#X connect 4 0 6 1; +#X connect 5 0 6 0; +#X connect 7 0 6 2; +#X connect 8 0 3 0; +#X connect 8 1 1 0; +#X restore 787 347 pd lia; +#N canvas 0 0 452 302 lia 0; +#X obj 177 35 inlet; +#X obj 171 96 outlet; +#X obj 12 32 inlet; +#X obj 6 93 outlet; +#X msg 56 156 \$1 \$2 0; +#X obj 24 186 gemhead; +#X obj 26 210 curve 2; +#X msg 134 155 \$1 \$2 0; +#X obj 45 61 lia2D \$0-lia 0 10 2.5 0.1; +#X connect 0 0 7 0; +#X connect 0 0 8 1; +#X connect 2 0 4 0; +#X connect 2 0 8 0; +#X connect 4 0 6 1; +#X connect 5 0 6 0; +#X connect 7 0 6 2; +#X connect 8 0 3 0; +#X connect 8 1 1 0; +#X restore 829 219 pd lia; +#N canvas 0 0 452 302 lia 0; +#X obj 177 35 inlet; +#X obj 171 96 outlet; +#X obj 12 32 inlet; +#X obj 6 93 outlet; +#X msg 56 156 \$1 \$2 0; +#X obj 24 186 gemhead; +#X obj 26 210 curve 2; +#X msg 134 155 \$1 \$2 0; +#X obj 45 61 lia2D \$0-lia 0 10 2.5 0.1; +#X connect 0 0 7 0; +#X connect 0 0 8 1; +#X connect 2 0 4 0; +#X connect 2 0 8 0; +#X connect 4 0 6 1; +#X connect 5 0 6 0; +#X connect 7 0 6 2; +#X connect 8 0 3 0; +#X connect 8 1 1 0; +#X restore 824 381 pd lia; +#N canvas 0 0 452 302 lia 0; +#X obj 177 35 inlet; +#X obj 171 96 outlet; +#X obj 12 32 inlet; +#X obj 6 93 outlet; +#X msg 56 156 \$1 \$2 0; +#X obj 24 186 gemhead; +#X obj 26 210 curve 2; +#X msg 134 155 \$1 \$2 0; +#X obj 45 61 lia2D \$0-lia 0 10 2.5 0.1; +#X connect 0 0 7 0; +#X connect 0 0 8 1; +#X connect 2 0 4 0; +#X connect 2 0 8 0; +#X connect 4 0 6 1; +#X connect 5 0 6 0; +#X connect 7 0 6 2; +#X connect 8 0 3 0; +#X connect 8 1 1 0; +#X restore 851 353 pd lia; +#N canvas 0 0 452 302 lia 0; +#X obj 177 35 inlet; +#X obj 171 96 outlet; +#X obj 12 32 inlet; +#X obj 6 93 outlet; +#X msg 56 156 \$1 \$2 0; +#X obj 24 186 gemhead; +#X obj 26 210 curve 2; +#X msg 134 155 \$1 \$2 0; +#X obj 45 61 lia2D \$0-lia 0 10 2.5 0.1; +#X connect 0 0 7 0; +#X connect 0 0 8 1; +#X connect 2 0 4 0; +#X connect 2 0 8 0; +#X connect 4 0 6 1; +#X connect 5 0 6 0; +#X connect 7 0 6 2; +#X connect 8 0 3 0; +#X connect 8 1 1 0; +#X restore 907 285 pd lia; +#N canvas 0 0 456 306 masse 0; +#X obj 26 38 inlet; +#X obj 11 137 outlet; +#X obj 25 104 unpack s f f; +#X obj 285 48 gemhead; +#X obj 284 89 translateXYZ; +#X obj 281 131 sphere 0.1; +#X obj 24 65 masse2D \$0-masse 50 1 0.5; +#X connect 0 0 6 0; +#X connect 2 1 4 1; +#X connect 2 2 4 2; +#X connect 3 0 4 0; +#X connect 4 0 5 0; +#X connect 6 0 2 0; +#X connect 6 0 1 0; +#X restore 738 218 pd masse; +#N canvas 0 0 456 306 masse 0; +#X obj 26 38 inlet; +#X obj 11 137 outlet; +#X obj 25 104 unpack s f f; +#X obj 285 48 gemhead; +#X obj 284 89 translateXYZ; +#X obj 281 131 sphere 0.1; +#X obj 24 65 masse2D \$0-masse 50 1 0; +#X connect 0 0 6 0; +#X connect 2 1 4 1; +#X connect 2 2 4 2; +#X connect 3 0 4 0; +#X connect 4 0 5 0; +#X connect 6 0 2 0; +#X connect 6 0 1 0; +#X restore 730 378 pd masse; +#N canvas 0 0 458 308 masse 0; +#X obj 26 38 inlet; +#X obj 11 137 outlet; +#X obj 25 104 unpack s f f; +#X obj 285 48 gemhead; +#X obj 284 89 translateXYZ; +#X obj 281 131 sphere 0.1; +#X obj 25 65 masse2D \$0-masse 50 1.5 0.5; +#X connect 0 0 6 0; +#X connect 2 1 4 1; +#X connect 2 2 4 2; +#X connect 3 0 4 0; +#X connect 4 0 5 0; +#X connect 6 0 2 0; +#X connect 6 0 1 0; +#X restore 905 219 pd masse; +#N canvas 0 0 460 310 masse 0; +#X obj 26 38 inlet; +#X obj 11 137 outlet; +#X obj 25 104 unpack s f f; +#X obj 285 48 gemhead; +#X obj 284 89 translateXYZ; +#X obj 281 131 sphere 0.1; +#X obj 24 65 masse2D \$0-masse 50 1.5 0; +#X connect 0 0 6 0; +#X connect 2 1 4 1; +#X connect 2 2 4 2; +#X connect 3 0 4 0; +#X connect 4 0 5 0; +#X connect 6 0 2 0; +#X connect 6 0 1 0; +#X restore 904 381 pd masse; +#N canvas 0 0 452 302 lia 0; +#X obj 177 35 inlet; +#X obj 171 96 outlet; +#X obj 12 32 inlet; +#X obj 6 93 outlet; +#X msg 56 156 \$1 \$2 0; +#X obj 24 186 gemhead; +#X obj 26 210 curve 2; +#X msg 134 155 \$1 \$2 0; +#X obj 45 61 lia2D \$0-lia 0 10 2.5 0.1; +#X connect 0 0 7 0; +#X connect 0 0 8 1; +#X connect 2 0 4 0; +#X connect 2 0 8 0; +#X connect 4 0 6 1; +#X connect 5 0 6 0; +#X connect 7 0 6 2; +#X connect 8 0 3 0; +#X connect 8 1 1 0; +#X restore 233 344 pd lia; +#N canvas 0 0 452 302 lia 0; +#X obj 177 35 inlet; +#X obj 171 96 outlet; +#X obj 12 32 inlet; +#X obj 6 93 outlet; +#X msg 56 156 \$1 \$2 0; +#X obj 24 186 gemhead; +#X obj 26 210 curve 2; +#X msg 134 155 \$1 \$2 0; +#X obj 45 61 lia2D \$0-lia 0 10 2.5 0.1; +#X connect 0 0 7 0; +#X connect 0 0 8 1; +#X connect 2 0 4 0; +#X connect 2 0 8 0; +#X connect 4 0 6 1; +#X connect 5 0 6 0; +#X connect 7 0 6 2; +#X connect 8 0 3 0; +#X connect 8 1 1 0; +#X restore 291 215 pd lia; +#N canvas 0 0 452 302 lia 0; +#X obj 177 35 inlet; +#X obj 171 96 outlet; +#X obj 12 32 inlet; +#X obj 6 93 outlet; +#X msg 56 156 \$1 \$2 0; +#X obj 24 186 gemhead; +#X obj 26 210 curve 2; +#X msg 134 155 \$1 \$2 0; +#X obj 45 61 lia2D \$0-lia 0 10 2.5 0.1; +#X connect 0 0 7 0; +#X connect 0 0 8 1; +#X connect 2 0 4 0; +#X connect 2 0 8 0; +#X connect 4 0 6 1; +#X connect 5 0 6 0; +#X connect 7 0 6 2; +#X connect 8 0 3 0; +#X connect 8 1 1 0; +#X restore 290 378 pd lia; +#N canvas 0 0 452 302 lia 0; +#X obj 177 35 inlet; +#X obj 171 96 outlet; +#X obj 12 32 inlet; +#X obj 6 93 outlet; +#X msg 56 156 \$1 \$2 0; +#X obj 24 186 gemhead; +#X obj 26 210 curve 2; +#X msg 134 155 \$1 \$2 0; +#X obj 45 61 lia2D \$0-lia 0 10 2.5 0.1; +#X connect 0 0 7 0; +#X connect 0 0 8 1; +#X connect 2 0 4 0; +#X connect 2 0 8 0; +#X connect 4 0 6 1; +#X connect 5 0 6 0; +#X connect 7 0 6 2; +#X connect 8 0 3 0; +#X connect 8 1 1 0; +#X restore 311 340 pd lia; +#N canvas 0 0 452 302 lia 0; +#X obj 177 35 inlet; +#X obj 171 96 outlet; +#X obj 12 32 inlet; +#X obj 6 93 outlet; +#X msg 56 156 \$1 \$2 0; +#X obj 24 186 gemhead; +#X obj 26 210 curve 2; +#X msg 134 155 \$1 \$2 0; +#X obj 45 61 lia2D \$0-lia 0 10 2.5 0.1; +#X connect 0 0 7 0; +#X connect 0 0 8 1; +#X connect 2 0 4 0; +#X connect 2 0 8 0; +#X connect 4 0 6 1; +#X connect 5 0 6 0; +#X connect 7 0 6 2; +#X connect 8 0 3 0; +#X connect 8 1 1 0; +#X restore 612 342 pd lia; +#N canvas 0 0 452 302 lia 0; +#X obj 177 35 inlet; +#X obj 171 96 outlet; +#X obj 12 32 inlet; +#X obj 6 93 outlet; +#X msg 56 156 \$1 \$2 0; +#X obj 24 186 gemhead; +#X obj 26 210 curve 2; +#X msg 134 155 \$1 \$2 0; +#X obj 45 61 lia2D \$0-lia 0 10 2.5 0.1; +#X connect 0 0 7 0; +#X connect 0 0 8 1; +#X connect 2 0 4 0; +#X connect 2 0 8 0; +#X connect 4 0 6 1; +#X connect 5 0 6 0; +#X connect 7 0 6 2; +#X connect 8 0 3 0; +#X connect 8 1 1 0; +#X restore 641 219 pd lia; +#N canvas 0 0 452 302 lia 0; +#X obj 177 35 inlet; +#X obj 171 96 outlet; +#X obj 12 32 inlet; +#X obj 6 93 outlet; +#X msg 56 156 \$1 \$2 0; +#X obj 24 186 gemhead; +#X obj 26 210 curve 2; +#X msg 134 155 \$1 \$2 0; +#X obj 45 61 lia2D \$0-lia 0 10 2.5 0.1; +#X connect 0 0 7 0; +#X connect 0 0 8 1; +#X connect 2 0 4 0; +#X connect 2 0 8 0; +#X connect 4 0 6 1; +#X connect 5 0 6 0; +#X connect 7 0 6 2; +#X connect 8 0 3 0; +#X connect 8 1 1 0; +#X restore 649 376 pd lia; +#N canvas 0 0 452 302 lia 0; +#X obj 177 35 inlet; +#X obj 171 96 outlet; +#X obj 12 32 inlet; +#X obj 6 93 outlet; +#X msg 56 156 \$1 \$2 0; +#X obj 24 186 gemhead; +#X obj 26 210 curve 2; +#X msg 134 155 \$1 \$2 0; +#X obj 45 61 lia2D \$0-lia 0 10 2.5 0.1; +#X connect 0 0 7 0; +#X connect 0 0 8 1; +#X connect 2 0 4 0; +#X connect 2 0 8 0; +#X connect 4 0 6 1; +#X connect 5 0 6 0; +#X connect 7 0 6 2; +#X connect 8 0 3 0; +#X connect 8 1 1 0; +#X restore 676 348 pd lia; +#N canvas 0 0 462 312 masse 0; +#X obj 26 38 inlet; +#X obj 11 137 outlet; +#X obj 25 104 unpack s f f; +#X obj 285 48 gemhead; +#X obj 284 89 translateXYZ; +#X obj 281 131 sphere 0.1; +#X obj 24 65 masse2D \$0-masse 50 -0.75 1; +#X connect 0 0 6 0; +#X connect 2 1 4 1; +#X connect 2 2 4 2; +#X connect 3 0 4 0; +#X connect 4 0 5 0; +#X connect 6 0 2 0; +#X connect 6 0 1 0; +#X restore 123 96 pd masse; +#N canvas 0 0 452 302 lia 0; +#X obj 177 35 inlet; +#X obj 171 96 outlet; +#X obj 12 32 inlet; +#X obj 6 93 outlet; +#X msg 56 156 \$1 \$2 0; +#X obj 24 186 gemhead; +#X obj 26 210 curve 2; +#X msg 134 155 \$1 \$2 0; +#X obj 45 61 lia2D \$0-lia 0 10 2.5 0.1; +#X connect 0 0 7 0; +#X connect 0 0 8 1; +#X connect 2 0 4 0; +#X connect 2 0 8 0; +#X connect 4 0 6 1; +#X connect 5 0 6 0; +#X connect 7 0 6 2; +#X connect 8 0 3 0; +#X connect 8 1 1 0; +#X restore 64 150 pd lia; +#N canvas 0 0 452 302 lia 0; +#X obj 177 35 inlet; +#X obj 171 96 outlet; +#X obj 12 32 inlet; +#X obj 6 93 outlet; +#X msg 56 156 \$1 \$2 0; +#X obj 24 186 gemhead; +#X obj 26 210 curve 2; +#X msg 134 155 \$1 \$2 0; +#X obj 45 61 lia2D \$0-lia 0 10 2.5 0.1; +#X connect 0 0 7 0; +#X connect 0 0 8 1; +#X connect 2 0 4 0; +#X connect 2 0 8 0; +#X connect 4 0 6 1; +#X connect 5 0 6 0; +#X connect 7 0 6 2; +#X connect 8 0 3 0; +#X connect 8 1 1 0; +#X restore 164 153 pd lia; +#N canvas 0 0 462 312 masse 0; +#X obj 26 38 inlet; +#X obj 11 137 outlet; +#X obj 25 104 unpack s f f; +#X obj 285 48 gemhead; +#X obj 284 89 translateXYZ; +#X obj 281 131 sphere 0.1; +#X obj 24 65 masse2D \$0-masse 50 -0.25 1; +#X connect 0 0 6 0; +#X connect 2 1 4 1; +#X connect 2 2 4 2; +#X connect 3 0 4 0; +#X connect 4 0 5 0; +#X connect 6 0 2 0; +#X connect 6 0 1 0; +#X restore 297 94 pd masse; +#N canvas 0 0 452 302 lia 0; +#X obj 177 35 inlet; +#X obj 171 96 outlet; +#X obj 12 32 inlet; +#X obj 6 93 outlet; +#X msg 56 156 \$1 \$2 0; +#X obj 24 186 gemhead; +#X obj 26 210 curve 2; +#X msg 134 155 \$1 \$2 0; +#X obj 45 61 lia2D \$0-lia 0 10 2.5 0.1; +#X connect 0 0 7 0; +#X connect 0 0 8 1; +#X connect 2 0 4 0; +#X connect 2 0 8 0; +#X connect 4 0 6 1; +#X connect 5 0 6 0; +#X connect 7 0 6 2; +#X connect 8 0 3 0; +#X connect 8 1 1 0; +#X restore 238 148 pd lia; +#N canvas 0 0 452 302 lia 0; +#X obj 177 35 inlet; +#X obj 171 96 outlet; +#X obj 12 32 inlet; +#X obj 6 93 outlet; +#X msg 56 156 \$1 \$2 0; +#X obj 24 186 gemhead; +#X obj 26 210 curve 2; +#X msg 134 155 \$1 \$2 0; +#X obj 45 61 lia2D \$0-lia 0 10 2.5 0.1; +#X connect 0 0 7 0; +#X connect 0 0 8 1; +#X connect 2 0 4 0; +#X connect 2 0 8 0; +#X connect 4 0 6 1; +#X connect 5 0 6 0; +#X connect 7 0 6 2; +#X connect 8 0 3 0; +#X connect 8 1 1 0; +#X restore 334 153 pd lia; +#N canvas 0 0 462 312 masse 0; +#X obj 26 38 inlet; +#X obj 11 137 outlet; +#X obj 25 104 unpack s f f; +#X obj 285 48 gemhead; +#X obj 284 89 translateXYZ; +#X obj 281 131 sphere 0.1; +#X obj 24 65 masse2D \$0-masse 50 0.25 1; +#X connect 0 0 6 0; +#X connect 2 1 4 1; +#X connect 2 2 4 2; +#X connect 3 0 4 0; +#X connect 4 0 5 0; +#X connect 6 0 2 0; +#X connect 6 0 1 0; +#X restore 482 100 pd masse; +#N canvas 0 0 452 302 lia 0; +#X obj 177 35 inlet; +#X obj 171 96 outlet; +#X obj 12 32 inlet; +#X obj 6 93 outlet; +#X msg 56 156 \$1 \$2 0; +#X obj 24 186 gemhead; +#X obj 26 210 curve 2; +#X msg 134 155 \$1 \$2 0; +#X obj 45 61 lia2D \$0-lia 0 10 2.5 0.1; +#X connect 0 0 7 0; +#X connect 0 0 8 1; +#X connect 2 0 4 0; +#X connect 2 0 8 0; +#X connect 4 0 6 1; +#X connect 5 0 6 0; +#X connect 7 0 6 2; +#X connect 8 0 3 0; +#X connect 8 1 1 0; +#X restore 422 154 pd lia; +#N canvas 0 0 452 302 lia 0; +#X obj 177 35 inlet; +#X obj 171 96 outlet; +#X obj 12 32 inlet; +#X obj 6 93 outlet; +#X msg 56 156 \$1 \$2 0; +#X obj 24 186 gemhead; +#X obj 26 210 curve 2; +#X msg 134 155 \$1 \$2 0; +#X obj 45 61 lia2D \$0-lia 0 10 2.5 0.1; +#X connect 0 0 7 0; +#X connect 0 0 8 1; +#X connect 2 0 4 0; +#X connect 2 0 8 0; +#X connect 4 0 6 1; +#X connect 5 0 6 0; +#X connect 7 0 6 2; +#X connect 8 0 3 0; +#X connect 8 1 1 0; +#X restore 523 157 pd lia; +#N canvas 0 0 462 312 masse 0; +#X obj 26 38 inlet; +#X obj 11 137 outlet; +#X obj 25 104 unpack s f f; +#X obj 285 48 gemhead; +#X obj 284 89 translateXYZ; +#X obj 281 131 sphere 0.1; +#X obj 24 65 masse2D \$0-masse 50 0.75 1; +#X connect 0 0 6 0; +#X connect 2 1 4 1; +#X connect 2 2 4 2; +#X connect 3 0 4 0; +#X connect 4 0 5 0; +#X connect 6 0 2 0; +#X connect 6 0 1 0; +#X restore 668 106 pd masse; +#N canvas 0 0 452 302 lia 0; +#X obj 177 35 inlet; +#X obj 171 96 outlet; +#X obj 12 32 inlet; +#X obj 6 93 outlet; +#X msg 56 156 \$1 \$2 0; +#X obj 24 186 gemhead; +#X obj 26 210 curve 2; +#X msg 134 155 \$1 \$2 0; +#X obj 45 61 lia2D \$0-lia 0 10 2.5 0.1; +#X connect 0 0 7 0; +#X connect 0 0 8 1; +#X connect 2 0 4 0; +#X connect 2 0 8 0; +#X connect 4 0 6 1; +#X connect 5 0 6 0; +#X connect 7 0 6 2; +#X connect 8 0 3 0; +#X connect 8 1 1 0; +#X restore 609 160 pd lia; +#N canvas 0 0 452 302 lia 0; +#X obj 177 35 inlet; +#X obj 171 96 outlet; +#X obj 12 32 inlet; +#X obj 6 93 outlet; +#X msg 56 156 \$1 \$2 0; +#X obj 24 186 gemhead; +#X obj 26 210 curve 2; +#X msg 134 155 \$1 \$2 0; +#X obj 45 61 lia2D \$0-lia 0 10 2.5 0.1; +#X connect 0 0 7 0; +#X connect 0 0 8 1; +#X connect 2 0 4 0; +#X connect 2 0 8 0; +#X connect 4 0 6 1; +#X connect 5 0 6 0; +#X connect 7 0 6 2; +#X connect 8 0 3 0; +#X connect 8 1 1 0; +#X restore 709 163 pd lia; +#N canvas 0 0 462 312 masse 0; +#X obj 26 38 inlet; +#X obj 11 137 outlet; +#X obj 25 104 unpack s f f; +#X obj 285 48 gemhead; +#X obj 284 89 translateXYZ; +#X obj 281 131 sphere 0.1; +#X obj 24 65 masse2D \$0-masse 50 1.25 1; +#X connect 0 0 6 0; +#X connect 2 1 4 1; +#X connect 2 2 4 2; +#X connect 3 0 4 0; +#X connect 4 0 5 0; +#X connect 6 0 2 0; +#X connect 6 0 1 0; +#X restore 851 110 pd masse; +#N canvas 0 0 452 302 lia 0; +#X obj 177 35 inlet; +#X obj 171 96 outlet; +#X obj 12 32 inlet; +#X obj 6 93 outlet; +#X msg 56 156 \$1 \$2 0; +#X obj 24 186 gemhead; +#X obj 26 210 curve 2; +#X msg 134 155 \$1 \$2 0; +#X obj 45 61 lia2D \$0-lia 0 10 2.5 0.1; +#X connect 0 0 7 0; +#X connect 0 0 8 1; +#X connect 2 0 4 0; +#X connect 2 0 8 0; +#X connect 4 0 6 1; +#X connect 5 0 6 0; +#X connect 7 0 6 2; +#X connect 8 0 3 0; +#X connect 8 1 1 0; +#X restore 792 164 pd lia; +#N canvas 0 0 452 302 lia 0; +#X obj 177 35 inlet; +#X obj 171 96 outlet; +#X obj 12 32 inlet; +#X obj 6 93 outlet; +#X msg 56 156 \$1 \$2 0; +#X obj 24 186 gemhead; +#X obj 26 210 curve 2; +#X msg 134 155 \$1 \$2 0; +#X obj 45 61 lia2D \$0-lia 0 10 2.5 0.1; +#X connect 0 0 7 0; +#X connect 0 0 8 1; +#X connect 2 0 4 0; +#X connect 2 0 8 0; +#X connect 4 0 6 1; +#X connect 5 0 6 0; +#X connect 7 0 6 2; +#X connect 8 0 3 0; +#X connect 8 1 1 0; +#X restore 892 167 pd lia; +#N canvas 0 0 462 312 masse 0; +#X obj 26 38 inlet; +#X obj 11 137 outlet; +#X obj 25 104 unpack s f f; +#X obj 285 48 gemhead; +#X obj 284 89 translateXYZ; +#X obj 281 131 sphere 0.1; +#X obj 24 65 masse2D \$0-masse 50 -0.75 -0.5; +#X connect 0 0 6 0; +#X connect 2 1 4 1; +#X connect 2 2 4 2; +#X connect 3 0 4 0; +#X connect 4 0 5 0; +#X connect 6 0 2 0; +#X connect 6 0 1 0; +#X restore 96 503 pd masse; +#N canvas 0 0 452 302 lia 0; +#X obj 177 35 inlet; +#X obj 171 96 outlet; +#X obj 12 32 inlet; +#X obj 6 93 outlet; +#X msg 56 156 \$1 \$2 0; +#X obj 24 186 gemhead; +#X obj 26 210 curve 2; +#X msg 134 155 \$1 \$2 0; +#X obj 45 61 lia2D \$0-lia 0 10 2.5 0.1; +#X connect 0 0 7 0; +#X connect 0 0 8 1; +#X connect 2 0 4 0; +#X connect 2 0 8 0; +#X connect 4 0 6 1; +#X connect 5 0 6 0; +#X connect 7 0 6 2; +#X connect 8 0 3 0; +#X connect 8 1 1 0; +#X restore 49 434 pd lia; +#N canvas 0 0 452 302 lia 0; +#X obj 177 35 inlet; +#X obj 171 96 outlet; +#X obj 12 32 inlet; +#X obj 6 93 outlet; +#X msg 56 156 \$1 \$2 0; +#X obj 24 186 gemhead; +#X obj 26 210 curve 2; +#X msg 134 155 \$1 \$2 0; +#X obj 45 61 lia2D \$0-lia 0 10 2.5 0.1; +#X connect 0 0 7 0; +#X connect 0 0 8 1; +#X connect 2 0 4 0; +#X connect 2 0 8 0; +#X connect 4 0 6 1; +#X connect 5 0 6 0; +#X connect 7 0 6 2; +#X connect 8 0 3 0; +#X connect 8 1 1 0; +#X restore 149 437 pd lia; +#N canvas 0 0 462 312 masse 0; +#X obj 26 38 inlet; +#X obj 11 137 outlet; +#X obj 25 104 unpack s f f; +#X obj 285 48 gemhead; +#X obj 284 89 translateXYZ; +#X obj 281 131 sphere 0.1; +#X obj 24 65 masse2D \$0-masse 50 -0.25 -0.5; +#X connect 0 0 6 0; +#X connect 2 1 4 1; +#X connect 2 2 4 2; +#X connect 3 0 4 0; +#X connect 4 0 5 0; +#X connect 6 0 2 0; +#X connect 6 0 1 0; +#X restore 270 501 pd masse; +#N canvas 0 0 452 302 lia 0; +#X obj 177 35 inlet; +#X obj 171 96 outlet; +#X obj 12 32 inlet; +#X obj 6 93 outlet; +#X msg 56 156 \$1 \$2 0; +#X obj 24 186 gemhead; +#X obj 26 210 curve 2; +#X msg 134 155 \$1 \$2 0; +#X obj 45 61 lia2D \$0-lia 0 10 2.5 0.1; +#X connect 0 0 7 0; +#X connect 0 0 8 1; +#X connect 2 0 4 0; +#X connect 2 0 8 0; +#X connect 4 0 6 1; +#X connect 5 0 6 0; +#X connect 7 0 6 2; +#X connect 8 0 3 0; +#X connect 8 1 1 0; +#X restore 227 436 pd lia; +#N canvas 0 0 452 302 lia 0; +#X obj 177 35 inlet; +#X obj 171 96 outlet; +#X obj 12 32 inlet; +#X obj 6 93 outlet; +#X msg 56 156 \$1 \$2 0; +#X obj 24 186 gemhead; +#X obj 26 210 curve 2; +#X msg 134 155 \$1 \$2 0; +#X obj 45 61 lia2D \$0-lia 0 10 2.5 0.1; +#X connect 0 0 7 0; +#X connect 0 0 8 1; +#X connect 2 0 4 0; +#X connect 2 0 8 0; +#X connect 4 0 6 1; +#X connect 5 0 6 0; +#X connect 7 0 6 2; +#X connect 8 0 3 0; +#X connect 8 1 1 0; +#X restore 319 437 pd lia; +#N canvas 0 0 462 312 masse 0; +#X obj 26 38 inlet; +#X obj 11 137 outlet; +#X obj 25 104 unpack s f f; +#X obj 285 48 gemhead; +#X obj 284 89 translateXYZ; +#X obj 281 131 sphere 0.1; +#X obj 24 66 masse2D \$0-masse 50 0.25 -0.5; +#X connect 0 0 6 0; +#X connect 2 1 4 1; +#X connect 2 2 4 2; +#X connect 3 0 4 0; +#X connect 4 0 5 0; +#X connect 6 0 2 0; +#X connect 6 0 1 0; +#X restore 455 507 pd masse; +#N canvas 0 0 452 302 lia 0; +#X obj 177 35 inlet; +#X obj 171 96 outlet; +#X obj 12 32 inlet; +#X obj 6 93 outlet; +#X msg 56 156 \$1 \$2 0; +#X obj 24 186 gemhead; +#X obj 26 210 curve 2; +#X msg 134 155 \$1 \$2 0; +#X obj 45 61 lia2D \$0-lia 0 10 2.5 0.1; +#X connect 0 0 7 0; +#X connect 0 0 8 1; +#X connect 2 0 4 0; +#X connect 2 0 8 0; +#X connect 4 0 6 1; +#X connect 5 0 6 0; +#X connect 7 0 6 2; +#X connect 8 0 3 0; +#X connect 8 1 1 0; +#X restore 407 438 pd lia; +#N canvas 0 0 452 302 lia 0; +#X obj 177 35 inlet; +#X obj 171 96 outlet; +#X obj 12 32 inlet; +#X obj 6 93 outlet; +#X msg 56 156 \$1 \$2 0; +#X obj 24 186 gemhead; +#X obj 26 210 curve 2; +#X msg 134 155 \$1 \$2 0; +#X obj 45 61 lia2D \$0-lia 0 10 2.5 0.1; +#X connect 0 0 7 0; +#X connect 0 0 8 1; +#X connect 2 0 4 0; +#X connect 2 0 8 0; +#X connect 4 0 6 1; +#X connect 5 0 6 0; +#X connect 7 0 6 2; +#X connect 8 0 3 0; +#X connect 8 1 1 0; +#X restore 508 441 pd lia; +#N canvas 0 0 462 312 masse 0; +#X obj 26 38 inlet; +#X obj 11 137 outlet; +#X obj 25 104 unpack s f f; +#X obj 285 48 gemhead; +#X obj 284 89 translateXYZ; +#X obj 281 131 sphere 0.1; +#X obj 24 65 masse2D \$0-masse 50 0.75 -0.5; +#X connect 0 0 6 0; +#X connect 2 1 4 1; +#X connect 2 2 4 2; +#X connect 3 0 4 0; +#X connect 4 0 5 0; +#X connect 6 0 2 0; +#X connect 6 0 1 0; +#X restore 641 513 pd masse; +#N canvas 0 0 452 302 lia 0; +#X obj 177 35 inlet; +#X obj 171 96 outlet; +#X obj 12 32 inlet; +#X obj 6 93 outlet; +#X msg 56 156 \$1 \$2 0; +#X obj 24 186 gemhead; +#X obj 26 210 curve 2; +#X msg 134 155 \$1 \$2 0; +#X obj 45 61 lia2D \$0-lia 0 10 2.5 0.1; +#X connect 0 0 7 0; +#X connect 0 0 8 1; +#X connect 2 0 4 0; +#X connect 2 0 8 0; +#X connect 4 0 6 1; +#X connect 5 0 6 0; +#X connect 7 0 6 2; +#X connect 8 0 3 0; +#X connect 8 1 1 0; +#X restore 594 444 pd lia; +#N canvas 0 0 452 302 lia 0; +#X obj 177 35 inlet; +#X obj 171 96 outlet; +#X obj 12 32 inlet; +#X obj 6 93 outlet; +#X msg 56 156 \$1 \$2 0; +#X obj 24 186 gemhead; +#X obj 26 210 curve 2; +#X msg 134 155 \$1 \$2 0; +#X obj 45 61 lia2D \$0-lia 0 10 2.5 0.1; +#X connect 0 0 7 0; +#X connect 0 0 8 1; +#X connect 2 0 4 0; +#X connect 2 0 8 0; +#X connect 4 0 6 1; +#X connect 5 0 6 0; +#X connect 7 0 6 2; +#X connect 8 0 3 0; +#X connect 8 1 1 0; +#X restore 694 447 pd lia; +#N canvas 0 0 464 314 masse 0; +#X obj 26 38 inlet; +#X obj 11 137 outlet; +#X obj 25 104 unpack s f f; +#X obj 285 48 gemhead; +#X obj 284 89 translateXYZ; +#X obj 281 131 sphere 0.1; +#X obj 24 65 masse2D \$0-masse 50 1.25 -0.5; +#X connect 0 0 6 0; +#X connect 2 1 4 1; +#X connect 2 2 4 2; +#X connect 3 0 4 0; +#X connect 4 0 5 0; +#X connect 6 0 2 0; +#X connect 6 0 1 0; +#X restore 825 516 pd masse; +#N canvas 0 0 452 302 lia 0; +#X obj 177 35 inlet; +#X obj 171 96 outlet; +#X obj 12 32 inlet; +#X obj 6 93 outlet; +#X msg 56 156 \$1 \$2 0; +#X obj 24 186 gemhead; +#X obj 26 210 curve 2; +#X msg 134 155 \$1 \$2 0; +#X obj 45 61 lia2D \$0-lia 0 10 2.5 0.1; +#X connect 0 0 7 0; +#X connect 0 0 8 1; +#X connect 2 0 4 0; +#X connect 2 0 8 0; +#X connect 4 0 6 1; +#X connect 5 0 6 0; +#X connect 7 0 6 2; +#X connect 8 0 3 0; +#X connect 8 1 1 0; +#X restore 777 448 pd lia; +#N canvas 0 0 452 302 lia 0; +#X obj 177 35 inlet; +#X obj 171 96 outlet; +#X obj 12 32 inlet; +#X obj 6 93 outlet; +#X msg 56 156 \$1 \$2 0; +#X obj 24 186 gemhead; +#X obj 26 210 curve 2; +#X msg 134 155 \$1 \$2 0; +#X obj 45 61 lia2D \$0-lia 0 10 2.5 0.1; +#X connect 0 0 7 0; +#X connect 0 0 8 1; +#X connect 2 0 4 0; +#X connect 2 0 8 0; +#X connect 4 0 6 1; +#X connect 5 0 6 0; +#X connect 7 0 6 2; +#X connect 8 0 3 0; +#X connect 8 1 1 0; +#X restore 877 451 pd lia; +#X obj 613 11 inlet; +#N canvas 0 0 454 304 lia 0; +#X obj 177 35 inlet; +#X obj 171 96 outlet; +#X obj 12 32 inlet; +#X obj 6 93 outlet; +#X obj 45 61 lia2D \$0-lia 0 10 2.5 0.1; +#X connect 0 0 4 1; +#X connect 2 0 4 0; +#X connect 4 0 3 0; +#X connect 4 1 1 0; +#X restore 466 321 pd lia; +#N canvas 0 0 456 306 lia 0; +#X obj 177 35 inlet; +#X obj 171 96 outlet; +#X obj 12 32 inlet; +#X obj 6 93 outlet; +#X obj 45 61 lia2D \$0-lia 0 10 2.5 0.1; +#X connect 0 0 4 1; +#X connect 2 0 4 0; +#X connect 4 0 3 0; +#X connect 4 1 1 0; +#X restore 425 248 pd lia; +#N canvas 0 0 454 304 lia 0; +#X obj 177 35 inlet; +#X obj 171 96 outlet; +#X obj 12 32 inlet; +#X obj 6 93 outlet; +#X obj 45 61 lia2D \$0-lia 0 10 2.5 0.1; +#X connect 0 0 4 1; +#X connect 2 0 4 0; +#X connect 4 0 3 0; +#X connect 4 1 1 0; +#X restore 309 303 pd lia; +#N canvas 0 0 454 304 lia 0; +#X obj 177 35 inlet; +#X obj 171 96 outlet; +#X obj 12 32 inlet; +#X obj 6 93 outlet; +#X obj 45 61 lia2D \$0-lia 0 10 2.5 0.1; +#X connect 0 0 4 1; +#X connect 2 0 4 0; +#X connect 4 0 3 0; +#X connect 4 1 1 0; +#X restore 299 264 pd lia; +#N canvas 787 26 460 310 masse 0; +#X obj 26 38 inlet; +#X obj 11 137 outlet; +#X obj 25 104 unpack s f f; +#X obj 285 48 gemhead; +#X obj 284 89 translateXYZ; +#X obj 281 131 sphere 0.1; +#X obj 24 65 masse2D \$0-masse 50 2 0.25; +#X connect 0 0 6 0; +#X connect 2 1 4 1; +#X connect 2 2 4 2; +#X connect 3 0 4 0; +#X connect 4 0 5 0; +#X connect 6 0 2 0; +#X connect 6 0 1 0; +#X restore 1037 291 pd masse; +#N canvas 0 0 452 302 lia 0; +#X obj 177 35 inlet; +#X obj 171 96 outlet; +#X obj 12 32 inlet; +#X obj 6 93 outlet; +#X msg 56 156 \$1 \$2 0; +#X obj 24 186 gemhead; +#X obj 26 210 curve 2; +#X msg 134 155 \$1 \$2 0; +#X obj 45 61 lia2D \$0-lia 0 10 2.5 0.1; +#X connect 0 0 7 0; +#X connect 0 0 8 1; +#X connect 2 0 4 0; +#X connect 2 0 8 0; +#X connect 4 0 6 1; +#X connect 5 0 6 0; +#X connect 7 0 6 2; +#X connect 8 0 3 0; +#X connect 8 1 1 0; +#X restore 977 346 pd lia; +#N canvas 0 0 452 302 lia 0; +#X obj 177 35 inlet; +#X obj 171 96 outlet; +#X obj 12 32 inlet; +#X obj 6 93 outlet; +#X msg 56 156 \$1 \$2 0; +#X obj 24 186 gemhead; +#X obj 26 210 curve 2; +#X msg 134 155 \$1 \$2 0; +#X obj 45 61 lia2D \$0-lia 0 10 2.5 0.1; +#X connect 0 0 7 0; +#X connect 0 0 8 1; +#X connect 2 0 4 0; +#X connect 2 0 8 0; +#X connect 4 0 6 1; +#X connect 5 0 6 0; +#X connect 7 0 6 2; +#X connect 8 0 3 0; +#X connect 8 1 1 0; +#X restore 970 258 pd lia; +#X msg 613 35 position2D 0 \$1; +#X obj 96 529 unpack s f f; +#X obj 187 556 route -3.8; +#X msg 262 582 0 200; +#X obj 187 610 line~; +#X obj 168 636 *~; +#X obj 270 526 unpack s f f; +#X obj 361 553 route -3.8; +#X msg 436 579 0 200; +#X obj 361 607 line~; +#X obj 342 633 *~; +#X obj 455 533 unpack s f f; +#X obj 546 560 route -3.8; +#X msg 621 586 0 200; +#X obj 546 614 line~; +#X obj 527 640 *~; +#X obj 521 679 dac~; +#X obj 642 539 unpack s f f; +#X obj 733 566 route -3.8; +#X msg 808 592 0 200; +#X obj 733 620 line~; +#X obj 714 646 *~; +#X obj 826 542 unpack s f f; +#X obj 917 569 route -3.8; +#X msg 992 595 0 200; +#X obj 917 623 line~; +#X obj 898 649 *~; +#X obj 292 559 osc~ 183; +#X obj 477 566 osc~ 370; +#X obj 664 572 osc~ 457; +#X msg 362 581 0.1 5; +#X msg 546 588 0.1 5; +#X msg 733 594 0.1 5; +#X obj 458 59 lia2D lia3 0 0 0.08 0; +#X obj 118 562 osc~ 805; +#X msg 187 584 0.1 5; +#X msg 915 596 0.6 5; +#X obj 845 570 osc~ 105; +#X connect 0 0 6 0; +#X connect 0 1 7 0; +#X connect 1 0 7 0; +#X connect 1 1 8 0; +#X connect 2 0 6 0; +#X connect 2 1 8 0; +#X connect 3 0 7 0; +#X connect 3 1 9 0; +#X connect 4 0 6 0; +#X connect 4 1 9 0; +#X connect 5 0 8 0; +#X connect 5 1 9 0; +#X connect 6 0 0 0; +#X connect 6 0 2 0; +#X connect 6 0 4 0; +#X connect 6 0 39 0; +#X connect 6 0 70 0; +#X connect 7 0 0 1; +#X connect 7 0 3 0; +#X connect 7 0 1 0; +#X connect 7 0 54 0; +#X connect 7 0 69 0; +#X connect 8 0 5 0; +#X connect 8 0 2 1; +#X connect 8 0 1 1; +#X connect 8 0 33 0; +#X connect 8 0 31 0; +#X connect 8 0 40 1; +#X connect 8 0 42 0; +#X connect 8 0 72 0; +#X connect 9 0 5 1; +#X connect 9 0 3 1; +#X connect 9 0 4 1; +#X connect 9 0 30 0; +#X connect 9 0 32 0; +#X connect 9 0 55 1; +#X connect 9 0 57 0; +#X connect 9 0 71 0; +#X connect 10 0 16 0; +#X connect 10 1 17 0; +#X connect 11 0 17 0; +#X connect 11 1 18 0; +#X connect 12 0 16 0; +#X connect 12 1 18 0; +#X connect 13 0 17 0; +#X connect 13 1 19 0; +#X connect 14 0 16 0; +#X connect 14 1 19 0; +#X connect 15 0 18 0; +#X connect 15 1 19 0; +#X connect 16 0 10 0; +#X connect 16 0 12 0; +#X connect 16 0 14 0; +#X connect 16 0 30 1; +#X connect 16 0 31 1; +#X connect 16 0 43 1; +#X connect 16 0 45 0; +#X connect 16 0 109 0; +#X connect 17 0 10 1; +#X connect 17 0 13 0; +#X connect 17 0 11 0; +#X connect 17 0 32 1; +#X connect 17 0 33 1; +#X connect 17 0 58 1; +#X connect 17 0 60 0; +#X connect 18 0 15 0; +#X connect 18 0 12 1; +#X connect 18 0 11 1; +#X connect 18 0 37 0; +#X connect 18 0 35 0; +#X connect 18 0 46 1; +#X connect 18 0 48 0; +#X connect 19 0 15 1; +#X connect 19 0 13 1; +#X connect 19 0 14 1; +#X connect 19 0 34 0; +#X connect 19 0 36 0; +#X connect 19 0 61 1; +#X connect 19 0 63 0; +#X connect 20 0 26 0; +#X connect 20 1 27 0; +#X connect 21 0 27 0; +#X connect 21 1 28 0; +#X connect 22 0 26 0; +#X connect 22 1 28 0; +#X connect 23 0 27 0; +#X connect 23 1 29 0; +#X connect 24 0 26 0; +#X connect 24 1 29 0; +#X connect 25 0 28 0; +#X connect 25 1 29 0; +#X connect 26 0 20 0; +#X connect 26 0 22 0; +#X connect 26 0 24 0; +#X connect 26 0 34 1; +#X connect 26 0 35 1; +#X connect 26 0 49 1; +#X connect 26 0 51 0; +#X connect 26 0 71 1; +#X connect 27 0 20 1; +#X connect 27 0 23 0; +#X connect 27 0 21 0; +#X connect 27 0 36 1; +#X connect 27 0 37 1; +#X connect 27 0 64 1; +#X connect 27 0 66 0; +#X connect 27 0 72 1; +#X connect 28 0 25 0; +#X connect 28 0 22 1; +#X connect 28 0 21 1; +#X connect 28 0 52 1; +#X connect 28 0 69 1; +#X connect 28 0 75 0; +#X connect 29 0 25 1; +#X connect 29 0 23 1; +#X connect 29 0 24 1; +#X connect 29 0 67 1; +#X connect 29 0 70 1; +#X connect 29 0 74 0; +#X connect 30 0 9 0; +#X connect 30 1 16 0; +#X connect 31 0 8 0; +#X connect 31 1 16 0; +#X connect 32 0 9 0; +#X connect 32 1 17 0; +#X connect 33 0 8 0; +#X connect 33 1 17 0; +#X connect 34 0 19 0; +#X connect 34 1 26 0; +#X connect 35 0 18 0; +#X connect 35 1 26 0; +#X connect 36 0 19 0; +#X connect 36 1 27 0; +#X connect 37 0 18 0; +#X connect 37 1 27 0; +#X connect 38 0 39 1; +#X connect 38 0 40 0; +#X connect 39 0 6 0; +#X connect 39 1 38 0; +#X connect 40 0 38 0; +#X connect 40 1 8 0; +#X connect 41 0 42 1; +#X connect 41 0 43 0; +#X connect 42 0 8 0; +#X connect 42 1 41 0; +#X connect 43 0 41 0; +#X connect 43 1 16 0; +#X connect 44 0 45 1; +#X connect 44 0 46 0; +#X connect 45 0 16 0; +#X connect 45 1 44 0; +#X connect 46 0 44 0; +#X connect 46 1 18 0; +#X connect 47 0 48 1; +#X connect 47 0 49 0; +#X connect 48 0 18 0; +#X connect 48 1 47 0; +#X connect 49 0 47 0; +#X connect 49 1 26 0; +#X connect 50 0 51 1; +#X connect 50 0 52 0; +#X connect 51 0 26 0; +#X connect 51 1 50 0; +#X connect 52 0 50 0; +#X connect 52 1 28 0; +#X connect 53 0 54 1; +#X connect 53 0 55 0; +#X connect 53 0 77 0; +#X connect 54 0 7 0; +#X connect 54 1 53 0; +#X connect 55 0 53 0; +#X connect 55 1 9 0; +#X connect 56 0 57 1; +#X connect 56 0 58 0; +#X connect 56 0 82 0; +#X connect 57 0 9 0; +#X connect 57 1 56 0; +#X connect 58 0 56 0; +#X connect 58 1 17 0; +#X connect 59 0 60 1; +#X connect 59 0 61 0; +#X connect 59 0 87 0; +#X connect 60 0 17 0; +#X connect 60 1 59 0; +#X connect 61 0 59 0; +#X connect 61 1 19 0; +#X connect 62 0 63 1; +#X connect 62 0 64 0; +#X connect 62 0 93 0; +#X connect 63 0 19 0; +#X connect 63 1 62 0; +#X connect 64 0 62 0; +#X connect 64 1 27 0; +#X connect 65 0 66 1; +#X connect 65 0 67 0; +#X connect 65 0 98 0; +#X connect 66 0 27 0; +#X connect 66 1 65 0; +#X connect 67 0 65 0; +#X connect 67 1 29 0; +#X connect 68 0 76 0; +#X connect 69 0 7 0; +#X connect 69 1 28 0; +#X connect 70 0 6 0; +#X connect 70 1 29 0; +#X connect 71 0 9 0; +#X connect 71 1 26 0; +#X connect 72 0 8 0; +#X connect 72 1 27 0; +#X connect 73 0 75 1; +#X connect 73 0 74 1; +#X connect 74 0 29 0; +#X connect 74 1 73 0; +#X connect 75 0 28 0; +#X connect 75 1 73 0; +#X connect 76 0 109 1; +#X connect 77 2 78 0; +#X connect 78 0 111 0; +#X connect 78 1 79 0; +#X connect 79 0 80 0; +#X connect 80 0 81 1; +#X connect 81 0 92 0; +#X connect 81 0 92 1; +#X connect 82 2 83 0; +#X connect 83 0 106 0; +#X connect 83 1 84 0; +#X connect 84 0 85 0; +#X connect 85 0 86 1; +#X connect 86 0 92 0; +#X connect 86 0 92 1; +#X connect 87 2 88 0; +#X connect 88 0 107 0; +#X connect 88 1 89 0; +#X connect 89 0 90 0; +#X connect 90 0 91 1; +#X connect 91 0 92 0; +#X connect 91 0 92 1; +#X connect 93 2 94 0; +#X connect 94 0 108 0; +#X connect 94 1 95 0; +#X connect 95 0 96 0; +#X connect 96 0 97 1; +#X connect 97 0 92 0; +#X connect 98 2 99 0; +#X connect 99 0 112 0; +#X connect 99 1 100 0; +#X connect 100 0 101 0; +#X connect 101 0 102 1; +#X connect 102 0 92 1; +#X connect 102 0 92 0; +#X connect 103 0 86 0; +#X connect 104 0 91 0; +#X connect 105 0 97 0; +#X connect 106 0 85 0; +#X connect 107 0 90 0; +#X connect 108 0 96 0; +#X connect 109 0 16 0; +#X connect 110 0 81 0; +#X connect 111 0 80 0; +#X connect 112 0 101 0; +#X connect 113 0 102 0; +#X restore 313 258 pd structure; +#N canvas 137 36 733 328 init 0; +#X msg 253 181 setK \$1; +#X msg 363 159 setD \$1; +#X msg 544 129 setM \$1; +#X floatatom 253 106 5 -10 200 0 - - -; +#X floatatom 363 108 5 0 0 0 - - -; +#X floatatom 544 106 5 0 0 0 - - -; +#X obj 544 157 s masse; +#X obj 253 155 / 10; +#X obj 253 129 + 1; +#X obj 363 132 / 10; +#X obj 42 50 loadbang; +#X floatatom 450 105 5 0 0 0 - - -; +#X obj 450 129 / 10; +#X msg 450 156 setD2 \$1; +#X obj 44 201 s \$0-masse; +#X obj 253 213 s \$0-lia; +#X msg 543 83 12; +#X msg 254 80 25; +#X msg 361 78 7; +#X msg 451 80 1; +#X obj 331 30 loadbang; +#X msg 44 84 setXmin -3.8; +#X msg 57 109 setXmax 3.8; +#X msg 75 133 setYmin -3.8; +#X msg 88 159 setYmax 3.8; +#X connect 0 0 15 0; +#X connect 1 0 15 0; +#X connect 2 0 6 0; +#X connect 3 0 8 0; +#X connect 4 0 9 0; +#X connect 5 0 2 0; +#X connect 7 0 0 0; +#X connect 8 0 7 0; +#X connect 9 0 1 0; +#X connect 10 0 21 0; +#X connect 10 0 22 0; +#X connect 10 0 23 0; +#X connect 10 0 24 0; +#X connect 11 0 12 0; +#X connect 12 0 13 0; +#X connect 13 0 15 0; +#X connect 16 0 5 0; +#X connect 17 0 3 0; +#X connect 18 0 4 0; +#X connect 19 0 11 0; +#X connect 20 0 17 0; +#X connect 20 0 18 0; +#X connect 20 0 19 0; +#X connect 20 0 16 0; +#X connect 21 0 14 0; +#X connect 22 0 14 0; +#X connect 23 0 14 0; +#X connect 24 0 14 0; +#X restore 308 37 pd init; +#X obj 191 25 loadbang; +#X obj 32 48 metro 5; +#X obj 69 105 s \$0-lia; +#X obj 32 161 s \$0-masse; +#X obj 191 54 t b b b; +#X msg 242 79 reset; +#X msg 216 104 resetL; +#X msg 191 132 resetF; +#N canvas 894 558 454 304 gravite 0; +#X obj 80 154 inlet; +#X obj 79 241 outlet; +#X obj 80 184 f; +#X msg 81 213 force2D 0 \$1; +#X obj 185 29 loadbang; +#X obj 269 110 sel 0 1 2 3; +#X obj 268 71 r preset; +#X msg 224 144 -0.01; +#X msg 275 143 -0.003; +#X msg 325 142 -0.003; +#X msg 386 142 -0.03; +#X connect 0 0 2 0; +#X connect 2 0 3 0; +#X connect 3 0 1 0; +#X connect 4 0 7 0; +#X connect 5 0 7 0; +#X connect 5 1 8 0; +#X connect 5 2 9 0; +#X connect 5 3 10 0; +#X connect 6 0 5 0; +#X connect 7 0 2 1; +#X connect 8 0 2 1; +#X connect 9 0 2 1; +#X connect 10 0 2 1; +#X restore 80 129 pd gravite; +#X obj 41 189 s lfo-m; +#X obj 127 159 s lfo-l; +#X obj 140 185 s lia3; +#X obj 268 260 / 2; +#X obj 268 284 + 64; +#X obj 268 309 vsl 15 128 0 127 0 0 empty empty empty 0 -8 0 8 -262144 +-1 -1 10968 1; +#N canvas 931 259 458 308 MP_lfo 0; +#X obj 84 126 lia lfo-l 0 1 0 0; +#X obj 67 89 masse lfo-m 1000 100; +#X obj 60 164 outlet; +#X connect 0 0 1 0; +#X connect 1 0 0 0; +#X connect 1 0 2 0; +#X restore 269 234 pd MP_lfo; +#X obj 328 394 s \$0-masse; +#X msg 329 346 force2D -1 0; +#X msg 430 346 force2D 1 0; +#X msg 380 371 force2D 0 -1; +#X msg 387 321 force2D 0 1; +#X text 33 547 a "a way liaison" is a liaison wich can send energy +from masse 1 to 2 \, but not from masse 2 to 1 This is absolutly not +physical (as it's act as creation energy) \, but usefull for exiting +a system. It can be made if the lia output (force output) is not conectet +to the masse wich should not receive energy from the lia.; +#X text 34 485 a single structure (mass and link) is oscilating without +damping (so \, it's a sinus LFO). a "one-way liaison" link it to the +main structure. So the main structure is moving.; +#X text 33 662 You can also make a muscle while changing a link lenght. +; +#X obj 265 140 s \$0-masse; +#X obj 265 165 s lfo-m; +#X msg 34 384 \; dsp 1 \;; +#X msg 99 383 \; dsp 0 \;; +#X text 32 695 sound is generated with masses position; +#X text 52 26 <- 1; +#X text 178 251 <- 2; +#X connect 0 0 11 0; +#X connect 0 0 17 0; +#X connect 0 1 10 0; +#X connect 0 1 16 0; +#X connect 0 1 18 0; +#X connect 0 1 19 0; +#X connect 1 0 9 0; +#X connect 2 0 12 0; +#X connect 3 0 4 0; +#X connect 5 0 4 0; +#X connect 8 0 12 0; +#X connect 9 0 0 0; +#X connect 12 0 15 0; +#X connect 12 1 14 0; +#X connect 12 2 13 0; +#X connect 13 0 32 0; +#X connect 13 0 33 0; +#X connect 14 0 10 0; +#X connect 15 0 10 0; +#X connect 15 0 18 0; +#X connect 16 0 11 0; +#X connect 20 0 21 0; +#X connect 21 0 22 0; +#X connect 23 0 20 0; +#X connect 23 0 6 0; +#X connect 25 0 24 0; +#X connect 26 0 24 0; +#X connect 27 0 24 0; +#X connect 28 0 24 0; diff --git a/exemples/13_plane3D.pd b/exemples/13_plane3D.pd new file mode 100755 index 0000000..866c02b --- /dev/null +++ b/exemples/13_plane3D.pd @@ -0,0 +1,460 @@ +#N canvas 124 6 758 583 12; +#X obj 28 79 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 1 1 +; +#X obj 99 184 s lia; +#X obj 28 183 s masse; +#X obj 49 413 s masse; +#X msg 397 175 setK \$1; +#X msg 618 127 setM \$1; +#X obj 397 202 s lia; +#X obj 618 155 s masse; +#X obj 397 149 / 10; +#X obj 397 123 + 1; +#X obj 69 298 gemwin; +#X msg 88 269 0 \, destroy; +#X floatatom 397 101 5 0 0 0 - - -; +#X floatatom 534 105 5 0 0 0 - - -; +#X floatatom 618 104 5 0 0 0 - - -; +#X obj 28 100 metro 10; +#X obj 28 124 t b b; +#X obj 256 111 world_light; +#X obj 256 83 gemhead; +#X text 199 154 <- gravity simulation; +#X obj 559 355 s gemhead; +#X obj 559 216 gemhead; +#X floatatom 581 246 5 0 0 0 - - -; +#X floatatom 631 247 5 0 0 0 - - -; +#X floatatom 681 247 5 0 0 0 - - -; +#X msg 534 128 setD2 \$1; +#X msg 63 152 force3D 0 -8 0; +#X floatatom 450 106 5 0 0 0 - - -; +#X msg 450 129 setD \$1; +#X obj 329 442 gemLia 0 1 0.1 0.1; +#X obj 632 442 gemLia 0 1 0.1 0.1; +#X obj 934 443 gemLia 0 1 0.1 0.1; +#X obj 1237 443 gemLia 0 1 0.1 0.1; +#X obj 327 504 gemLia 0 1 0.1 0.1; +#X obj 176 472 gemLia 0 1 0.1 0.1; +#X obj 631 504 gemLia 0 1 0.1 0.1; +#X obj 479 472 gemLia 0 1 0.1 0.1; +#X obj 933 505 gemLia 0 1 0.1 0.1; +#X obj 781 473 gemLia 0 1 0.1 0.1; +#X obj 1236 505 gemLia 0 1 0.1 0.1; +#X obj 1084 473 gemLia 0 1 0.1 0.1; +#X obj 1542 504 gemLia 0 1 0.1 0.1; +#X obj 1390 472 gemLia 0 1 0.1 0.1; +#X obj 1693 472 gemLia 0 1 0.1 0.1; +#X obj 327 563 gemLia 0 1 0.1 0.1; +#X obj 175 531 gemLia 0 1 0.1 0.1; +#X obj 630 563 gemLia 0 1 0.1 0.1; +#X obj 478 531 gemLia 0 1 0.1 0.1; +#X obj 932 564 gemLia 0 1 0.1 0.1; +#X obj 780 532 gemLia 0 1 0.1 0.1; +#X obj 1235 564 gemLia 0 1 0.1 0.1; +#X obj 1083 532 gemLia 0 1 0.1 0.1; +#X obj 326 625 gemLia 0 1 0.1 0.1; +#X obj 174 593 gemLia 0 1 0.1 0.1; +#X obj 629 625 gemLia 0 1 0.1 0.1; +#X obj 477 593 gemLia 0 1 0.1 0.1; +#X obj 931 626 gemLia 0 1 0.1 0.1; +#X obj 779 594 gemLia 0 1 0.1 0.1; +#X obj 1234 626 gemLia 0 1 0.1 0.1; +#X obj 1082 594 gemLia 0 1 0.1 0.1; +#X obj 1541 563 gemLia 0 1 0.1 0.1; +#X obj 1389 531 gemLia 0 1 0.1 0.1; +#X obj 1692 531 gemLia 0 1 0.1 0.1; +#X obj 1540 625 gemLia 0 1 0.1 0.1; +#X obj 1388 593 gemLia 0 1 0.1 0.1; +#X obj 1691 593 gemLia 0 1 0.1 0.1; +#X obj 1543 442 gemLia 0 1 0.1 0.1; +#X obj 325 687 gemLia 0 1 0.1 0.1; +#X obj 173 655 gemLia 0 1 0.1 0.1; +#X obj 628 687 gemLia 0 1 0.1 0.1; +#X obj 476 655 gemLia 0 1 0.1 0.1; +#X obj 930 688 gemLia 0 1 0.1 0.1; +#X obj 1233 688 gemLia 0 1 0.1 0.1; +#X obj 1081 656 gemLia 0 1 0.1 0.1; +#X obj 323 749 gemLia 0 1 0.1 0.1; +#X obj 172 717 gemLia 0 1 0.1 0.1; +#X obj 627 749 gemLia 0 1 0.1 0.1; +#X obj 475 717 gemLia 0 1 0.1 0.1; +#X obj 929 750 gemLia 0 1 0.1 0.1; +#X obj 777 718 gemLia 0 1 0.1 0.1; +#X obj 1232 750 gemLia 0 1 0.1 0.1; +#X obj 1080 718 gemLia 0 1 0.1 0.1; +#X obj 1387 655 gemLia 0 1 0.1 0.1; +#X obj 1690 655 gemLia 0 1 0.1 0.1; +#X obj 1538 749 gemLia 0 1 0.1 0.1; +#X obj 1386 717 gemLia 0 1 0.1 0.1; +#X obj 1689 717 gemLia 0 1 0.1 0.1; +#X obj 778 656 gemLia 0 1 0.1 0.1; +#X obj 1539 687 gemLia 0 1 0.1 0.1; +#X obj 25 592 gemMasse2 10 0 3 0; +#X obj 836 154 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 +-1; +#X obj 857 153 loadbang; +#X obj 857 182 t b b b; +#X msg 908 207 reset; +#X msg 883 232 resetL; +#X msg 857 260 resetF; +#X obj 857 296 s lia; +#X obj 910 308 s masse; +#X obj 902 340 s masse2; +#X obj 329 472 gemMasse 10 1 1 0; +#X obj 325 532 gemMasse 10 1 2 0; +#X obj 327 593 gemMasse 10 1 3 0; +#X obj 326 654 gemMasse 10 1 4 0; +#X obj 324 717 gemMasse 10 1 5 0; +#X obj 633 472 gemMasse 10 2 1 0; +#X obj 630 531 gemMasse 10 2 2 0; +#X obj 629 593 gemMasse 10 2 3 0; +#X obj 629 656 gemMasse 10 2 4 0; +#X obj 627 717 gemMasse 10 2 5 0; +#X obj 933 473 gemMasse 10 3 1 0; +#X obj 932 532 gemMasse 10 3 2 0; +#X obj 931 594 gemMasse 10 3 3 0; +#X obj 930 656 gemMasse 10 3 4 0; +#X obj 929 718 gemMasse 10 3 5 0; +#X obj 1236 473 gemMasse 10 4 1 0; +#X obj 1235 532 gemMasse 10 4 2 0; +#X obj 1234 594 gemMasse 10 4 3 0; +#X obj 1234 656 gemMasse 10 4 4 0; +#X obj 1232 718 gemMasse 10 4 5 0; +#X obj 1543 473 gemMasse 10 5 1 0; +#X obj 1542 531 gemMasse 10 5 2 0; +#X obj 1541 593 gemMasse 10 5 3 0; +#X obj 1540 655 gemMasse 10 5 4 0; +#X obj 1538 718 gemMasse 10 5 5 0; +#X obj 329 410 gemMasse2 10 1 0 0; +#X obj 632 410 gemMasse2 10 2 0 0; +#X obj 934 411 gemMasse2 10 3 0 0; +#X obj 1237 411 gemMasse2 10 4 0 0; +#X obj 1543 410 gemMasse2 10 5 0 0; +#X obj 26 471 gemMasse2 10 0 1 0; +#X obj 1846 472 gemMasse2 10 6 1 0; +#X obj 1844 531 gemMasse2 10 6 2 0; +#X obj 25 530 gemMasse2 10 0 2 0; +#X obj 23 654 gemMasse2 10 0 4 0; +#X obj 22 716 gemMasse2 10 0 5 0; +#X obj 321 777 gemMasse2 10 1 6 0; +#X obj 626 776 gemMasse2 10 2 6 0; +#X obj 928 777 gemMasse2 10 3 6 0; +#X obj 1231 777 gemMasse2 10 4 6 0; +#X obj 1537 776 gemMasse2 10 5 6 0; +#X obj 1844 594 gemMasse2 10 6 3 0; +#X obj 1845 656 gemMasse2 10 6 4 0; +#X obj 1841 717 gemMasse2 10 6 5 0; +#X msg 397 77 2; +#X msg 618 80 10; +#X msg 450 80 0.1; +#X msg 535 80 0.03; +#X msg 49 342 force3D 0 1 0; +#X msg 60 364 force3D 0 0 1; +#X msg 67 388 force3D 1 0 0; +#X floatatom 613 298 5 0 0 0 - - -; +#X floatatom 663 299 5 0 0 0 - - -; +#X floatatom 713 299 5 0 0 0 - - -; +#X obj 559 328 translateXYZ -2.8 0 0; +#X obj 559 272 rotateXYZ -40 0 0; +#X msg 210 352 force3D 0 3 0; +#X msg 203 375 force3D 0 0 3; +#X msg 195 398 force3D 3 0 0; +#X obj 505 51 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 +-1; +#X msg 69 241 reset \, lighting 1 \, create \, 1; +#X text 409 20 This is a plane with 3D masses.; +#X text 33 814 masses are used in the border (gemMasse2) for telling +the link there position. they do not receive bang information \, so +they will not move.; +#X text 53 75 <- 1; +#X text 308 242 <- 2; +#X connect 0 0 15 0; +#X connect 4 0 6 0; +#X connect 5 0 7 0; +#X connect 8 0 4 0; +#X connect 9 0 8 0; +#X connect 11 0 10 0; +#X connect 12 0 9 0; +#X connect 13 0 25 0; +#X connect 14 0 5 0; +#X connect 15 0 16 0; +#X connect 16 0 2 0; +#X connect 16 1 1 0; +#X connect 16 1 26 0; +#X connect 18 0 17 0; +#X connect 21 0 154 0; +#X connect 22 0 154 1; +#X connect 23 0 154 2; +#X connect 24 0 154 3; +#X connect 25 0 6 0; +#X connect 27 0 28 0; +#X connect 28 0 6 0; +#X connect 29 0 124 0; +#X connect 29 1 99 0; +#X connect 30 0 125 0; +#X connect 30 1 104 0; +#X connect 31 0 126 0; +#X connect 31 1 109 0; +#X connect 32 0 127 0; +#X connect 32 1 114 0; +#X connect 33 0 99 0; +#X connect 33 1 100 0; +#X connect 34 0 129 0; +#X connect 34 1 99 0; +#X connect 35 0 104 0; +#X connect 35 1 105 0; +#X connect 36 0 99 0; +#X connect 36 1 104 0; +#X connect 37 0 109 0; +#X connect 37 1 110 0; +#X connect 38 0 104 0; +#X connect 38 1 109 0; +#X connect 39 0 114 0; +#X connect 39 1 115 0; +#X connect 40 0 109 0; +#X connect 40 1 114 0; +#X connect 41 0 119 0; +#X connect 41 1 120 0; +#X connect 42 0 114 0; +#X connect 42 1 119 0; +#X connect 43 0 119 0; +#X connect 43 1 130 0; +#X connect 44 0 100 0; +#X connect 44 1 101 0; +#X connect 45 0 132 0; +#X connect 45 1 100 0; +#X connect 46 0 105 0; +#X connect 46 1 106 0; +#X connect 47 0 100 0; +#X connect 47 1 105 0; +#X connect 48 0 110 0; +#X connect 48 1 111 0; +#X connect 49 0 105 0; +#X connect 49 1 110 0; +#X connect 50 0 115 0; +#X connect 50 1 116 0; +#X connect 51 0 110 0; +#X connect 51 1 115 0; +#X connect 52 0 101 0; +#X connect 52 1 102 0; +#X connect 53 0 89 0; +#X connect 53 1 101 0; +#X connect 54 0 106 0; +#X connect 54 1 107 0; +#X connect 55 0 101 0; +#X connect 55 1 106 0; +#X connect 56 0 111 0; +#X connect 56 1 112 0; +#X connect 57 0 106 0; +#X connect 57 1 111 0; +#X connect 58 0 116 0; +#X connect 58 1 117 0; +#X connect 59 0 111 0; +#X connect 59 1 116 0; +#X connect 60 0 120 0; +#X connect 60 1 121 0; +#X connect 61 0 115 0; +#X connect 61 1 120 0; +#X connect 62 0 120 0; +#X connect 62 1 131 0; +#X connect 63 0 121 0; +#X connect 63 1 122 0; +#X connect 64 0 116 0; +#X connect 64 1 121 0; +#X connect 65 0 121 0; +#X connect 65 1 140 0; +#X connect 66 0 128 0; +#X connect 66 1 119 0; +#X connect 67 0 102 0; +#X connect 67 1 103 0; +#X connect 68 0 133 0; +#X connect 68 1 102 0; +#X connect 69 0 107 0; +#X connect 69 1 108 0; +#X connect 70 0 102 0; +#X connect 70 1 107 0; +#X connect 71 0 112 0; +#X connect 71 1 113 0; +#X connect 72 0 117 0; +#X connect 72 1 118 0; +#X connect 73 0 112 0; +#X connect 73 1 117 0; +#X connect 74 0 103 0; +#X connect 74 1 135 0; +#X connect 75 0 134 0; +#X connect 75 1 103 0; +#X connect 76 0 108 0; +#X connect 76 1 136 0; +#X connect 77 0 103 0; +#X connect 77 1 108 0; +#X connect 78 0 113 0; +#X connect 78 1 137 0; +#X connect 79 0 108 0; +#X connect 79 1 113 0; +#X connect 80 0 118 0; +#X connect 80 1 138 0; +#X connect 81 0 113 0; +#X connect 81 1 118 0; +#X connect 82 0 117 0; +#X connect 82 1 122 0; +#X connect 83 0 122 0; +#X connect 83 1 141 0; +#X connect 84 0 123 0; +#X connect 84 1 139 0; +#X connect 85 0 118 0; +#X connect 85 1 123 0; +#X connect 86 0 123 0; +#X connect 86 1 142 0; +#X connect 87 0 107 0; +#X connect 87 1 112 0; +#X connect 88 0 122 0; +#X connect 88 1 123 0; +#X connect 89 0 53 0; +#X connect 90 0 92 0; +#X connect 91 0 92 0; +#X connect 92 0 95 0; +#X connect 92 1 94 0; +#X connect 92 2 93 0; +#X connect 93 0 97 0; +#X connect 93 0 98 0; +#X connect 94 0 96 0; +#X connect 95 0 96 0; +#X connect 99 0 33 0; +#X connect 99 0 34 1; +#X connect 99 0 36 0; +#X connect 99 0 29 1; +#X connect 100 0 44 0; +#X connect 100 0 45 1; +#X connect 100 0 47 0; +#X connect 100 0 33 1; +#X connect 101 0 52 0; +#X connect 101 0 53 1; +#X connect 101 0 55 0; +#X connect 101 0 44 1; +#X connect 102 0 67 0; +#X connect 102 0 68 1; +#X connect 102 0 70 0; +#X connect 102 0 52 1; +#X connect 103 0 74 0; +#X connect 103 0 75 1; +#X connect 103 0 77 0; +#X connect 103 0 67 1; +#X connect 104 0 35 0; +#X connect 104 0 36 1; +#X connect 104 0 38 0; +#X connect 104 0 30 1; +#X connect 105 0 46 0; +#X connect 105 0 47 1; +#X connect 105 0 49 0; +#X connect 105 0 35 1; +#X connect 106 0 54 0; +#X connect 106 0 55 1; +#X connect 106 0 57 0; +#X connect 106 0 46 1; +#X connect 107 0 69 0; +#X connect 107 0 70 1; +#X connect 107 0 87 0; +#X connect 107 0 54 1; +#X connect 108 0 76 0; +#X connect 108 0 77 1; +#X connect 108 0 79 0; +#X connect 108 0 69 1; +#X connect 109 0 37 0; +#X connect 109 0 38 1; +#X connect 109 0 40 0; +#X connect 109 0 31 1; +#X connect 110 0 48 0; +#X connect 110 0 49 1; +#X connect 110 0 51 0; +#X connect 110 0 37 1; +#X connect 111 0 56 0; +#X connect 111 0 57 1; +#X connect 111 0 59 0; +#X connect 111 0 48 1; +#X connect 112 0 71 0; +#X connect 112 0 73 0; +#X connect 112 0 87 1; +#X connect 112 0 56 1; +#X connect 113 0 78 0; +#X connect 113 0 79 1; +#X connect 113 0 81 0; +#X connect 113 0 71 1; +#X connect 114 0 39 0; +#X connect 114 0 40 1; +#X connect 114 0 32 1; +#X connect 114 0 42 0; +#X connect 115 0 50 0; +#X connect 115 0 51 1; +#X connect 115 0 61 0; +#X connect 115 0 39 1; +#X connect 116 0 58 0; +#X connect 116 0 59 1; +#X connect 116 0 50 1; +#X connect 116 0 64 0; +#X connect 117 0 72 0; +#X connect 117 0 73 1; +#X connect 117 0 82 0; +#X connect 117 0 58 1; +#X connect 118 0 80 0; +#X connect 118 0 81 1; +#X connect 118 0 72 1; +#X connect 118 0 85 0; +#X connect 119 0 41 0; +#X connect 119 0 42 1; +#X connect 119 0 43 0; +#X connect 119 0 66 1; +#X connect 120 0 60 0; +#X connect 120 0 61 1; +#X connect 120 0 62 0; +#X connect 120 0 41 1; +#X connect 121 0 63 0; +#X connect 121 0 64 1; +#X connect 121 0 65 0; +#X connect 121 0 60 1; +#X connect 122 0 82 1; +#X connect 122 0 83 0; +#X connect 122 0 88 0; +#X connect 122 0 63 1; +#X connect 123 0 84 0; +#X connect 123 0 85 1; +#X connect 123 0 86 0; +#X connect 123 0 88 1; +#X connect 124 0 29 0; +#X connect 125 0 30 0; +#X connect 126 0 31 0; +#X connect 127 0 32 0; +#X connect 128 0 66 0; +#X connect 129 0 34 0; +#X connect 130 0 43 1; +#X connect 131 0 62 1; +#X connect 132 0 45 0; +#X connect 133 0 68 0; +#X connect 134 0 75 0; +#X connect 135 0 74 1; +#X connect 136 0 76 1; +#X connect 137 0 78 1; +#X connect 138 0 80 1; +#X connect 139 0 84 1; +#X connect 140 0 65 1; +#X connect 141 0 83 1; +#X connect 142 0 86 1; +#X connect 143 0 12 0; +#X connect 144 0 14 0; +#X connect 145 0 27 0; +#X connect 146 0 13 0; +#X connect 147 0 3 0; +#X connect 148 0 3 0; +#X connect 149 0 3 0; +#X connect 150 0 153 1; +#X connect 151 0 153 2; +#X connect 152 0 153 3; +#X connect 153 0 20 0; +#X connect 154 0 153 0; +#X connect 155 0 105 0; +#X connect 156 0 105 0; +#X connect 157 0 105 0; +#X connect 158 0 145 0; +#X connect 158 0 143 0; +#X connect 158 0 146 0; +#X connect 158 0 144 0; +#X connect 159 0 10 0; diff --git a/exemples/14_MP_curve3d.pd b/exemples/14_MP_curve3d.pd new file mode 100755 index 0000000..59354ac --- /dev/null +++ b/exemples/14_MP_curve3d.pd @@ -0,0 +1,471 @@ +#N canvas 68 208 763 458 12; +#X obj 23 83 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 1 1 +; +#X obj 94 155 s lia; +#X obj 23 154 s masse; +#X obj 48 321 s masse; +#X msg 801 142 setK \$1; +#X msg 798 266 setM \$1; +#X obj 801 169 s lia; +#X obj 798 294 s masse; +#X obj 801 116 / 10; +#X obj 801 90 + 1; +#X msg 306 107 0 \, destroy; +#X floatatom 801 68 5 0 0 0 - - -; +#X floatatom 938 72 5 0 0 0 - - -; +#X floatatom 798 243 5 0 0 0 - - -; +#X obj 184 63 loadbang; +#X obj 23 104 metro 10; +#X obj 23 128 t b b; +#X msg 320 137 lighting 1; +#X obj 581 283 world_light; +#X obj 581 255 gemhead; +#X obj 567 185 s gemhead; +#X obj 567 32 gemhead; +#X floatatom 589 62 5 0 0 0 - - -; +#X floatatom 639 63 5 0 0 0 - - -; +#X floatatom 689 63 5 0 0 0 - - -; +#X msg 938 95 setD2 \$1; +#X floatatom 854 73 5 0 0 0 - - -; +#X msg 854 96 setD \$1; +#X obj 156 69 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 +-1; +#X obj 156 89 t b b b; +#X msg 207 114 reset; +#X msg 182 139 resetL; +#X msg 156 167 resetF; +#X obj 156 203 s lia; +#X obj 215 170 s masse; +#X obj 207 202 s masse2; +#X msg 801 44 2; +#X msg 798 219 10; +#X msg 939 47 0.03; +#X msg 55 271 force3D 0 1 0; +#X msg 43 248 force3D 0 0 1; +#X msg 66 296 force3D 1 0 0; +#X floatatom 621 128 5 0 0 0 - - -; +#X floatatom 671 129 5 0 0 0 - - -; +#X floatatom 729 133 5 0 0 0 - - -; +#X obj 567 158 translateXYZ -2.8 0 0; +#X obj 567 88 rotateXYZ -40 0 0; +#N canvas 780 246 348 253 curve3d 0; +#X obj 71 93 r curve3d; +#X obj 56 69 r gemhead; +#X obj 71 126 curve3d 5 5; +#X obj 93 31 inlet; +#X connect 0 0 2 0; +#X connect 1 0 2 0; +#X connect 3 0 2 0; +#X restore 381 308 pd curve3d; +#X msg 381 234 draw control_line; +#X msg 391 257 draw fill; +#X msg 401 280 draw line; +#X msg 213 250 force3D 0 0 8; +#X msg 202 272 force3D 0 8 0; +#X msg 193 295 force3D 8 0 0; +#X msg 854 47 0.05; +#N canvas 0 0 954 451 structure 0; +#X obj 331 12 gemMasse2 10 1 0 0; +#X obj 178 74 gemLia2 0 1 0.1 0.1; +#X obj 176 195 gemLia2 0 1 0.1 0.1; +#X obj 177 133 gemLia2 0 1 0.1 0.1; +#X obj 175 257 gemLia2 0 1 0.1 0.1; +#X obj 174 319 gemLia2 0 1 0.1 0.1; +#X obj 481 74 gemLia2 0 1 0.1 0.1; +#X obj 480 133 gemLia2 0 1 0.1 0.1; +#X obj 479 195 gemLia2 0 1 0.1 0.1; +#X obj 478 257 gemLia2 0 1 0.1 0.1; +#X obj 477 319 gemLia2 0 1 0.1 0.1; +#X obj 331 44 gemLia2 0 1 0.1 0.1; +#X obj 329 106 gemLia2 0 1 0.1 0.1; +#X obj 329 165 gemLia2 0 1 0.1 0.1; +#X obj 328 227 gemLia2 0 1 0.1 0.1; +#X obj 327 289 gemLia2 0 1 0.1 0.1; +#X obj 325 351 gemLia2 0 1 0.1 0.1; +#X obj 634 44 gemLia2 0 1 0.1 0.1; +#X obj 633 106 gemLia2 0 1 0.1 0.1; +#X obj 632 165 gemLia2 0 1 0.1 0.1; +#X obj 631 227 gemLia2 0 1 0.1 0.1; +#X obj 630 289 gemLia2 0 1 0.1 0.1; +#X obj 629 351 gemLia2 0 1 0.1 0.1; +#X obj 935 45 gemLia2 0 1 0.1 0.1; +#X obj 935 107 gemLia2 0 1 0.1 0.1; +#X obj 934 166 gemLia2 0 1 0.1 0.1; +#X obj 933 228 gemLia2 0 1 0.1 0.1; +#X obj 932 290 gemLia2 0 1 0.1 0.1; +#X obj 931 352 gemLia2 0 1 0.1 0.1; +#X obj 1239 45 gemLia2 0 1 0.1 0.1; +#X obj 1238 107 gemLia2 0 1 0.1 0.1; +#X obj 1238 166 gemLia2 0 1 0.1 0.1; +#X obj 1236 228 gemLia2 0 1 0.1 0.1; +#X obj 1235 290 gemLia2 0 1 0.1 0.1; +#X obj 1234 352 gemLia2 0 1 0.1 0.1; +#X obj 784 75 gemLia2 0 1 0.1 0.1; +#X obj 782 134 gemLia2 0 1 0.1 0.1; +#X obj 781 196 gemLia2 0 1 0.1 0.1; +#X obj 781 258 gemLia2 0 1 0.1 0.1; +#X obj 779 320 gemLia2 0 1 0.1 0.1; +#X obj 1086 75 gemLia2 0 1 0.1 0.1; +#X obj 1085 134 gemLia2 0 1 0.1 0.1; +#X obj 1085 196 gemLia2 0 1 0.1 0.1; +#X obj 1083 259 gemLia2 0 1 0.1 0.1; +#X obj 1082 320 gemLia2 0 1 0.1 0.1; +#X obj 1392 74 gemLia2 0 1 0.1 0.1; +#X obj 1391 133 gemLia2 0 1 0.1 0.1; +#X obj 1390 195 gemLia2 0 1 0.1 0.1; +#X obj 1389 257 gemLia2 0 1 0.1 0.1; +#X obj 1389 319 gemLia2 0 1 0.1 0.1; +#X obj 1545 44 gemLia2 0 1 0.1 0.1; +#X obj 1544 106 gemLia2 0 1 0.1 0.1; +#X obj 1543 165 gemLia2 0 1 0.1 0.1; +#X obj 1542 227 gemLia2 0 1 0.1 0.1; +#X obj 1541 289 gemLia2 0 1 0.1 0.1; +#X obj 1540 351 gemLia2 0 1 0.1 0.1; +#X obj 1695 74 gemLia2 0 1 0.1 0.1; +#X obj 1694 133 gemLia2 0 1 0.1 0.1; +#X obj 1693 195 gemLia2 0 1 0.1 0.1; +#X obj 1692 257 gemLia2 0 1 0.1 0.1; +#X obj 1691 319 gemLia2 0 1 0.1 0.1; +#X obj 27 194 gemMasse2 10 0 3 0; +#X obj 634 12 gemMasse2 10 2 0 0; +#X obj 936 13 gemMasse2 10 3 0 0; +#X obj 1239 13 gemMasse2 10 4 0 0; +#X obj 1545 12 gemMasse2 10 5 0 0; +#X obj 28 73 gemMasse2 10 0 1 0; +#X obj 1848 74 gemMasse2 10 6 1 0; +#X obj 1846 133 gemMasse2 10 6 2 0; +#X obj 27 132 gemMasse2 10 0 2 0; +#X obj 25 256 gemMasse2 10 0 4 0; +#X obj 24 318 gemMasse2 10 0 5 0; +#X obj 323 379 gemMasse2 10 1 6 0; +#X obj 628 378 gemMasse2 10 2 6 0; +#X obj 930 379 gemMasse2 10 3 6 0; +#X obj 1233 379 gemMasse2 10 4 6 0; +#X obj 1539 378 gemMasse2 10 5 6 0; +#X obj 1846 196 gemMasse2 10 6 3 0; +#X obj 1847 258 gemMasse2 10 6 4 0; +#X obj 1843 319 gemMasse2 10 6 5 0; +#X obj 331 74 gemMasse3 10 1 1 0; +#X obj 326 319 gemMasse3 10 1 5 0; +#X obj 327 134 gemMasse3 10 1 2 0; +#X obj 329 195 gemMasse3 10 1 3 0; +#X obj 630 319 gemMasse3 10 2 5 0; +#X obj 631 258 gemMasse3 10 2 4 0; +#X obj 631 195 gemMasse3 10 2 3 0; +#X obj 632 134 gemMasse3 10 2 2 0; +#X obj 635 74 gemMasse3 10 2 1 0; +#X obj 935 75 gemMasse3 10 3 1 0; +#X obj 934 134 gemMasse3 10 3 2 0; +#X obj 933 196 gemMasse3 10 3 3 0; +#X obj 931 320 gemMasse3 10 3 5 0; +#X obj 1238 75 gemMasse3 10 4 1 0; +#X obj 1237 134 gemMasse3 10 4 2 0; +#X obj 1236 196 gemMasse3 10 4 3 0; +#X obj 1236 258 gemMasse3 10 4 4 0; +#X obj 1234 320 gemMasse3 10 4 5 0; +#X obj 1545 75 gemMasse3 10 5 1 0; +#X obj 1544 133 gemMasse3 10 5 2 0; +#X obj 1543 195 gemMasse3 10 5 3 0; +#X obj 1541 257 gemMasse3 10 5 4 0; +#X obj 1540 320 gemMasse3 10 5 5 0; +#X obj 328 256 gemMasse3 10 1 4 0; +#X obj 933 258 gemMasse3 10 3 4 0; +#X obj 111 23 inlet; +#X connect 0 0 11 0; +#X connect 1 0 66 0; +#X connect 1 1 80 0; +#X connect 2 0 61 0; +#X connect 2 1 83 0; +#X connect 3 0 69 0; +#X connect 3 1 82 0; +#X connect 4 0 70 0; +#X connect 4 1 103 0; +#X connect 5 0 71 0; +#X connect 5 1 81 0; +#X connect 6 0 80 0; +#X connect 6 1 88 0; +#X connect 7 0 82 0; +#X connect 7 1 87 0; +#X connect 8 0 83 0; +#X connect 8 1 86 0; +#X connect 9 0 103 0; +#X connect 9 1 85 0; +#X connect 10 0 81 0; +#X connect 10 1 84 0; +#X connect 11 0 0 0; +#X connect 11 1 80 0; +#X connect 12 0 80 0; +#X connect 12 1 82 0; +#X connect 13 0 82 0; +#X connect 13 1 83 0; +#X connect 14 0 83 0; +#X connect 14 1 103 0; +#X connect 15 0 103 0; +#X connect 15 1 81 0; +#X connect 16 0 81 0; +#X connect 16 1 72 0; +#X connect 17 0 62 0; +#X connect 17 1 88 0; +#X connect 18 0 88 0; +#X connect 18 1 87 0; +#X connect 19 0 87 0; +#X connect 19 1 86 0; +#X connect 20 0 86 0; +#X connect 20 1 85 0; +#X connect 21 0 85 0; +#X connect 21 1 84 0; +#X connect 22 0 84 0; +#X connect 22 1 73 0; +#X connect 23 0 63 0; +#X connect 23 1 89 0; +#X connect 24 0 89 0; +#X connect 24 1 90 0; +#X connect 25 0 90 0; +#X connect 25 1 91 0; +#X connect 26 0 91 0; +#X connect 26 1 104 0; +#X connect 27 0 104 0; +#X connect 27 1 92 0; +#X connect 28 0 92 0; +#X connect 28 1 74 0; +#X connect 29 0 64 0; +#X connect 29 1 93 0; +#X connect 30 0 93 0; +#X connect 30 1 94 0; +#X connect 31 0 94 0; +#X connect 31 1 95 0; +#X connect 32 0 95 0; +#X connect 32 1 96 0; +#X connect 33 0 96 0; +#X connect 33 1 97 0; +#X connect 34 0 97 0; +#X connect 34 1 75 0; +#X connect 35 0 88 0; +#X connect 35 1 89 0; +#X connect 36 0 87 0; +#X connect 36 1 90 0; +#X connect 37 0 86 0; +#X connect 37 1 91 0; +#X connect 38 0 85 0; +#X connect 38 1 104 0; +#X connect 39 0 84 0; +#X connect 39 1 92 0; +#X connect 40 0 89 0; +#X connect 40 1 93 0; +#X connect 41 0 90 0; +#X connect 41 1 94 0; +#X connect 42 0 91 0; +#X connect 42 1 95 0; +#X connect 43 0 104 0; +#X connect 43 1 96 0; +#X connect 44 0 92 0; +#X connect 44 1 97 0; +#X connect 45 0 93 0; +#X connect 45 1 98 0; +#X connect 46 0 94 0; +#X connect 46 1 99 0; +#X connect 47 0 95 0; +#X connect 47 1 100 0; +#X connect 48 0 96 0; +#X connect 48 1 101 0; +#X connect 49 0 97 0; +#X connect 49 1 102 0; +#X connect 50 0 65 0; +#X connect 50 1 98 0; +#X connect 51 0 98 0; +#X connect 51 1 99 0; +#X connect 52 0 99 0; +#X connect 52 1 100 0; +#X connect 53 0 100 0; +#X connect 53 1 101 0; +#X connect 54 0 101 0; +#X connect 54 1 102 0; +#X connect 55 0 102 0; +#X connect 55 1 76 0; +#X connect 56 0 98 0; +#X connect 56 1 67 0; +#X connect 57 0 99 0; +#X connect 57 1 68 0; +#X connect 58 0 100 0; +#X connect 58 1 77 0; +#X connect 59 0 101 0; +#X connect 59 1 78 0; +#X connect 60 0 102 0; +#X connect 60 1 79 0; +#X connect 61 0 2 0; +#X connect 62 0 17 0; +#X connect 63 0 23 0; +#X connect 64 0 29 0; +#X connect 65 0 50 0; +#X connect 66 0 1 0; +#X connect 67 0 56 1; +#X connect 68 0 57 1; +#X connect 69 0 3 0; +#X connect 70 0 4 0; +#X connect 71 0 5 0; +#X connect 72 0 16 1; +#X connect 73 0 22 1; +#X connect 74 0 28 1; +#X connect 75 0 34 1; +#X connect 76 0 55 1; +#X connect 77 0 58 1; +#X connect 78 0 59 1; +#X connect 79 0 60 1; +#X connect 80 0 1 1; +#X connect 80 0 6 0; +#X connect 80 0 11 1; +#X connect 80 0 12 0; +#X connect 81 0 5 1; +#X connect 81 0 10 0; +#X connect 81 0 15 1; +#X connect 81 0 16 0; +#X connect 82 0 3 1; +#X connect 82 0 7 0; +#X connect 82 0 12 1; +#X connect 82 0 13 0; +#X connect 83 0 2 1; +#X connect 83 0 8 0; +#X connect 83 0 13 1; +#X connect 83 0 14 0; +#X connect 84 0 10 1; +#X connect 84 0 21 1; +#X connect 84 0 22 0; +#X connect 84 0 39 0; +#X connect 85 0 9 1; +#X connect 85 0 20 1; +#X connect 85 0 21 0; +#X connect 85 0 38 0; +#X connect 86 0 8 1; +#X connect 86 0 19 1; +#X connect 86 0 20 0; +#X connect 86 0 37 0; +#X connect 87 0 7 1; +#X connect 87 0 18 1; +#X connect 87 0 19 0; +#X connect 87 0 36 0; +#X connect 88 0 6 1; +#X connect 88 0 17 1; +#X connect 88 0 18 0; +#X connect 88 0 35 0; +#X connect 89 0 23 1; +#X connect 89 0 24 0; +#X connect 89 0 35 1; +#X connect 89 0 40 0; +#X connect 90 0 24 1; +#X connect 90 0 25 0; +#X connect 90 0 36 1; +#X connect 90 0 41 0; +#X connect 91 0 25 1; +#X connect 91 0 26 0; +#X connect 91 0 37 1; +#X connect 91 0 42 0; +#X connect 92 0 27 1; +#X connect 92 0 28 0; +#X connect 92 0 39 1; +#X connect 92 0 44 0; +#X connect 93 0 29 1; +#X connect 93 0 30 0; +#X connect 93 0 40 1; +#X connect 93 0 45 0; +#X connect 94 0 30 1; +#X connect 94 0 31 0; +#X connect 94 0 41 1; +#X connect 94 0 46 0; +#X connect 95 0 31 1; +#X connect 95 0 32 0; +#X connect 95 0 42 1; +#X connect 95 0 47 0; +#X connect 96 0 32 1; +#X connect 96 0 33 0; +#X connect 96 0 43 1; +#X connect 96 0 48 0; +#X connect 97 0 33 1; +#X connect 97 0 34 0; +#X connect 97 0 44 1; +#X connect 97 0 49 0; +#X connect 98 0 45 1; +#X connect 98 0 50 1; +#X connect 98 0 51 0; +#X connect 98 0 56 0; +#X connect 99 0 46 1; +#X connect 99 0 51 1; +#X connect 99 0 52 0; +#X connect 99 0 57 0; +#X connect 100 0 47 1; +#X connect 100 0 52 1; +#X connect 100 0 53 0; +#X connect 100 0 58 0; +#X connect 101 0 48 1; +#X connect 101 0 53 1; +#X connect 101 0 54 0; +#X connect 101 0 59 0; +#X connect 102 0 49 1; +#X connect 102 0 54 1; +#X connect 102 0 55 0; +#X connect 102 0 60 0; +#X connect 103 0 4 1; +#X connect 103 0 9 0; +#X connect 103 0 14 1; +#X connect 103 0 15 0; +#X connect 104 0 26 1; +#X connect 104 0 27 0; +#X connect 104 0 38 1; +#X connect 104 0 43 0; +#X connect 105 0 87 0; +#X connect 105 0 90 0; +#X restore 213 326 pd structure; +#X obj 287 169 gemwin 40; +#X msg 286 73 reset \, lighting 1 \, create \, 1; +#X text 77 11 This is the same as previus exemple \, but using a diferent +visualisation.; +#X text 48 79 <- 1; +#X text 518 73 <- 2; +#X connect 0 0 15 0; +#X connect 4 0 6 0; +#X connect 5 0 7 0; +#X connect 8 0 4 0; +#X connect 9 0 8 0; +#X connect 10 0 56 0; +#X connect 11 0 9 0; +#X connect 12 0 25 0; +#X connect 13 0 5 0; +#X connect 14 0 29 0; +#X connect 15 0 16 0; +#X connect 16 0 2 0; +#X connect 16 1 1 0; +#X connect 17 0 56 0; +#X connect 19 0 18 0; +#X connect 21 0 46 0; +#X connect 22 0 46 1; +#X connect 23 0 46 2; +#X connect 24 0 46 3; +#X connect 25 0 6 0; +#X connect 26 0 27 0; +#X connect 27 0 6 0; +#X connect 28 0 29 0; +#X connect 29 0 32 0; +#X connect 29 1 31 0; +#X connect 29 2 30 0; +#X connect 30 0 34 0; +#X connect 30 0 35 0; +#X connect 31 0 33 0; +#X connect 32 0 33 0; +#X connect 36 0 11 0; +#X connect 37 0 13 0; +#X connect 38 0 12 0; +#X connect 39 0 3 0; +#X connect 40 0 3 0; +#X connect 41 0 3 0; +#X connect 42 0 45 1; +#X connect 43 0 45 2; +#X connect 44 0 45 3; +#X connect 45 0 20 0; +#X connect 46 0 45 0; +#X connect 48 0 47 0; +#X connect 49 0 47 0; +#X connect 50 0 47 0; +#X connect 51 0 55 0; +#X connect 52 0 55 0; +#X connect 53 0 55 0; +#X connect 54 0 26 0; +#X connect 57 0 56 0; diff --git a/exemples/15_constant_force_field.pd b/exemples/15_constant_force_field.pd new file mode 100755 index 0000000..6ad4be1 --- /dev/null +++ b/exemples/15_constant_force_field.pd @@ -0,0 +1,283 @@ +#N canvas 40 72 795 432 12; +#X obj 16 104 t b b; +#X obj 16 56 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 1 1 +; +#X obj 94 57 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 +-1; +#X msg 258 79 0 \, destroy; +#X msg 224 54 reset \, create \, 1; +#N canvas 510 193 970 698 structure 0; +#X obj 124 314 pd_lia \$0; +#X obj 27 290 pd_masse -1 0 \$0; +#X obj 49 445 pd_lia \$0; +#X obj 123 558 pd_masse -0.7 -0.7 \$0; +#X obj 198 502 pd_lia \$0; +#X obj 124 43 pd_masse -0.7 0.7 \$0; +#X obj 189 113 pd_lia \$0; +#X obj 69 161 pd_lia \$0; +#X obj 201 187 pd_lia \$0; +#X obj 213 373 pd_lia \$0; +#X obj 279 598 pd_lia \$0; +#X obj 399 624 pd_masse 0 -1 \$0; +#X obj 410 562 pd_lia \$0; +#X obj 580 585 pd_lia \$0; +#X obj 310 327 pd_lia \$0; +#X obj 388 330 pd_lia \$0; +#X obj 468 330 pd_lia \$0; +#X obj 338 427 pd_lia \$0; +#X obj 509 422 pd_lia \$0; +#X obj 304 26 pd_lia \$0; +#X obj 436 16 pd_masse 0 1 \$0; +#X obj 441 57 pd_lia \$0; +#X obj 347 129 pd_lia \$0; +#X obj 308 231 pd_lia \$0; +#X obj 304 280 pd_lia \$0; +#X obj 393 227 pd_lia \$0; +#X obj 475 227 pd_lia \$0; +#X obj 529 278 pd_lia \$0; +#X obj 604 358 pd_lia \$0; +#X obj 678 291 pd_lia \$0; +#X obj 604 221 pd_lia \$0; +#X obj 499 135 pd_lia \$0; +#X obj 571 43 pd_lia \$0; +#X obj 612 101 pd_lia \$0; +#X obj 749 179 pd_lia \$0; +#X obj 680 64 pd_masse 0.7 0.7 \$0; +#X obj 766 285 pd_masse 1 0 \$0; +#X obj 763 429 pd_lia \$0; +#X obj 671 510 pd_lia \$0; +#X obj 748 552 pd_masse 0.7 -0.7 \$0; +#X obj 407 274 pd_masse 0 0 \$0; +#X connect 0 0 5 0; +#X connect 0 1 3 0; +#X connect 1 0 2 0; +#X connect 1 0 4 0; +#X connect 1 0 6 0; +#X connect 1 0 7 0; +#X connect 1 0 17 0; +#X connect 1 0 22 0; +#X connect 1 0 24 0; +#X connect 2 0 1 0; +#X connect 2 1 3 0; +#X connect 3 0 0 1; +#X connect 3 0 2 1; +#X connect 3 0 8 1; +#X connect 3 0 10 0; +#X connect 3 0 12 0; +#X connect 3 0 14 0; +#X connect 3 0 18 0; +#X connect 4 0 1 0; +#X connect 4 1 11 0; +#X connect 5 0 0 0; +#X connect 5 0 7 1; +#X connect 5 0 9 0; +#X connect 5 0 19 0; +#X connect 5 0 21 0; +#X connect 5 0 23 0; +#X connect 5 0 31 0; +#X connect 6 0 1 0; +#X connect 6 1 20 0; +#X connect 7 0 1 0; +#X connect 7 1 5 0; +#X connect 8 0 20 0; +#X connect 8 1 3 0; +#X connect 9 0 5 0; +#X connect 9 1 11 0; +#X connect 10 0 3 0; +#X connect 10 1 11 0; +#X connect 11 0 4 1; +#X connect 11 0 9 1; +#X connect 11 0 10 1; +#X connect 11 0 13 0; +#X connect 11 0 15 1; +#X connect 11 0 28 0; +#X connect 11 0 38 0; +#X connect 12 0 3 0; +#X connect 12 1 39 0; +#X connect 13 0 11 0; +#X connect 13 1 39 0; +#X connect 14 0 3 0; +#X connect 14 1 40 0; +#X connect 15 0 40 0; +#X connect 15 1 11 0; +#X connect 16 0 40 0; +#X connect 16 1 39 0; +#X connect 17 0 1 0; +#X connect 17 1 39 0; +#X connect 18 0 3 0; +#X connect 18 1 36 0; +#X connect 19 0 5 0; +#X connect 19 1 20 0; +#X connect 20 0 6 1; +#X connect 20 0 8 0; +#X connect 20 0 19 1; +#X connect 20 0 25 1; +#X connect 20 0 30 0; +#X connect 20 0 32 0; +#X connect 20 0 33 0; +#X connect 21 0 5 0; +#X connect 21 1 35 0; +#X connect 22 0 1 0; +#X connect 22 1 35 0; +#X connect 23 0 5 0; +#X connect 23 1 40 0; +#X connect 24 0 1 0; +#X connect 24 1 40 0; +#X connect 25 0 40 0; +#X connect 25 1 20 0; +#X connect 26 0 40 0; +#X connect 26 1 35 0; +#X connect 27 0 40 0; +#X connect 27 1 36 0; +#X connect 28 0 11 0; +#X connect 28 1 35 0; +#X connect 29 0 39 0; +#X connect 29 1 35 0; +#X connect 30 0 20 0; +#X connect 30 1 39 0; +#X connect 31 0 5 0; +#X connect 31 1 36 0; +#X connect 32 0 20 0; +#X connect 32 1 35 0; +#X connect 33 0 20 0; +#X connect 33 1 36 0; +#X connect 34 0 35 0; +#X connect 34 1 36 0; +#X connect 35 0 21 1; +#X connect 35 0 22 1; +#X connect 35 0 26 1; +#X connect 35 0 28 1; +#X connect 35 0 29 1; +#X connect 35 0 32 1; +#X connect 35 0 34 0; +#X connect 36 0 18 1; +#X connect 36 0 27 1; +#X connect 36 0 31 1; +#X connect 36 0 33 1; +#X connect 36 0 34 1; +#X connect 36 0 37 0; +#X connect 36 0 38 1; +#X connect 37 0 36 0; +#X connect 37 1 39 0; +#X connect 38 0 11 0; +#X connect 38 1 36 0; +#X connect 39 0 12 1; +#X connect 39 0 13 1; +#X connect 39 0 16 1; +#X connect 39 0 17 1; +#X connect 39 0 29 0; +#X connect 39 0 30 1; +#X connect 39 0 37 1; +#X connect 40 0 14 1; +#X connect 40 0 15 0; +#X connect 40 0 16 0; +#X connect 40 0 23 1; +#X connect 40 0 24 1; +#X connect 40 0 25 0; +#X connect 40 0 26 0; +#X connect 40 0 27 0; +#X restore 372 150 pd structure; +#X msg 590 101 force2D 0 5; +#X msg 646 127 force2D 5 0; +#N canvas 623 135 504 293 init 0; +#X msg 200 169 setK \$1; +#X msg 274 143 setD \$1; +#X msg 416 115 setM \$1; +#X floatatom 200 94 5 -10 200 0 - - -; +#X floatatom 274 92 5 0 0 0 - - -; +#X floatatom 416 92 5 0 0 0 - - -; +#X obj 200 143 / 10; +#X obj 200 117 + 1; +#X obj 274 116 / 10; +#X msg 200 67 100; +#X msg 274 68 25; +#X msg 416 66 50; +#X floatatom 341 92 5 0 0 0 - - -; +#X obj 341 116 / 10; +#X msg 341 143 setD2 \$1; +#X msg 341 68 1; +#X obj 200 201 s \$0-lia; +#X obj 416 143 s \$0-masse; +#X obj 42 50 loadbang; +#X obj 44 202 s \$0-masse; +#X msg 44 84 setXmin -3.8; +#X msg 57 109 setXmax 3.8; +#X msg 75 133 setYmin -3.8; +#X msg 88 159 setYmax 3.8; +#X connect 0 0 16 0; +#X connect 1 0 16 0; +#X connect 2 0 17 0; +#X connect 3 0 7 0; +#X connect 4 0 8 0; +#X connect 5 0 2 0; +#X connect 6 0 0 0; +#X connect 7 0 6 0; +#X connect 8 0 1 0; +#X connect 9 0 3 0; +#X connect 10 0 4 0; +#X connect 11 0 5 0; +#X connect 12 0 13 0; +#X connect 13 0 14 0; +#X connect 14 0 16 0; +#X connect 15 0 12 0; +#X connect 18 0 20 0; +#X connect 18 0 21 0; +#X connect 18 0 22 0; +#X connect 18 0 23 0; +#X connect 20 0 19 0; +#X connect 21 0 19 0; +#X connect 22 0 19 0; +#X connect 23 0 19 0; +#X restore 372 123 pd init; +#X obj 117 52 loadbang; +#X msg 592 155 force2D 0 -5; +#X msg 535 128 force2D -5 0; +#X obj 51 181 s \$0-lia; +#X obj 16 209 s \$0-masse; +#X obj 591 187 s \$0-masse; +#X msg 145 108 reset; +#X msg 119 132 resetL; +#X msg 94 153 resetF; +#X obj 94 81 t b b b; +#X obj 223 176 color 1 0 0; +#X obj 223 231 rectangle 2 1; +#X obj 223 146 gemhead 40; +#X obj 223 205 translateXYZ -2 -3 0; +#X text 437 310 <- positive Y force : just in the red square; +#X text 239 284 <- negative Y force (gravity) everywhere.; +#X text 92 361 the red square is a place with force from bottom to +top. like a ball in wather.; +#X obj 16 77 metro 50; +#X obj 224 107 gemwin; +#X obj 26 285 iAmbient2D \$0-masse 0 -1; +#X obj 24 309 iAmbient2D \$0-masse 0 3 0 0 0 -4 0 -4 -2; +#X text 285 -27 This is the same ball as prevuis exemple \, but in +a differents context.; +#X obj 646 72 loadbang; +#X text 40 54 <- 1; +#X text 359 55 <- 2; +#X text 579 212 move the structure; +#X connect 0 0 13 0; +#X connect 0 1 12 0; +#X connect 0 1 28 0; +#X connect 0 1 29 0; +#X connect 1 0 26 0; +#X connect 2 0 18 0; +#X connect 3 0 27 0; +#X connect 4 0 27 0; +#X connect 6 0 14 0; +#X connect 7 0 14 0; +#X connect 9 0 18 0; +#X connect 10 0 14 0; +#X connect 11 0 14 0; +#X connect 15 0 13 0; +#X connect 16 0 12 0; +#X connect 17 0 12 0; +#X connect 18 0 17 0; +#X connect 18 1 16 0; +#X connect 18 2 15 0; +#X connect 19 0 22 0; +#X connect 21 0 19 0; +#X connect 22 0 20 0; +#X connect 26 0 0 0; +#X connect 31 0 7 0; diff --git a/exemples/16_name_and_interactors.pd b/exemples/16_name_and_interactors.pd new file mode 100755 index 0000000..0b71d57 --- /dev/null +++ b/exemples/16_name_and_interactors.pd @@ -0,0 +1,148 @@ +#N canvas 34 14 669 578 12; +#X obj 9 18 t b b; +#X obj 9 -30 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0 1 +; +#X obj 158 -6 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 +-1; +#X msg 238 46 0 \, destroy; +#X msg 204 21 reset \, create \, 1; +#N canvas 623 135 504 293 init 0; +#X obj 49 50 loadbang; +#X msg 44 84 Xmin -3.8; +#X msg 58 110 Xmax 3.8; +#X msg 81 131 Ymin -3.8; +#X msg 95 157 Ymax 3.8; +#X obj 47 201 s \$0-masse; +#X connect 0 0 1 0; +#X connect 0 0 2 0; +#X connect 0 0 3 0; +#X connect 0 0 4 0; +#X connect 1 0 5 0; +#X connect 2 0 5 0; +#X connect 3 0 5 0; +#X connect 4 0 5 0; +#X restore 401 -8 pd init; +#X obj 88 -11 loadbang; +#X msg 139 45 reset; +#X msg 113 69 resetL; +#X msg 88 93 resetF; +#X obj 88 18 t b b b; +#X obj 9 -9 metro 50; +#X obj 204 74 gemwin; +#X text 90 152 negative Y force (gravity); +#X text 86 266 positive Y force; +#X obj 23 498 gemhead; +#X obj 43 524 unpack s f f; +#X obj 42 551 translateXYZ 0 0 0; +#X obj 42 583 sphere 0.3; +#X obj 173 498 gemhead; +#X obj 193 524 unpack s f f; +#X obj 192 551 translateXYZ 0 0 0; +#X obj 192 583 sphere 0.3; +#X obj 330 499 gemhead; +#X obj 350 525 unpack s f f; +#X obj 349 552 translateXYZ 0 0 0; +#X obj 349 584 sphere 0.3; +#X obj 479 499 gemhead; +#X obj 499 525 unpack s f f; +#X obj 498 552 translateXYZ 0 0 0; +#X obj 498 584 sphere 0.3; +#X obj 628 499 gemhead; +#X obj 648 525 unpack s f f; +#X obj 647 552 translateXYZ 0 0 0; +#X obj 647 584 sphere 0.3; +#X obj 44 465 masse2D foo 1 -2 3; +#X obj 193 465 masse2D foo2 1 -1 3; +#X obj 350 465 masse2D foo3 1 0 3; +#X obj 499 465 masse2D foo4 1 1 3; +#X obj 648 465 masse2D foo 1 2 3; +#X obj 9 123 s masse; +#X obj 55 437 r masse; +#X obj 193 438 r masse; +#X obj 350 436 r masse; +#X obj 499 436 r masse; +#X obj 648 437 r masse; +#X obj 52 174 iAmbient2D foo 0 -0.1; +#X obj 63 201 iAmbient2D foo2 0 -0.1; +#X obj 76 227 iAmbient2D foo3 0 -0.1; +#X text 268 173 force is apply to masse named foo \, foo2 and foo3 +; +#X text 344 287 a positive forece is apply to foo2 \, and to foo3 (according +to pd link). this force allows masse 2 and 3 to stay at Y=0.; +#X obj 529 657 iAmbient2D; +#X obj 530 684 iLine2D; +#X obj 530 710 iSeg2D; +#X obj 530 737 iCircle2D; +#X msg 17 406 reset; +#X obj 17 379 sel 1; +#X obj 17 351 tSquare2D -4 4 -10000 -4; +#X text 260 345 tSquare is a test : test if the position of the masse +is in a specific square. This test is used to reset the mass to it's +initial state if the mass go out of the screen.; +#X obj 44 292 iSeg2D foo2 -3 0 3 0 3 0 0 0.5 1; +#X text 398 -34 This patch explain how interactors works; +#X text 283 195 but not to foo4 \, so it will not move.; +#X text 201 -10 <- reset; +#X text 348 50 interactor are design to be a kind of link beetween +masses and a simple object.; +#X text 347 85 interactors can be a link to all masse with the same +name. It's easier to patch than putting a link object for all link. +; +#X text 41 655 for more informations about interactors or test \, see +the help file :; +#X obj 623 683 tLine2D; +#X obj 623 709 tSeg2D; +#X obj 623 736 tCircle2D; +#X obj 622 656 tSquare2D; +#X text 356 20 <- 1 GEM window; +#X text 34 -37 <- 2 begin simulation; +#X connect 0 0 40 0; +#X connect 0 1 46 0; +#X connect 0 1 47 0; +#X connect 0 1 48 0; +#X connect 0 1 59 0; +#X connect 1 0 11 0; +#X connect 2 0 10 0; +#X connect 3 0 12 0; +#X connect 4 0 12 0; +#X connect 6 0 10 0; +#X connect 7 0 40 0; +#X connect 10 0 9 0; +#X connect 10 1 8 0; +#X connect 10 2 7 0; +#X connect 11 0 0 0; +#X connect 15 0 17 0; +#X connect 16 1 17 1; +#X connect 16 2 17 2; +#X connect 17 0 18 0; +#X connect 19 0 21 0; +#X connect 20 1 21 1; +#X connect 20 2 21 2; +#X connect 21 0 22 0; +#X connect 23 0 25 0; +#X connect 24 1 25 1; +#X connect 24 2 25 2; +#X connect 25 0 26 0; +#X connect 27 0 29 0; +#X connect 28 1 29 1; +#X connect 28 2 29 2; +#X connect 29 0 30 0; +#X connect 31 0 33 0; +#X connect 32 1 33 1; +#X connect 32 2 33 2; +#X connect 33 0 34 0; +#X connect 35 0 16 0; +#X connect 35 0 57 0; +#X connect 36 0 20 0; +#X connect 37 0 24 0; +#X connect 38 0 28 0; +#X connect 39 0 32 0; +#X connect 41 0 35 0; +#X connect 42 0 36 0; +#X connect 43 0 37 0; +#X connect 44 0 38 0; +#X connect 45 0 39 0; +#X connect 55 0 35 0; +#X connect 56 0 55 0; +#X connect 57 0 56 0; +#X connect 59 0 37 0; diff --git a/exemples/17_rnd_mouvmnt_and_obstacles.pd b/exemples/17_rnd_mouvmnt_and_obstacles.pd new file mode 100755 index 0000000..3de27d9 --- /dev/null +++ b/exemples/17_rnd_mouvmnt_and_obstacles.pd @@ -0,0 +1,74 @@ +#N canvas 29 57 762 481 10; +#X obj 18 182 t b b; +#X obj 18 134 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0 1 +; +#X obj 18 155 metro 50; +#X obj 107 138 loadbang; +#X obj 433 139 fluide_masse; +#X msg 56 65 0 \, destroy; +#X obj 22 93 gemwin; +#X msg 22 40 reset \, create \, 1; +#X obj 18 446 s masse; +#X obj 346 141 gemhead; +#X obj 346 164 sphere 0.7; +#X obj 118 187 s reset_masse; +#X msg 107 163 bang; +#X obj 443 149 fluide_masse; +#X obj 453 159 fluide_masse; +#X obj 463 169 fluide_masse; +#X obj 473 179 fluide_masse; +#X obj 483 189 fluide_masse; +#X obj 493 199 fluide_masse; +#X obj 503 209 fluide_masse; +#X obj 513 219 fluide_masse; +#X obj 523 229 fluide_masse; +#X obj 533 239 fluide_masse; +#X obj 543 249 fluide_masse; +#X obj 553 259 fluide_masse; +#X obj 534 138 fluide_masse; +#X obj 544 148 fluide_masse; +#X obj 554 158 fluide_masse; +#X obj 564 168 fluide_masse; +#X obj 574 178 fluide_masse; +#X obj 584 188 fluide_masse; +#X obj 594 198 fluide_masse; +#X obj 604 208 fluide_masse; +#X obj 614 218 fluide_masse; +#X obj 624 228 fluide_masse; +#X obj 634 238 fluide_masse; +#X obj 644 248 fluide_masse; +#X obj 654 258 fluide_masse; +#X obj 664 268 fluide_masse; +#X text 283 49 the mouving particules don't interact each other; +#X text 283 65 they interact with 4 lines (the border of the screen) +\, and with a central circle so they bonce on the obstacle.; +#X obj 107 285 iAmbient2D masse 0 0 3 3; +#X obj 43 308 iLine2D masse 3 -3 3 3 1000 0 0 1; +#X obj 53 332 iLine2D masse -3 3 -3 -3 1000 0 0 1; +#X obj 68 355 iLine2D masse 3 3 -3 3 1000 0 0 1; +#X obj 78 378 iLine2D masse -3 -3 3 -3 1000 0 0 1; +#X obj 43 417 iCircle2D masse 0 0 0 1 0 0 10; +#X obj 563 269 fluide_masse; +#X text 302 287 <- give random speed when starting the patch; +#X text 301 309 <- right border; +#X text 302 331 <- left border; +#X text 302 353 <- top border; +#X text 302 375 <- bottom border; +#X text 302 416 <- circular interaction in the center; +#X text 328 25 interactor to a collection of masses; +#X text 132 40 <- 1; +#X text 45 131 <- 2; +#X connect 0 0 8 0; +#X connect 0 1 42 0; +#X connect 0 1 43 0; +#X connect 0 1 44 0; +#X connect 0 1 45 0; +#X connect 0 1 46 0; +#X connect 1 0 2 0; +#X connect 2 0 0 0; +#X connect 3 0 12 0; +#X connect 5 0 6 0; +#X connect 7 0 6 0; +#X connect 9 0 10 0; +#X connect 12 0 11 0; +#X connect 12 0 41 0; diff --git a/exemples/18_flipper.pd b/exemples/18_flipper.pd new file mode 100755 index 0000000..778119f --- /dev/null +++ b/exemples/18_flipper.pd @@ -0,0 +1,265 @@ +#N canvas 106 59 736 538 10; +#X obj 11 91 t b b; +#X obj 11 43 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0 1 +; +#X obj 60 86 loadbang; +#X msg 60 108 reset; +#X msg 185 104 0 \, destroy; +#X obj 11 132 s masse; +#X obj 481 330 gemhead; +#X obj 481 363 translateXYZ; +#X obj 470 303 unpack s f f; +#X obj 11 64 metro 5; +#X obj 481 392 sphere 0.2; +#X msg 198 129 reset \, dimen 400 800 \, create \, 1; +#N canvas 435 26 414 248 bords 0; +#X obj 10 9 inlet; +#X obj 39 165 curve 2; +#X obj 37 101 gemhead; +#X obj 101 116 loadbang; +#X obj 198 166 curve 2; +#X obj 196 102 gemhead; +#X obj 260 117 loadbang; +#X msg 66 141 -2 1 0; +#X msg 225 142 2 1 0; +#X msg 130 139 -1 -3 0; +#X msg 289 140 1 -3 0; +#X obj 18 34 iSeg2D masse -2 1 -1 -3 10 0 0 1 0.3 0.3; +#X obj 18 58 iSeg2D masse 1 -3 2 1 10 0 0 1 0.3 0.3; +#X connect 0 0 11 0; +#X connect 0 0 12 0; +#X connect 2 0 1 0; +#X connect 3 0 7 0; +#X connect 3 0 9 0; +#X connect 5 0 4 0; +#X connect 6 0 8 0; +#X connect 6 0 10 0; +#X connect 7 0 1 1; +#X connect 8 0 4 1; +#X connect 9 0 1 2; +#X connect 10 0 4 2; +#X restore 81 214 pd bords; +#N canvas 585 242 753 499 curseur 0; +#X obj 23 20 inlet; +#X obj 343 300 curve 2; +#X obj 343 247 gemhead; +#X obj 516 23 loadbang; +#X obj 568 307 curve 2; +#X obj 568 257 gemhead; +#X obj 399 143 sin; +#X obj 361 142 cos; +#X obj 400 166 * 0.8; +#X obj 362 167 * 0.8; +#X obj 360 216 pack f f 0; +#X obj 365 118 t f f; +#X obj 362 189 - 1; +#X obj 400 190 - 2.5; +#X obj 363 49 sel 0 1; +#X obj 364 96 line; +#X obj 365 24 inlet; +#X obj 625 146 sin; +#X obj 587 145 cos; +#X obj 586 219 pack f f 0; +#X obj 591 121 t f f; +#X obj 589 52 sel 0 1; +#X obj 590 99 line; +#X obj 591 27 inlet; +#X obj 588 170 * -0.8; +#X obj 626 169 * -0.8; +#X msg 362 70 -0.6 50; +#X msg 419 71 0.3 50; +#X msg 588 73 0.6 50; +#X msg 644 74 -0.3 50; +#X obj 627 194 - 2.5; +#X obj 588 192 + 1; +#X msg 380 274 -1.3 -2.5 0; +#X msg 605 280 1.3 -2.5 0; +#X msg 434 387 setX1 \$1; +#X msg 442 412 setY1 \$1; +#X msg 265 319 setX2 \$1; +#X msg 285 344 setY2 \$1; +#X obj 40 387 iSeg2D masse -1.3 -2.5 0 0 0.4 0 0 1 0.5 0.5; +#X obj 26 441 iSeg2D masse 0 0 1.3 -2.5 0.4 0 0 1 0.5 0.5; +#X connect 0 0 38 0; +#X connect 0 0 39 0; +#X connect 2 0 1 0; +#X connect 3 0 32 0; +#X connect 3 0 33 0; +#X connect 5 0 4 0; +#X connect 6 0 8 0; +#X connect 7 0 9 0; +#X connect 8 0 13 0; +#X connect 9 0 12 0; +#X connect 10 0 1 1; +#X connect 11 0 7 0; +#X connect 11 1 6 0; +#X connect 12 0 10 0; +#X connect 12 0 36 0; +#X connect 13 0 10 1; +#X connect 13 0 37 0; +#X connect 14 0 26 0; +#X connect 14 1 27 0; +#X connect 15 0 11 0; +#X connect 16 0 14 0; +#X connect 17 0 25 0; +#X connect 18 0 24 0; +#X connect 19 0 4 1; +#X connect 20 0 18 0; +#X connect 20 1 17 0; +#X connect 21 0 28 0; +#X connect 21 1 29 0; +#X connect 22 0 20 0; +#X connect 23 0 21 0; +#X connect 24 0 31 0; +#X connect 25 0 30 0; +#X connect 26 0 15 0; +#X connect 27 0 15 0; +#X connect 28 0 22 0; +#X connect 29 0 22 0; +#X connect 30 0 19 1; +#X connect 30 0 35 0; +#X connect 31 0 19 0; +#X connect 31 0 34 0; +#X connect 32 0 1 2; +#X connect 33 0 4 2; +#X connect 34 0 39 0; +#X connect 35 0 39 0; +#X connect 36 0 38 0; +#X connect 37 0 38 0; +#X restore 36 414 pd curseur; +#N canvas 401 13 480 352 bords2 0; +#X obj 10 9 inlet; +#X obj 78 189 curve 2; +#X obj 76 125 gemhead; +#X obj 140 140 loadbang; +#X obj 237 190 curve 2; +#X obj 235 126 gemhead; +#X obj 299 141 loadbang; +#X msg 105 165 -1.8 4 0; +#X msg 169 163 -1.8 -1 0; +#X msg 264 166 1.8 4 0; +#X msg 327 164 1.8 -1 0; +#X obj 42 51 iSeg2D masse -1.8 4 -1.8 -1 2 0 0 0.4 0.4 0.5; +#X obj 42 75 iSeg2D masse 1.8 -1.2 1.8 4 2 0 0 0.4 0.4 0.5; +#X connect 0 0 11 0; +#X connect 0 0 12 0; +#X connect 2 0 1 0; +#X connect 3 0 7 0; +#X connect 3 0 8 0; +#X connect 5 0 4 0; +#X connect 6 0 9 0; +#X connect 6 0 10 0; +#X connect 7 0 1 1; +#X connect 8 0 1 2; +#X connect 9 0 4 1; +#X connect 10 0 4 2; +#X restore 81 238 pd bords2; +#X obj 42 346 gemmouse; +#N canvas 399 45 480 347 top 0; +#X obj 10 9 inlet; +#X obj 78 189 curve 2; +#X obj 76 125 gemhead; +#X obj 140 140 loadbang; +#X msg 105 165 4 3.5 0; +#X msg 169 163 -4 3.5 0; +#X obj 16 47 iSeg2D masse 4 3.5 -4 3.5 2 0 0 0.4 0.4 0.4; +#X connect 0 0 6 0; +#X connect 2 0 1 0; +#X connect 3 0 4 0; +#X connect 3 0 5 0; +#X connect 4 0 1 1; +#X connect 5 0 1 2; +#X restore 81 263 pd top; +#N canvas 893 368 484 356 circle 0; +#X obj 23 15 inlet; +#X obj 25 177 gemhead; +#X obj 25 201 translateXYZ 0 2.5 0; +#X obj 26 225 sphere 0.3; +#X obj 156 178 gemhead; +#X obj 157 226 sphere 0.3; +#X obj 287 179 gemhead; +#X obj 288 227 sphere 0.3; +#X obj 156 202 translateXYZ 1 1.5 0; +#X obj 287 203 translateXYZ -1 1.5 0; +#X obj 36 51 iCircle2D masse 0 2.5 0 0.3 1; +#X obj 36 75 iCircle2D masse 1 1.5 0 0.3 1; +#X obj 37 97 iCircle2D masse -1 1.5 0 0.3 1; +#X connect 0 0 10 0; +#X connect 0 0 11 0; +#X connect 0 0 12 0; +#X connect 1 0 2 0; +#X connect 2 0 3 0; +#X connect 4 0 8 0; +#X connect 6 0 9 0; +#X connect 8 0 5 0; +#X connect 9 0 7 0; +#X restore 80 192 pd circle; +#X obj 470 279 masse2D masse 10 1.5 3.4; +#X msg 74 487 \; masse reset \;; +#X obj 103 320 loadbang; +#X msg 103 344 0; +#X obj 80 170 iAmbient2D masse 0 -0.001 0 0 0.003; +#X text 357 34 click on the GEM windows with right and left click. +; +#X text 359 50 middle click to reset the game; +#X obj 181 258 keyname; +#X msg 218 308 1; +#X msg 261 307 0; +#X obj 181 338 spigot; +#X obj 292 257 keyname; +#X msg 329 307 1; +#X msg 378 306 0; +#X obj 292 337 spigot; +#X obj 218 283 sel Left; +#X obj 329 283 sel Right; +#X obj 88 441 key; +#X obj 88 462 sel 32; +#X text 356 80 If you don't have a 3 button mouse \, you can use left +\, right key \, and space for resetting the game.; +#X text 403 128 <- this is better \, but seem to crash somes computers +; +#X msg 173 82 reset \, create \, 1; +#X text 284 82 <- 1; +#X text 36 42 <- 2; +#X obj 173 151 gemwin 50; +#X connect 0 0 5 0; +#X connect 0 1 12 0; +#X connect 0 1 13 0; +#X connect 0 1 14 0; +#X connect 0 1 16 0; +#X connect 0 1 22 0; +#X connect 0 1 17 0; +#X connect 1 0 9 0; +#X connect 2 0 3 0; +#X connect 3 0 5 0; +#X connect 4 0 42 0; +#X connect 6 0 7 0; +#X connect 7 0 10 0; +#X connect 8 1 7 1; +#X connect 8 2 7 2; +#X connect 9 0 0 0; +#X connect 11 0 42 0; +#X connect 15 2 13 1; +#X connect 15 3 19 0; +#X connect 15 4 13 2; +#X connect 18 0 8 0; +#X connect 20 0 21 0; +#X connect 21 0 13 2; +#X connect 21 0 13 1; +#X connect 25 0 28 0; +#X connect 25 1 33 0; +#X connect 26 0 28 1; +#X connect 27 0 28 1; +#X connect 28 0 13 1; +#X connect 29 0 32 0; +#X connect 29 1 34 0; +#X connect 30 0 32 1; +#X connect 31 0 32 1; +#X connect 32 0 13 2; +#X connect 33 0 26 0; +#X connect 33 1 27 0; +#X connect 34 0 30 0; +#X connect 34 1 31 0; +#X connect 35 0 36 0; +#X connect 36 0 19 0; +#X connect 39 0 42 0; diff --git a/exemples/19_vertex.pd b/exemples/19_vertex.pd new file mode 100755 index 0000000..63984a6 --- /dev/null +++ b/exemples/19_vertex.pd @@ -0,0 +1,107 @@ +#N canvas 155 178 513 340 10; +#X obj 17 248 t b b; +#X obj 17 150 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0 1 +; +#X obj 106 207 loadbang; +#X msg 233 196 0 \, destroy; +#X obj 199 224 gemwin; +#X msg 199 171 reset \, create \, 1; +#X obj 17 304 s masse; +#X obj 106 253 s reset_masse; +#X msg 106 229 bang; +#N canvas 717 329 472 322 pool 0; +#X obj 106 103 fluide_masse2 19; +#X obj 186 183 fluide_masse2 27; +#X obj 166 163 fluide_masse2 25; +#X obj 16 13 fluide_masse2 10; +#X obj 26 23 fluide_masse2 11; +#X obj 36 33 fluide_masse2 12; +#X obj 46 43 fluide_masse2 13; +#X obj 56 53 fluide_masse2 14; +#X obj 66 63 fluide_masse2 15; +#X obj 76 73 fluide_masse2 16; +#X obj 86 83 fluide_masse2 17; +#X obj 96 93 fluide_masse2 18; +#X obj 116 113 fluide_masse2 20; +#X obj 126 123 fluide_masse2 21; +#X obj 136 133 fluide_masse2 22; +#X obj 146 143 fluide_masse2 23; +#X obj 156 153 fluide_masse2 24; +#X obj 176 173 fluide_masse2 26; +#X obj 196 193 fluide_masse2 28; +#X obj 206 203 fluide_masse2 29; +#X obj 216 213 fluide_masse2 30; +#X obj 226 223 fluide_masse2 31; +#X obj 236 233 fluide_masse2 32; +#X obj 246 243 fluide_masse2 33; +#X obj 256 253 fluide_masse2 34; +#X obj 266 263 fluide_masse2 35; +#X obj 276 273 fluide_masse2 36; +#X obj 286 283 fluide_masse2 37; +#X obj 296 293 fluide_masse2 38; +#X obj 306 303 fluide_masse2 39; +#X obj 316 313 fluide_masse2 40; +#X obj 326 323 fluide_masse2 41; +#X obj 336 333 fluide_masse2 42; +#X obj 346 343 fluide_masse2 43; +#X obj 356 353 fluide_masse2 44; +#X obj 366 363 fluide_masse2 45; +#X obj 376 373 fluide_masse2 46; +#X obj 386 383 fluide_masse2 47; +#X obj 396 393 fluide_masse2 48; +#X obj 406 403 fluide_masse2 49; +#X obj 416 413 fluide_masse2 50; +#X restore 355 201 pd pool; +#N canvas 860 482 340 441 creation 0; +#X obj 43 318 s pd-new; +#X msg 87 95 \; pd filename new ./ \; #N canvas \; #X pop 1 \;; +#X msg 43 289 menuclose; +#X obj 76 237 pack f f f; +#X obj 43 47 sel 0 1; +#X obj 44 29 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0 1 +; +#X obj 61 72 t b b; +#X obj 76 186 t f f f; +#X msg 76 265 obj \$1 \$2 fluide_masse2 \$3; +#X obj 103 210 * 10; +#X obj 76 210 * 10; +#X obj 61 163 ch_uzi 60; +#X text 30 373 used to create the collection of object; +#X connect 2 0 0 0; +#X connect 3 0 8 0; +#X connect 4 0 2 0; +#X connect 4 1 6 0; +#X connect 5 0 4 0; +#X connect 6 0 11 0; +#X connect 6 1 1 0; +#X connect 7 0 10 0; +#X connect 7 1 9 0; +#X connect 7 2 3 2; +#X connect 8 0 0 0; +#X connect 9 0 3 1; +#X connect 10 0 3 0; +#X connect 11 1 7 0; +#X restore 355 227 pd creation pool; +#X text 15 65 this exemple got 250 masses \, so it nead more CPU than +before.; +#X msg 60 176 20; +#X floatatom 60 199 5 0 0 0 - - -; +#X text 15 102 if you've got a slow computer \, you can slow down the +computation speed by changing the metronome frequency.; +#X text 44 149 <- begin; +#X text 176 5 Fuids mecanics; +#X text 85 31 Masses have no weight \, they are in a displacement field +\, corresponding to a vertex.; +#X obj 42 279 iCircle2D masse 0 0 0 5 0 0 0 0 0 0 0 0 0 0.0005; +#X obj 17 221 metro 20; +#X text 309 170 <- 1; +#X connect 0 0 6 0; +#X connect 0 1 18 0; +#X connect 1 0 19 0; +#X connect 2 0 8 0; +#X connect 3 0 4 0; +#X connect 5 0 4 0; +#X connect 8 0 7 0; +#X connect 12 0 13 0; +#X connect 13 0 19 1; +#X connect 19 0 0 0; diff --git a/exemples/20_moving_vertex.pd b/exemples/20_moving_vertex.pd new file mode 100755 index 0000000..6066017 --- /dev/null +++ b/exemples/20_moving_vertex.pd @@ -0,0 +1,117 @@ +#N canvas 546 89 548 542 10; +#X obj 16 222 t b b; +#X obj 16 151 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0 1 +; +#X obj 105 179 loadbang; +#X msg 250 200 0 \, destroy; +#X obj 216 228 gemwin; +#X msg 216 175 reset \, create \, 1; +#X obj 16 486 s masse; +#X obj 105 227 s reset_masse; +#X msg 105 203 bang; +#X obj 16 195 metro 5; +#N canvas 860 482 416 441 creation 0; +#X obj 40 362 s pd-new; +#X msg 95 95 \; pd filename new ./ \; #N canvas \; #X pop 1 \;; +#X msg 45 333 menuclose; +#X obj 85 286 pack f f f; +#X obj 43 47 sel 0 1; +#X obj 44 29 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0 1 +; +#X obj 69 72 t b b; +#X obj 85 235 t f f f; +#X msg 83 314 obj \$1 \$2 fluide_masse2 \$3; +#X obj 112 261 * 10; +#X obj 85 259 * 10; +#X obj 89 188 * 2; +#X obj 73 163 ch_uzi 30; +#X connect 2 0 0 0; +#X connect 3 0 8 0; +#X connect 4 0 2 0; +#X connect 4 1 6 0; +#X connect 5 0 4 0; +#X connect 6 0 12 0; +#X connect 6 1 1 0; +#X connect 7 0 10 0; +#X connect 7 1 9 0; +#X connect 7 2 3 2; +#X connect 8 0 0 0; +#X connect 9 0 3 1; +#X connect 10 0 3 0; +#X connect 11 0 7 0; +#X connect 12 1 11 0; +#X restore 345 264 pd creation pool; +#X obj 133 305 t b b; +#X obj 194 287 r reset_masse; +#X msg 194 308 reset; +#X obj 269 346 lia foo 0 1; +#X obj 133 386 / 50; +#X text 177 373 X position of the center of the vertex.; +#X floatatom 178 390 5 0 0 0 - - -; +#X text 157 17 same as previus exemple but with a moving vertex (Y) +; +#X obj 133 470 iCircle2D masse 0 0 0 5 0 0 0 0 -1e-006 0.0001; +#X msg 133 443 setX \$1; +#X obj 133 346 masse foo 100000 99; +#N canvas 0 0 464 314 pool 0; +#X obj 0 0 fluide_masse2 0; +#X obj 20 20 fluide_masse2 2; +#X obj 40 40 fluide_masse2 4; +#X obj 60 60 fluide_masse2 6; +#X obj 80 80 fluide_masse2 8; +#X obj 100 100 fluide_masse2 10; +#X obj 120 120 fluide_masse2 12; +#X obj 140 140 fluide_masse2 14; +#X obj 160 160 fluide_masse2 16; +#X obj 180 180 fluide_masse2 18; +#X obj 200 200 fluide_masse2 20; +#X obj 220 220 fluide_masse2 22; +#X obj 240 240 fluide_masse2 24; +#X obj 260 260 fluide_masse2 26; +#X obj 280 280 fluide_masse2 28; +#X obj 300 300 fluide_masse2 30; +#X obj 320 320 fluide_masse2 32; +#X obj 340 340 fluide_masse2 34; +#X obj 360 360 fluide_masse2 36; +#X obj 380 380 fluide_masse2 38; +#X obj 400 400 fluide_masse2 40; +#X obj 420 420 fluide_masse2 42; +#X obj 440 440 fluide_masse2 44; +#X obj 460 460 fluide_masse2 46; +#X obj 480 480 fluide_masse2 48; +#X obj 500 500 fluide_masse2 50; +#X obj 520 520 fluide_masse2 52; +#X obj 540 540 fluide_masse2 54; +#X obj 560 560 fluide_masse2 56; +#X obj 580 580 fluide_masse2 58; +#X restore 345 238 pd pool; +#X text 96 41 The vertex goes from right / left with sinusoidal variations. +the mouvement comes frome a single mass/link structure \, as seen before. +; +#X text 97 92 if you've got a slow computer \, you can slow down the +computation speed by changing the metronome frequency.; +#X floatatom 53 174 5 0 0 0 - - -; +#X text 40 150 <- begin; +#X obj 41 418 iAmbient2D masse 0 0 0 0 1; +#X text 330 175 <- 1; +#X connect 0 0 6 0; +#X connect 0 1 19 0; +#X connect 0 1 27 0; +#X connect 1 0 9 0; +#X connect 2 0 8 0; +#X connect 3 0 4 0; +#X connect 5 0 4 0; +#X connect 8 0 7 0; +#X connect 9 0 0 0; +#X connect 9 0 11 0; +#X connect 11 0 21 0; +#X connect 11 1 14 0; +#X connect 12 0 13 0; +#X connect 13 0 21 0; +#X connect 14 0 21 0; +#X connect 15 0 20 0; +#X connect 20 0 19 0; +#X connect 21 0 14 0; +#X connect 21 0 15 0; +#X connect 21 0 17 0; +#X connect 25 0 9 1; diff --git a/exemples/21_fluid_circulation_cylinder.pd b/exemples/21_fluid_circulation_cylinder.pd new file mode 100755 index 0000000..01ce200 --- /dev/null +++ b/exemples/21_fluid_circulation_cylinder.pd @@ -0,0 +1,199 @@ +#N canvas 95 190 751 371 10; +#X obj 23 167 t b b; +#X obj 23 59 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0 1 +; +#X obj 483 150 loadbang; +#X msg 153 132 0 \, destroy; +#X obj 119 160 gemwin; +#X msg 119 107 reset \, create \, 1; +#X obj 23 205 s masse; +#X obj 345 126 gemhead; +#N canvas 19 7 1256 797 pool 0; +#X obj 0 0 fluide_masse6 -6 -0.958333; +#X obj 240 0 fluide_masse6 -5.71429 -0.958333; +#X obj 480 0 fluide_masse6 -5.42857 -0.958333; +#X obj 720 0 fluide_masse6 -5.14286 -0.958333; +#X obj 960 0 fluide_masse6 -4.85714 -0.958333; +#X obj 0 30 fluide_masse6 -6 -0.875; +#X obj 240 30 fluide_masse6 -5.71429 -0.875; +#X obj 480 30 fluide_masse6 -5.42857 -0.875; +#X obj 720 30 fluide_masse6 -5.14286 -0.875; +#X obj 960 30 fluide_masse6 -4.85714 -0.875; +#X obj 0 60 fluide_masse6 -6 -0.791667; +#X obj 240 60 fluide_masse6 -5.71429 -0.791667; +#X obj 480 60 fluide_masse6 -5.42857 -0.791667; +#X obj 720 60 fluide_masse6 -5.14286 -0.791667; +#X obj 960 60 fluide_masse6 -4.85714 -0.791667; +#X obj 0 90 fluide_masse6 -6 -0.708333; +#X obj 240 90 fluide_masse6 -5.71429 -0.708333; +#X obj 480 90 fluide_masse6 -5.42857 -0.708333; +#X obj 720 90 fluide_masse6 -5.14286 -0.708333; +#X obj 960 90 fluide_masse6 -4.85714 -0.708333; +#X obj 0 120 fluide_masse6 -6 -0.625; +#X obj 240 120 fluide_masse6 -5.71429 -0.625; +#X obj 480 120 fluide_masse6 -5.42857 -0.625; +#X obj 720 120 fluide_masse6 -5.14286 -0.625; +#X obj 960 120 fluide_masse6 -4.85714 -0.625; +#X obj 0 150 fluide_masse6 -6 -0.541667; +#X obj 240 150 fluide_masse6 -5.71429 -0.541667; +#X obj 480 150 fluide_masse6 -5.42857 -0.541667; +#X obj 720 150 fluide_masse6 -5.14286 -0.541667; +#X obj 960 150 fluide_masse6 -4.85714 -0.541667; +#X obj 0 180 fluide_masse6 -6 -0.458333; +#X obj 240 180 fluide_masse6 -5.71429 -0.458333; +#X obj 480 180 fluide_masse6 -5.42857 -0.458333; +#X obj 720 180 fluide_masse6 -5.14286 -0.458333; +#X obj 960 180 fluide_masse6 -4.85714 -0.458333; +#X obj 0 210 fluide_masse6 -6 -0.375; +#X obj 240 210 fluide_masse6 -5.71429 -0.375; +#X obj 480 210 fluide_masse6 -5.42857 -0.375; +#X obj 720 210 fluide_masse6 -5.14286 -0.375; +#X obj 960 210 fluide_masse6 -4.85714 -0.375; +#X obj 0 240 fluide_masse6 -6 -0.291667; +#X obj 240 240 fluide_masse6 -5.71429 -0.291667; +#X obj 480 240 fluide_masse6 -5.42857 -0.291667; +#X obj 720 240 fluide_masse6 -5.14286 -0.291667; +#X obj 960 240 fluide_masse6 -4.85714 -0.291667; +#X obj 0 270 fluide_masse6 -6 -0.208333; +#X obj 240 270 fluide_masse6 -5.71429 -0.208333; +#X obj 480 270 fluide_masse6 -5.42857 -0.208333; +#X obj 720 270 fluide_masse6 -5.14286 -0.208333; +#X obj 960 270 fluide_masse6 -4.85714 -0.208333; +#X obj 0 300 fluide_masse6 -6 -0.125; +#X obj 240 300 fluide_masse6 -5.71429 -0.125; +#X obj 480 300 fluide_masse6 -5.42857 -0.125; +#X obj 720 300 fluide_masse6 -5.14286 -0.125; +#X obj 960 300 fluide_masse6 -4.85714 -0.125; +#X obj 0 330 fluide_masse6 -6 -0.0416667; +#X obj 240 330 fluide_masse6 -5.71429 -0.0416667; +#X obj 480 330 fluide_masse6 -5.42857 -0.0416667; +#X obj 720 330 fluide_masse6 -5.14286 -0.0416667; +#X obj 960 330 fluide_masse6 -4.85714 -0.0416667; +#X obj 0 360 fluide_masse6 -6 0.0416667; +#X obj 240 360 fluide_masse6 -5.71429 0.0416667; +#X obj 480 360 fluide_masse6 -5.42857 0.0416667; +#X obj 720 360 fluide_masse6 -5.14286 0.0416667; +#X obj 960 360 fluide_masse6 -4.85714 0.0416667; +#X obj 0 390 fluide_masse6 -6 0.125; +#X obj 240 390 fluide_masse6 -5.71429 0.125; +#X obj 480 390 fluide_masse6 -5.42857 0.125; +#X obj 720 390 fluide_masse6 -5.14286 0.125; +#X obj 960 390 fluide_masse6 -4.85714 0.125; +#X obj 0 420 fluide_masse6 -6 0.208333; +#X obj 240 420 fluide_masse6 -5.71429 0.208333; +#X obj 480 420 fluide_masse6 -5.42857 0.208333; +#X obj 720 420 fluide_masse6 -5.14286 0.208333; +#X obj 960 420 fluide_masse6 -4.85714 0.208333; +#X obj 0 450 fluide_masse6 -6 0.291667; +#X obj 240 450 fluide_masse6 -5.71429 0.291667; +#X obj 480 450 fluide_masse6 -5.42857 0.291667; +#X obj 720 450 fluide_masse6 -5.14286 0.291667; +#X obj 960 450 fluide_masse6 -4.85714 0.291667; +#X obj 0 480 fluide_masse6 -6 0.375; +#X obj 240 480 fluide_masse6 -5.71429 0.375; +#X obj 480 480 fluide_masse6 -5.42857 0.375; +#X obj 720 480 fluide_masse6 -5.14286 0.375; +#X obj 960 480 fluide_masse6 -4.85714 0.375; +#X obj 0 510 fluide_masse6 -6 0.458333; +#X obj 240 510 fluide_masse6 -5.71429 0.458333; +#X obj 480 510 fluide_masse6 -5.42857 0.458333; +#X obj 720 510 fluide_masse6 -5.14286 0.458333; +#X obj 960 510 fluide_masse6 -4.85714 0.458333; +#X obj 0 540 fluide_masse6 -6 0.541667; +#X obj 240 540 fluide_masse6 -5.71429 0.541667; +#X obj 480 540 fluide_masse6 -5.42857 0.541667; +#X obj 720 540 fluide_masse6 -5.14286 0.541667; +#X obj 960 540 fluide_masse6 -4.85714 0.541667; +#X obj 0 570 fluide_masse6 -6 0.625; +#X obj 240 570 fluide_masse6 -5.71429 0.625; +#X obj 480 570 fluide_masse6 -5.42857 0.625; +#X obj 720 570 fluide_masse6 -5.14286 0.625; +#X obj 960 570 fluide_masse6 -4.85714 0.625; +#X obj 0 600 fluide_masse6 -6 0.708333; +#X obj 240 600 fluide_masse6 -5.71429 0.708333; +#X obj 480 600 fluide_masse6 -5.42857 0.708333; +#X obj 720 600 fluide_masse6 -5.14286 0.708333; +#X obj 960 600 fluide_masse6 -4.85714 0.708333; +#X obj 0 630 fluide_masse6 -6 0.791667; +#X obj 240 630 fluide_masse6 -5.71429 0.791667; +#X obj 480 630 fluide_masse6 -5.42857 0.791667; +#X obj 720 630 fluide_masse6 -5.14286 0.791667; +#X obj 960 630 fluide_masse6 -4.85714 0.791667; +#X obj 0 660 fluide_masse6 -6 0.875; +#X obj 240 660 fluide_masse6 -5.71429 0.875; +#X obj 480 660 fluide_masse6 -5.42857 0.875; +#X obj 720 660 fluide_masse6 -5.14286 0.875; +#X obj 960 660 fluide_masse6 -4.85714 0.875; +#X restore 344 180 pd pool; +#N canvas 696 98 351 591 creation 0; +#X obj 41 491 s pd-new; +#X msg 95 95 \; pd filename new ./ \; #N canvas \; #X pop 1 \;; +#X msg 40 464 menuclose; +#X obj 40 47 sel 0 1; +#X obj 40 29 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0 1 +; +#X obj 69 72 t b b; +#X obj 97 412 pack f f f f; +#X obj 89 191 t b f f; +#X obj 100 299 t f f; +#X obj 107 219 * 30; +#X obj 99 377 * 120; +#X obj 126 328 / 7; +#X obj 127 351 - 6; +#X obj 163 346 - 11.5; +#X msg 95 440 obj \$1 \$2 fluide_masse6 \$3 \$4; +#X obj 101 275 * 2; +#X obj 160 370 / 12; +#X obj 69 163 ch_uzi 23; +#X obj 88 247 ch_uzi 5; +#X connect 2 0 0 0; +#X connect 3 0 2 0; +#X connect 3 1 5 0; +#X connect 4 0 3 0; +#X connect 5 0 17 0; +#X connect 5 1 1 0; +#X connect 6 0 14 0; +#X connect 7 0 18 0; +#X connect 7 1 9 0; +#X connect 7 1 13 0; +#X connect 8 0 10 0; +#X connect 8 1 11 0; +#X connect 9 0 6 1; +#X connect 10 0 6 0; +#X connect 11 0 12 0; +#X connect 12 0 6 2; +#X connect 13 0 16 0; +#X connect 14 0 0 0; +#X connect 15 0 8 0; +#X connect 16 0 6 3; +#X connect 17 1 7 0; +#X connect 18 1 15 0; +#X restore 344 202 pd creation pool; +#X msg 483 174 reset; +#X obj 483 198 s masse; +#X obj 345 149 sphere 0.5; +#X obj 23 140 metro 10; +#X obj 73 289 iCircle2D masse 0.1 0 0 10 0 0 0 0 0 0 0 0 -0.02 0; +#X obj 58 268 iCircle2D masse -0.1 0 0 10 0 0 0 0 0 0 0 0 0.02 0; +#X text 47 58 <- begin (change the metro speed for slow computer); +#X floatatom 66 111 5 0 0 0 - - -; +#X text 123 11 simulation of no weight particules in a no viscus fluid +flow around a cylinder; +#X text 390 248 <- left to right displacement field; +#X text 390 279 <- this mouvement creation correspond to the simulation +of the cylinder; +#X obj 49 247 iAmbient2D masse 0 0 0 0 0 -1000 1000 -1000 1000 0.01 +0; +#X text 233 108 <-1; +#X connect 0 0 6 0; +#X connect 0 1 14 0; +#X connect 0 1 15 0; +#X connect 0 1 21 0; +#X connect 1 0 13 0; +#X connect 2 0 10 0; +#X connect 3 0 4 0; +#X connect 5 0 4 0; +#X connect 7 0 12 0; +#X connect 10 0 11 0; +#X connect 13 0 0 0; +#X connect 17 0 13 1; diff --git a/exemples/22_gaz_molecules.pd b/exemples/22_gaz_molecules.pd new file mode 100755 index 0000000..8048147 --- /dev/null +++ b/exemples/22_gaz_molecules.pd @@ -0,0 +1,204 @@ +#N canvas 131 77 652 468 10; +#X obj 27 199 t b b; +#X obj 27 121 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0 1 +; +#X obj 116 203 loadbang; +#X msg 245 217 0 \, destroy; +#X obj 211 245 gemwin; +#X msg 211 192 reset \, create \, 1; +#X obj 27 436 s masse; +#X obj 127 270 s reset_masse; +#X msg 116 246 bang; +#X text 358 302 <- give random speed when starting the patch; +#X text 358 326 <- right border; +#X text 359 348 <- left border; +#X text 359 370 <- top border; +#X text 359 392 <- bottom border; +#N canvas 398 169 696 677 pool 0; +#X msg 32 388 setXY \$1 \$2; +#X obj 32 241 loadbang; +#X obj 32 363 pack f f; +#X obj 32 265 t b b; +#X obj 53 465 gemhead; +#X obj 53 488 translateXYZ; +#X obj 42 438 unpack s f f; +#X obj 139 243 r reset_masse; +#X msg 32 574 setX \$1 \, setY \$2; +#X obj 32 289 random 20; +#X obj 32 335 / 4; +#X obj 98 288 random 20; +#X obj 98 334 / 4; +#X obj 32 312 - 10; +#X obj 98 310 - 10; +#X obj 8 551 r link; +#X obj 32 414 masse2D masse 100; +#X obj 53 531 sphere 0.1; +#X obj 33 598 iCircle2D masse 0 0 0.0001 0.3 0 0 1; +#X obj 53 509 color 1 0 0; +#X obj 303 303 fluide_masse5 29; +#X obj 313 313 fluide_masse5 30; +#X obj 203 203 fluide_masse5 19; +#X obj 513 513 fluide_masse5 50; +#X obj 443 443 fluide_masse5 43; +#X obj 403 403 fluide_masse5 39; +#X obj 193 193 fluide_masse5 18; +#X obj 233 233 fluide_masse5 22; +#X obj 93 93 fluide_masse5 8; +#X obj 13 13 fluide_masse5 0; +#X obj 183 183 fluide_masse5 17; +#X obj 173 173 fluide_masse5 16; +#X obj 23 23 fluide_masse5 1; +#X obj 33 33 fluide_masse5 2; +#X obj 43 43 fluide_masse5 3; +#X obj 53 53 fluide_masse5 4; +#X obj 63 63 fluide_masse5 5; +#X obj 73 73 fluide_masse5 6; +#X obj 83 83 fluide_masse5 7; +#X obj 103 103 fluide_masse5 9; +#X obj 113 113 fluide_masse5 10; +#X obj 123 123 fluide_masse5 11; +#X obj 133 133 fluide_masse5 12; +#X obj 143 143 fluide_masse5 13; +#X obj 153 153 fluide_masse5 14; +#X obj 163 163 fluide_masse5 15; +#X obj 213 213 fluide_masse5 20; +#X obj 223 223 fluide_masse5 21; +#X obj 243 243 fluide_masse5 23; +#X obj 253 253 fluide_masse5 24; +#X obj 263 263 fluide_masse5 25; +#X obj 273 273 fluide_masse5 26; +#X obj 283 283 fluide_masse5 27; +#X obj 293 293 fluide_masse5 28; +#X obj 323 323 fluide_masse5 31; +#X obj 333 333 fluide_masse5 32; +#X obj 343 343 fluide_masse5 33; +#X obj 353 353 fluide_masse5 34; +#X obj 363 363 fluide_masse5 35; +#X obj 373 373 fluide_masse5 36; +#X obj 383 383 fluide_masse5 37; +#X obj 393 393 fluide_masse5 38; +#X obj 413 413 fluide_masse5 40; +#X obj 423 423 fluide_masse5 41; +#X obj 433 433 fluide_masse5 42; +#X obj 453 453 fluide_masse5 44; +#X obj 463 463 fluide_masse5 45; +#X obj 473 473 fluide_masse5 46; +#X obj 483 483 fluide_masse5 47; +#X obj 493 493 fluide_masse5 48; +#X obj 503 503 fluide_masse5 49; +#X obj 202 424 unpack s f f f; +#X obj 324 533 osc~; +#X obj 324 508 mtof; +#X obj 324 425 loadbang; +#X obj 282 597 *~; +#X obj 281 533 line~; +#X obj 282 627 dac~; +#X obj 281 483 *; +#X obj 324 452 random 60; +#X msg 281 508 \$1 5; +#X obj 281 452 * 1; +#X obj 324 483 + 20; +#X connect 0 0 16 0; +#X connect 1 0 3 0; +#X connect 2 0 0 0; +#X connect 3 0 9 0; +#X connect 3 1 11 0; +#X connect 4 0 5 0; +#X connect 5 0 19 0; +#X connect 6 1 5 1; +#X connect 6 2 5 2; +#X connect 7 0 3 0; +#X connect 8 0 18 0; +#X connect 9 0 13 0; +#X connect 10 0 2 0; +#X connect 11 0 14 0; +#X connect 12 0 2 1; +#X connect 13 0 10 0; +#X connect 14 0 12 0; +#X connect 15 0 18 0; +#X connect 16 0 6 0; +#X connect 16 0 8 0; +#X connect 16 2 71 0; +#X connect 19 0 17 0; +#X connect 71 3 81 0; +#X connect 72 0 75 1; +#X connect 73 0 72 0; +#X connect 74 0 79 0; +#X connect 75 0 77 0; +#X connect 75 0 77 1; +#X connect 76 0 75 0; +#X connect 78 0 80 0; +#X connect 79 0 82 0; +#X connect 80 0 76 0; +#X connect 81 0 78 0; +#X connect 81 0 78 1; +#X connect 82 0 73 0; +#X restore 428 180 pd pool; +#N canvas 307 126 323 403 creation 0; +#X obj 38 318 s pd-new; +#X msg 95 95 \; pd filename new ./ \; #N canvas \; #X pop 1 \;; +#X msg 43 289 menuclose; +#X obj 83 242 pack f f f; +#X obj 43 47 sel 0 1; +#X obj 44 29 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0 1 +; +#X obj 69 72 t b b; +#X obj 83 191 t f f f; +#X obj 110 217 * 10; +#X obj 83 215 * 10; +#X msg 81 270 obj \$1 \$2 fluide_masse5 \$3; +#X obj 67 163 ch_uzi 50; +#X connect 2 0 0 0; +#X connect 3 0 10 0; +#X connect 4 0 2 0; +#X connect 4 1 6 0; +#X connect 5 0 4 0; +#X connect 6 0 11 0; +#X connect 6 1 1 0; +#X connect 7 0 9 0; +#X connect 7 1 8 0; +#X connect 7 2 3 2; +#X connect 8 0 3 1; +#X connect 9 0 3 0; +#X connect 10 0 0 0; +#X connect 11 1 7 0; +#X restore 427 206 pd creation pool; +#X obj 74 259 s link; +#X obj 27 172 metro 5; +#X obj 116 302 iAmbient2D masse 0 0 1 1; +#X obj 52 325 iLine2D masse 3.5 -3.5 3.5 3.5 1000 0 0 10; +#X obj 62 349 iLine2D masse -3.5 3.5 -3.5 -3.5 1000 0 0 10; +#X obj 77 372 iLine2D masse 3.5 3.5 -3.5 3.5 1000 0 0 10; +#X obj 88 395 iLine2D masse -3.5 -3.5 3.5 -3.5 1000 0 0 10; +#X text 238 5 All masses interact each other; +#X text 59 118 <- begin (change the metro speed for slow computer) +; +#X floatatom 64 141 5 0 0 0 - - -; +#X text 185 25 All masses got a circular interactor around them. so +each masses can interact with every other; +#X text 181 62 each time a mass is boncing somwhere \, it emit a sound. +(each masse got a frequency \, volum is prportional to forces apply +to the mass). so \, it's a simple additive synthesis.; +#X obj 119 154 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0 +1; +#X obj 119 176 metro 200; +#X text 182 152 this one is nice to!; +#X msg 426 234 \; pd dsp 1 \;; +#X msg 492 234 \; pd dsp 0 \;; +#X text 324 192 <- 1; +#X connect 0 0 6 0; +#X connect 0 1 16 0; +#X connect 0 1 19 0; +#X connect 0 1 20 0; +#X connect 0 1 21 0; +#X connect 0 1 22 0; +#X connect 1 0 17 0; +#X connect 2 0 8 0; +#X connect 3 0 4 0; +#X connect 5 0 4 0; +#X connect 8 0 7 0; +#X connect 8 0 18 0; +#X connect 17 0 0 0; +#X connect 25 0 17 1; +#X connect 28 0 29 0; +#X connect 29 0 1 0; diff --git a/exemples/23_test.pd b/exemples/23_test.pd new file mode 100755 index 0000000..5cdf183 --- /dev/null +++ b/exemples/23_test.pd @@ -0,0 +1,339 @@ +#N canvas 508 106 537 727 10; +#X obj 17 90 t b b; +#X obj 17 19 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 1 1 +; +#X obj 65 85 loadbang; +#X msg 65 107 reset; +#X msg 175 128 0 \, destroy; +#X obj 17 130 s masse; +#X obj 11 496 gemhead; +#X obj 11 529 translateXYZ; +#X obj 8 471 unpack s f f; +#X obj 17 63 metro 5; +#X obj 11 558 sphere 0.2; +#X msg 198 150 reset \, dimen 400 800 \, create \, 1; +#N canvas 435 26 414 248 bords 0; +#X obj 10 9 inlet; +#X obj 39 165 curve 2; +#X obj 37 101 gemhead; +#X obj 101 116 loadbang; +#X obj 198 166 curve 2; +#X obj 196 102 gemhead; +#X obj 260 117 loadbang; +#X msg 66 141 -2 1 0; +#X msg 225 142 2 1 0; +#X msg 130 139 -1 -3 0; +#X msg 289 140 1 -3 0; +#X obj 18 34 iSeg2D masse -2 1 -1 -3 10 0 0 1 0.3 0.3; +#X obj 18 58 iSeg2D masse 1 -3 2 1 10 0 0 1 0.3 0.3; +#X connect 0 0 11 0; +#X connect 0 0 12 0; +#X connect 2 0 1 0; +#X connect 3 0 7 0; +#X connect 3 0 9 0; +#X connect 5 0 4 0; +#X connect 6 0 8 0; +#X connect 6 0 10 0; +#X connect 7 0 1 1; +#X connect 8 0 4 1; +#X connect 9 0 1 2; +#X connect 10 0 4 2; +#X restore 71 237 pd bords; +#N canvas 585 242 753 499 curseur 0; +#X obj 23 20 inlet; +#X obj 343 300 curve 2; +#X obj 343 247 gemhead; +#X obj 516 23 loadbang; +#X obj 568 307 curve 2; +#X obj 568 257 gemhead; +#X obj 399 143 sin; +#X obj 361 142 cos; +#X obj 400 166 * 0.8; +#X obj 362 167 * 0.8; +#X obj 360 216 pack f f 0; +#X obj 365 118 t f f; +#X obj 362 189 - 1; +#X obj 400 190 - 2.5; +#X obj 363 49 sel 0 1; +#X obj 364 96 line; +#X obj 365 24 inlet; +#X obj 625 146 sin; +#X obj 587 145 cos; +#X obj 586 219 pack f f 0; +#X obj 591 121 t f f; +#X obj 589 52 sel 0 1; +#X obj 590 99 line; +#X obj 591 27 inlet; +#X obj 588 170 * -0.8; +#X obj 626 169 * -0.8; +#X msg 362 70 -0.6 50; +#X msg 419 71 0.3 50; +#X msg 588 73 0.6 50; +#X msg 644 74 -0.3 50; +#X obj 627 194 - 2.5; +#X obj 588 192 + 1; +#X msg 380 274 -1.3 -2.5 0; +#X msg 605 280 1.3 -2.5 0; +#X msg 434 387 setX1 \$1; +#X msg 442 412 setY1 \$1; +#X msg 265 319 setX2 \$1; +#X msg 285 344 setY2 \$1; +#X obj 40 387 iSeg2D masse -1.3 -2.5 0 0 0.4 0 0 1 0.5 0.5; +#X obj 26 441 iSeg2D masse 0 0 1.3 -2.5 0.4 0 0 1 0.5 0.5; +#X connect 0 0 38 0; +#X connect 0 0 39 0; +#X connect 2 0 1 0; +#X connect 3 0 32 0; +#X connect 3 0 33 0; +#X connect 5 0 4 0; +#X connect 6 0 8 0; +#X connect 7 0 9 0; +#X connect 8 0 13 0; +#X connect 9 0 12 0; +#X connect 10 0 1 1; +#X connect 11 0 7 0; +#X connect 11 1 6 0; +#X connect 12 0 10 0; +#X connect 12 0 36 0; +#X connect 13 0 10 1; +#X connect 13 0 37 0; +#X connect 14 0 26 0; +#X connect 14 1 27 0; +#X connect 15 0 11 0; +#X connect 16 0 14 0; +#X connect 17 0 25 0; +#X connect 18 0 24 0; +#X connect 19 0 4 1; +#X connect 20 0 18 0; +#X connect 20 1 17 0; +#X connect 21 0 28 0; +#X connect 21 1 29 0; +#X connect 22 0 20 0; +#X connect 23 0 21 0; +#X connect 24 0 31 0; +#X connect 25 0 30 0; +#X connect 26 0 15 0; +#X connect 27 0 15 0; +#X connect 28 0 22 0; +#X connect 29 0 22 0; +#X connect 30 0 19 1; +#X connect 30 0 35 0; +#X connect 31 0 19 0; +#X connect 31 0 34 0; +#X connect 32 0 1 2; +#X connect 33 0 4 2; +#X connect 34 0 39 0; +#X connect 35 0 39 0; +#X connect 36 0 38 0; +#X connect 37 0 38 0; +#X restore 46 357 pd curseur; +#N canvas 401 13 480 352 bords2 0; +#X obj 10 9 inlet; +#X obj 78 189 curve 2; +#X obj 76 125 gemhead; +#X obj 140 140 loadbang; +#X obj 237 190 curve 2; +#X obj 235 126 gemhead; +#X obj 299 141 loadbang; +#X msg 105 165 -1.8 4 0; +#X msg 169 163 -1.8 -1 0; +#X msg 264 166 1.8 4 0; +#X msg 327 164 1.8 -1 0; +#X obj 42 51 iSeg2D masse -1.8 4 -1.8 -1 2 0 0 0.4 0.4 0.5; +#X obj 42 75 iSeg2D masse 1.8 -1.2 1.8 4 2 0 0 0.4 0.4 0.5; +#X connect 0 0 11 0; +#X connect 0 0 12 0; +#X connect 2 0 1 0; +#X connect 3 0 7 0; +#X connect 3 0 8 0; +#X connect 5 0 4 0; +#X connect 6 0 9 0; +#X connect 6 0 10 0; +#X connect 7 0 1 1; +#X connect 8 0 1 2; +#X connect 9 0 4 1; +#X connect 10 0 4 2; +#X restore 71 261 pd bords2; +#X obj 54 332 gemmouse; +#N canvas 399 45 480 347 top 0; +#X obj 10 9 inlet; +#X obj 78 189 curve 2; +#X obj 76 125 gemhead; +#X obj 140 140 loadbang; +#X msg 105 165 4 3.5 0; +#X msg 169 163 -4 3.5 0; +#X obj 16 47 iSeg2D masse 4 3.5 -4 3.5 2 0 0 0.4 0.4 0.4; +#X connect 0 0 6 0; +#X connect 2 0 1 0; +#X connect 3 0 4 0; +#X connect 3 0 5 0; +#X connect 4 0 1 1; +#X connect 5 0 1 2; +#X restore 71 284 pd top; +#N canvas 567 215 490 520 circle 0; +#X obj 23 15 inlet; +#X obj 26 323 gemhead; +#X obj 26 347 translateXYZ 0 2.5 0; +#X obj 27 428 sphere 0.3; +#X obj 157 324 gemhead; +#X obj 158 429 sphere 0.3; +#X obj 288 325 gemhead; +#X obj 289 430 sphere 0.3; +#X obj 157 348 translateXYZ 1 1.5 0; +#X obj 288 349 translateXYZ -1 1.5 0; +#X obj 36 51 iCircle2D masse 0 2.5 0 0.3 1; +#X obj 36 75 iCircle2D masse 1 1.5 0 0.3 1; +#X obj 37 97 iCircle2D masse -1 1.5 0 0.3 1; +#X obj 26 372 color 1 1 1; +#X obj 156 370 color 1 1 1; +#X obj 287 371 color 1 1 1; +#X msg 100 280 1 1 1; +#X msg 85 233 1 0 0; +#X obj 91 188 r color1; +#X obj 90 211 sel 1; +#X obj 100 258 delay 200; +#X msg 214 282 1 1 1; +#X msg 199 235 1 0 0; +#X obj 204 213 sel 1; +#X obj 214 260 delay 200; +#X msg 344 271 1 1 1; +#X msg 329 224 1 0 0; +#X obj 334 202 sel 1; +#X obj 344 249 delay 200; +#X obj 205 190 r color2; +#X obj 335 179 r color3; +#X connect 0 0 10 0; +#X connect 0 0 11 0; +#X connect 0 0 12 0; +#X connect 1 0 2 0; +#X connect 2 0 13 0; +#X connect 4 0 8 0; +#X connect 6 0 9 0; +#X connect 8 0 14 0; +#X connect 9 0 15 0; +#X connect 13 0 3 0; +#X connect 14 0 5 0; +#X connect 15 0 7 0; +#X connect 16 0 13 1; +#X connect 17 0 13 1; +#X connect 18 0 19 0; +#X connect 19 0 17 0; +#X connect 19 0 20 0; +#X connect 20 0 16 0; +#X connect 21 0 14 1; +#X connect 22 0 14 1; +#X connect 23 0 22 0; +#X connect 23 0 24 0; +#X connect 24 0 21 0; +#X connect 25 0 15 1; +#X connect 26 0 15 1; +#X connect 27 0 26 0; +#X connect 27 0 28 0; +#X connect 28 0 25 0; +#X connect 29 0 23 0; +#X connect 30 0 27 0; +#X restore 70 215 pd circle; +#X obj 8 440 masse2D masse 10 1.5 3.4; +#X msg 128 400 \; masse reset \;; +#X obj 121 296 loadbang; +#X msg 121 320 0; +#X obj 70 193 iAmbient2D masse 0 -0.001 0 0 0.003; +#X obj 140 496 change; +#X obj 140 538 change; +#X obj 139 580 change; +#X obj 103 649 f; +#X obj 103 673 + 1; +#X obj 103 621 sel 1; +#X floatatom 103 696 5 0 0 0 - - -; +#X text 153 696 <- score; +#X obj 185 495 s color1; +#X obj 185 538 s color2; +#X obj 187 579 s color3; +#X msg 69 620 -1; +#X floatatom 54 40 5 0 0 0 - - -; +#X text 180 440 Change the color if the masse in in interaction with +a circle.; +#X text 244 15 How to use test objects; +#X text 45 17 <- begin; +#X obj 252 235 keyname; +#X msg 289 285 1; +#X msg 332 284 0; +#X obj 252 315 spigot; +#X obj 363 234 keyname; +#X msg 400 284 1; +#X msg 449 283 0; +#X obj 363 314 spigot; +#X obj 289 260 sel Left; +#X obj 400 260 sel Right; +#X obj 127 354 key; +#X obj 127 375 sel 32; +#X obj 140 474 tCircle2D 0 2.5 0 0.3; +#X obj 140 516 tCircle2D 1 1.5 0 0.3; +#X obj 139 558 tCircle2D -1 1.5 0 0.3; +#X text 172 34 Test object (tCircle)can test the position of a masse. +; +#X text 168 52 this is use to count the score and make some animation +then the masse is bouncing somewhere; +#X obj 161 171 gemwin 50; +#X msg 161 98 reset \, create \, 1; +#X connect 0 0 5 0; +#X connect 0 1 12 0; +#X connect 0 1 13 0; +#X connect 0 1 14 0; +#X connect 0 1 16 0; +#X connect 0 1 22 0; +#X connect 0 1 17 0; +#X connect 1 0 9 0; +#X connect 2 0 3 0; +#X connect 3 0 5 0; +#X connect 4 0 56 0; +#X connect 6 0 7 0; +#X connect 7 0 10 0; +#X connect 8 1 7 1; +#X connect 8 2 7 2; +#X connect 9 0 0 0; +#X connect 11 0 56 0; +#X connect 15 2 13 1; +#X connect 15 3 19 0; +#X connect 15 3 34 0; +#X connect 15 4 13 2; +#X connect 18 0 8 0; +#X connect 18 0 51 0; +#X connect 18 0 52 0; +#X connect 18 0 53 0; +#X connect 20 0 21 0; +#X connect 21 0 13 2; +#X connect 21 0 13 1; +#X connect 23 0 28 0; +#X connect 23 0 31 0; +#X connect 24 0 28 0; +#X connect 24 0 32 0; +#X connect 25 0 28 0; +#X connect 25 0 33 0; +#X connect 26 0 27 0; +#X connect 27 0 26 1; +#X connect 27 0 29 0; +#X connect 28 0 26 0; +#X connect 34 0 26 0; +#X connect 35 0 9 1; +#X connect 39 0 42 0; +#X connect 39 1 47 0; +#X connect 40 0 42 1; +#X connect 41 0 42 1; +#X connect 42 0 13 1; +#X connect 43 0 46 0; +#X connect 43 1 48 0; +#X connect 44 0 46 1; +#X connect 45 0 46 1; +#X connect 46 0 13 2; +#X connect 47 0 40 0; +#X connect 47 1 41 0; +#X connect 48 0 44 0; +#X connect 48 1 45 0; +#X connect 49 0 50 0; +#X connect 50 0 19 0; +#X connect 50 0 34 0; +#X connect 51 0 23 0; +#X connect 52 0 24 0; +#X connect 53 0 25 0; +#X connect 57 0 56 0; diff --git a/exemples/24_sand.pd b/exemples/24_sand.pd new file mode 100755 index 0000000..0ace14e --- /dev/null +++ b/exemples/24_sand.pd @@ -0,0 +1,140 @@ +#N canvas 167 110 527 418 10; +#X obj 20 164 t b b; +#X obj 20 98 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0 1 +; +#X msg 215 187 0 \, destroy; +#X obj 181 215 gemwin; +#X obj 20 202 s masse; +#N canvas 815 340 1100 365 pool 0; +#X obj 594 157 loadbang; +#X obj 240 240 sand 1.5 5.4; +#X obj 240 30 sand -2 5.4; +#X obj 240 0 sand -2.5 5.4; +#X obj 720 90 sand -1 6.2; +#X obj 720 150 sand 0 6.2; +#X obj 720 30 sand -2 6.2; +#X obj 480 150 sand 0 5.8; +#X obj 240 270 sand 2 5.4; +#X obj 240 150 sand 0 5.4; +#X obj 240 120 sand -0.5 5.4; +#X obj 240 180 sand 0.5 5.4; +#X obj 240 60 sand -1.5 5.4; +#X obj 240 90 sand -1 5.4; +#X obj 0 0 sand -2.5 5; +#X obj 480 0 sand -2.5 5.8; +#X obj 720 0 sand -2.5 6.2; +#X obj 960 0 sand -2.5 6.6; +#X obj 0 30 sand -2 5; +#X obj 480 30 sand -2 5.8; +#X obj 960 30 sand -2 6.6; +#X obj 0 60 sand -1.5 5; +#X obj 480 60 sand -1.5 5.8; +#X obj 720 60 sand -1.5 6.2; +#X obj 960 60 sand -1.5 6.6; +#X obj 0 90 sand -1 5; +#X obj 480 90 sand -1 5.8; +#X obj 960 90 sand -1 6.6; +#X obj 0 120 sand -0.5 5; +#X obj 480 120 sand -0.5 5.8; +#X obj 720 120 sand -0.5 6.2; +#X obj 960 120 sand -0.5 6.6; +#X obj 0 150 sand 0 5; +#X obj 960 150 sand 0 6.6; +#X obj 0 180 sand 0.5 5; +#X obj 480 180 sand 0.5 5.8; +#X obj 720 180 sand 0.5 6.2; +#X obj 960 180 sand 0.5 6.6; +#X obj 0 210 sand 1 5; +#X obj 240 210 sand 1 5.4; +#X obj 480 210 sand 1 5.8; +#X obj 720 210 sand 1 6.2; +#X obj 960 210 sand 1 6.6; +#X obj 0 240 sand 1.5 5; +#X obj 480 240 sand 1.5 5.8; +#X obj 720 240 sand 1.5 6.2; +#X obj 960 240 sand 1.5 6.6; +#X obj 0 270 sand 2 5; +#X obj 480 270 sand 2 5.8; +#X obj 720 270 sand 2 6.2; +#X obj 960 270 sand 2 6.6; +#X connect 0 0 35 0; +#X restore 358 243 pd pool; +#N canvas 696 98 355 595 creation 0; +#X obj 41 491 s pd-new; +#X msg 95 95 \; pd filename new ./ \; #N canvas \; #X pop 1 \;; +#X msg 40 464 menuclose; +#X obj 43 47 sel 0 1; +#X obj 44 29 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0 1 +; +#X obj 69 72 t b b; +#X obj 97 412 pack f f f f; +#X obj 89 191 t b f f; +#X obj 100 299 t f f; +#X obj 107 219 * 30; +#X obj 99 377 * 120; +#X obj 101 275 * 2; +#X obj 163 346 - 5; +#X obj 160 370 / 2; +#X obj 126 328 / 5; +#X msg 96 440 obj \$1 \$2 sand \$3 \$4; +#X obj 127 351 + 5; +#X obj 73 163 ch_uzi 10; +#X obj 88 247 ch_uzi 5; +#X connect 2 0 0 0; +#X connect 3 0 2 0; +#X connect 3 1 5 0; +#X connect 4 0 3 0; +#X connect 5 0 17 0; +#X connect 5 1 1 0; +#X connect 6 0 15 0; +#X connect 7 0 18 0; +#X connect 7 1 9 0; +#X connect 7 1 12 0; +#X connect 8 0 10 0; +#X connect 8 1 14 0; +#X connect 9 0 6 1; +#X connect 10 0 6 0; +#X connect 11 0 8 0; +#X connect 12 0 13 0; +#X connect 13 0 6 2; +#X connect 14 0 16 0; +#X connect 15 0 0 0; +#X connect 16 0 6 3; +#X connect 17 1 7 0; +#X connect 18 1 11 0; +#X restore 359 268 pd creation pool; +#X obj 83 342 s link; +#X obj 59 299 iCircle2D masse 3 2 0 2.95 0 0 1 0 0 0 0.1; +#X obj 69 319 iCircle2D masse -3 2 0 2.95 0 0 1 0 0 0 0.1; +#X text 184 3 sand simulation; +#X text 69 27 all masse interact each other. They are in a viscuce +place \, with vertical force (gravity); +#X text 70 59 2 big circles (invisible) made the masses to go down +like in a sand glass.; +#X text 83 369 Masses are not very stable \, due to internal forces +of the structure.; +#X text 41 96 <- begin (change metro speed for slow computer); +#X floatatom 57 116 5 0 0 0 - - -; +#X msg 181 158 reset \, view 0 0 6 \, create \, 1; +#X msg 94 178 reset; +#X obj 78 147 t b b; +#X msg 75 201 \; reset bang \;; +#X obj 116 122 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 +-1; +#X obj 45 263 iAmbient2D masse 0 -0.0005 0 0 0.03; +#X obj 20 137 metro 5; +#X text 366 158 <- 1; +#X connect 0 0 4 0; +#X connect 0 1 9 0; +#X connect 0 1 8 0; +#X connect 0 1 7 0; +#X connect 0 1 21 0; +#X connect 1 0 22 0; +#X connect 2 0 3 0; +#X connect 15 0 22 1; +#X connect 16 0 3 0; +#X connect 17 0 4 0; +#X connect 18 0 19 0; +#X connect 18 1 17 0; +#X connect 20 0 18 0; +#X connect 22 0 0 0; diff --git a/exemples/25_sand2.pd b/exemples/25_sand2.pd new file mode 100755 index 0000000..69cd676 --- /dev/null +++ b/exemples/25_sand2.pd @@ -0,0 +1,230 @@ +#N canvas 210 246 506 335 10; +#X obj 23 122 t b b; +#X obj 23 50 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0 1 +; +#X msg 222 144 0 \, destroy; +#X obj 199 172 gemwin; +#X obj 23 160 s masse; +#N canvas 61 550 1250 480 pool 0; +#X obj 480 90 sand -1 9.8; +#X obj 720 60 sand -1.5 10.2; +#X obj 480 180 sand 0.5 9.8; +#X obj 480 120 sand -0.5 9.8; +#X obj 480 240 sand 1.5 9.8; +#X obj 0 0 sand -2.5 9; +#X obj 240 0 sand -2.5 9.4; +#X obj 480 0 sand -2.5 9.8; +#X obj 720 0 sand -2.5 10.2; +#X obj 960 0 sand -2.5 10.6; +#X obj 1200 0 sand -2.5 11; +#X obj 1440 0 sand -2.5 11.4; +#X obj 1680 0 sand -2.5 11.8; +#X obj 1920 0 sand -2.5 12.2; +#X obj 2160 0 sand -2.5 12.6; +#X obj 2400 0 sand -2.5 13; +#X obj 2640 0 sand -2.5 13.4; +#X obj 2880 0 sand -2.5 13.8; +#X obj 3120 0 sand -2.5 14.2; +#X obj 3360 0 sand -2.5 14.6; +#X obj 0 30 sand -2 9; +#X obj 240 30 sand -2 9.4; +#X obj 480 30 sand -2 9.8; +#X obj 720 30 sand -2 10.2; +#X obj 960 30 sand -2 10.6; +#X obj 1200 30 sand -2 11; +#X obj 1440 30 sand -2 11.4; +#X obj 1680 30 sand -2 11.8; +#X obj 1920 30 sand -2 12.2; +#X obj 2160 30 sand -2 12.6; +#X obj 2400 30 sand -2 13; +#X obj 2640 30 sand -2 13.4; +#X obj 2880 30 sand -2 13.8; +#X obj 3120 30 sand -2 14.2; +#X obj 3360 30 sand -2 14.6; +#X obj 0 60 sand -1.5 9; +#X obj 240 60 sand -1.5 9.4; +#X obj 480 60 sand -1.5 9.8; +#X obj 960 60 sand -1.5 10.6; +#X obj 1200 60 sand -1.5 11; +#X obj 1440 60 sand -1.5 11.4; +#X obj 1680 60 sand -1.5 11.8; +#X obj 1920 60 sand -1.5 12.2; +#X obj 2160 60 sand -1.5 12.6; +#X obj 2400 60 sand -1.5 13; +#X obj 2640 60 sand -1.5 13.4; +#X obj 2880 60 sand -1.5 13.8; +#X obj 3120 60 sand -1.5 14.2; +#X obj 3360 60 sand -1.5 14.6; +#X obj 0 90 sand -1 9; +#X obj 240 90 sand -1 9.4; +#X obj 720 90 sand -1 10.2; +#X obj 960 90 sand -1 10.6; +#X obj 1200 90 sand -1 11; +#X obj 1440 90 sand -1 11.4; +#X obj 1680 90 sand -1 11.8; +#X obj 1920 90 sand -1 12.2; +#X obj 2160 90 sand -1 12.6; +#X obj 2400 90 sand -1 13; +#X obj 2640 90 sand -1 13.4; +#X obj 2880 90 sand -1 13.8; +#X obj 3120 90 sand -1 14.2; +#X obj 3360 90 sand -1 14.6; +#X obj 0 120 sand -0.5 9; +#X obj 240 120 sand -0.5 9.4; +#X obj 720 120 sand -0.5 10.2; +#X obj 960 120 sand -0.5 10.6; +#X obj 1200 120 sand -0.5 11; +#X obj 1440 120 sand -0.5 11.4; +#X obj 1680 120 sand -0.5 11.8; +#X obj 1920 120 sand -0.5 12.2; +#X obj 2160 120 sand -0.5 12.6; +#X obj 2400 120 sand -0.5 13; +#X obj 2640 120 sand -0.5 13.4; +#X obj 2880 120 sand -0.5 13.8; +#X obj 3120 120 sand -0.5 14.2; +#X obj 3360 120 sand -0.5 14.6; +#X obj 0 150 sand 0 9; +#X obj 240 150 sand 0 9.4; +#X obj 480 150 sand 0 9.8; +#X obj 720 150 sand 0 10.2; +#X obj 960 150 sand 0 10.6; +#X obj 1200 150 sand 0 11; +#X obj 1440 150 sand 0 11.4; +#X obj 1680 150 sand 0 11.8; +#X obj 1920 150 sand 0 12.2; +#X obj 2160 150 sand 0 12.6; +#X obj 2400 150 sand 0 13; +#X obj 2640 150 sand 0 13.4; +#X obj 2880 150 sand 0 13.8; +#X obj 3120 150 sand 0 14.2; +#X obj 3360 150 sand 0 14.6; +#X obj 0 180 sand 0.5 9; +#X obj 240 180 sand 0.5 9.4; +#X obj 720 180 sand 0.5 10.2; +#X obj 960 180 sand 0.5 10.6; +#X obj 1200 180 sand 0.5 11; +#X obj 1440 180 sand 0.5 11.4; +#X obj 1680 180 sand 0.5 11.8; +#X obj 1920 180 sand 0.5 12.2; +#X obj 2160 180 sand 0.5 12.6; +#X obj 2400 180 sand 0.5 13; +#X obj 2640 180 sand 0.5 13.4; +#X obj 2880 180 sand 0.5 13.8; +#X obj 3120 180 sand 0.5 14.2; +#X obj 3360 180 sand 0.5 14.6; +#X obj 0 210 sand 1 9; +#X obj 240 210 sand 1 9.4; +#X obj 480 210 sand 1 9.8; +#X obj 720 210 sand 1 10.2; +#X obj 960 210 sand 1 10.6; +#X obj 1200 210 sand 1 11; +#X obj 1440 210 sand 1 11.4; +#X obj 1680 210 sand 1 11.8; +#X obj 1920 210 sand 1 12.2; +#X obj 2160 210 sand 1 12.6; +#X obj 2400 210 sand 1 13; +#X obj 2640 210 sand 1 13.4; +#X obj 2880 210 sand 1 13.8; +#X obj 3120 210 sand 1 14.2; +#X obj 3360 210 sand 1 14.6; +#X obj 0 240 sand 1.5 9; +#X obj 240 240 sand 1.5 9.4; +#X obj 720 240 sand 1.5 10.2; +#X obj 960 240 sand 1.5 10.6; +#X obj 1200 240 sand 1.5 11; +#X obj 1440 240 sand 1.5 11.4; +#X obj 1680 240 sand 1.5 11.8; +#X obj 1920 240 sand 1.5 12.2; +#X obj 2160 240 sand 1.5 12.6; +#X obj 2400 240 sand 1.5 13; +#X obj 2640 240 sand 1.5 13.4; +#X obj 2880 240 sand 1.5 13.8; +#X obj 3120 240 sand 1.5 14.2; +#X obj 3360 240 sand 1.5 14.6; +#X obj 0 270 sand 2 9; +#X obj 240 270 sand 2 9.4; +#X obj 480 270 sand 2 9.8; +#X obj 720 270 sand 2 10.2; +#X obj 960 270 sand 2 10.6; +#X obj 1200 270 sand 2 11; +#X obj 1440 270 sand 2 11.4; +#X obj 1680 270 sand 2 11.8; +#X obj 1920 270 sand 2 12.2; +#X obj 2160 270 sand 2 12.6; +#X obj 2400 270 sand 2 13; +#X obj 2640 270 sand 2 13.4; +#X obj 2880 270 sand 2 13.8; +#X obj 3120 270 sand 2 14.2; +#X obj 3360 270 sand 2 14.6; +#X restore 317 122 pd pool; +#N canvas 696 98 365 605 creation 0; +#X obj 41 491 s pd-new; +#X msg 95 95 \; pd filename new ./ \; #N canvas \; #X pop 1 \;; +#X msg 40 464 menuclose; +#X obj 43 47 sel 0 1; +#X obj 44 29 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0 1 +; +#X obj 69 72 t b b; +#X obj 97 412 pack f f f f; +#X obj 89 191 t b f f; +#X obj 100 299 t f f; +#X obj 107 219 * 30; +#X obj 99 377 * 120; +#X obj 163 346 - 5; +#X obj 126 328 / 5; +#X msg 96 440 obj \$1 \$2 sand \$3 \$4; +#X obj 101 275 * 2; +#X obj 127 351 + 5; +#X obj 160 370 / 4; +#X obj 73 163 ch_uzi 10; +#X obj 88 247 ch_uzi 15; +#X connect 2 0 0 0; +#X connect 3 0 2 0; +#X connect 3 1 5 0; +#X connect 4 0 3 0; +#X connect 5 0 17 0; +#X connect 5 1 1 0; +#X connect 6 0 13 0; +#X connect 7 0 18 0; +#X connect 7 1 9 0; +#X connect 7 1 11 0; +#X connect 8 0 10 0; +#X connect 8 1 12 0; +#X connect 9 0 6 1; +#X connect 10 0 6 0; +#X connect 11 0 16 0; +#X connect 12 0 15 0; +#X connect 13 0 0 0; +#X connect 14 0 8 0; +#X connect 15 0 6 3; +#X connect 16 0 6 2; +#X connect 17 1 7 0; +#X connect 18 1 14 0; +#X restore 317 147 pd creation pool; +#X obj 83 287 s link; +#X text 212 4 sand; +#X floatatom 66 72 5 0 0 0 - - -; +#X obj 23 95 metro 10; +#X msg 199 94 reset \, view 0 0 -8 0 0 0 0 1 0 \, create \, 1; +#X text 125 18 it's the same than previus exemple \, but with more +masses \, and diferents physical properties so that the global shape +is diferent.; +#X obj 83 143 s masse; +#X msg 83 120 reset \, setT 0.9; +#X obj 49 221 iAmbient2D masse 0 -0.00051 0 0 0.031 -1000 1000 -1000 +1000; +#X obj 59 245 iCircle2D masse 3.1 2 0 3 0 0 1 0 0 0 0.1; +#X obj 69 264 iCircle2D masse -3.1 2 0 3 0 0 1 0 0 0 0.1; +#X text 461 94 <- 1; +#X text 49 47 <- 2; +#X connect 0 0 4 0; +#X connect 0 1 7 0; +#X connect 0 1 15 0; +#X connect 0 1 16 0; +#X connect 0 1 17 0; +#X connect 1 0 10 0; +#X connect 2 0 3 0; +#X connect 9 0 10 1; +#X connect 10 0 0 0; +#X connect 11 0 3 0; +#X connect 14 0 13 0; diff --git a/exemples/26_sand3.pd b/exemples/26_sand3.pd new file mode 100755 index 0000000..e1b2408 --- /dev/null +++ b/exemples/26_sand3.pd @@ -0,0 +1,234 @@ +#N canvas 695 527 588 372 10; +#X obj 19 112 t b b; +#X obj 19 36 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0 1 +; +#X obj 137 86 loadbang; +#X msg 237 138 0 \, destroy; +#X obj 203 166 gemwin; +#X obj 19 150 s masse; +#N canvas 39 357 1226 456 pool 0; +#X obj 480 120 sand -0.25 5.8; +#X obj 0 0 sand -1.25 5; +#X obj 240 0 sand -1.25 5.4; +#X obj 480 0 sand -1.25 5.8; +#X obj 720 0 sand -1.25 6.2; +#X obj 960 0 sand -1.25 6.6; +#X obj 1200 0 sand -1.25 7; +#X obj 1440 0 sand -1.25 7.4; +#X obj 1680 0 sand -1.25 7.8; +#X obj 1920 0 sand -1.25 8.2; +#X obj 2160 0 sand -1.25 8.6; +#X obj 2400 0 sand -1.25 9; +#X obj 2640 0 sand -1.25 9.4; +#X obj 2880 0 sand -1.25 9.8; +#X obj 3120 0 sand -1.25 10.2; +#X obj 3360 0 sand -1.25 10.6; +#X obj 0 30 sand -1 5; +#X obj 240 30 sand -1 5.4; +#X obj 480 30 sand -1 5.8; +#X obj 720 30 sand -1 6.2; +#X obj 960 30 sand -1 6.6; +#X obj 1200 30 sand -1 7; +#X obj 1440 30 sand -1 7.4; +#X obj 1680 30 sand -1 7.8; +#X obj 1920 30 sand -1 8.2; +#X obj 2160 30 sand -1 8.6; +#X obj 2400 30 sand -1 9; +#X obj 2640 30 sand -1 9.4; +#X obj 2880 30 sand -1 9.8; +#X obj 3120 30 sand -1 10.2; +#X obj 3360 30 sand -1 10.6; +#X obj 0 60 sand -0.75 5; +#X obj 240 60 sand -0.75 5.4; +#X obj 480 60 sand -0.75 5.8; +#X obj 720 60 sand -0.75 6.2; +#X obj 960 60 sand -0.75 6.6; +#X obj 1200 60 sand -0.75 7; +#X obj 1440 60 sand -0.75 7.4; +#X obj 1680 60 sand -0.75 7.8; +#X obj 1920 60 sand -0.75 8.2; +#X obj 2160 60 sand -0.75 8.6; +#X obj 2400 60 sand -0.75 9; +#X obj 2640 60 sand -0.75 9.4; +#X obj 2880 60 sand -0.75 9.8; +#X obj 3120 60 sand -0.75 10.2; +#X obj 3360 60 sand -0.75 10.6; +#X obj 0 90 sand -0.5 5; +#X obj 240 90 sand -0.5 5.4; +#X obj 480 90 sand -0.5 5.8; +#X obj 720 90 sand -0.5 6.2; +#X obj 960 90 sand -0.5 6.6; +#X obj 1200 90 sand -0.5 7; +#X obj 1440 90 sand -0.5 7.4; +#X obj 1680 90 sand -0.5 7.8; +#X obj 1920 90 sand -0.5 8.2; +#X obj 2160 90 sand -0.5 8.6; +#X obj 2400 90 sand -0.5 9; +#X obj 2640 90 sand -0.5 9.4; +#X obj 2880 90 sand -0.5 9.8; +#X obj 3120 90 sand -0.5 10.2; +#X obj 3360 90 sand -0.5 10.6; +#X obj 0 120 sand -0.25 5; +#X obj 240 120 sand -0.25 5.4; +#X obj 720 120 sand -0.25 6.2; +#X obj 960 120 sand -0.25 6.6; +#X obj 1200 120 sand -0.25 7; +#X obj 1440 120 sand -0.25 7.4; +#X obj 1680 120 sand -0.25 7.8; +#X obj 1920 120 sand -0.25 8.2; +#X obj 2160 120 sand -0.25 8.6; +#X obj 2400 120 sand -0.25 9; +#X obj 2640 120 sand -0.25 9.4; +#X obj 2880 120 sand -0.25 9.8; +#X obj 3120 120 sand -0.25 10.2; +#X obj 3360 120 sand -0.25 10.6; +#X obj 0 150 sand 0 5; +#X obj 240 150 sand 0 5.4; +#X obj 480 150 sand 0 5.8; +#X obj 720 150 sand 0 6.2; +#X obj 960 150 sand 0 6.6; +#X obj 1200 150 sand 0 7; +#X obj 1440 150 sand 0 7.4; +#X obj 1680 150 sand 0 7.8; +#X obj 1920 150 sand 0 8.2; +#X obj 2160 150 sand 0 8.6; +#X obj 2400 150 sand 0 9; +#X obj 2640 150 sand 0 9.4; +#X obj 2880 150 sand 0 9.8; +#X obj 3120 150 sand 0 10.2; +#X obj 3360 150 sand 0 10.6; +#X obj 0 180 sand 0.25 5; +#X obj 240 180 sand 0.25 5.4; +#X obj 480 180 sand 0.25 5.8; +#X obj 720 180 sand 0.25 6.2; +#X obj 960 180 sand 0.25 6.6; +#X obj 1200 180 sand 0.25 7; +#X obj 1440 180 sand 0.25 7.4; +#X obj 1680 180 sand 0.25 7.8; +#X obj 1920 180 sand 0.25 8.2; +#X obj 2160 180 sand 0.25 8.6; +#X obj 2400 180 sand 0.25 9; +#X obj 2640 180 sand 0.25 9.4; +#X obj 2880 180 sand 0.25 9.8; +#X obj 3120 180 sand 0.25 10.2; +#X obj 3360 180 sand 0.25 10.6; +#X obj 0 210 sand 0.5 5; +#X obj 240 210 sand 0.5 5.4; +#X obj 480 210 sand 0.5 5.8; +#X obj 720 210 sand 0.5 6.2; +#X obj 960 210 sand 0.5 6.6; +#X obj 1200 210 sand 0.5 7; +#X obj 1440 210 sand 0.5 7.4; +#X obj 1680 210 sand 0.5 7.8; +#X obj 1920 210 sand 0.5 8.2; +#X obj 2160 210 sand 0.5 8.6; +#X obj 2400 210 sand 0.5 9; +#X obj 2640 210 sand 0.5 9.4; +#X obj 2880 210 sand 0.5 9.8; +#X obj 3120 210 sand 0.5 10.2; +#X obj 3360 210 sand 0.5 10.6; +#X obj 0 240 sand 0.75 5; +#X obj 240 240 sand 0.75 5.4; +#X obj 480 240 sand 0.75 5.8; +#X obj 720 240 sand 0.75 6.2; +#X obj 960 240 sand 0.75 6.6; +#X obj 1200 240 sand 0.75 7; +#X obj 1440 240 sand 0.75 7.4; +#X obj 1680 240 sand 0.75 7.8; +#X obj 1920 240 sand 0.75 8.2; +#X obj 2160 240 sand 0.75 8.6; +#X obj 2400 240 sand 0.75 9; +#X obj 2640 240 sand 0.75 9.4; +#X obj 2880 240 sand 0.75 9.8; +#X obj 3120 240 sand 0.75 10.2; +#X obj 3360 240 sand 0.75 10.6; +#X obj 0 270 sand 1 5; +#X obj 240 270 sand 1 5.4; +#X obj 480 270 sand 1 5.8; +#X obj 720 270 sand 1 6.2; +#X obj 960 270 sand 1 6.6; +#X obj 1200 270 sand 1 7; +#X obj 1440 270 sand 1 7.4; +#X obj 1680 270 sand 1 7.8; +#X obj 1920 270 sand 1 8.2; +#X obj 2160 270 sand 1 8.6; +#X obj 2400 270 sand 1 9; +#X obj 2640 270 sand 1 9.4; +#X obj 2880 270 sand 1 9.8; +#X obj 3120 270 sand 1 10.2; +#X obj 3360 270 sand 1 10.6; +#X restore 324 139 pd pool; +#N canvas 366 192 363 603 creation 0; +#X obj 41 491 s pd-new; +#X msg 95 95 \; pd filename new ./ \; #N canvas \; #X pop 1 \;; +#X msg 40 464 menuclose; +#X obj 43 47 sel 0 1; +#X obj 44 29 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0 1 +; +#X obj 69 72 t b b; +#X obj 97 412 pack f f f f; +#X obj 89 191 t b f f; +#X obj 100 299 t f f; +#X obj 107 219 * 30; +#X obj 99 377 * 120; +#X obj 101 275 * 2; +#X obj 163 346 - 5; +#X obj 126 328 / 5; +#X msg 96 440 obj \$1 \$2 sand \$3 \$4; +#X obj 127 351 + 5; +#X obj 160 370 / 4; +#X obj 73 163 ch_uzi 10; +#X obj 88 247 ch_uzi 15; +#X connect 2 0 0 0; +#X connect 3 0 2 0; +#X connect 3 1 5 0; +#X connect 4 0 3 0; +#X connect 5 0 17 0; +#X connect 5 1 1 0; +#X connect 6 0 14 0; +#X connect 7 0 18 0; +#X connect 7 1 9 0; +#X connect 7 1 12 0; +#X connect 8 0 10 0; +#X connect 8 1 13 0; +#X connect 9 0 6 1; +#X connect 10 0 6 0; +#X connect 11 0 8 0; +#X connect 12 0 16 0; +#X connect 13 0 15 0; +#X connect 14 0 0 0; +#X connect 15 0 6 3; +#X connect 16 0 6 2; +#X connect 17 1 7 0; +#X connect 18 1 11 0; +#X restore 325 166 pd creation pool; +#X msg 137 110 reset; +#X obj 137 134 s masse; +#X obj 79 172 s link; +#X obj 19 85 metro 10; +#X obj 58 247 iCircle2D masse 3 2 0 2.98 0 0 1 0 0 0 0.1; +#X obj 68 267 iCircle2D masse -3 2 0 2.98 0 0 1 0 0 0 0.1; +#X obj 83 289 iCircle2D masse 7 6 0 5 0 0 1 0 0 0 0.1; +#X obj 93 309 iCircle2D masse -7 6 0 5 0 0 1 0 0 0 0.1; +#X floatatom 62 65 5 0 0 0 - - -; +#X text 99 19 some physical parameters change from the previus exemples... +; +#X msg 203 115 reset \, view 0 0 -6 0 0 0 0 1 0 \, create \, 1; +#X text 161 5 small balls; +#X obj 45 210 iAmbient2D masse 0 -0.001 0 0 0.005; +#X text 464 115 <- 1; +#X text 39 33 <- 2; +#X connect 0 0 5 0; +#X connect 0 1 10 0; +#X connect 0 1 12 0; +#X connect 0 1 13 0; +#X connect 0 1 14 0; +#X connect 0 1 15 0; +#X connect 0 1 20 0; +#X connect 1 0 11 0; +#X connect 2 0 8 0; +#X connect 3 0 4 0; +#X connect 8 0 9 0; +#X connect 11 0 0 0; +#X connect 16 0 11 1; +#X connect 18 0 4 0; diff --git a/exemples/27_tLia.pd b/exemples/27_tLia.pd new file mode 100755 index 0000000..6b1015c --- /dev/null +++ b/exemples/27_tLia.pd @@ -0,0 +1,874 @@ +#N canvas 128 41 836 611 12; +#N canvas 306 123 269 250 masse 0; +#X obj 24 23 inlet; +#X obj 24 83 outlet; +#X obj 83 138 gemhead; +#X obj 84 85 unpack s f f; +#X obj 83 169 translateXYZ 0 0 0; +#X obj 129 111 / 100; +#X obj 175 112 / 100; +#X obj 24 55 masse2D masse 10; +#X obj 83 197 sphere 0.1; +#X connect 0 0 7 0; +#X connect 2 0 4 0; +#X connect 3 1 5 0; +#X connect 3 2 6 0; +#X connect 4 0 8 0; +#X connect 5 0 4 1; +#X connect 6 0 4 2; +#X connect 7 0 1 0; +#X connect 7 0 3 0; +#X restore 143 474 pd masse; +#X obj 27 266 s lia; +#X obj 62 242 s masse; +#X obj 397 336 s masse; +#X msg 184 227 setK \$1; +#X msg 399 177 setM \$1; +#X obj 184 259 s lia; +#X obj 399 205 s masse; +#X obj 184 201 / 10; +#X obj 184 175 + 1; +#X obj 487 188 gemwin; +#X msg 494 159 0 \, destroy; +#X floatatom 184 153 5 10 100 0 - - -; +#X floatatom 245 155 5 0 3 0 - - -; +#X floatatom 399 154 5 20 500 0 - - -; +#X msg 411 306 force2D 2000 0; +#X obj 27 191 metro 10; +#X obj 27 215 t b b; +#X msg 396 363 force2D 0 5000; +#X msg 184 129 50; +#X msg 245 129 1; +#X msg 399 130 200; +#X obj 868 171 world_light; +#X obj 868 112 gemhead; +#X obj 868 142 rotateXYZ; +#X msg 397 278 force2D 0 1000; +#X msg 245 178 setD \$1; +#X obj 27 37 loadbang; +#X msg 108 127 reset; +#X obj 108 154 s masse; +#X obj 27 68 t b b b b; +#X msg 49 128 resetF; +#X obj 49 155 s lia; +#X floatatom 321 155 5 0 3 0 - - -; +#X msg 321 129 1; +#X msg 321 178 setD2 \$1; +#N canvas 306 123 576 363 masse 0; +#X obj 24 99 outlet; +#X obj 145 98 gemhead; +#X obj 137 134 unpack s f f; +#X obj 143 190 translateXYZ 0 0 0; +#X obj 185 160 / 100; +#X obj 228 161 / 100; +#X obj 144 224 sphere 0.1; +#X obj 26 70 masse2D masse2 10 -300 0; +#X msg 25 42 reset; +#X connect 1 0 3 0; +#X connect 2 1 4 0; +#X connect 2 2 5 0; +#X connect 3 0 6 0; +#X connect 4 0 3 1; +#X connect 5 0 3 2; +#X connect 7 0 0 0; +#X connect 7 0 2 0; +#X connect 8 0 7 0; +#X restore 11 411 pd masse; +#X msg 396 394 force2D 5000 0; +#X text 474 12 2D string; +#X text 542 278 <- send Y force to all masses; +#X text 544 307 <- send X force to all masses; +#X text 540 363 <- send Y force to 2 masses; +#X text 542 392 <- send X force to 1 masses; +#N canvas 306 123 265 246 masse 0; +#X obj 24 23 inlet; +#X obj 24 83 outlet; +#X obj 83 138 gemhead; +#X obj 84 85 unpack s f f; +#X obj 83 169 translateXYZ 0 0 0; +#X obj 129 111 / 100; +#X obj 175 112 / 100; +#X obj 24 55 masse2D masse 10; +#X obj 83 197 sphere 0.1; +#X connect 0 0 7 0; +#X connect 2 0 4 0; +#X connect 3 1 5 0; +#X connect 3 2 6 0; +#X connect 4 0 8 0; +#X connect 5 0 4 1; +#X connect 6 0 4 2; +#X connect 7 0 1 0; +#X connect 7 0 3 0; +#X restore 288 480 pd masse; +#X obj 11 437 lia2D lia 30 1 1; +#X obj 158 436 lia2D lia 30 1 1; +#N canvas 306 123 263 244 masse 0; +#X obj 24 23 inlet; +#X obj 24 83 outlet; +#X obj 83 138 gemhead; +#X obj 84 85 unpack s f f; +#X obj 83 169 translateXYZ 0 0 0; +#X obj 129 111 / 100; +#X obj 175 112 / 100; +#X obj 24 55 masse2D masse 10; +#X obj 83 197 sphere 0.1; +#X connect 0 0 7 0; +#X connect 2 0 4 0; +#X connect 3 1 5 0; +#X connect 3 2 6 0; +#X connect 4 0 8 0; +#X connect 5 0 4 1; +#X connect 6 0 4 2; +#X connect 7 0 1 0; +#X connect 7 0 3 0; +#X restore 432 474 pd masse; +#N canvas 306 123 263 244 masse 0; +#X obj 24 23 inlet; +#X obj 24 83 outlet; +#X obj 83 138 gemhead; +#X obj 84 85 unpack s f f; +#X obj 83 169 translateXYZ 0 0 0; +#X obj 129 111 / 100; +#X obj 175 112 / 100; +#X obj 24 55 masse2D masse 10; +#X obj 83 198 sphere 0.1; +#X connect 0 0 7 0; +#X connect 2 0 4 0; +#X connect 3 1 5 0; +#X connect 3 2 6 0; +#X connect 4 0 8 0; +#X connect 5 0 4 1; +#X connect 6 0 4 2; +#X connect 7 0 1 0; +#X connect 7 0 3 0; +#X restore 570 477 pd masse; +#X obj 300 437 lia2D lia 30 1 1; +#X obj 447 436 lia2D lia 30 1 1; +#N canvas 306 123 263 244 masse 0; +#X obj 24 23 inlet; +#X obj 24 83 outlet; +#X obj 83 138 gemhead; +#X obj 84 85 unpack s f f; +#X obj 83 169 translateXYZ 0 0 0; +#X obj 129 111 / 100; +#X obj 175 112 / 100; +#X obj 24 55 masse2D masse 10; +#X obj 83 197 sphere 0.1; +#X connect 0 0 7 0; +#X connect 2 0 4 0; +#X connect 3 1 5 0; +#X connect 3 2 6 0; +#X connect 4 0 8 0; +#X connect 5 0 4 1; +#X connect 6 0 4 2; +#X connect 7 0 1 0; +#X connect 7 0 3 0; +#X restore 719 477 pd masse; +#X obj 596 436 lia2D lia 30 1 1; +#N canvas 306 123 263 244 masse 0; +#X obj 24 23 inlet; +#X obj 24 83 outlet; +#X obj 83 138 gemhead; +#X obj 84 85 unpack s f f; +#X obj 83 169 translateXYZ 0 0 0; +#X obj 129 111 / 100; +#X obj 175 112 / 100; +#X obj 24 55 masse2D masse 10; +#X obj 83 197 sphere 0.1; +#X connect 0 0 7 0; +#X connect 2 0 4 0; +#X connect 3 1 5 0; +#X connect 3 2 6 0; +#X connect 4 0 8 0; +#X connect 5 0 4 1; +#X connect 6 0 4 2; +#X connect 7 0 1 0; +#X connect 7 0 3 0; +#X restore 870 474 pd masse; +#N canvas 306 123 263 244 masse 0; +#X obj 24 23 inlet; +#X obj 24 83 outlet; +#X obj 83 138 gemhead; +#X obj 84 85 unpack s f f; +#X obj 83 169 translateXYZ 0 0 0; +#X obj 129 111 / 100; +#X obj 175 112 / 100; +#X obj 24 55 masse2D masse 10; +#X obj 83 197 sphere 0.1; +#X connect 0 0 7 0; +#X connect 2 0 4 0; +#X connect 3 1 5 0; +#X connect 3 2 6 0; +#X connect 4 0 8 0; +#X connect 5 0 4 1; +#X connect 6 0 4 2; +#X connect 7 0 1 0; +#X connect 7 0 3 0; +#X restore 1008 477 pd masse; +#X obj 738 437 lia2D lia 30 1 1; +#X obj 885 436 lia2D lia 30 1 1; +#N canvas 306 123 263 244 masse 0; +#X obj 24 23 inlet; +#X obj 24 83 outlet; +#X obj 83 138 gemhead; +#X obj 84 85 unpack s f f; +#X obj 83 169 translateXYZ 0 0 0; +#X obj 129 111 / 100; +#X obj 175 112 / 100; +#X obj 24 55 masse2D masse 10; +#X obj 83 197 sphere 0.1; +#X connect 0 0 7 0; +#X connect 2 0 4 0; +#X connect 3 1 5 0; +#X connect 3 2 6 0; +#X connect 4 0 8 0; +#X connect 5 0 4 1; +#X connect 6 0 4 2; +#X connect 7 0 1 0; +#X connect 7 0 3 0; +#X restore 157 617 pd masse; +#N canvas 306 123 263 244 masse 0; +#X obj 24 23 inlet; +#X obj 24 83 outlet; +#X obj 83 138 gemhead; +#X obj 84 85 unpack s f f; +#X obj 83 169 translateXYZ 0 0 0; +#X obj 129 111 / 100; +#X obj 175 112 / 100; +#X obj 24 55 masse2D masse 10; +#X obj 83 197 sphere 0.1; +#X connect 0 0 7 0; +#X connect 2 0 4 0; +#X connect 3 1 5 0; +#X connect 3 2 6 0; +#X connect 4 0 8 0; +#X connect 5 0 4 1; +#X connect 6 0 4 2; +#X connect 7 0 1 0; +#X connect 7 0 3 0; +#X restore 292 622 pd masse; +#X obj 24 580 lia2D lia 30 1 1; +#X obj 171 579 lia2D lia 30 1 1; +#N canvas 306 123 263 244 masse 0; +#X obj 24 23 inlet; +#X obj 24 83 outlet; +#X obj 83 138 gemhead; +#X obj 84 85 unpack s f f; +#X obj 83 169 translateXYZ 0 0 0; +#X obj 129 111 / 100; +#X obj 175 112 / 100; +#X obj 24 55 masse2D masse 10; +#X obj 83 197 sphere 0.1; +#X connect 0 0 7 0; +#X connect 2 0 4 0; +#X connect 3 1 5 0; +#X connect 3 2 6 0; +#X connect 4 0 8 0; +#X connect 5 0 4 1; +#X connect 6 0 4 2; +#X connect 7 0 1 0; +#X connect 7 0 3 0; +#X restore 445 617 pd masse; +#N canvas 306 123 263 244 masse 0; +#X obj 24 23 inlet; +#X obj 24 83 outlet; +#X obj 83 138 gemhead; +#X obj 84 85 unpack s f f; +#X obj 83 169 translateXYZ 0 0 0; +#X obj 129 111 / 100; +#X obj 175 112 / 100; +#X obj 24 55 masse2D masse 10; +#X obj 83 197 sphere 0.1; +#X connect 0 0 7 0; +#X connect 2 0 4 0; +#X connect 3 1 5 0; +#X connect 3 2 6 0; +#X connect 4 0 8 0; +#X connect 5 0 4 1; +#X connect 6 0 4 2; +#X connect 7 0 1 0; +#X connect 7 0 3 0; +#X restore 583 620 pd masse; +#X obj 313 580 lia2D lia 30 1 1; +#X obj 460 579 lia2D lia 30 1 1; +#N canvas 306 123 263 244 masse 0; +#X obj 24 23 inlet; +#X obj 24 83 outlet; +#X obj 83 138 gemhead; +#X obj 84 85 unpack s f f; +#X obj 83 169 translateXYZ 0 0 0; +#X obj 129 111 / 100; +#X obj 175 112 / 100; +#X obj 24 55 masse2D masse 10; +#X obj 83 197 sphere 0.1; +#X connect 0 0 7 0; +#X connect 2 0 4 0; +#X connect 3 1 5 0; +#X connect 3 2 6 0; +#X connect 4 0 8 0; +#X connect 5 0 4 1; +#X connect 6 0 4 2; +#X connect 7 0 1 0; +#X connect 7 0 3 0; +#X restore 732 620 pd masse; +#X obj 609 579 lia2D lia 30 1 1; +#N canvas 306 123 263 244 masse 0; +#X obj 24 23 inlet; +#X obj 24 83 outlet; +#X obj 83 138 gemhead; +#X obj 84 85 unpack s f f; +#X obj 83 169 translateXYZ 0 0 0; +#X obj 129 111 / 100; +#X obj 175 112 / 100; +#X obj 24 55 masse2D masse 10; +#X obj 83 197 sphere 0.1; +#X connect 0 0 7 0; +#X connect 2 0 4 0; +#X connect 3 1 5 0; +#X connect 3 2 6 0; +#X connect 4 0 8 0; +#X connect 5 0 4 1; +#X connect 6 0 4 2; +#X connect 7 0 1 0; +#X connect 7 0 3 0; +#X restore 883 617 pd masse; +#N canvas 306 123 271 252 masse 0; +#X obj 24 83 outlet; +#X obj 83 138 gemhead; +#X obj 84 85 unpack s f f; +#X obj 83 169 translateXYZ 0 0 0; +#X obj 129 111 / 100; +#X obj 175 112 / 100; +#X obj 24 55 masse2D masse2 10 300; +#X obj 83 197 sphere 0.1; +#X msg 26 31 reset; +#X connect 1 0 3 0; +#X connect 2 1 4 0; +#X connect 2 2 5 0; +#X connect 3 0 7 0; +#X connect 4 0 3 1; +#X connect 5 0 3 2; +#X connect 6 0 0 0; +#X connect 6 0 2 0; +#X connect 8 0 6 0; +#X restore 1021 552 pd masse; +#X obj 751 580 lia2D lia 30 1 1; +#X obj 898 579 lia2D lia 30 1 1; +#X msg 487 132 reset \, lighting 1 \, create \, 1; +#X obj 112 43 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 +-1; +#N canvas 170 431 361 373 link 0; +#X obj 87 24 inlet; +#X obj 162 24 inlet; +#X obj 87 55 tLia2D lia; +#X obj 46 207 translateXYZ; +#X obj 162 82 unpack s f f; +#X obj 207 112 / 100; +#X obj 253 112 / 100; +#X obj 46 180 gemhead; +#X obj 46 283 sphere 1; +#X obj 46 233 rotateXYZ; +#X obj 46 257 scaleXYZ 0 0.1 0.1; +#X obj 87 84 / 200; +#X connect 0 0 2 0; +#X connect 1 0 2 1; +#X connect 2 0 11 0; +#X connect 2 2 9 3; +#X connect 2 3 4 0; +#X connect 3 0 9 0; +#X connect 4 1 5 0; +#X connect 4 2 6 0; +#X connect 5 0 3 1; +#X connect 6 0 3 2; +#X connect 7 0 3 0; +#X connect 9 0 10 0; +#X connect 10 0 8 0; +#X connect 11 0 10 1; +#X restore 197 505 pd link; +#N canvas 170 431 359 371 link 0; +#X obj 87 24 inlet; +#X obj 162 24 inlet; +#X obj 87 55 tLia2D lia; +#X obj 46 207 translateXYZ; +#X obj 162 82 unpack s f f; +#X obj 207 112 / 100; +#X obj 253 112 / 100; +#X obj 46 180 gemhead; +#X obj 46 283 sphere 1; +#X obj 46 233 rotateXYZ; +#X obj 46 257 scaleXYZ 0 0.1 0.1; +#X obj 87 84 / 200; +#X connect 0 0 2 0; +#X connect 1 0 2 1; +#X connect 2 0 11 0; +#X connect 2 2 9 3; +#X connect 2 3 4 0; +#X connect 3 0 9 0; +#X connect 4 1 5 0; +#X connect 4 2 6 0; +#X connect 5 0 3 1; +#X connect 6 0 3 2; +#X connect 7 0 3 0; +#X connect 9 0 10 0; +#X connect 10 0 8 0; +#X connect 11 0 10 1; +#X restore 349 513 pd link; +#N canvas 170 431 363 375 link 0; +#X obj 87 24 inlet; +#X obj 162 24 inlet; +#X obj 87 55 tLia2D lia; +#X obj 46 207 translateXYZ; +#X obj 162 82 unpack s f f; +#X obj 207 112 / 100; +#X obj 253 112 / 100; +#X obj 46 180 gemhead; +#X obj 46 283 sphere 1; +#X obj 46 233 rotateXYZ; +#X obj 46 257 scaleXYZ 0 0.1 0.1; +#X obj 87 84 / 200; +#X connect 0 0 2 0; +#X connect 1 0 2 1; +#X connect 2 0 11 0; +#X connect 2 2 9 3; +#X connect 2 3 4 0; +#X connect 3 0 9 0; +#X connect 4 1 5 0; +#X connect 4 2 6 0; +#X connect 5 0 3 1; +#X connect 6 0 3 2; +#X connect 7 0 3 0; +#X connect 9 0 10 0; +#X connect 10 0 8 0; +#X connect 11 0 10 1; +#X restore 498 516 pd link; +#N canvas 170 431 359 371 link 0; +#X obj 87 24 inlet; +#X obj 162 24 inlet; +#X obj 87 55 tLia2D lia; +#X obj 46 207 translateXYZ; +#X obj 162 82 unpack s f f; +#X obj 207 112 / 100; +#X obj 253 112 / 100; +#X obj 46 180 gemhead; +#X obj 46 283 sphere 1; +#X obj 46 233 rotateXYZ; +#X obj 46 257 scaleXYZ 0 0.1 0.1; +#X obj 87 84 / 200; +#X connect 0 0 2 0; +#X connect 1 0 2 1; +#X connect 2 0 11 0; +#X connect 2 2 9 3; +#X connect 2 3 4 0; +#X connect 3 0 9 0; +#X connect 4 1 5 0; +#X connect 4 2 6 0; +#X connect 5 0 3 1; +#X connect 6 0 3 2; +#X connect 7 0 3 0; +#X connect 9 0 10 0; +#X connect 10 0 8 0; +#X connect 11 0 10 1; +#X restore 655 516 pd link; +#N canvas 170 431 361 373 link 0; +#X obj 87 24 inlet; +#X obj 162 24 inlet; +#X obj 87 55 tLia2D lia; +#X obj 46 207 translateXYZ; +#X obj 162 82 unpack s f f; +#X obj 207 112 / 100; +#X obj 253 112 / 100; +#X obj 46 180 gemhead; +#X obj 46 283 sphere 1; +#X obj 46 233 rotateXYZ; +#X obj 46 257 scaleXYZ 0 0.1 0.1; +#X obj 87 84 / 200; +#X connect 0 0 2 0; +#X connect 1 0 2 1; +#X connect 2 0 11 0; +#X connect 2 2 9 3; +#X connect 2 3 4 0; +#X connect 3 0 9 0; +#X connect 4 1 5 0; +#X connect 4 2 6 0; +#X connect 5 0 3 1; +#X connect 6 0 3 2; +#X connect 7 0 3 0; +#X connect 9 0 10 0; +#X connect 10 0 8 0; +#X connect 11 0 10 1; +#X restore 55 505 pd link; +#N canvas 170 431 359 371 link 0; +#X obj 87 24 inlet; +#X obj 162 24 inlet; +#X obj 87 55 tLia2D lia; +#X obj 46 207 translateXYZ; +#X obj 162 82 unpack s f f; +#X obj 207 112 / 100; +#X obj 253 112 / 100; +#X obj 46 180 gemhead; +#X obj 46 283 sphere 1; +#X obj 46 233 rotateXYZ; +#X obj 46 257 scaleXYZ 0 0.1 0.1; +#X obj 87 84 / 200; +#X connect 0 0 2 0; +#X connect 1 0 2 1; +#X connect 2 0 11 0; +#X connect 2 2 9 3; +#X connect 2 3 4 0; +#X connect 3 0 9 0; +#X connect 4 1 5 0; +#X connect 4 2 6 0; +#X connect 5 0 3 1; +#X connect 6 0 3 2; +#X connect 7 0 3 0; +#X connect 9 0 10 0; +#X connect 10 0 8 0; +#X connect 11 0 10 1; +#X restore 796 521 pd link; +#N canvas 170 431 359 371 link 0; +#X obj 87 24 inlet; +#X obj 162 24 inlet; +#X obj 87 55 tLia2D lia; +#X obj 46 207 translateXYZ; +#X obj 162 82 unpack s f f; +#X obj 207 112 / 100; +#X obj 253 112 / 100; +#X obj 46 180 gemhead; +#X obj 46 283 sphere 1; +#X obj 46 233 rotateXYZ; +#X obj 46 257 scaleXYZ 0 0.1 0.1; +#X obj 87 84 / 200; +#X connect 0 0 2 0; +#X connect 1 0 2 1; +#X connect 2 0 11 0; +#X connect 2 2 9 3; +#X connect 2 3 4 0; +#X connect 3 0 9 0; +#X connect 4 1 5 0; +#X connect 4 2 6 0; +#X connect 5 0 3 1; +#X connect 6 0 3 2; +#X connect 7 0 3 0; +#X connect 9 0 10 0; +#X connect 10 0 8 0; +#X connect 11 0 10 1; +#X restore 916 516 pd link; +#N canvas 170 431 359 371 link 0; +#X obj 87 24 inlet; +#X obj 162 24 inlet; +#X obj 87 55 tLia2D lia; +#X obj 46 207 translateXYZ; +#X obj 162 82 unpack s f f; +#X obj 207 112 / 100; +#X obj 253 112 / 100; +#X obj 46 180 gemhead; +#X obj 46 283 sphere 1; +#X obj 46 233 rotateXYZ; +#X obj 46 257 scaleXYZ 0 0.1 0.1; +#X obj 87 84 / 200; +#X connect 0 0 2 0; +#X connect 1 0 2 1; +#X connect 2 0 11 0; +#X connect 2 2 9 3; +#X connect 2 3 4 0; +#X connect 3 0 9 0; +#X connect 4 1 5 0; +#X connect 4 2 6 0; +#X connect 5 0 3 1; +#X connect 6 0 3 2; +#X connect 7 0 3 0; +#X connect 9 0 10 0; +#X connect 10 0 8 0; +#X connect 11 0 10 1; +#X restore 51 650 pd link; +#N canvas 170 431 359 371 link 0; +#X obj 87 24 inlet; +#X obj 162 24 inlet; +#X obj 87 55 tLia2D lia; +#X obj 46 207 translateXYZ; +#X obj 162 82 unpack s f f; +#X obj 207 112 / 100; +#X obj 253 112 / 100; +#X obj 46 180 gemhead; +#X obj 46 283 sphere 1; +#X obj 46 233 rotateXYZ; +#X obj 46 257 scaleXYZ 0 0.1 0.1; +#X obj 87 84 / 200; +#X connect 0 0 2 0; +#X connect 1 0 2 1; +#X connect 2 0 11 0; +#X connect 2 2 9 3; +#X connect 2 3 4 0; +#X connect 3 0 9 0; +#X connect 4 1 5 0; +#X connect 4 2 6 0; +#X connect 5 0 3 1; +#X connect 6 0 3 2; +#X connect 7 0 3 0; +#X connect 9 0 10 0; +#X connect 10 0 8 0; +#X connect 11 0 10 1; +#X restore 222 652 pd link; +#N canvas 170 431 359 371 link 0; +#X obj 87 24 inlet; +#X obj 162 24 inlet; +#X obj 87 55 tLia2D lia; +#X obj 46 207 translateXYZ; +#X obj 162 82 unpack s f f; +#X obj 207 112 / 100; +#X obj 253 112 / 100; +#X obj 46 180 gemhead; +#X obj 46 283 sphere 1; +#X obj 46 233 rotateXYZ; +#X obj 46 257 scaleXYZ 0 0.1 0.1; +#X obj 87 84 / 200; +#X connect 0 0 2 0; +#X connect 1 0 2 1; +#X connect 2 0 11 0; +#X connect 2 2 9 3; +#X connect 2 3 4 0; +#X connect 3 0 9 0; +#X connect 4 1 5 0; +#X connect 4 2 6 0; +#X connect 5 0 3 1; +#X connect 6 0 3 2; +#X connect 7 0 3 0; +#X connect 9 0 10 0; +#X connect 10 0 8 0; +#X connect 11 0 10 1; +#X restore 375 652 pd link; +#N canvas 170 431 359 371 link 0; +#X obj 87 24 inlet; +#X obj 162 24 inlet; +#X obj 87 55 tLia2D lia; +#X obj 46 207 translateXYZ; +#X obj 162 82 unpack s f f; +#X obj 207 112 / 100; +#X obj 253 112 / 100; +#X obj 46 180 gemhead; +#X obj 46 283 sphere 1; +#X obj 46 233 rotateXYZ; +#X obj 46 257 scaleXYZ 0 0.1 0.1; +#X obj 87 84 / 200; +#X connect 0 0 2 0; +#X connect 1 0 2 1; +#X connect 2 0 11 0; +#X connect 2 2 9 3; +#X connect 2 3 4 0; +#X connect 3 0 9 0; +#X connect 4 1 5 0; +#X connect 4 2 6 0; +#X connect 5 0 3 1; +#X connect 6 0 3 2; +#X connect 7 0 3 0; +#X connect 9 0 10 0; +#X connect 10 0 8 0; +#X connect 11 0 10 1; +#X restore 512 654 pd link; +#N canvas 170 431 359 371 link 0; +#X obj 87 24 inlet; +#X obj 162 24 inlet; +#X obj 87 55 tLia2D lia; +#X obj 46 207 translateXYZ; +#X obj 162 82 unpack s f f; +#X obj 207 112 / 100; +#X obj 253 112 / 100; +#X obj 46 180 gemhead; +#X obj 46 283 sphere 1; +#X obj 46 233 rotateXYZ; +#X obj 46 257 scaleXYZ 0 0.1 0.1; +#X obj 87 84 / 200; +#X connect 0 0 2 0; +#X connect 1 0 2 1; +#X connect 2 0 11 0; +#X connect 2 2 9 3; +#X connect 2 3 4 0; +#X connect 3 0 9 0; +#X connect 4 1 5 0; +#X connect 4 2 6 0; +#X connect 5 0 3 1; +#X connect 6 0 3 2; +#X connect 7 0 3 0; +#X connect 9 0 10 0; +#X connect 10 0 8 0; +#X connect 11 0 10 1; +#X restore 675 660 pd link; +#N canvas 170 431 359 371 link 0; +#X obj 87 24 inlet; +#X obj 162 24 inlet; +#X obj 87 55 tLia2D lia; +#X obj 46 207 translateXYZ; +#X obj 162 82 unpack s f f; +#X obj 207 112 / 100; +#X obj 253 112 / 100; +#X obj 46 180 gemhead; +#X obj 46 283 sphere 1; +#X obj 46 233 rotateXYZ; +#X obj 46 257 scaleXYZ 0 0.1 0.1; +#X obj 87 84 / 200; +#X connect 0 0 2 0; +#X connect 1 0 2 1; +#X connect 2 0 11 0; +#X connect 2 2 9 3; +#X connect 2 3 4 0; +#X connect 3 0 9 0; +#X connect 4 1 5 0; +#X connect 4 2 6 0; +#X connect 5 0 3 1; +#X connect 6 0 3 2; +#X connect 7 0 3 0; +#X connect 9 0 10 0; +#X connect 10 0 8 0; +#X connect 11 0 10 1; +#X restore 811 657 pd link; +#N canvas 170 431 359 371 link 0; +#X obj 87 24 inlet; +#X obj 162 24 inlet; +#X obj 87 55 tLia2D lia; +#X obj 46 207 translateXYZ; +#X obj 162 82 unpack s f f; +#X obj 207 112 / 100; +#X obj 253 112 / 100; +#X obj 46 180 gemhead; +#X obj 46 283 sphere 1; +#X obj 46 233 rotateXYZ; +#X obj 46 257 scaleXYZ 0 0.1 0.1; +#X obj 87 84 / 200; +#X connect 0 0 2 0; +#X connect 1 0 2 1; +#X connect 2 0 11 0; +#X connect 2 2 9 3; +#X connect 2 3 4 0; +#X connect 3 0 9 0; +#X connect 4 1 5 0; +#X connect 4 2 6 0; +#X connect 5 0 3 1; +#X connect 6 0 3 2; +#X connect 7 0 3 0; +#X connect 9 0 10 0; +#X connect 10 0 8 0; +#X connect 11 0 10 1; +#X restore 918 658 pd link; +#X text 341 36 it's like a previus exemples \, but link are drawn according +to a "tlink" object wich output information about the liaison (position +\, orientation etc).; +#X text 727 133 <- 1; +#X connect 0 0 44 1; +#X connect 0 0 45 0; +#X connect 0 0 72 0; +#X connect 0 0 76 1; +#X connect 4 0 6 0; +#X connect 5 0 7 0; +#X connect 8 0 4 0; +#X connect 9 0 8 0; +#X connect 11 0 10 0; +#X connect 12 0 9 0; +#X connect 13 0 26 0; +#X connect 14 0 5 0; +#X connect 15 0 3 0; +#X connect 16 0 17 0; +#X connect 17 0 1 0; +#X connect 17 1 2 0; +#X connect 18 0 0 0; +#X connect 18 0 43 0; +#X connect 19 0 12 0; +#X connect 20 0 13 0; +#X connect 21 0 14 0; +#X connect 23 0 24 0; +#X connect 24 0 22 0; +#X connect 25 0 3 0; +#X connect 26 0 6 0; +#X connect 27 0 30 0; +#X connect 28 0 29 0; +#X connect 30 0 16 0; +#X connect 30 1 31 0; +#X connect 30 2 28 0; +#X connect 30 3 19 0; +#X connect 30 3 20 0; +#X connect 30 3 21 0; +#X connect 30 3 34 0; +#X connect 31 0 32 0; +#X connect 33 0 35 0; +#X connect 34 0 33 0; +#X connect 35 0 6 0; +#X connect 36 0 44 0; +#X connect 36 0 76 0; +#X connect 37 0 46 0; +#X connect 43 0 45 1; +#X connect 43 0 48 0; +#X connect 43 0 72 1; +#X connect 43 0 73 0; +#X connect 44 1 0 0; +#X connect 45 0 0 0; +#X connect 45 1 43 0; +#X connect 46 0 48 1; +#X connect 46 0 49 0; +#X connect 46 0 74 0; +#X connect 46 0 73 1; +#X connect 47 0 49 1; +#X connect 47 0 51 0; +#X connect 47 0 75 0; +#X connect 47 0 74 1; +#X connect 48 0 43 0; +#X connect 48 1 46 0; +#X connect 49 0 46 0; +#X connect 49 1 47 0; +#X connect 50 0 51 1; +#X connect 50 0 54 0; +#X connect 50 0 75 1; +#X connect 50 0 77 0; +#X connect 51 0 47 0; +#X connect 51 1 50 0; +#X connect 52 0 54 1; +#X connect 52 0 55 0; +#X connect 52 0 77 1; +#X connect 52 0 78 0; +#X connect 53 0 55 1; +#X connect 53 0 58 0; +#X connect 53 0 78 1; +#X connect 53 0 79 0; +#X connect 54 0 50 0; +#X connect 54 1 52 0; +#X connect 55 0 52 0; +#X connect 55 1 53 0; +#X connect 56 0 58 1; +#X connect 56 0 59 0; +#X connect 56 0 79 1; +#X connect 56 0 80 0; +#X connect 57 0 59 1; +#X connect 57 0 62 0; +#X connect 57 0 80 1; +#X connect 57 0 81 0; +#X connect 58 0 53 0; +#X connect 58 1 56 0; +#X connect 59 0 56 0; +#X connect 59 1 57 0; +#X connect 60 0 62 1; +#X connect 60 0 63 0; +#X connect 60 0 81 1; +#X connect 60 0 82 0; +#X connect 61 0 63 1; +#X connect 61 0 65 0; +#X connect 61 0 82 1; +#X connect 61 0 83 0; +#X connect 62 0 57 0; +#X connect 62 1 60 0; +#X connect 63 0 60 0; +#X connect 63 1 61 0; +#X connect 64 0 65 1; +#X connect 64 0 68 0; +#X connect 64 0 83 1; +#X connect 64 0 84 0; +#X connect 65 0 61 0; +#X connect 65 1 64 0; +#X connect 66 0 68 1; +#X connect 66 0 69 0; +#X connect 66 0 84 1; +#X connect 66 0 85 0; +#X connect 67 0 69 1; +#X connect 67 0 85 1; +#X connect 68 0 64 0; +#X connect 68 1 66 0; +#X connect 69 0 66 0; +#X connect 70 0 10 0; +#X connect 71 0 30 0; diff --git a/exemples/28_Lia.pd b/exemples/28_Lia.pd new file mode 100755 index 0000000..970b50e --- /dev/null +++ b/exemples/28_Lia.pd @@ -0,0 +1,108 @@ +#N canvas 43 52 799 551 12; +#X obj 9 35 metro 10; +#X obj 9 10 loadbang; +#X obj 9 62 t b b; +#X obj 44 87 s \$0-link; +#X obj 9 113 s \$0-mass; +#X obj 28 154 lia \$0-link 0 1 1; +#X obj 28 202 lia \$0-link 0 1 1; +#X obj 29 253 lia \$0-link 0 1 1; +#X obj 30 304 lia \$0-link 0 1 1; +#X obj 31 353 lia \$0-link 0 1 1; +#X obj 31 403 lia \$0-link 0 1 1; +#X obj 31 453 lia \$0-link 0 1 1; +#X obj 31 502 lia \$0-link 0 1 1; +#X obj 28 178 masse \$0-mass 30; +#X obj 29 228 masse \$0-mass 30; +#X obj 30 279 masse \$0-mass 30; +#X obj 30 329 masse \$0-mass 30; +#X obj 31 378 masse \$0-mass 30; +#X obj 31 428 masse \$0-mass 30; +#X obj 31 477 masse \$0-mass 30; +#X obj 269 181 hsl 128 15 0 127 0 0 empty empty empty -2 -6 0 8 -262144 +-1 -1 0 1; +#X obj 269 196 hsl 128 15 0 127 0 0 empty empty empty -2 -6 0 8 -262144 +-1 -1 800 1; +#X obj 269 211 hsl 128 15 0 127 0 0 empty empty empty -2 -6 0 8 -262144 +-1 -1 1600 1; +#X obj 269 226 hsl 128 15 0 127 0 0 empty empty empty -2 -6 0 8 -262144 +-1 -1 2400 1; +#X obj 269 241 hsl 128 15 0 127 0 0 empty empty empty -2 -6 0 8 -262144 +-1 -1 3200 1; +#X obj 269 256 hsl 128 15 0 127 0 0 empty empty empty -2 -6 0 8 -262144 +-1 -1 4000 1; +#X obj 269 271 hsl 128 15 0 127 0 0 empty empty empty -2 -6 0 8 -262144 +-1 -1 4800 1; +#X obj 269 286 hsl 128 15 0 127 0 0 empty empty empty -2 -6 0 8 -262144 +-1 -1 5600 1; +#X obj 269 301 hsl 128 15 0 127 0 0 empty empty empty -2 -6 0 8 -262144 +-1 -1 6400 1; +#X obj 192 130 loadbang; +#X msg 192 154 64; +#X text 416 177 <- move here; +#X text 415 298 <- diferents link to this points; +#X text 621 349 <- normal link; +#X text 621 430 <- repulsive link; +#X text 621 403 <- link with minimal value; +#X msg 220 453 setLmax 300 \, setL 0 \, setLmin 0 \, setK 0 \, setD +10; +#X text 622 454 <- viscosity link; +#X msg 221 349 setLmax 300 \, setL 0 \, setLmin 0 \, setK 1 \, setD +1; +#X msg 220 376 setLmax 30 \, setL 0 \, setLmin 0 \, setK 1 \, setD +1; +#X msg 220 401 setLmax 300 \, setL 30 \, setLmin 30 \, setK 1 \, setD +1; +#X msg 220 426 setLmax 30 \, setL 30 \, setLmin 0 \, setK 1 \, setD +1; +#X text 622 374 <- link can break if deformation is to big; +#X text 319 12 This is an exemple of diferents comportement of a link +; +#X connect 0 0 2 0; +#X connect 1 0 0 0; +#X connect 2 0 4 0; +#X connect 2 1 3 0; +#X connect 5 1 13 0; +#X connect 6 0 13 0; +#X connect 6 1 14 0; +#X connect 7 0 14 0; +#X connect 7 1 15 0; +#X connect 8 0 15 0; +#X connect 8 1 16 0; +#X connect 9 0 16 0; +#X connect 9 1 17 0; +#X connect 10 0 17 0; +#X connect 10 1 18 0; +#X connect 11 0 18 0; +#X connect 11 1 19 0; +#X connect 12 0 19 0; +#X connect 13 0 5 1; +#X connect 13 0 6 0; +#X connect 13 0 21 0; +#X connect 14 0 6 1; +#X connect 14 0 7 0; +#X connect 14 0 22 0; +#X connect 15 0 7 1; +#X connect 15 0 8 0; +#X connect 15 0 23 0; +#X connect 16 0 8 1; +#X connect 16 0 9 0; +#X connect 16 0 24 0; +#X connect 17 0 9 1; +#X connect 17 0 10 0; +#X connect 17 0 25 0; +#X connect 18 0 10 1; +#X connect 18 0 11 0; +#X connect 18 0 26 0; +#X connect 19 0 11 1; +#X connect 19 0 12 0; +#X connect 19 0 27 0; +#X connect 20 0 5 0; +#X connect 28 0 12 1; +#X connect 29 0 30 0; +#X connect 30 0 28 0; +#X connect 36 0 12 0; +#X connect 38 0 12 0; +#X connect 39 0 12 0; +#X connect 40 0 12 0; +#X connect 41 0 12 0; diff --git a/exemples/29_aglom.pd b/exemples/29_aglom.pd new file mode 100755 index 0000000..c674a29 --- /dev/null +++ b/exemples/29_aglom.pd @@ -0,0 +1,104 @@ +#N canvas 51 18 635 423 10; +#X obj 18 181 t b b; +#X obj 18 103 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0 1 +; +#X msg 145 149 0 \, destroy; +#X obj 111 177 gemwin; +#X msg 111 124 reset \, create \, 1; +#X obj 18 390 s masse; +#X obj 266 150 s reset_masse; +#X msg 266 128 bang; +#X text 359 281 <- right border; +#X text 360 303 <- left border; +#X text 360 325 <- top border; +#X text 360 347 <- bottom border; +#N canvas 845 31 438 384 pool 0; +#X obj 290 290 aglom2 29; +#X obj 0 0 aglom2 0; +#X obj 10 10 aglom2 1; +#X obj 20 20 aglom2 2; +#X obj 30 30 aglom2 3; +#X obj 40 40 aglom2 4; +#X obj 50 50 aglom2 5; +#X obj 60 60 aglom2 6; +#X obj 70 70 aglom2 7; +#X obj 80 80 aglom2 8; +#X obj 90 90 aglom2 9; +#X obj 100 100 aglom2 10; +#X obj 110 110 aglom2 11; +#X obj 120 120 aglom2 12; +#X obj 130 130 aglom2 13; +#X obj 140 140 aglom2 14; +#X obj 150 150 aglom2 15; +#X obj 160 160 aglom2 16; +#X obj 170 170 aglom2 17; +#X obj 180 180 aglom2 18; +#X obj 190 190 aglom2 19; +#X obj 200 200 aglom2 20; +#X obj 210 210 aglom2 21; +#X obj 220 220 aglom2 22; +#X obj 230 230 aglom2 23; +#X obj 240 240 aglom2 24; +#X obj 250 250 aglom2 25; +#X obj 260 260 aglom2 26; +#X obj 270 270 aglom2 27; +#X obj 280 280 aglom2 28; +#X restore 398 132 pd pool; +#N canvas 860 482 315 409 creation 0; +#X obj 43 319 s pd-new; +#X msg 86 95 \; pd filename new ./ \; #N canvas \; #X pop 1 \;; +#X msg 43 289 menuclose; +#X obj 76 238 pack f f f; +#X obj 43 47 sel 0 1; +#X obj 43 29 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0 1 +; +#X obj 61 72 t b b; +#X obj 76 187 t f f f; +#X obj 103 211 * 10; +#X obj 76 211 * 10; +#X msg 76 265 obj \$1 \$2 aglom2 \$3; +#X obj 61 163 ch_uzi 30; +#X connect 2 0 0 0; +#X connect 3 0 10 0; +#X connect 4 0 2 0; +#X connect 4 1 6 0; +#X connect 5 0 4 0; +#X connect 6 0 11 0; +#X connect 6 1 1 0; +#X connect 7 0 9 0; +#X connect 7 1 8 0; +#X connect 7 2 3 2; +#X connect 8 0 3 1; +#X connect 9 0 3 0; +#X connect 10 0 0 0; +#X connect 11 1 7 0; +#X restore 398 158 pd creation pool; +#X obj 61 214 s link; +#X obj 18 154 metro 5; +#X obj 53 280 iLine2D masse 3.5 -3.5 3.5 3.5 1000 0 0 10; +#X obj 63 304 iLine2D masse -3.5 3.5 -3.5 -3.5 1000 0 0 10; +#X obj 78 327 iLine2D masse 3.5 3.5 -3.5 3.5 1000 0 0 10; +#X obj 89 350 iLine2D masse -3.5 -3.5 3.5 -3.5 1000 0 0 10; +#X text 50 100 <- begin (change the metro speed for slow computer) +; +#X floatatom 55 123 5 0 0 0 - - -; +#X obj 43 260 iAmbient2D masse 0 0 0.01 0.01 1; +#X text 359 257 <- give random speed and ambient viscosity; +#X text 174 35 All masses got 2 circular interactors around them. This +create a non linear interactor. this make them to atract / repuls depending +on ther distances....; +#X text 177 6 All masses interact each other in a way for the creation +of small structures; +#X connect 0 0 5 0; +#X connect 0 1 14 0; +#X connect 0 1 16 0; +#X connect 0 1 17 0; +#X connect 0 1 18 0; +#X connect 0 1 19 0; +#X connect 0 1 22 0; +#X connect 1 0 15 0; +#X connect 2 0 3 0; +#X connect 4 0 3 0; +#X connect 7 0 6 0; +#X connect 15 0 0 0; +#X connect 21 0 15 1; diff --git a/exemples/30_falling_aglom.pd b/exemples/30_falling_aglom.pd new file mode 100755 index 0000000..4877c30 --- /dev/null +++ b/exemples/30_falling_aglom.pd @@ -0,0 +1,167 @@ +#N canvas 53 34 632 373 10; +#X obj 18 137 t b b; +#X obj 18 48 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0 1 +; +#X msg 146 95 0 \, destroy; +#X obj 111 123 gemwin; +#X obj 18 337 s masse; +#X text 359 227 <- right border; +#X text 360 249 <- left border; +#X text 357 307 <- top border; +#X text 358 276 <- bottom border; +#N canvas 527 17 819 225 pool 0; +#X obj 320 120 aglom3 0 11; +#X obj 160 0 aglom3 -2 5; +#X obj 0 0 aglom3 -4 5; +#X obj 80 0 aglom3 -3 5; +#X obj 240 0 aglom3 -1 5; +#X obj 320 0 aglom3 0 5; +#X obj 400 0 aglom3 1 5; +#X obj 480 0 aglom3 2 5; +#X obj 560 0 aglom3 3 5; +#X obj 640 0 aglom3 4 5; +#X obj 0 20 aglom3 -4 6; +#X obj 80 20 aglom3 -3 6; +#X obj 160 20 aglom3 -2 6; +#X obj 240 20 aglom3 -1 6; +#X obj 320 20 aglom3 0 6; +#X obj 400 20 aglom3 1 6; +#X obj 480 20 aglom3 2 6; +#X obj 560 20 aglom3 3 6; +#X obj 640 20 aglom3 4 6; +#X obj 0 40 aglom3 -4 7; +#X obj 80 40 aglom3 -3 7; +#X obj 160 40 aglom3 -2 7; +#X obj 240 40 aglom3 -1 7; +#X obj 320 40 aglom3 0 7; +#X obj 400 40 aglom3 1 7; +#X obj 480 40 aglom3 2 7; +#X obj 560 40 aglom3 3 7; +#X obj 640 40 aglom3 4 7; +#X obj 0 60 aglom3 -4 8; +#X obj 80 60 aglom3 -3 8; +#X obj 160 60 aglom3 -2 8; +#X obj 240 60 aglom3 -1 8; +#X obj 320 60 aglom3 0 8; +#X obj 400 60 aglom3 1 8; +#X obj 480 60 aglom3 2 8; +#X obj 560 60 aglom3 3 8; +#X obj 640 60 aglom3 4 8; +#X obj 0 80 aglom3 -4 9; +#X obj 80 80 aglom3 -3 9; +#X obj 160 80 aglom3 -2 9; +#X obj 240 80 aglom3 -1 9; +#X obj 320 80 aglom3 0 9; +#X obj 400 80 aglom3 1 9; +#X obj 480 80 aglom3 2 9; +#X obj 560 80 aglom3 3 9; +#X obj 640 80 aglom3 4 9; +#X obj 0 100 aglom3 -4 10; +#X obj 80 100 aglom3 -3 10; +#X obj 160 100 aglom3 -2 10; +#X obj 240 100 aglom3 -1 10; +#X obj 320 100 aglom3 0 10; +#X obj 400 100 aglom3 1 10; +#X obj 480 100 aglom3 2 10; +#X obj 560 100 aglom3 3 10; +#X obj 640 100 aglom3 4 10; +#X obj 0 120 aglom3 -4 11; +#X obj 80 120 aglom3 -3 11; +#X obj 160 120 aglom3 -2 11; +#X obj 240 120 aglom3 -1 11; +#X obj 400 120 aglom3 1 11; +#X obj 480 120 aglom3 2 11; +#X obj 560 120 aglom3 3 11; +#X obj 640 120 aglom3 4 11; +#X restore 398 78 pd pool; +#N canvas 860 482 321 415 creation 0; +#X obj 46 380 s pd-new; +#X msg 86 95 \; pd filename new ./ \; #N canvas \; #X pop 1 \;; +#X msg 46 350 menuclose; +#X obj 43 47 sel 0 1; +#X obj 43 29 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0 1 +; +#X obj 61 72 t b b; +#X msg 79 325 obj \$1 \$2 aglom3 \$3 \$4; +#X obj 79 299 pack f f f f; +#X obj 171 259 + 5; +#X obj 70 228 t f f; +#X obj 107 272 * 20; +#X obj 81 272 * 80; +#X obj 140 240 / 1; +#X obj 171 237 / 1; +#X obj 143 263 - 4; +#X obj 61 163 ch_uzi 8; +#X obj 60 203 ch_uzi 9; +#X connect 2 0 0 0; +#X connect 3 0 2 0; +#X connect 3 1 5 0; +#X connect 4 0 3 0; +#X connect 5 0 15 0; +#X connect 5 1 1 0; +#X connect 6 0 0 0; +#X connect 7 0 6 0; +#X connect 8 0 7 3; +#X connect 9 0 11 0; +#X connect 9 1 12 0; +#X connect 10 0 7 1; +#X connect 11 0 7 0; +#X connect 12 0 14 0; +#X connect 13 0 8 0; +#X connect 14 0 7 2; +#X connect 15 0 16 0; +#X connect 15 1 10 0; +#X connect 15 1 13 0; +#X connect 16 1 9 0; +#X restore 398 104 pd creation pool; +#X obj 61 160 s link; +#X obj 18 100 metro 5; +#X obj 53 226 iLine2D masse 3.5 -3.5 3.5 3.5 1000 0 0 10; +#X obj 63 250 iLine2D masse -3.5 3.5 -3.5 -3.5 1000 0 0 10; +#X text 50 45 <- begin (change the metro speed for slow computer); +#X floatatom 55 69 5 0 0 0 - - -; +#X text 359 203 <- give random speed and ambient viscosity; +#X msg 243 98 reset; +#X obj 244 120 s masse; +#N canvas 828 304 454 304 line 0; +#X obj 62 28 gemhead; +#X obj 60 82 curve 2; +#X msg 136 58 5 8 0; +#X obj 57 135 gemhead; +#X obj 55 189 curve 2; +#X msg 132 165 -5 8 0; +#X obj 162 21 loadbang; +#X msg 79 55 0.2 3 0; +#X msg 74 162 -0.2 3 0; +#X connect 0 0 1 0; +#X connect 2 0 1 2; +#X connect 3 0 4 0; +#X connect 5 0 4 2; +#X connect 6 0 7 0; +#X connect 6 0 2 0; +#X connect 6 0 8 0; +#X connect 6 0 5 0; +#X connect 7 0 1 1; +#X connect 8 0 4 1; +#X restore 398 131 pd line gem; +#X obj 77 272 iLine2D masse -3.5 -7.5 3.5 -7.5 1000 0 0 10; +#X obj 90 195 iAmbient2D masse 0 -0.0015 0 0 0.4; +#X obj 160 317 iSeg2D masse -5 8 -0.2 3 1 0.5; +#X obj 165 298 iSeg2D masse 0.2 3 5 8 1 0.5; +#X msg 111 70 reset \, view 0 0 -8 0 0 0 0 1 0 \, create \, 1; +#X text 145 10 It's the same as previus exemple \, but in a gravity +field.; +#X connect 0 0 4 0; +#X connect 0 1 11 0; +#X connect 0 1 13 0; +#X connect 0 1 14 0; +#X connect 0 1 21 0; +#X connect 0 1 22 0; +#X connect 0 1 23 0; +#X connect 0 1 24 0; +#X connect 1 0 12 0; +#X connect 2 0 3 0; +#X connect 12 0 0 0; +#X connect 16 0 12 1; +#X connect 18 0 19 0; +#X connect 25 0 3 0; diff --git a/exemples/31_paste.pd b/exemples/31_paste.pd new file mode 100755 index 0000000..12f30e8 --- /dev/null +++ b/exemples/31_paste.pd @@ -0,0 +1,206 @@ +#N canvas 36 58 602 351 10; +#X obj 10 157 t b b; +#X obj 10 69 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0 1 +; +#X msg 141 115 0 \, destroy; +#X obj 106 143 gemwin; +#X obj 9 306 s masse; +#X text 364 271 <- top border; +#X text 365 240 <- bottom border; +#N canvas 527 17 851 257 pool 0; +#X obj 400 180 aglom4 0 15; +#X obj 240 180 aglom4 -2 15; +#X obj 320 160 aglom4 -1 14; +#X obj 0 0 aglom4 -5 6; +#X obj 80 0 aglom4 -4 6; +#X obj 160 0 aglom4 -3 6; +#X obj 240 0 aglom4 -2 6; +#X obj 320 0 aglom4 -1 6; +#X obj 400 0 aglom4 0 6; +#X obj 480 0 aglom4 1 6; +#X obj 560 0 aglom4 2 6; +#X obj 640 0 aglom4 3 6; +#X obj 720 0 aglom4 4 6; +#X obj 800 0 aglom4 5 6; +#X obj 0 20 aglom4 -5 7; +#X obj 80 20 aglom4 -4 7; +#X obj 160 20 aglom4 -3 7; +#X obj 240 20 aglom4 -2 7; +#X obj 320 20 aglom4 -1 7; +#X obj 400 20 aglom4 0 7; +#X obj 480 20 aglom4 1 7; +#X obj 560 20 aglom4 2 7; +#X obj 640 20 aglom4 3 7; +#X obj 720 20 aglom4 4 7; +#X obj 800 20 aglom4 5 7; +#X obj 0 40 aglom4 -5 8; +#X obj 80 40 aglom4 -4 8; +#X obj 160 40 aglom4 -3 8; +#X obj 240 40 aglom4 -2 8; +#X obj 320 40 aglom4 -1 8; +#X obj 400 40 aglom4 0 8; +#X obj 480 40 aglom4 1 8; +#X obj 560 40 aglom4 2 8; +#X obj 640 40 aglom4 3 8; +#X obj 720 40 aglom4 4 8; +#X obj 800 40 aglom4 5 8; +#X obj 0 60 aglom4 -5 9; +#X obj 80 60 aglom4 -4 9; +#X obj 160 60 aglom4 -3 9; +#X obj 240 60 aglom4 -2 9; +#X obj 320 60 aglom4 -1 9; +#X obj 400 60 aglom4 0 9; +#X obj 480 60 aglom4 1 9; +#X obj 560 60 aglom4 2 9; +#X obj 640 60 aglom4 3 9; +#X obj 720 60 aglom4 4 9; +#X obj 800 60 aglom4 5 9; +#X obj 0 80 aglom4 -5 10; +#X obj 80 80 aglom4 -4 10; +#X obj 160 80 aglom4 -3 10; +#X obj 240 80 aglom4 -2 10; +#X obj 320 80 aglom4 -1 10; +#X obj 400 80 aglom4 0 10; +#X obj 480 80 aglom4 1 10; +#X obj 560 80 aglom4 2 10; +#X obj 640 80 aglom4 3 10; +#X obj 720 80 aglom4 4 10; +#X obj 800 80 aglom4 5 10; +#X obj 0 100 aglom4 -5 11; +#X obj 80 100 aglom4 -4 11; +#X obj 160 100 aglom4 -3 11; +#X obj 240 100 aglom4 -2 11; +#X obj 320 100 aglom4 -1 11; +#X obj 400 100 aglom4 0 11; +#X obj 480 100 aglom4 1 11; +#X obj 560 100 aglom4 2 11; +#X obj 640 100 aglom4 3 11; +#X obj 720 100 aglom4 4 11; +#X obj 800 100 aglom4 5 11; +#X obj 0 120 aglom4 -5 12; +#X obj 80 120 aglom4 -4 12; +#X obj 160 120 aglom4 -3 12; +#X obj 240 120 aglom4 -2 12; +#X obj 320 120 aglom4 -1 12; +#X obj 400 120 aglom4 0 12; +#X obj 480 120 aglom4 1 12; +#X obj 560 120 aglom4 2 12; +#X obj 640 120 aglom4 3 12; +#X obj 720 120 aglom4 4 12; +#X obj 800 120 aglom4 5 12; +#X obj 0 140 aglom4 -5 13; +#X obj 80 140 aglom4 -4 13; +#X obj 160 140 aglom4 -3 13; +#X obj 240 140 aglom4 -2 13; +#X obj 320 140 aglom4 -1 13; +#X obj 400 140 aglom4 0 13; +#X obj 480 140 aglom4 1 13; +#X obj 560 140 aglom4 2 13; +#X obj 640 140 aglom4 3 13; +#X obj 720 140 aglom4 4 13; +#X obj 800 140 aglom4 5 13; +#X obj 0 160 aglom4 -5 14; +#X obj 80 160 aglom4 -4 14; +#X obj 160 160 aglom4 -3 14; +#X obj 240 160 aglom4 -2 14; +#X obj 400 160 aglom4 0 14; +#X obj 480 160 aglom4 1 14; +#X obj 560 160 aglom4 2 14; +#X obj 640 160 aglom4 3 14; +#X obj 720 160 aglom4 4 14; +#X obj 800 160 aglom4 5 14; +#X obj 0 180 aglom4 -5 15; +#X obj 80 180 aglom4 -4 15; +#X obj 160 180 aglom4 -3 15; +#X obj 320 180 aglom4 -1 15; +#X obj 480 180 aglom4 1 15; +#X obj 560 180 aglom4 2 15; +#X obj 640 180 aglom4 3 15; +#X obj 720 180 aglom4 4 15; +#X obj 800 180 aglom4 5 15; +#X restore 393 99 pd pool; +#N canvas 860 482 327 421 creation 0; +#X obj 46 380 s pd-new; +#X msg 86 95 \; pd filename new ./ \; #N canvas \; #X pop 1 \;; +#X msg 46 350 menuclose; +#X obj 43 47 sel 0 1; +#X obj 43 29 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0 1 +; +#X obj 61 72 t b b; +#X obj 79 299 pack f f f f; +#X obj 70 228 t f f; +#X obj 107 272 * 20; +#X obj 81 272 * 80; +#X msg 79 325 obj \$1 \$2 aglom4 \$3 \$4; +#X obj 60 183 t b f; +#X obj 171 259 + 6; +#X obj 143 263 - 5; +#X obj 61 163 ch_uzi 10; +#X obj 60 203 ch_uzi 11; +#X connect 2 0 0 0; +#X connect 3 0 2 0; +#X connect 3 1 5 0; +#X connect 4 0 3 0; +#X connect 5 0 14 0; +#X connect 5 1 1 0; +#X connect 6 0 10 0; +#X connect 7 0 9 0; +#X connect 7 1 13 0; +#X connect 8 0 6 1; +#X connect 9 0 6 0; +#X connect 10 0 0 0; +#X connect 11 0 15 0; +#X connect 11 1 8 0; +#X connect 11 1 12 0; +#X connect 12 0 6 3; +#X connect 13 0 6 2; +#X connect 14 1 11 0; +#X connect 15 1 7 0; +#X restore 393 125 pd creation pool; +#X obj 56 180 s link; +#X text 227 12 All masses interact each other; +#X text 42 66 <- begin (change the metro speed for slow computer); +#X floatatom 47 89 5 0 0 0 - - -; +#X msg 238 118 reset; +#X obj 238 140 s masse; +#N canvas 828 304 460 310 line 0; +#X obj 62 28 gemhead; +#X obj 60 82 curve 2; +#X msg 136 58 5 8 0; +#X obj 57 135 gemhead; +#X obj 55 189 curve 2; +#X msg 132 165 -5 8 0; +#X obj 162 21 loadbang; +#X msg 79 55 0.5 3 0; +#X msg 74 161 -0.5 3 0; +#X connect 0 0 1 0; +#X connect 2 0 1 2; +#X connect 3 0 4 0; +#X connect 5 0 4 2; +#X connect 6 0 7 0; +#X connect 6 0 2 0; +#X connect 6 0 8 0; +#X connect 6 0 5 0; +#X connect 7 0 1 1; +#X connect 8 0 4 1; +#X restore 393 151 pd line gem; +#X obj 91 239 iLine2D masse -3.5 -7.5 3.5 -7.5 1000 0 0 1; +#X obj 73 213 iAmbient2D masse 0 -0.0015 0 0 0.04; +#X obj 10 120 metro 10; +#X text 366 209 <- give gravity and ambient viscosity; +#X msg 106 90 reset \, view 0 0 -8 0 0 0 0 1 0 \, create \, 1; +#X obj 109 263 iSeg2D masse 0.5 3 5 8 2 0.1; +#X obj 126 284 iSeg2D masse -5 8 -0.5 3 2 0.1; +#X text 163 25 they got a viscosity link. the global comportement is +a bit like paste; +#X connect 0 0 4 0; +#X connect 0 1 9 0; +#X connect 0 1 17 0; +#X connect 0 1 21 0; +#X connect 0 1 22 0; +#X connect 1 0 18 0; +#X connect 2 0 3 0; +#X connect 12 0 18 1; +#X connect 13 0 14 0; +#X connect 18 0 0 0; +#X connect 20 0 3 0; diff --git a/exemples/32_Kelvin_Helmoltz_instability.pd b/exemples/32_Kelvin_Helmoltz_instability.pd new file mode 100755 index 0000000..51c880f --- /dev/null +++ b/exemples/32_Kelvin_Helmoltz_instability.pd @@ -0,0 +1,160 @@ +#N canvas 48 33 528 221 10; +#N canvas 860 482 341 435 creation 0; +#X obj 46 380 s pd-new; +#X msg 86 95 \; pd filename new ./ \; #N canvas \; #X pop 1 \;; +#X msg 46 350 menuclose; +#X obj 43 47 sel 0 1; +#X obj 43 29 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0 1 +; +#X obj 61 72 t b b; +#X obj 107 272 * 20; +#X obj 82 272 * 20; +#X obj 76 188 t f f; +#X obj 79 299 pack f f f; +#X msg 79 325 obj \$1 \$2 vortex \$3; +#X obj 138 270 / 8; +#X obj 136 223 - 50; +#X obj 62 163 ch_uzi 100; +#X connect 2 0 0 0; +#X connect 3 0 2 0; +#X connect 3 1 5 0; +#X connect 4 0 3 0; +#X connect 5 0 13 0; +#X connect 5 1 1 0; +#X connect 6 0 9 1; +#X connect 7 0 9 0; +#X connect 8 0 7 0; +#X connect 8 1 6 0; +#X connect 8 1 12 0; +#X connect 9 0 10 0; +#X connect 10 0 0 0; +#X connect 11 0 9 2; +#X connect 12 0 11 0; +#X connect 13 1 8 0; +#X restore 391 176 pd creation pool; +#N canvas 790 67 588 512 pool 0; +#X obj 320 320 vortex -4.25; +#X obj 240 240 vortex -4.75; +#X obj 0 0 vortex -6.25; +#X obj 20 20 vortex -6.125; +#X obj 40 40 vortex -6; +#X obj 60 60 vortex -5.875; +#X obj 80 80 vortex -5.75; +#X obj 100 100 vortex -5.625; +#X obj 120 120 vortex -5.5; +#X obj 140 140 vortex -5.375; +#X obj 160 160 vortex -5.25; +#X obj 180 180 vortex -5.125; +#X obj 200 200 vortex -5; +#X obj 220 220 vortex -4.875; +#X obj 260 260 vortex -4.625; +#X obj 280 280 vortex -4.5; +#X obj 300 300 vortex -4.375; +#X obj 340 340 vortex -4.125; +#X obj 360 360 vortex -4; +#X obj 380 380 vortex -3.875; +#X obj 400 400 vortex -3.75; +#X obj 420 420 vortex -3.625; +#X obj 440 440 vortex -3.5; +#X obj 460 460 vortex -3.375; +#X obj 480 480 vortex -3.25; +#X obj 500 500 vortex -3.125; +#X obj 520 520 vortex -3; +#X obj 540 540 vortex -2.875; +#X obj 560 560 vortex -2.75; +#X obj 580 580 vortex -2.625; +#X obj 600 600 vortex -2.5; +#X obj 620 620 vortex -2.375; +#X obj 640 640 vortex -2.25; +#X obj 660 660 vortex -2.125; +#X obj 680 680 vortex -2; +#X obj 700 700 vortex -1.875; +#X obj 720 720 vortex -1.75; +#X obj 740 740 vortex -1.625; +#X obj 760 760 vortex -1.5; +#X obj 780 780 vortex -1.375; +#X obj 800 800 vortex -1.25; +#X obj 820 820 vortex -1.125; +#X obj 840 840 vortex -1; +#X obj 860 860 vortex -0.875; +#X obj 880 880 vortex -0.75; +#X obj 900 900 vortex -0.625; +#X obj 920 920 vortex -0.5; +#X obj 940 940 vortex -0.375; +#X obj 960 960 vortex -0.25; +#X obj 980 980 vortex -0.125; +#X obj 1000 1000 vortex 0; +#X obj 1020 1020 vortex 0.125; +#X obj 1040 1040 vortex 0.25; +#X obj 1060 1060 vortex 0.375; +#X obj 1080 1080 vortex 0.5; +#X obj 1100 1100 vortex 0.625; +#X obj 1120 1120 vortex 0.75; +#X obj 1140 1140 vortex 0.875; +#X obj 1160 1160 vortex 1; +#X obj 1180 1180 vortex 1.125; +#X obj 1200 1200 vortex 1.25; +#X obj 1220 1220 vortex 1.375; +#X obj 1240 1240 vortex 1.5; +#X obj 1260 1260 vortex 1.625; +#X obj 1280 1280 vortex 1.75; +#X obj 1300 1300 vortex 1.875; +#X obj 1320 1320 vortex 2; +#X obj 1340 1340 vortex 2.125; +#X obj 1360 1360 vortex 2.25; +#X obj 1380 1380 vortex 2.375; +#X obj 1400 1400 vortex 2.5; +#X obj 1420 1420 vortex 2.625; +#X obj 1440 1440 vortex 2.75; +#X obj 1460 1460 vortex 2.875; +#X obj 1480 1480 vortex 3; +#X obj 1500 1500 vortex 3.125; +#X obj 1520 1520 vortex 3.25; +#X obj 1540 1540 vortex 3.375; +#X obj 1560 1560 vortex 3.5; +#X obj 1580 1580 vortex 3.625; +#X obj 1600 1600 vortex 3.75; +#X obj 1620 1620 vortex 3.875; +#X obj 1640 1640 vortex 4; +#X obj 1660 1660 vortex 4.125; +#X obj 1680 1680 vortex 4.25; +#X obj 1700 1700 vortex 4.375; +#X obj 1720 1720 vortex 4.5; +#X obj 1740 1740 vortex 4.625; +#X obj 1760 1760 vortex 4.75; +#X obj 1780 1780 vortex 4.875; +#X obj 1800 1800 vortex 5; +#X obj 1820 1820 vortex 5.125; +#X obj 1840 1840 vortex 5.25; +#X obj 1860 1860 vortex 5.375; +#X obj 1880 1880 vortex 5.5; +#X obj 1900 1900 vortex 5.625; +#X obj 1920 1920 vortex 5.75; +#X obj 1940 1940 vortex 5.875; +#X obj 1960 1960 vortex 6; +#X obj 1980 1980 vortex 6.125; +#X restore 391 150 pd pool; +#X obj 18 139 t b b; +#X obj 18 62 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0 1 +; +#X obj 18 183 s masse; +#X obj 43 164 s link; +#X text 50 59 <- begin (change the metro speed for slow computer); +#X floatatom 61 82 5 0 0 0 - - -; +#X obj 18 113 metro 10; +#X msg 156 128 0 \, destroy; +#X obj 121 156 gemwin; +#X msg 253 131 reset; +#X msg 121 103 reset \, view 0 0 -8 0 0 0 0 1 0 \, create \, 1; +#X obj 253 153 s masse2; +#X text 136 -2 Simulation of a continus line of vorticity (no damping +fluid \, 2D mouvement); +#X text 137 25 This create a Kevin-Helmoltz instability.; +#X connect 2 0 4 0; +#X connect 2 1 5 0; +#X connect 3 0 8 0; +#X connect 7 0 8 1; +#X connect 8 0 2 0; +#X connect 9 0 10 0; +#X connect 11 0 13 0; +#X connect 12 0 10 0; diff --git a/exemples/33_vorticity_ellipse.pd b/exemples/33_vorticity_ellipse.pd new file mode 100755 index 0000000..fd99bde --- /dev/null +++ b/exemples/33_vorticity_ellipse.pd @@ -0,0 +1,369 @@ +#N canvas 71 37 562 212 10; +#N canvas 860 482 333 427 creation 0; +#X obj 46 380 s pd-new; +#X msg 86 95 \; pd filename new ./ \; #N canvas \; #X pop 1 \;; +#X msg 46 350 menuclose; +#X obj 43 47 sel 0 1; +#X obj 43 29 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0 1 +; +#X obj 61 72 t b b; +#X obj 107 272 * 20; +#X obj 82 272 * 20; +#X obj 76 188 t f f; +#X obj 79 299 pack f f f; +#X msg 79 325 obj \$1 \$2 vortex2 \$3; +#X obj 63 163 ch_uzi 36; +#X connect 2 0 0 0; +#X connect 3 0 2 0; +#X connect 3 1 5 0; +#X connect 4 0 3 0; +#X connect 5 0 11 0; +#X connect 5 1 1 0; +#X connect 6 0 9 1; +#X connect 7 0 9 0; +#X connect 8 0 7 0; +#X connect 8 1 6 0; +#X connect 8 1 9 2; +#X connect 9 0 10 0; +#X connect 10 0 0 0; +#X connect 11 1 8 0; +#X restore 426 161 pd creation pool; +#X obj 41 131 t b b; +#X obj 41 54 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0 1 +; +#X obj 41 175 s masse; +#X obj 66 156 s link; +#X text 73 51 <- begin (change the metro speed for slow computer); +#X floatatom 90 70 5 0 0 0 - - -; +#X msg 179 120 0 \, destroy; +#X obj 144 148 gemwin; +#N canvas 790 67 586 510 pool 0; +#X obj 380 380 vortex2; +#X obj 287 210 vortex2; +#X obj 347 270 vortex2; +#X obj 0 0 vortex2; +#X obj 10 10 vortex2; +#X obj 20 20 vortex2; +#X obj 30 30 vortex2; +#X obj 40 40 vortex2; +#X obj 50 50 vortex2; +#X obj 60 60 vortex2; +#X obj 70 70 vortex2; +#X obj 80 80 vortex2; +#X obj 90 90 vortex2; +#X obj 100 100 vortex2; +#X obj 110 110 vortex2; +#X obj 120 120 vortex2; +#X obj 130 130 vortex2; +#X obj 140 140 vortex2; +#X obj 150 150 vortex2; +#X obj 160 160 vortex2; +#X obj 170 170 vortex2; +#X obj 180 180 vortex2; +#X obj 190 190 vortex2; +#X obj 200 200 vortex2; +#X obj 210 210 vortex2; +#X obj 220 220 vortex2; +#X obj 230 230 vortex2; +#X obj 240 240 vortex2; +#X obj 250 250 vortex2; +#X obj 260 260 vortex2; +#X obj 270 270 vortex2; +#X obj 280 280 vortex2; +#X obj 290 290 vortex2; +#X obj 300 300 vortex2; +#X obj 310 310 vortex2; +#X obj 320 320 vortex2; +#X obj 330 330 vortex2; +#X obj 340 340 vortex2; +#X obj 350 350 vortex2; +#X obj 360 360 vortex2; +#X obj 370 370 vortex2; +#X obj 87 10 vortex2; +#X obj 97 20 vortex2; +#X obj 107 30 vortex2; +#X obj 117 40 vortex2; +#X obj 127 50 vortex2; +#X obj 137 60 vortex2; +#X obj 147 70 vortex2; +#X obj 157 80 vortex2; +#X obj 167 90 vortex2; +#X obj 177 100 vortex2; +#X obj 187 110 vortex2; +#X obj 197 120 vortex2; +#X obj 207 130 vortex2; +#X obj 217 140 vortex2; +#X obj 227 150 vortex2; +#X obj 237 160 vortex2; +#X obj 247 170 vortex2; +#X obj 257 180 vortex2; +#X obj 267 190 vortex2; +#X obj 277 200 vortex2; +#X obj 297 220 vortex2; +#X obj 307 230 vortex2; +#X obj 317 240 vortex2; +#X obj 327 250 vortex2; +#X obj 337 260 vortex2; +#X obj 357 280 vortex2; +#X obj 367 290 vortex2; +#X obj 377 300 vortex2; +#X obj 387 310 vortex2; +#X obj 397 320 vortex2; +#X obj 407 330 vortex2; +#X obj 417 340 vortex2; +#X obj 427 350 vortex2; +#X obj 437 360 vortex2; +#X obj 447 370 vortex2; +#X obj 457 380 vortex2; +#X obj 467 390 vortex2; +#X obj 541 390 vortex2; +#X obj 161 10 vortex2; +#X obj 171 20 vortex2; +#X obj 181 30 vortex2; +#X obj 191 40 vortex2; +#X obj 201 50 vortex2; +#X obj 211 60 vortex2; +#X obj 221 70 vortex2; +#X obj 231 80 vortex2; +#X obj 241 90 vortex2; +#X obj 251 100 vortex2; +#X obj 261 110 vortex2; +#X obj 271 120 vortex2; +#X obj 281 130 vortex2; +#X obj 291 140 vortex2; +#X obj 301 150 vortex2; +#X obj 311 160 vortex2; +#X obj 321 170 vortex2; +#X obj 331 180 vortex2; +#X obj 341 190 vortex2; +#X obj 351 200 vortex2; +#X obj 361 210 vortex2; +#X obj 371 220 vortex2; +#X obj 381 230 vortex2; +#X obj 391 240 vortex2; +#X obj 401 250 vortex2; +#X obj 411 260 vortex2; +#X obj 421 270 vortex2; +#X obj 431 280 vortex2; +#X obj 441 290 vortex2; +#X obj 451 300 vortex2; +#X obj 461 310 vortex2; +#X obj 471 320 vortex2; +#X obj 481 330 vortex2; +#X obj 491 340 vortex2; +#X obj 501 350 vortex2; +#X obj 511 360 vortex2; +#X obj 521 370 vortex2; +#X obj 531 380 vortex2; +#X obj 248 20 vortex2; +#X obj 258 30 vortex2; +#X obj 268 40 vortex2; +#X obj 278 50 vortex2; +#X obj 288 60 vortex2; +#X obj 298 70 vortex2; +#X obj 308 80 vortex2; +#X obj 318 90 vortex2; +#X obj 328 100 vortex2; +#X obj 338 110 vortex2; +#X obj 348 120 vortex2; +#X obj 358 130 vortex2; +#X obj 368 140 vortex2; +#X obj 378 150 vortex2; +#X obj 388 160 vortex2; +#X obj 398 170 vortex2; +#X obj 408 180 vortex2; +#X obj 418 190 vortex2; +#X obj 428 200 vortex2; +#X obj 438 210 vortex2; +#X obj 448 220 vortex2; +#X obj 458 230 vortex2; +#X obj 468 240 vortex2; +#X obj 478 250 vortex2; +#X obj 488 260 vortex2; +#X obj 498 270 vortex2; +#X obj 508 280 vortex2; +#X obj 518 290 vortex2; +#X obj 528 300 vortex2; +#X obj 538 310 vortex2; +#X obj 548 320 vortex2; +#X obj 558 330 vortex2; +#X obj 568 340 vortex2; +#X obj 578 350 vortex2; +#X obj 588 360 vortex2; +#X obj 598 370 vortex2; +#X obj 608 380 vortex2; +#X obj 618 390 vortex2; +#X obj 628 400 vortex2; +#X obj 1126 390 vortex2; +#X obj 1033 220 vortex2; +#X obj 1093 280 vortex2; +#X obj 746 10 vortex2; +#X obj 756 20 vortex2; +#X obj 766 30 vortex2; +#X obj 776 40 vortex2; +#X obj 786 50 vortex2; +#X obj 796 60 vortex2; +#X obj 806 70 vortex2; +#X obj 816 80 vortex2; +#X obj 826 90 vortex2; +#X obj 836 100 vortex2; +#X obj 846 110 vortex2; +#X obj 856 120 vortex2; +#X obj 866 130 vortex2; +#X obj 876 140 vortex2; +#X obj 886 150 vortex2; +#X obj 896 160 vortex2; +#X obj 906 170 vortex2; +#X obj 916 180 vortex2; +#X obj 926 190 vortex2; +#X obj 936 200 vortex2; +#X obj 946 210 vortex2; +#X obj 956 220 vortex2; +#X obj 966 230 vortex2; +#X obj 976 240 vortex2; +#X obj 986 250 vortex2; +#X obj 996 260 vortex2; +#X obj 1006 270 vortex2; +#X obj 1016 280 vortex2; +#X obj 1026 290 vortex2; +#X obj 1036 300 vortex2; +#X obj 1046 310 vortex2; +#X obj 1056 320 vortex2; +#X obj 1066 330 vortex2; +#X obj 1076 340 vortex2; +#X obj 1086 350 vortex2; +#X obj 1096 360 vortex2; +#X obj 1106 370 vortex2; +#X obj 1116 380 vortex2; +#X obj 833 20 vortex2; +#X obj 843 30 vortex2; +#X obj 853 40 vortex2; +#X obj 863 50 vortex2; +#X obj 873 60 vortex2; +#X obj 883 70 vortex2; +#X obj 893 80 vortex2; +#X obj 903 90 vortex2; +#X obj 913 100 vortex2; +#X obj 923 110 vortex2; +#X obj 933 120 vortex2; +#X obj 943 130 vortex2; +#X obj 953 140 vortex2; +#X obj 963 150 vortex2; +#X obj 973 160 vortex2; +#X obj 983 170 vortex2; +#X obj 993 180 vortex2; +#X obj 1003 190 vortex2; +#X obj 1013 200 vortex2; +#X obj 1023 210 vortex2; +#X obj 1043 230 vortex2; +#X obj 1053 240 vortex2; +#X obj 1063 250 vortex2; +#X obj 1073 260 vortex2; +#X obj 1083 270 vortex2; +#X obj 1103 290 vortex2; +#X obj 1113 300 vortex2; +#X obj 1123 310 vortex2; +#X obj 1133 320 vortex2; +#X obj 1143 330 vortex2; +#X obj 1153 340 vortex2; +#X obj 1163 350 vortex2; +#X obj 1173 360 vortex2; +#X obj 1183 370 vortex2; +#X obj 1193 380 vortex2; +#X obj 1203 390 vortex2; +#X obj 1213 400 vortex2; +#X obj 1287 400 vortex2; +#X obj 907 20 vortex2; +#X obj 917 30 vortex2; +#X obj 927 40 vortex2; +#X obj 937 50 vortex2; +#X obj 947 60 vortex2; +#X obj 957 70 vortex2; +#X obj 967 80 vortex2; +#X obj 977 90 vortex2; +#X obj 987 100 vortex2; +#X obj 997 110 vortex2; +#X obj 1007 120 vortex2; +#X obj 1017 130 vortex2; +#X obj 1027 140 vortex2; +#X obj 1037 150 vortex2; +#X obj 1047 160 vortex2; +#X obj 1057 170 vortex2; +#X obj 1067 180 vortex2; +#X obj 1077 190 vortex2; +#X obj 1087 200 vortex2; +#X obj 1097 210 vortex2; +#X obj 1107 220 vortex2; +#X obj 1117 230 vortex2; +#X obj 1127 240 vortex2; +#X obj 1137 250 vortex2; +#X obj 1147 260 vortex2; +#X obj 1157 270 vortex2; +#X obj 1167 280 vortex2; +#X obj 1177 290 vortex2; +#X obj 1187 300 vortex2; +#X obj 1197 310 vortex2; +#X obj 1207 320 vortex2; +#X obj 1217 330 vortex2; +#X obj 1227 340 vortex2; +#X obj 1237 350 vortex2; +#X obj 1247 360 vortex2; +#X obj 1257 370 vortex2; +#X obj 1267 380 vortex2; +#X obj 1277 390 vortex2; +#X obj 994 30 vortex2; +#X obj 1004 40 vortex2; +#X obj 1014 50 vortex2; +#X obj 1024 60 vortex2; +#X obj 1034 70 vortex2; +#X obj 1044 80 vortex2; +#X obj 1054 90 vortex2; +#X obj 1064 100 vortex2; +#X obj 1074 110 vortex2; +#X obj 1084 120 vortex2; +#X obj 1094 130 vortex2; +#X obj 1104 140 vortex2; +#X obj 1114 150 vortex2; +#X obj 1124 160 vortex2; +#X obj 1134 170 vortex2; +#X obj 1144 180 vortex2; +#X obj 1154 190 vortex2; +#X obj 1164 200 vortex2; +#X obj 1174 210 vortex2; +#X obj 1184 220 vortex2; +#X obj 1194 230 vortex2; +#X obj 1204 240 vortex2; +#X obj 1214 250 vortex2; +#X obj 1224 260 vortex2; +#X obj 1234 270 vortex2; +#X obj 1244 280 vortex2; +#X obj 1254 290 vortex2; +#X obj 1264 300 vortex2; +#X obj 1274 310 vortex2; +#X obj 1284 320 vortex2; +#X obj 1294 330 vortex2; +#X obj 1304 340 vortex2; +#X obj 1314 350 vortex2; +#X obj 1324 360 vortex2; +#X obj 1334 370 vortex2; +#X obj 1344 380 vortex2; +#X obj 1354 390 vortex2; +#X obj 1364 400 vortex2; +#X obj 1374 410 vortex2; +#X restore 428 135 pd pool; +#X obj 276 145 s masse2; +#X msg 277 124 bang; +#X msg 144 95 reset \, view 0 0 -10 0 0 0 0 1 0 \, create \, 1; +#X obj 41 105 metro 100; +#X text 120 -3 simulation of a continus elipse of vorticity field. +; +#X text 119 14 This simulation nead lot's a masses \, and lot's of +CPU.; +#X connect 1 0 3 0; +#X connect 1 1 4 0; +#X connect 2 0 13 0; +#X connect 6 0 13 1; +#X connect 7 0 8 0; +#X connect 11 0 10 0; +#X connect 12 0 8 0; +#X connect 13 0 1 0; diff --git a/exemples/34_cigarette_smoke.pd b/exemples/34_cigarette_smoke.pd new file mode 100755 index 0000000..111e2ef --- /dev/null +++ b/exemples/34_cigarette_smoke.pd @@ -0,0 +1,326 @@ +#N canvas 93 37 529 370 10; +#N canvas 860 482 349 443 creation 0; +#X obj 46 380 s pd-new; +#X msg 86 95 \; pd filename new ./ \; #N canvas \; #X pop 1 \;; +#X msg 46 350 menuclose; +#X obj 43 47 sel 0 1; +#X obj 43 29 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0 1 +; +#X obj 61 72 t b b; +#X obj 107 272 * 20; +#X obj 82 272 * 20; +#X obj 76 188 t f f; +#X obj 79 299 pack f f f; +#X obj 138 270 + 0; +#X obj 136 223 + 0; +#X msg 79 325 obj \$1 \$2 smoke1 \$3; +#X obj 64 158 ch_uzi 250; +#X connect 2 0 0 0; +#X connect 3 0 2 0; +#X connect 3 1 5 0; +#X connect 4 0 3 0; +#X connect 5 0 13 0; +#X connect 5 1 1 0; +#X connect 6 0 9 1; +#X connect 7 0 9 0; +#X connect 8 0 7 0; +#X connect 8 1 6 0; +#X connect 8 1 11 0; +#X connect 9 0 12 0; +#X connect 10 0 9 2; +#X connect 11 0 10 0; +#X connect 12 0 0 0; +#X connect 13 1 8 0; +#X restore 405 176 pd creation pool; +#N canvas 626 84 618 542 pool 0; +#X obj 0 0 smoke1 0; +#X obj 20 20 smoke1 1; +#X obj 40 40 smoke1 2; +#X obj 60 60 smoke1 3; +#X obj 80 80 smoke1 4; +#X obj 100 100 smoke1 5; +#X obj 120 120 smoke1 6; +#X obj 140 140 smoke1 7; +#X obj 160 160 smoke1 8; +#X obj 180 180 smoke1 9; +#X obj 200 200 smoke1 10; +#X obj 220 220 smoke1 11; +#X obj 240 240 smoke1 12; +#X obj 260 260 smoke1 13; +#X obj 280 280 smoke1 14; +#X obj 300 300 smoke1 15; +#X obj 320 320 smoke1 16; +#X obj 340 340 smoke1 17; +#X obj 360 360 smoke1 18; +#X obj 380 380 smoke1 19; +#X obj 400 400 smoke1 20; +#X obj 420 420 smoke1 21; +#X obj 440 440 smoke1 22; +#X obj 460 460 smoke1 23; +#X obj 480 480 smoke1 24; +#X obj 500 500 smoke1 25; +#X obj 520 520 smoke1 26; +#X obj 540 540 smoke1 27; +#X obj 560 560 smoke1 28; +#X obj 580 580 smoke1 29; +#X obj 600 600 smoke1 30; +#X obj 620 620 smoke1 31; +#X obj 640 640 smoke1 32; +#X obj 660 660 smoke1 33; +#X obj 680 680 smoke1 34; +#X obj 700 700 smoke1 35; +#X obj 720 720 smoke1 36; +#X obj 740 740 smoke1 37; +#X obj 760 760 smoke1 38; +#X obj 780 780 smoke1 39; +#X obj 800 800 smoke1 40; +#X obj 820 820 smoke1 41; +#X obj 840 840 smoke1 42; +#X obj 860 860 smoke1 43; +#X obj 880 880 smoke1 44; +#X obj 900 900 smoke1 45; +#X obj 920 920 smoke1 46; +#X obj 940 940 smoke1 47; +#X obj 960 960 smoke1 48; +#X obj 980 980 smoke1 49; +#X obj 1000 1000 smoke1 50; +#X obj 1020 1020 smoke1 51; +#X obj 1040 1040 smoke1 52; +#X obj 1060 1060 smoke1 53; +#X obj 1080 1080 smoke1 54; +#X obj 1100 1100 smoke1 55; +#X obj 1120 1120 smoke1 56; +#X obj 1140 1140 smoke1 57; +#X obj 1160 1160 smoke1 58; +#X obj 1180 1180 smoke1 59; +#X obj 1200 1200 smoke1 60; +#X obj 1220 1220 smoke1 61; +#X obj 1240 1240 smoke1 62; +#X obj 1260 1260 smoke1 63; +#X obj 1280 1280 smoke1 64; +#X obj 1300 1300 smoke1 65; +#X obj 1320 1320 smoke1 66; +#X obj 1340 1340 smoke1 67; +#X obj 1360 1360 smoke1 68; +#X obj 1380 1380 smoke1 69; +#X obj 1400 1400 smoke1 70; +#X obj 1420 1420 smoke1 71; +#X obj 1440 1440 smoke1 72; +#X obj 1460 1460 smoke1 73; +#X obj 1480 1480 smoke1 74; +#X obj 1500 1500 smoke1 75; +#X obj 1520 1520 smoke1 76; +#X obj 1540 1540 smoke1 77; +#X obj 1560 1560 smoke1 78; +#X obj 1580 1580 smoke1 79; +#X obj 1600 1600 smoke1 80; +#X obj 1620 1620 smoke1 81; +#X obj 1640 1640 smoke1 82; +#X obj 1660 1660 smoke1 83; +#X obj 1680 1680 smoke1 84; +#X obj 1700 1700 smoke1 85; +#X obj 1720 1720 smoke1 86; +#X obj 1740 1740 smoke1 87; +#X obj 1760 1760 smoke1 88; +#X obj 1780 1780 smoke1 89; +#X obj 1800 1800 smoke1 90; +#X obj 1820 1820 smoke1 91; +#X obj 1840 1840 smoke1 92; +#X obj 1860 1860 smoke1 93; +#X obj 1880 1880 smoke1 94; +#X obj 1900 1900 smoke1 95; +#X obj 1920 1920 smoke1 96; +#X obj 1940 1940 smoke1 97; +#X obj 1960 1960 smoke1 98; +#X obj 1980 1980 smoke1 99; +#X obj 2000 2000 smoke1 100; +#X obj 2020 2020 smoke1 101; +#X obj 2040 2040 smoke1 102; +#X obj 2060 2060 smoke1 103; +#X obj 2080 2080 smoke1 104; +#X obj 2100 2100 smoke1 105; +#X obj 2120 2120 smoke1 106; +#X obj 2140 2140 smoke1 107; +#X obj 2160 2160 smoke1 108; +#X obj 2180 2180 smoke1 109; +#X obj 2200 2200 smoke1 110; +#X obj 2220 2220 smoke1 111; +#X obj 2240 2240 smoke1 112; +#X obj 2260 2260 smoke1 113; +#X obj 2280 2280 smoke1 114; +#X obj 2300 2300 smoke1 115; +#X obj 2320 2320 smoke1 116; +#X obj 2340 2340 smoke1 117; +#X obj 2360 2360 smoke1 118; +#X obj 2380 2380 smoke1 119; +#X obj 2400 2400 smoke1 120; +#X obj 2420 2420 smoke1 121; +#X obj 2440 2440 smoke1 122; +#X obj 2460 2460 smoke1 123; +#X obj 2480 2480 smoke1 124; +#X obj 2500 2500 smoke1 125; +#X obj 2520 2520 smoke1 126; +#X obj 2540 2540 smoke1 127; +#X obj 2560 2560 smoke1 128; +#X obj 2580 2580 smoke1 129; +#X obj 2600 2600 smoke1 130; +#X obj 2620 2620 smoke1 131; +#X obj 2640 2640 smoke1 132; +#X obj 2660 2660 smoke1 133; +#X obj 2680 2680 smoke1 134; +#X obj 2700 2700 smoke1 135; +#X obj 2720 2720 smoke1 136; +#X obj 2740 2740 smoke1 137; +#X obj 2760 2760 smoke1 138; +#X obj 2780 2780 smoke1 139; +#X obj 2800 2800 smoke1 140; +#X obj 2820 2820 smoke1 141; +#X obj 2840 2840 smoke1 142; +#X obj 2860 2860 smoke1 143; +#X obj 2880 2880 smoke1 144; +#X obj 2900 2900 smoke1 145; +#X obj 2920 2920 smoke1 146; +#X obj 2940 2940 smoke1 147; +#X obj 2960 2960 smoke1 148; +#X obj 2980 2980 smoke1 149; +#X obj 3000 3000 smoke1 150; +#X obj 3020 3020 smoke1 151; +#X obj 3040 3040 smoke1 152; +#X obj 3060 3060 smoke1 153; +#X obj 3080 3080 smoke1 154; +#X obj 3100 3100 smoke1 155; +#X obj 3120 3120 smoke1 156; +#X obj 3140 3140 smoke1 157; +#X obj 3160 3160 smoke1 158; +#X obj 3180 3180 smoke1 159; +#X obj 3200 3200 smoke1 160; +#X obj 3220 3220 smoke1 161; +#X obj 3240 3240 smoke1 162; +#X obj 3260 3260 smoke1 163; +#X obj 3280 3280 smoke1 164; +#X obj 3300 3300 smoke1 165; +#X obj 3320 3320 smoke1 166; +#X obj 3340 3340 smoke1 167; +#X obj 3360 3360 smoke1 168; +#X obj 3380 3380 smoke1 169; +#X obj 3400 3400 smoke1 170; +#X obj 3420 3420 smoke1 171; +#X obj 3440 3440 smoke1 172; +#X obj 3460 3460 smoke1 173; +#X obj 3480 3480 smoke1 174; +#X obj 3500 3500 smoke1 175; +#X obj 3520 3520 smoke1 176; +#X obj 3540 3540 smoke1 177; +#X obj 3560 3560 smoke1 178; +#X obj 3580 3580 smoke1 179; +#X obj 3600 3600 smoke1 180; +#X obj 3620 3620 smoke1 181; +#X obj 3640 3640 smoke1 182; +#X obj 3660 3660 smoke1 183; +#X obj 3680 3680 smoke1 184; +#X obj 3700 3700 smoke1 185; +#X obj 3720 3720 smoke1 186; +#X obj 3740 3740 smoke1 187; +#X obj 3760 3760 smoke1 188; +#X obj 3780 3780 smoke1 189; +#X obj 3800 3800 smoke1 190; +#X obj 3820 3820 smoke1 191; +#X obj 3840 3840 smoke1 192; +#X obj 3860 3860 smoke1 193; +#X obj 3880 3880 smoke1 194; +#X obj 3900 3900 smoke1 195; +#X obj 3920 3920 smoke1 196; +#X obj 3940 3940 smoke1 197; +#X obj 3960 3960 smoke1 198; +#X obj 3980 3980 smoke1 199; +#X obj 4000 4000 smoke1 200; +#X obj 4020 4020 smoke1 201; +#X obj 4040 4040 smoke1 202; +#X obj 4060 4060 smoke1 203; +#X obj 4080 4080 smoke1 204; +#X obj 4100 4100 smoke1 205; +#X obj 4120 4120 smoke1 206; +#X obj 4140 4140 smoke1 207; +#X obj 4160 4160 smoke1 208; +#X obj 4180 4180 smoke1 209; +#X obj 4200 4200 smoke1 210; +#X obj 4220 4220 smoke1 211; +#X obj 4240 4240 smoke1 212; +#X obj 4260 4260 smoke1 213; +#X obj 4280 4280 smoke1 214; +#X obj 4300 4300 smoke1 215; +#X obj 4320 4320 smoke1 216; +#X obj 4340 4340 smoke1 217; +#X obj 4360 4360 smoke1 218; +#X obj 4380 4380 smoke1 219; +#X obj 4400 4400 smoke1 220; +#X obj 4420 4420 smoke1 221; +#X obj 4440 4440 smoke1 222; +#X obj 4460 4460 smoke1 223; +#X obj 4480 4480 smoke1 224; +#X obj 4500 4500 smoke1 225; +#X obj 4520 4520 smoke1 226; +#X obj 4540 4540 smoke1 227; +#X obj 4560 4560 smoke1 228; +#X obj 4580 4580 smoke1 229; +#X obj 4600 4600 smoke1 230; +#X obj 4620 4620 smoke1 231; +#X obj 4640 4640 smoke1 232; +#X obj 4660 4660 smoke1 233; +#X obj 4680 4680 smoke1 234; +#X obj 4700 4700 smoke1 235; +#X obj 4720 4720 smoke1 236; +#X obj 4740 4740 smoke1 237; +#X obj 4760 4760 smoke1 238; +#X obj 4780 4780 smoke1 239; +#X obj 4800 4800 smoke1 240; +#X obj 4820 4820 smoke1 241; +#X obj 4840 4840 smoke1 242; +#X obj 4860 4860 smoke1 243; +#X obj 4880 4880 smoke1 244; +#X obj 4900 4900 smoke1 245; +#X obj 4920 4920 smoke1 246; +#X obj 4940 4940 smoke1 247; +#X obj 4960 4960 smoke1 248; +#X obj 4980 4980 smoke1 249; +#X restore 405 150 pd pool; +#X obj 18 146 t b b; +#X obj 17 69 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0 1 +; +#X obj 18 190 s masse; +#X obj 43 171 s link; +#X text 50 66 <- begin (change the metro speed for slow computer); +#X floatatom 60 89 5 0 0 0 - - -; +#X msg 242 129 0 \, destroy; +#X obj 209 155 gemwin; +#X obj 100 178 s reset_smoke; +#X obj 301 189 s reset_all; +#X obj 301 164 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 +-1; +#X obj 17 121 metro 20; +#X msg 209 109 reset \, create \, 1; +#X obj 100 154 counter 0 249; +#X obj 100 129 metro 50; +#X obj 90 249 iAmbient2D masse 0 0.0007 0.0002 0.0002; +#X obj 93 277 smoke_vortex 0.003; +#X obj 92 297 smoke_vortex 0.003; +#X obj 91 317 smoke_vortex 0.003; +#X obj 205 277 smoke_vortex -0.003; +#X obj 204 297 smoke_vortex -0.003; +#X obj 204 317 smoke_vortex -0.003; +#X text 150 7 Cigarettes smoke simulation; +#X text 92 29 Each particules are in some kind of turbulent wind (vertical +force + some random mouving vortex); +#X text 322 108 <- create; +#X connect 2 0 4 0; +#X connect 2 1 5 0; +#X connect 2 1 17 0; +#X connect 3 0 13 0; +#X connect 3 0 16 0; +#X connect 7 0 13 1; +#X connect 8 0 9 0; +#X connect 12 0 11 0; +#X connect 13 0 2 0; +#X connect 14 0 9 0; +#X connect 15 0 10 0; +#X connect 16 0 15 0; diff --git a/exemples/35_gravitation.pd b/exemples/35_gravitation.pd new file mode 100755 index 0000000..6ba72e9 --- /dev/null +++ b/exemples/35_gravitation.pd @@ -0,0 +1,74 @@ +#N canvas 105 15 546 651 10; +#X obj 18 139 t b b; +#X obj 18 62 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0 1 +; +#X obj 18 183 s masse; +#X msg 242 122 0 \, destroy; +#X obj 209 148 gemwin; +#X obj 100 171 s reset_smoke; +#X msg 209 102 reset \, create \, 1; +#X obj 100 147 counter 0 249; +#X obj 100 122 metro 50; +#X obj 163 553 gemhead; +#X obj 163 576 translateXYZ; +#X obj 152 526 unpack s f f; +#X obj 163 600 sphere 0.05; +#X obj 208 317 gemhead; +#X text 51 59 <- begin; +#X obj 208 364 sphere 0.25; +#X text 190 2 Gravitation exemple; +#X obj 183 449 tSquare2D -4 4 -4 4; +#X obj 183 472 sel 0; +#X msg 183 495 reset; +#X obj 152 237 loadbang; +#X obj 152 287 iCircle2D foo -1 0 0 100; +#X obj 208 340 translateXYZ -1 0 0; +#X obj 350 318 gemhead; +#X obj 350 365 sphere 0.25; +#X obj 350 341 translateXYZ 1 0 0; +#X obj 330 287 iCircle2D foo 1 0 0 100; +#X obj 18 114 metro 1; +#X obj 377 413 vsl 15 128 0 127 0 0 empty empty empty 0 -8 0 8 -262144 +-1 -1 0 1; +#X obj 377 549 / 127; +#X msg 377 570 reset \, setY \$1; +#X obj 152 419 masse2D masse 1 0.1 0.9; +#X text 139 15 1 earth and 2 suns .; +#X text 139 31 The earth is attacted by the 2 suns. you can change +the initial position of the earth \, to test the ensitivity of initial +position of surch chaotic system.; +#X text 286 598 change initial position of the masse; +#X msg 330 260 setG -1e-006; +#X msg 152 260 setG -1e-006; +#X connect 0 0 2 0; +#X connect 0 1 21 0; +#X connect 0 1 26 0; +#X connect 1 0 8 0; +#X connect 1 0 27 0; +#X connect 3 0 4 0; +#X connect 6 0 4 0; +#X connect 7 0 5 0; +#X connect 8 0 7 0; +#X connect 9 0 10 0; +#X connect 10 0 12 0; +#X connect 11 1 10 1; +#X connect 11 2 10 2; +#X connect 13 0 22 0; +#X connect 17 0 18 0; +#X connect 18 0 19 0; +#X connect 19 0 31 0; +#X connect 20 0 36 0; +#X connect 20 0 35 0; +#X connect 21 0 31 0; +#X connect 22 0 15 0; +#X connect 23 0 25 0; +#X connect 25 0 24 0; +#X connect 26 0 31 0; +#X connect 27 0 0 0; +#X connect 28 0 29 0; +#X connect 29 0 30 0; +#X connect 30 0 31 0; +#X connect 31 0 11 0; +#X connect 31 0 17 0; +#X connect 35 0 26 0; +#X connect 36 0 21 0; diff --git a/exemples/36_3D_interactors.pd b/exemples/36_3D_interactors.pd new file mode 100755 index 0000000..9a003ce --- /dev/null +++ b/exemples/36_3D_interactors.pd @@ -0,0 +1,781 @@ +#N canvas 168 22 627 556 10; +#X obj 22 200 t b b; +#X obj 22 134 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0 1 +; +#X obj 116 152 loadbang; +#X msg 179 224 0 \, destroy; +#X obj 22 238 s masse; +#N canvas 39 357 765 474 pool 0; +#X obj 180 180 rain; +#X obj 491 103 rain; +#X obj 566 50 rain; +#X obj 499 52 rain; +#X obj 0 0 rain; +#X obj 10 10 rain; +#X obj 20 20 rain; +#X obj 30 30 rain; +#X obj 40 40 rain; +#X obj 50 50 rain; +#X obj 60 60 rain; +#X obj 70 70 rain; +#X obj 80 80 rain; +#X obj 90 90 rain; +#X obj 100 100 rain; +#X obj 110 110 rain; +#X obj 120 120 rain; +#X obj 130 130 rain; +#X obj 140 140 rain; +#X obj 150 150 rain; +#X obj 160 160 rain; +#X obj 170 170 rain; +#X obj 190 190 rain; +#X obj 200 200 rain; +#X obj 210 210 rain; +#X obj 220 220 rain; +#X obj 230 230 rain; +#X obj 240 240 rain; +#X obj 250 250 rain; +#X obj 260 260 rain; +#X obj 270 270 rain; +#X obj 280 280 rain; +#X obj 290 290 rain; +#X obj 300 300 rain; +#X obj 310 310 rain; +#X obj 320 320 rain; +#X obj 330 330 rain; +#X obj 340 340 rain; +#X obj 350 350 rain; +#X obj 360 360 rain; +#X obj 370 370 rain; +#X obj 380 380 rain; +#X obj 390 390 rain; +#X obj 400 400 rain; +#X obj 410 410 rain; +#X obj 420 420 rain; +#X obj 430 430 rain; +#X obj 58 -1 rain; +#X obj 68 9 rain; +#X obj 78 19 rain; +#X obj 88 29 rain; +#X obj 98 39 rain; +#X obj 108 49 rain; +#X obj 118 59 rain; +#X obj 128 69 rain; +#X obj 138 79 rain; +#X obj 148 89 rain; +#X obj 158 99 rain; +#X obj 168 109 rain; +#X obj 178 119 rain; +#X obj 188 129 rain; +#X obj 198 139 rain; +#X obj 208 149 rain; +#X obj 218 159 rain; +#X obj 228 169 rain; +#X obj 238 179 rain; +#X obj 248 189 rain; +#X obj 258 199 rain; +#X obj 268 209 rain; +#X obj 278 219 rain; +#X obj 288 229 rain; +#X obj 298 239 rain; +#X obj 308 249 rain; +#X obj 318 259 rain; +#X obj 328 269 rain; +#X obj 338 279 rain; +#X obj 348 289 rain; +#X obj 358 299 rain; +#X obj 368 309 rain; +#X obj 378 319 rain; +#X obj 388 329 rain; +#X obj 398 339 rain; +#X obj 408 349 rain; +#X obj 418 359 rain; +#X obj 428 369 rain; +#X obj 438 379 rain; +#X obj 448 389 rain; +#X obj 458 399 rain; +#X obj 468 409 rain; +#X obj 478 419 rain; +#X obj 488 429 rain; +#X obj 123 -11 rain; +#X obj 133 -1 rain; +#X obj 143 9 rain; +#X obj 153 19 rain; +#X obj 163 29 rain; +#X obj 173 39 rain; +#X obj 183 49 rain; +#X obj 193 59 rain; +#X obj 203 69 rain; +#X obj 213 79 rain; +#X obj 223 89 rain; +#X obj 233 99 rain; +#X obj 243 109 rain; +#X obj 253 119 rain; +#X obj 263 129 rain; +#X obj 273 139 rain; +#X obj 283 149 rain; +#X obj 293 159 rain; +#X obj 303 169 rain; +#X obj 313 179 rain; +#X obj 323 189 rain; +#X obj 333 199 rain; +#X obj 343 209 rain; +#X obj 353 219 rain; +#X obj 363 229 rain; +#X obj 373 239 rain; +#X obj 383 249 rain; +#X obj 393 259 rain; +#X obj 403 269 rain; +#X obj 413 279 rain; +#X obj 423 289 rain; +#X obj 433 299 rain; +#X obj 443 309 rain; +#X obj 453 319 rain; +#X obj 463 329 rain; +#X obj 473 339 rain; +#X obj 483 349 rain; +#X obj 493 359 rain; +#X obj 503 369 rain; +#X obj 513 379 rain; +#X obj 523 389 rain; +#X obj 533 399 rain; +#X obj 543 409 rain; +#X obj 553 419 rain; +#X obj 181 -12 rain; +#X obj 191 -2 rain; +#X obj 201 8 rain; +#X obj 211 18 rain; +#X obj 221 28 rain; +#X obj 231 38 rain; +#X obj 241 48 rain; +#X obj 251 58 rain; +#X obj 261 68 rain; +#X obj 271 78 rain; +#X obj 281 88 rain; +#X obj 291 98 rain; +#X obj 301 108 rain; +#X obj 311 118 rain; +#X obj 321 128 rain; +#X obj 331 138 rain; +#X obj 341 148 rain; +#X obj 351 158 rain; +#X obj 361 168 rain; +#X obj 371 178 rain; +#X obj 381 188 rain; +#X obj 391 198 rain; +#X obj 401 208 rain; +#X obj 411 218 rain; +#X obj 421 228 rain; +#X obj 431 238 rain; +#X obj 441 248 rain; +#X obj 451 258 rain; +#X obj 461 268 rain; +#X obj 471 278 rain; +#X obj 481 288 rain; +#X obj 491 298 rain; +#X obj 501 308 rain; +#X obj 511 318 rain; +#X obj 521 328 rain; +#X obj 531 338 rain; +#X obj 541 348 rain; +#X obj 551 358 rain; +#X obj 561 368 rain; +#X obj 571 378 rain; +#X obj 581 388 rain; +#X obj 591 398 rain; +#X obj 601 408 rain; +#X obj 611 418 rain; +#X obj 258 4 rain; +#X obj 268 14 rain; +#X obj 278 24 rain; +#X obj 288 34 rain; +#X obj 298 44 rain; +#X obj 308 54 rain; +#X obj 318 64 rain; +#X obj 328 74 rain; +#X obj 338 84 rain; +#X obj 348 94 rain; +#X obj 358 104 rain; +#X obj 368 114 rain; +#X obj 378 124 rain; +#X obj 388 134 rain; +#X obj 398 144 rain; +#X obj 408 154 rain; +#X obj 418 164 rain; +#X obj 428 174 rain; +#X obj 438 184 rain; +#X obj 448 194 rain; +#X obj 458 204 rain; +#X obj 468 214 rain; +#X obj 478 224 rain; +#X obj 488 234 rain; +#X obj 498 244 rain; +#X obj 508 254 rain; +#X obj 518 264 rain; +#X obj 528 274 rain; +#X obj 538 284 rain; +#X obj 548 294 rain; +#X obj 558 304 rain; +#X obj 568 314 rain; +#X obj 578 324 rain; +#X obj 588 334 rain; +#X obj 598 344 rain; +#X obj 608 354 rain; +#X obj 618 364 rain; +#X obj 628 374 rain; +#X obj 638 384 rain; +#X obj 648 394 rain; +#X obj 658 404 rain; +#X obj 668 414 rain; +#X obj 678 424 rain; +#X obj 688 434 rain; +#X obj 316 3 rain; +#X obj 326 13 rain; +#X obj 336 23 rain; +#X obj 346 33 rain; +#X obj 356 43 rain; +#X obj 366 53 rain; +#X obj 376 63 rain; +#X obj 386 73 rain; +#X obj 396 83 rain; +#X obj 406 93 rain; +#X obj 416 103 rain; +#X obj 426 113 rain; +#X obj 436 123 rain; +#X obj 446 133 rain; +#X obj 456 143 rain; +#X obj 466 153 rain; +#X obj 476 163 rain; +#X obj 486 173 rain; +#X obj 496 183 rain; +#X obj 506 193 rain; +#X obj 516 203 rain; +#X obj 526 213 rain; +#X obj 536 223 rain; +#X obj 546 233 rain; +#X obj 556 243 rain; +#X obj 566 253 rain; +#X obj 576 263 rain; +#X obj 586 273 rain; +#X obj 596 283 rain; +#X obj 606 293 rain; +#X obj 616 303 rain; +#X obj 626 313 rain; +#X obj 636 323 rain; +#X obj 646 333 rain; +#X obj 656 343 rain; +#X obj 666 353 rain; +#X obj 676 363 rain; +#X obj 686 373 rain; +#X obj 696 383 rain; +#X obj 706 393 rain; +#X obj 716 403 rain; +#X obj 726 413 rain; +#X obj 736 423 rain; +#X obj 746 433 rain; +#X obj 381 -7 rain; +#X obj 391 3 rain; +#X obj 401 13 rain; +#X obj 411 23 rain; +#X obj 421 33 rain; +#X obj 431 43 rain; +#X obj 441 53 rain; +#X obj 451 63 rain; +#X obj 461 73 rain; +#X obj 471 83 rain; +#X obj 481 93 rain; +#X obj 501 113 rain; +#X obj 511 123 rain; +#X obj 521 133 rain; +#X obj 531 143 rain; +#X obj 541 153 rain; +#X obj 551 163 rain; +#X obj 561 173 rain; +#X obj 571 183 rain; +#X obj 581 193 rain; +#X obj 591 203 rain; +#X obj 601 213 rain; +#X obj 611 223 rain; +#X obj 621 233 rain; +#X obj 631 243 rain; +#X obj 641 253 rain; +#X obj 651 263 rain; +#X obj 661 273 rain; +#X obj 671 283 rain; +#X obj 681 293 rain; +#X obj 691 303 rain; +#X obj 701 313 rain; +#X obj 711 323 rain; +#X obj 721 333 rain; +#X obj 731 343 rain; +#X obj 741 353 rain; +#X obj 751 363 rain; +#X obj 761 373 rain; +#X obj 771 383 rain; +#X obj 781 393 rain; +#X obj 791 403 rain; +#X obj 801 413 rain; +#X obj 811 423 rain; +#X obj 439 -8 rain; +#X obj 449 2 rain; +#X obj 459 12 rain; +#X obj 469 22 rain; +#X obj 479 32 rain; +#X obj 489 42 rain; +#X obj 509 62 rain; +#X obj 519 72 rain; +#X obj 529 82 rain; +#X obj 539 92 rain; +#X obj 549 102 rain; +#X obj 559 112 rain; +#X obj 569 122 rain; +#X obj 579 132 rain; +#X obj 589 142 rain; +#X obj 599 152 rain; +#X obj 609 162 rain; +#X obj 619 172 rain; +#X obj 629 182 rain; +#X obj 639 192 rain; +#X obj 649 202 rain; +#X obj 659 212 rain; +#X obj 669 222 rain; +#X obj 679 232 rain; +#X obj 689 242 rain; +#X obj 699 252 rain; +#X obj 709 262 rain; +#X obj 719 272 rain; +#X obj 729 282 rain; +#X obj 739 292 rain; +#X obj 749 302 rain; +#X obj 759 312 rain; +#X obj 769 322 rain; +#X obj 779 332 rain; +#X obj 789 342 rain; +#X obj 799 352 rain; +#X obj 809 362 rain; +#X obj 819 372 rain; +#X obj 829 382 rain; +#X obj 839 392 rain; +#X obj 849 402 rain; +#X obj 859 412 rain; +#X obj 869 422 rain; +#X obj 476 -40 rain; +#X obj 486 -30 rain; +#X obj 496 -20 rain; +#X obj 506 -10 rain; +#X obj 516 0 rain; +#X obj 526 10 rain; +#X obj 536 20 rain; +#X obj 546 30 rain; +#X obj 556 40 rain; +#X obj 576 60 rain; +#X obj 586 70 rain; +#X obj 596 80 rain; +#X obj 606 90 rain; +#X obj 616 100 rain; +#X obj 626 110 rain; +#X obj 636 120 rain; +#X obj 646 130 rain; +#X obj 656 140 rain; +#X obj 666 150 rain; +#X obj 676 160 rain; +#X obj 686 170 rain; +#X obj 696 180 rain; +#X obj 706 190 rain; +#X obj 716 200 rain; +#X obj 726 210 rain; +#X obj 736 220 rain; +#X obj 746 230 rain; +#X obj 756 240 rain; +#X obj 766 250 rain; +#X obj 776 260 rain; +#X obj 786 270 rain; +#X obj 796 280 rain; +#X obj 806 290 rain; +#X obj 816 300 rain; +#X obj 826 310 rain; +#X obj 836 320 rain; +#X obj 846 330 rain; +#X obj 856 340 rain; +#X obj 866 350 rain; +#X obj 876 360 rain; +#X obj 886 370 rain; +#X obj 896 380 rain; +#X obj 906 390 rain; +#X obj 534 -41 rain; +#X obj 544 -31 rain; +#X obj 554 -21 rain; +#X obj 564 -11 rain; +#X obj 574 -1 rain; +#X obj 584 9 rain; +#X obj 594 19 rain; +#X obj 604 29 rain; +#X obj 614 39 rain; +#X obj 624 49 rain; +#X obj 634 59 rain; +#X obj 644 69 rain; +#X obj 654 79 rain; +#X obj 664 89 rain; +#X obj 674 99 rain; +#X obj 684 109 rain; +#X obj 694 119 rain; +#X obj 704 129 rain; +#X obj 714 139 rain; +#X obj 724 149 rain; +#X obj 734 159 rain; +#X obj 744 169 rain; +#X obj 754 179 rain; +#X obj 764 189 rain; +#X obj 774 199 rain; +#X obj 784 209 rain; +#X obj 794 219 rain; +#X obj 804 229 rain; +#X obj 814 239 rain; +#X obj 824 249 rain; +#X obj 834 259 rain; +#X obj 844 269 rain; +#X obj 854 279 rain; +#X obj 864 289 rain; +#X obj 874 299 rain; +#X obj 884 309 rain; +#X obj 894 319 rain; +#X obj 904 329 rain; +#X obj 914 339 rain; +#X obj 924 349 rain; +#X obj 934 359 rain; +#X obj 944 369 rain; +#X obj 954 379 rain; +#X obj 964 389 rain; +#X obj 599 -51 rain; +#X obj 609 -41 rain; +#X obj 619 -31 rain; +#X obj 629 -21 rain; +#X obj 639 -11 rain; +#X obj 649 -1 rain; +#X obj 659 9 rain; +#X obj 669 19 rain; +#X obj 679 29 rain; +#X obj 689 39 rain; +#X obj 699 49 rain; +#X obj 709 59 rain; +#X obj 719 69 rain; +#X obj 729 79 rain; +#X obj 739 89 rain; +#X obj 749 99 rain; +#X obj 759 109 rain; +#X obj 769 119 rain; +#X obj 779 129 rain; +#X obj 789 139 rain; +#X obj 799 149 rain; +#X obj 809 159 rain; +#X obj 819 169 rain; +#X obj 829 179 rain; +#X obj 839 189 rain; +#X obj 849 199 rain; +#X obj 859 209 rain; +#X obj 869 219 rain; +#X obj 879 229 rain; +#X obj 889 239 rain; +#X obj 899 249 rain; +#X obj 909 259 rain; +#X obj 919 269 rain; +#X obj 929 279 rain; +#X obj 939 289 rain; +#X obj 949 299 rain; +#X obj 959 309 rain; +#X obj 969 319 rain; +#X obj 979 329 rain; +#X obj 989 339 rain; +#X obj 999 349 rain; +#X obj 1009 359 rain; +#X obj 1019 369 rain; +#X obj 1029 379 rain; +#X obj 657 -52 rain; +#X obj 667 -42 rain; +#X obj 677 -32 rain; +#X obj 687 -22 rain; +#X obj 697 -12 rain; +#X obj 707 -2 rain; +#X obj 717 8 rain; +#X obj 727 18 rain; +#X obj 737 28 rain; +#X obj 747 38 rain; +#X obj 757 48 rain; +#X obj 767 58 rain; +#X obj 777 68 rain; +#X obj 787 78 rain; +#X obj 797 88 rain; +#X obj 807 98 rain; +#X obj 817 108 rain; +#X obj 827 118 rain; +#X obj 837 128 rain; +#X obj 847 138 rain; +#X obj 857 148 rain; +#X obj 867 158 rain; +#X obj 877 168 rain; +#X obj 887 178 rain; +#X obj 897 188 rain; +#X obj 907 198 rain; +#X obj 917 208 rain; +#X obj 927 218 rain; +#X obj 937 228 rain; +#X obj 947 238 rain; +#X obj 957 248 rain; +#X obj 967 258 rain; +#X obj 977 268 rain; +#X obj 987 278 rain; +#X obj 997 288 rain; +#X obj 1007 298 rain; +#X obj 1017 308 rain; +#X obj 1027 318 rain; +#X obj 1037 328 rain; +#X obj 1047 338 rain; +#X obj 1057 348 rain; +#X obj 1067 358 rain; +#X obj 1077 368 rain; +#X obj 1087 378 rain; +#X obj 734 -36 rain; +#X obj 744 -26 rain; +#X obj 754 -16 rain; +#X obj 764 -6 rain; +#X obj 774 4 rain; +#X obj 784 14 rain; +#X obj 794 24 rain; +#X obj 804 34 rain; +#X obj 814 44 rain; +#X obj 824 54 rain; +#X obj 834 64 rain; +#X obj 844 74 rain; +#X obj 854 84 rain; +#X obj 864 94 rain; +#X obj 874 104 rain; +#X obj 884 114 rain; +#X obj 894 124 rain; +#X obj 904 134 rain; +#X obj 914 144 rain; +#X obj 924 154 rain; +#X obj 934 164 rain; +#X obj 944 174 rain; +#X obj 954 184 rain; +#X obj 964 194 rain; +#X obj 974 204 rain; +#X obj 984 214 rain; +#X obj 994 224 rain; +#X obj 1004 234 rain; +#X obj 1014 244 rain; +#X obj 1024 254 rain; +#X obj 1034 264 rain; +#X obj 1044 274 rain; +#X obj 1054 284 rain; +#X obj 1064 294 rain; +#X obj 1074 304 rain; +#X obj 1084 314 rain; +#X obj 1094 324 rain; +#X obj 1104 334 rain; +#X obj 1114 344 rain; +#X obj 1124 354 rain; +#X obj 1134 364 rain; +#X obj 1144 374 rain; +#X obj 1154 384 rain; +#X obj 1164 394 rain; +#X obj 792 -37 rain; +#X obj 802 -27 rain; +#X obj 812 -17 rain; +#X obj 822 -7 rain; +#X obj 832 3 rain; +#X obj 842 13 rain; +#X obj 852 23 rain; +#X obj 862 33 rain; +#X obj 872 43 rain; +#X obj 882 53 rain; +#X obj 892 63 rain; +#X obj 902 73 rain; +#X obj 912 83 rain; +#X obj 922 93 rain; +#X obj 932 103 rain; +#X obj 942 113 rain; +#X obj 952 123 rain; +#X obj 962 133 rain; +#X obj 972 143 rain; +#X obj 982 153 rain; +#X obj 992 163 rain; +#X obj 1002 173 rain; +#X obj 1012 183 rain; +#X obj 1022 193 rain; +#X obj 1032 203 rain; +#X obj 1042 213 rain; +#X obj 1052 223 rain; +#X obj 1062 233 rain; +#X obj 1072 243 rain; +#X obj 1082 253 rain; +#X obj 1092 263 rain; +#X obj 1102 273 rain; +#X obj 1112 283 rain; +#X obj 1122 293 rain; +#X obj 1132 303 rain; +#X obj 1142 313 rain; +#X obj 1152 323 rain; +#X obj 1162 333 rain; +#X obj 1172 343 rain; +#X obj 1182 353 rain; +#X obj 1192 363 rain; +#X obj 1202 373 rain; +#X obj 1212 383 rain; +#X obj 1222 393 rain; +#X obj 857 -47 rain; +#X obj 867 -37 rain; +#X obj 877 -27 rain; +#X obj 887 -17 rain; +#X obj 897 -7 rain; +#X obj 907 3 rain; +#X obj 917 13 rain; +#X obj 927 23 rain; +#X obj 937 33 rain; +#X obj 947 43 rain; +#X obj 957 53 rain; +#X obj 967 63 rain; +#X obj 977 73 rain; +#X obj 987 83 rain; +#X obj 997 93 rain; +#X obj 1007 103 rain; +#X obj 1017 113 rain; +#X obj 1027 123 rain; +#X obj 1037 133 rain; +#X obj 1047 143 rain; +#X obj 1057 153 rain; +#X obj 1067 163 rain; +#X obj 1077 173 rain; +#X obj 1087 183 rain; +#X obj 1097 193 rain; +#X obj 1107 203 rain; +#X obj 1117 213 rain; +#X obj 1127 223 rain; +#X obj 1137 233 rain; +#X obj 1147 243 rain; +#X obj 1157 253 rain; +#X obj 1167 263 rain; +#X obj 1177 273 rain; +#X obj 1187 283 rain; +#X obj 1197 293 rain; +#X obj 1207 303 rain; +#X obj 1217 313 rain; +#X obj 1227 323 rain; +#X obj 1237 333 rain; +#X obj 1247 343 rain; +#X obj 1257 353 rain; +#X obj 1267 363 rain; +#X obj 1277 373 rain; +#X obj 1287 383 rain; +#X obj 915 -48 rain; +#X obj 925 -38 rain; +#X obj 935 -28 rain; +#X obj 945 -18 rain; +#X obj 955 -8 rain; +#X obj 965 2 rain; +#X obj 975 12 rain; +#X obj 985 22 rain; +#X obj 995 32 rain; +#X obj 1005 42 rain; +#X obj 1015 52 rain; +#X obj 1025 62 rain; +#X obj 1035 72 rain; +#X obj 1045 82 rain; +#X obj 1055 92 rain; +#X obj 1065 102 rain; +#X obj 1075 112 rain; +#X obj 1085 122 rain; +#X obj 1095 132 rain; +#X obj 1105 142 rain; +#X obj 1115 152 rain; +#X obj 1125 162 rain; +#X obj 1135 172 rain; +#X obj 1145 182 rain; +#X obj 1155 192 rain; +#X obj 1165 202 rain; +#X obj 1175 212 rain; +#X obj 1185 222 rain; +#X obj 1195 232 rain; +#X obj 1205 242 rain; +#X obj 1215 252 rain; +#X obj 1225 262 rain; +#X obj 1235 272 rain; +#X obj 1245 282 rain; +#X obj 1255 292 rain; +#X obj 1265 302 rain; +#X obj 1275 312 rain; +#X obj 1285 322 rain; +#X obj 1295 332 rain; +#X obj 1305 342 rain; +#X obj 1315 352 rain; +#X obj 1325 362 rain; +#X obj 1335 372 rain; +#X obj 1345 382 rain; +#X restore 469 479 pd pool; +#X obj 116 200 s masse; +#X obj 84 327 s link; +#X text 43 132 <- begin (change metro speed for slow computer); +#X obj 472 300 alpha; +#X msg 533 406 30; +#X obj 533 385 loadbang; +#X obj 472 356 translateXYZ 0 -2 0; +#X obj 22 173 metro 30; +#X obj 472 431 sphere 1.95; +#X floatatom 65 150 5 0 0 0 - - -; +#X obj 48 428 gemhead; +#X obj 48 452 color 1 0 0; +#X obj 472 271 gemhead 55; +#X obj 472 329 color 1 1 1 0.7; +#X msg 170 200 reset \, view -3 3 6 0 0 0 0 4 0 \, lighting 1 \, create +\, 1; +#X obj 48 499 rotateXYZ 90 0 0; +#X obj 48 523 square 6; +#X obj 48 476 translateXYZ 0 -3.05 0; +#X obj 267 464 gemhead 1; +#X obj 267 489 rotateXYZ -80 0 0; +#X obj 267 517 world_light; +#X text 210 175 <- reset the simulation; +#X text 194 6 infinit small particules on an elipse.; +#X obj 46 374 iSphere3D masse 0 -2 0 0 2 0 0.1 0 0.1; +#X obj 66 351 iAmbient3D masse 0 -0.001 0 1e-006 1e-007 1e-006 O.OOO1 +; +#X msg 116 176 reset \, setT 1; +#X obj 170 324 ch_gemwin; +#X obj 189 255 hsl 128 15 0 127 0 0 empty empty empty -2 -6 0 8 -262144 +-1 -1 0 1; +#X obj 205 279 hsl 128 15 0 127 0 0 empty empty empty -2 -6 0 8 -262144 +-1 -1 0 1; +#X obj 222 302 hsl 128 15 0 127 0 0 empty empty empty -2 -6 0 8 -262144 +-1 -1 0 1; +#X text 77 62 click on the gem windows to rotate the view point (middle +clik to set the distance to the object). You can also change the position +of the camera with slider if mouse does not work; +#X text 268 237 camera position; +#X text 79 30 Masses don't interact each other. They interact with +the sphere \, and the gravity field.; +#X text 513 199 <- 1; +#X connect 0 0 4 0; +#X connect 0 1 7 0; +#X connect 0 1 29 0; +#X connect 0 1 30 0; +#X connect 1 0 13 0; +#X connect 2 0 31 0; +#X connect 3 0 32 0; +#X connect 9 0 19 0; +#X connect 10 0 14 2; +#X connect 11 0 10 0; +#X connect 12 0 14 0; +#X connect 13 0 0 0; +#X connect 15 0 13 1; +#X connect 16 0 17 0; +#X connect 17 0 23 0; +#X connect 18 0 9 0; +#X connect 19 0 12 0; +#X connect 20 0 32 0; +#X connect 21 0 22 0; +#X connect 23 0 21 0; +#X connect 24 0 25 0; +#X connect 25 0 26 0; +#X connect 31 0 6 0; +#X connect 33 0 32 1; +#X connect 34 0 32 2; +#X connect 35 0 32 3; diff --git a/exemples/37_hollywood_planette_explosion.pd b/exemples/37_hollywood_planette_explosion.pd new file mode 100755 index 0000000..a36c0f6 --- /dev/null +++ b/exemples/37_hollywood_planette_explosion.pd @@ -0,0 +1,480 @@ +#N canvas 457 291 671 403 10; +#X obj 19 108 t b b; +#X obj 19 42 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 1 1 +; +#X obj 177 289 loadbang; +#X msg 323 137 0 \, destroy; +#X obj 19 146 s masse; +#N canvas 39 357 1063 565 pool 0; +#X obj 294 191 explose2; +#X obj 104 1 explose2; +#X obj 114 11 explose2; +#X obj 124 21 explose2; +#X obj 134 31 explose2; +#X obj 144 41 explose2; +#X obj 154 51 explose2; +#X obj 164 61 explose2; +#X obj 174 71 explose2; +#X obj 184 81 explose2; +#X obj 194 91 explose2; +#X obj 204 101 explose2; +#X obj 214 111 explose2; +#X obj 224 121 explose2; +#X obj 234 131 explose2; +#X obj 244 141 explose2; +#X obj 254 151 explose2; +#X obj 264 161 explose2; +#X obj 274 171 explose2; +#X obj 284 181 explose2; +#X obj 304 201 explose2; +#X obj 314 211 explose2; +#X obj 324 221 explose2; +#X obj 334 231 explose2; +#X obj 344 241 explose2; +#X obj 354 251 explose2; +#X obj 364 261 explose2; +#X obj 374 271 explose2; +#X obj 459 191 explose2; +#X obj 269 1 explose2; +#X obj 279 11 explose2; +#X obj 289 21 explose2; +#X obj 299 31 explose2; +#X obj 309 41 explose2; +#X obj 319 51 explose2; +#X obj 329 61 explose2; +#X obj 339 71 explose2; +#X obj 349 81 explose2; +#X obj 359 91 explose2; +#X obj 369 101 explose2; +#X obj 379 111 explose2; +#X obj 389 121 explose2; +#X obj 399 131 explose2; +#X obj 409 141 explose2; +#X obj 419 151 explose2; +#X obj 429 161 explose2; +#X obj 439 171 explose2; +#X obj 449 181 explose2; +#X obj 469 201 explose2; +#X obj 479 211 explose2; +#X obj 489 221 explose2; +#X obj 499 231 explose2; +#X obj 509 241 explose2; +#X obj 519 251 explose2; +#X obj 529 261 explose2; +#X obj 539 271 explose2; +#X obj 638 200 explose2; +#X obj 448 10 explose2; +#X obj 458 20 explose2; +#X obj 468 30 explose2; +#X obj 478 40 explose2; +#X obj 488 50 explose2; +#X obj 498 60 explose2; +#X obj 508 70 explose2; +#X obj 518 80 explose2; +#X obj 528 90 explose2; +#X obj 538 100 explose2; +#X obj 548 110 explose2; +#X obj 558 120 explose2; +#X obj 568 130 explose2; +#X obj 578 140 explose2; +#X obj 588 150 explose2; +#X obj 598 160 explose2; +#X obj 608 170 explose2; +#X obj 618 180 explose2; +#X obj 628 190 explose2; +#X obj 648 210 explose2; +#X obj 658 220 explose2; +#X obj 668 230 explose2; +#X obj 678 240 explose2; +#X obj 688 250 explose2; +#X obj 698 260 explose2; +#X obj 708 270 explose2; +#X obj 718 280 explose2; +#X obj 803 200 explose2; +#X obj 613 10 explose2; +#X obj 623 20 explose2; +#X obj 633 30 explose2; +#X obj 643 40 explose2; +#X obj 653 50 explose2; +#X obj 663 60 explose2; +#X obj 673 70 explose2; +#X obj 683 80 explose2; +#X obj 693 90 explose2; +#X obj 703 100 explose2; +#X obj 713 110 explose2; +#X obj 723 120 explose2; +#X obj 733 130 explose2; +#X obj 743 140 explose2; +#X obj 753 150 explose2; +#X obj 763 160 explose2; +#X obj 773 170 explose2; +#X obj 783 180 explose2; +#X obj 793 190 explose2; +#X obj 813 210 explose2; +#X obj 823 220 explose2; +#X obj 833 230 explose2; +#X obj 843 240 explose2; +#X obj 853 250 explose2; +#X obj 863 260 explose2; +#X obj 873 270 explose2; +#X obj 883 280 explose2; +#X obj 321 379 explose1; +#X obj 461 441 explose2; +#X obj 401 381 explose2; +#X obj 411 391 explose2; +#X obj 421 401 explose2; +#X obj 431 411 explose2; +#X obj 441 421 explose2; +#X obj 451 431 explose2; +#X obj 471 451 explose2; +#X obj 481 461 explose2; +#X obj 491 471 explose2; +#X obj 501 481 explose2; +#X obj 511 491 explose2; +#X obj 521 501 explose2; +#X obj 531 511 explose2; +#X obj 541 521 explose2; +#X obj 626 441 explose2; +#X obj 566 381 explose2; +#X obj 576 391 explose2; +#X obj 586 401 explose2; +#X obj 596 411 explose2; +#X obj 606 421 explose2; +#X obj 616 431 explose2; +#X obj 636 451 explose2; +#X obj 646 461 explose2; +#X obj 656 471 explose2; +#X obj 666 481 explose2; +#X obj 676 491 explose2; +#X obj 686 501 explose2; +#X obj 696 511 explose2; +#X obj 706 521 explose2; +#X obj 805 450 explose2; +#X obj 735 380 explose2; +#X obj 745 390 explose2; +#X obj 755 400 explose2; +#X obj 765 410 explose2; +#X obj 775 420 explose2; +#X obj 785 430 explose2; +#X obj 795 440 explose2; +#X obj 815 460 explose2; +#X obj 825 470 explose2; +#X obj 835 480 explose2; +#X obj 845 490 explose2; +#X obj 855 500 explose2; +#X obj 865 510 explose2; +#X obj 875 520 explose2; +#X obj 885 530 explose2; +#X obj 970 450 explose2; +#X obj 900 380 explose2; +#X obj 910 390 explose2; +#X obj 920 400 explose2; +#X obj 930 410 explose2; +#X obj 940 420 explose2; +#X obj 950 430 explose2; +#X obj 960 440 explose2; +#X obj 980 460 explose2; +#X obj 990 470 explose2; +#X obj 1000 480 explose2; +#X obj 1010 490 explose2; +#X obj 1020 500 explose2; +#X obj 1030 510 explose2; +#X obj 1040 520 explose2; +#X obj 1050 530 explose2; +#X obj 24 -1 explose1; +#X obj 34 9 explose1; +#X obj 44 19 explose1; +#X obj 54 29 explose1; +#X obj 64 39 explose1; +#X obj 74 49 explose1; +#X obj 84 59 explose1; +#X obj 94 69 explose1; +#X obj 104 79 explose1; +#X obj 114 89 explose1; +#X obj 124 99 explose1; +#X obj 134 109 explose1; +#X obj 144 119 explose1; +#X obj 154 129 explose1; +#X obj 164 139 explose1; +#X obj 174 149 explose1; +#X obj 184 159 explose1; +#X obj 194 169 explose1; +#X obj 204 179 explose1; +#X obj 214 189 explose1; +#X obj 224 199 explose1; +#X obj 234 209 explose1; +#X obj 244 219 explose1; +#X obj 254 229 explose1; +#X obj 264 239 explose1; +#X obj 274 249 explose1; +#X obj 284 259 explose1; +#X obj 294 269 explose1; +#X obj 304 279 explose1; +#X obj 314 289 explose1; +#X obj 324 299 explose1; +#X obj 334 309 explose1; +#X obj 344 319 explose1; +#X obj 354 329 explose1; +#X obj 364 339 explose1; +#X obj 374 349 explose1; +#X obj 384 359 explose1; +#X obj 189 -1 explose1; +#X obj 199 9 explose1; +#X obj 209 19 explose1; +#X obj 219 29 explose1; +#X obj 229 39 explose1; +#X obj 239 49 explose1; +#X obj 249 59 explose1; +#X obj 259 69 explose1; +#X obj 269 79 explose1; +#X obj 279 89 explose1; +#X obj 289 99 explose1; +#X obj 299 109 explose1; +#X obj 309 119 explose1; +#X obj 319 129 explose1; +#X obj 329 139 explose1; +#X obj 339 149 explose1; +#X obj 349 159 explose1; +#X obj 359 169 explose1; +#X obj 369 179 explose1; +#X obj 379 189 explose1; +#X obj 389 199 explose1; +#X obj 399 209 explose1; +#X obj 409 219 explose1; +#X obj 419 229 explose1; +#X obj 429 239 explose1; +#X obj 439 249 explose1; +#X obj 449 259 explose1; +#X obj 459 269 explose1; +#X obj 469 279 explose1; +#X obj 479 289 explose1; +#X obj 489 299 explose1; +#X obj 499 309 explose1; +#X obj 509 319 explose1; +#X obj 519 329 explose1; +#X obj 529 339 explose1; +#X obj 539 349 explose1; +#X obj 549 359 explose1; +#X obj 368 8 explose1; +#X obj 378 18 explose1; +#X obj 388 28 explose1; +#X obj 398 38 explose1; +#X obj 408 48 explose1; +#X obj 418 58 explose1; +#X obj 428 68 explose1; +#X obj 438 78 explose1; +#X obj 448 88 explose1; +#X obj 458 98 explose1; +#X obj 468 108 explose1; +#X obj 478 118 explose1; +#X obj 488 128 explose1; +#X obj 498 138 explose1; +#X obj 508 148 explose1; +#X obj 518 158 explose1; +#X obj 528 168 explose1; +#X obj 538 178 explose1; +#X obj 548 188 explose1; +#X obj 558 198 explose1; +#X obj 568 208 explose1; +#X obj 578 218 explose1; +#X obj 588 228 explose1; +#X obj 598 238 explose1; +#X obj 608 248 explose1; +#X obj 618 258 explose1; +#X obj 628 268 explose1; +#X obj 638 278 explose1; +#X obj 648 288 explose1; +#X obj 658 298 explose1; +#X obj 668 308 explose1; +#X obj 678 318 explose1; +#X obj 688 328 explose1; +#X obj 698 338 explose1; +#X obj 708 348 explose1; +#X obj 718 358 explose1; +#X obj 728 368 explose1; +#X obj 533 8 explose1; +#X obj 543 18 explose1; +#X obj 553 28 explose1; +#X obj 563 38 explose1; +#X obj 573 48 explose1; +#X obj 583 58 explose1; +#X obj 593 68 explose1; +#X obj 603 78 explose1; +#X obj 613 88 explose1; +#X obj 623 98 explose1; +#X obj 633 108 explose1; +#X obj 643 118 explose1; +#X obj 653 128 explose1; +#X obj 663 138 explose1; +#X obj 673 148 explose1; +#X obj 683 158 explose1; +#X obj 693 168 explose1; +#X obj 703 178 explose1; +#X obj 713 188 explose1; +#X obj 723 198 explose1; +#X obj 733 208 explose1; +#X obj 743 218 explose1; +#X obj 753 228 explose1; +#X obj 763 238 explose1; +#X obj 773 248 explose1; +#X obj 783 258 explose1; +#X obj 793 268 explose1; +#X obj 803 278 explose1; +#X obj 813 288 explose1; +#X obj 823 298 explose1; +#X obj 833 308 explose1; +#X obj 843 318 explose1; +#X obj 853 328 explose1; +#X obj 863 338 explose1; +#X obj 873 348 explose1; +#X obj 883 358 explose1; +#X obj 893 368 explose1; +#X obj 331 389 explose1; +#X obj 341 399 explose1; +#X obj 351 409 explose1; +#X obj 361 419 explose1; +#X obj 371 429 explose1; +#X obj 381 439 explose1; +#X obj 391 449 explose1; +#X obj 401 459 explose1; +#X obj 411 469 explose1; +#X obj 421 479 explose1; +#X obj 431 489 explose1; +#X obj 441 499 explose1; +#X obj 451 509 explose1; +#X obj 461 519 explose1; +#X obj 471 529 explose1; +#X obj 481 539 explose1; +#X obj 491 549 explose1; +#X obj 501 559 explose1; +#X obj 511 569 explose1; +#X obj 521 579 explose1; +#X obj 531 589 explose1; +#X obj 541 599 explose1; +#X obj 551 609 explose1; +#X obj 486 379 explose1; +#X obj 496 389 explose1; +#X obj 506 399 explose1; +#X obj 516 409 explose1; +#X obj 526 419 explose1; +#X obj 536 429 explose1; +#X obj 546 439 explose1; +#X obj 556 449 explose1; +#X obj 566 459 explose1; +#X obj 576 469 explose1; +#X obj 586 479 explose1; +#X obj 596 489 explose1; +#X obj 606 499 explose1; +#X obj 616 509 explose1; +#X obj 626 519 explose1; +#X obj 636 529 explose1; +#X obj 646 539 explose1; +#X obj 656 549 explose1; +#X obj 666 559 explose1; +#X obj 676 569 explose1; +#X obj 686 579 explose1; +#X obj 696 589 explose1; +#X obj 706 599 explose1; +#X obj 716 609 explose1; +#X obj 655 378 explose1; +#X obj 665 388 explose1; +#X obj 675 398 explose1; +#X obj 685 408 explose1; +#X obj 695 418 explose1; +#X obj 705 428 explose1; +#X obj 715 438 explose1; +#X obj 725 448 explose1; +#X obj 735 458 explose1; +#X obj 745 468 explose1; +#X obj 755 478 explose1; +#X obj 765 488 explose1; +#X obj 775 498 explose1; +#X obj 785 508 explose1; +#X obj 795 518 explose1; +#X obj 805 528 explose1; +#X obj 815 538 explose1; +#X obj 825 548 explose1; +#X obj 835 558 explose1; +#X obj 845 568 explose1; +#X obj 855 578 explose1; +#X obj 865 588 explose1; +#X obj 875 598 explose1; +#X obj 885 608 explose1; +#X obj 895 618 explose1; +#X obj 820 378 explose1; +#X obj 830 388 explose1; +#X obj 840 398 explose1; +#X obj 850 408 explose1; +#X obj 860 418 explose1; +#X obj 870 428 explose1; +#X obj 880 438 explose1; +#X obj 890 448 explose1; +#X obj 900 458 explose1; +#X obj 910 468 explose1; +#X obj 920 478 explose1; +#X obj 930 488 explose1; +#X obj 940 498 explose1; +#X obj 950 508 explose1; +#X obj 960 518 explose1; +#X obj 970 528 explose1; +#X obj 980 538 explose1; +#X obj 990 548 explose1; +#X obj 1000 558 explose1; +#X obj 1010 568 explose1; +#X obj 1020 578 explose1; +#X obj 1030 588 explose1; +#X obj 1040 598 explose1; +#X obj 1050 608 explose1; +#X obj 1060 618 explose1; +#X restore 26 330 pd pool; +#X msg 177 313 reset; +#X obj 177 337 s masse; +#X obj 65 146 s link; +#X text 42 39 <- begin (change metro speed for slow computer); +#X obj 27 245 gemhead 1; +#X obj 27 270 rotateXYZ -80 0 0; +#X obj 27 298 world_light; +#X obj 154 77 bng 15 250 50 0 empty empty empty 0 -6 0 8 -258699 -1 +-1; +#X obj 154 106 t b b b b; +#X obj 32 170 s masse2; +#X obj 192 355 s masse2; +#X obj 305 231 delay 200; +#X obj 303 297 iCylinder3D masse2 0 1 0 0 0 0 0 1 0 0.05; +#X obj 305 252 iSphere3D masse 0 3 0 0 1 0 0.03; +#X msg 292 114 reset \, view -3 4 6 0 0 0 2 4 0 \, lighting 1 \, create +\, 1; +#X obj 19 82 metro 25; +#X floatatom 62 65 5 0 0 0 - - -; +#X text 179 76 <- explosion; +#X text 184 7 planette explosion \, hollywood style!; +#X obj 277 78 bng 15 250 50 0 empty empty empty 0 -6 0 8 -24198 -1 +-1; +#X text 296 77 <- reset; +#X obj 304 274 iAmbient3D masse2 0 0 0 0.01 0 0.01; +#X obj 305 208 iAmbient3D masse 0 0 0 0.001 0.001 0.001 O.OOO1; +#X text 625 115 <- 1; +#X obj 292 166 gemwin; +#X connect 0 0 4 0; +#X connect 0 0 15 0; +#X connect 0 1 8 0; +#X connect 1 0 21 0; +#X connect 2 0 6 0; +#X connect 3 0 30 0; +#X connect 6 0 7 0; +#X connect 6 0 16 0; +#X connect 10 0 11 0; +#X connect 11 0 12 0; +#X connect 13 0 14 0; +#X connect 14 0 17 0; +#X connect 14 0 18 0; +#X connect 14 1 4 0; +#X connect 14 1 15 0; +#X connect 14 2 27 0; +#X connect 14 2 28 0; +#X connect 14 3 6 0; +#X connect 17 0 19 0; +#X connect 20 0 30 0; +#X connect 21 0 0 0; +#X connect 22 0 21 1; +#X connect 25 0 6 0; diff --git a/exemples/38_elastique_membrane_on_a_sphere.pd b/exemples/38_elastique_membrane_on_a_sphere.pd new file mode 100755 index 0000000..2ca904c --- /dev/null +++ b/exemples/38_elastique_membrane_on_a_sphere.pd @@ -0,0 +1,1413 @@ +#N canvas 67 33 711 552 10; +#X obj 31 35 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0 1 +; +#X obj 68 188 s masse; +#X msg 364 476 setK \$1; +#X msg 481 476 setM \$1; +#X obj 481 504 s masse; +#X msg 228 105 0 \, destroy; +#X floatatom 364 452 5 0 0 0 - - -; +#X floatatom 419 452 5 0 0 0 - - -; +#X floatatom 481 453 5 0 0 0 - - -; +#X obj 606 475 world_light; +#X obj 606 452 gemhead; +#X msg 419 475 setD2 \$1; +#X obj 453 86 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 +-1; +#X obj 511 199 loadbang; +#X obj 477 224 t b b b; +#X msg 514 254 reset; +#X msg 477 351 resetF; +#X obj 529 282 s masse; +#X msg 420 427 0.03; +#X obj 364 407 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 +-1; +#X obj 477 373 s link; +#X obj 41 256 s lia; +#X obj 495 329 s r_lia; +#X obj 514 306 s masse2; +#X msg 219 81 lighting 1 \, create \, 1; +#X obj 66 214 s masse3; +#X obj 31 140 t b b b; +#X msg 481 429 1; +#X obj 313 503 s link; +#X obj 219 226 ch_gemwin; +#X obj 49 235 s masse2; +#X text 481 86 <- reset; +#X floatatom 74 68 5 0 0 0 - - -; +#N canvas 0 80 1142 764 array 0; +#X obj 30 39 mass_link2 -1 -1 0; +#X obj 1571 718 mass_link2 16 16 0; +#X obj 21 725 mass_link2 -1 16 0; +#X obj 1540 58 mass_link2 16 -1 0; +#X obj 622 82 mass_link 6 0 0; +#X obj 526 320 mass_link 5 6 0; +#X obj 321 321 mass_link 3 6 0; +#X obj 523 371 mass_link 5 7 0; +#X obj 430 361 mass_link 4 7 0; +#X obj 531 445 mass_link 5 9 0; +#X obj 30 75 mass_link 0 0 0; +#X obj 130 118 mass_link 1 1 0; +#X obj 123 74 mass_link 1 0 0; +#X obj 330 79 mass_link 3 0 0; +#X obj 125 165 mass_link 1 2 0; +#X obj 28 113 mass_link 0 1 0; +#X obj 30 313 mass_link 0 6 0; +#X obj 35 197 mass_link 0 3 0; +#X obj 31 156 mass_link 0 2 0; +#X obj 33 231 mass_link 0 4 0; +#X obj 30 270 mass_link 0 5 0; +#X obj 30 357 mass_link 0 7 0; +#X obj 127 203 mass_link 1 3 0; +#X obj 126 235 mass_link 1 4 0; +#X obj 126 275 mass_link 1 5 0; +#X obj 126 316 mass_link 1 6 0; +#X obj 123 367 mass_link 1 7 0; +#X obj 222 78 mass_link 2 0 0; +#X obj 227 116 mass_link 2 1 0; +#X obj 228 163 mass_link 2 2 0; +#X obj 220 208 mass_link 2 3 0; +#X obj 224 238 mass_link 2 4 0; +#X obj 223 280 mass_link 2 5 0; +#X obj 222 321 mass_link 2 6 0; +#X obj 220 363 mass_link 2 7 0; +#X obj 323 117 mass_link 3 1 0; +#X obj 327 161 mass_link 3 2 0; +#X obj 324 201 mass_link 3 3 0; +#X obj 321 238 mass_link 3 4 0; +#X obj 323 276 mass_link 3 5 0; +#X obj 321 365 mass_link 3 7 0; +#X obj 430 79 mass_link 4 0 0; +#X obj 428 117 mass_link 4 1 0; +#X obj 432 160 mass_link 4 2 0; +#X obj 435 201 mass_link 4 3 0; +#X obj 433 235 mass_link 4 4 0; +#X obj 430 275 mass_link 4 5 0; +#X obj 430 317 mass_link 4 6 0; +#X obj 523 78 mass_link 5 0 0; +#X obj 530 122 mass_link 5 1 0; +#X obj 525 169 mass_link 5 2 0; +#X obj 527 207 mass_link 5 3 0; +#X obj 526 239 mass_link 5 4 0; +#X obj 526 279 mass_link 5 5 0; +#X obj 627 120 mass_link 6 1 0; +#X obj 628 167 mass_link 6 2 0; +#X obj 621 212 mass_link 6 3 0; +#X obj 624 242 mass_link 6 4 0; +#X obj 623 284 mass_link 6 5 0; +#X obj 622 325 mass_link 6 6 0; +#X obj 620 367 mass_link 6 7 0; +#X obj 730 83 mass_link 7 0 0; +#X obj 723 121 mass_link 7 1 0; +#X obj 728 166 mass_link 7 2 0; +#X obj 724 205 mass_link 7 3 0; +#X obj 721 242 mass_link 7 4 0; +#X obj 723 280 mass_link 7 5 0; +#X obj 721 324 mass_link 7 6 0; +#X obj 721 369 mass_link 7 7 0; +#X obj 839 82 mass_link 8 0 0; +#X obj 837 120 mass_link 8 1 0; +#X obj 840 163 mass_link 8 2 0; +#X obj 844 204 mass_link 8 3 0; +#X obj 842 238 mass_link 8 4 0; +#X obj 839 277 mass_link 8 5 0; +#X obj 839 320 mass_link 8 6 0; +#X obj 839 365 mass_link 8 7 0; +#X obj 932 81 mass_link 9 0 0; +#X obj 939 125 mass_link 9 1 0; +#X obj 934 172 mass_link 9 2 0; +#X obj 936 210 mass_link 9 3 0; +#X obj 936 242 mass_link 9 4 0; +#X obj 935 281 mass_link 9 5 0; +#X obj 935 323 mass_link 9 6 0; +#X obj 932 375 mass_link 9 7 0; +#X obj 1031 85 mass_link 10 0 0; +#X obj 1036 123 mass_link 10 1 0; +#X obj 1040 169 mass_link 10 2 0; +#X obj 1029 215 mass_link 10 3 0; +#X obj 1033 245 mass_link 10 4 0; +#X obj 1032 287 mass_link 10 5 0; +#X obj 1031 328 mass_link 10 6 0; +#X obj 1029 370 mass_link 10 7 0; +#X obj 1139 86 mass_link 11 0 0; +#X obj 1132 125 mass_link 11 1 0; +#X obj 1137 168 mass_link 11 2 0; +#X obj 1133 208 mass_link 11 3 0; +#X obj 1130 245 mass_link 11 4 0; +#X obj 1132 283 mass_link 11 5 0; +#X obj 1130 328 mass_link 11 6 0; +#X obj 1130 372 mass_link 11 7 0; +#X obj 1239 88 mass_link 12 0 0; +#X obj 1237 124 mass_link 12 1 0; +#X obj 1241 167 mass_link 12 2 0; +#X obj 1244 208 mass_link 12 3 0; +#X obj 1242 242 mass_link 12 4 0; +#X obj 1239 282 mass_link 12 5 0; +#X obj 1240 324 mass_link 12 6 0; +#X obj 1239 369 mass_link 12 7 0; +#X obj 1333 86 mass_link 13 0 0; +#X obj 1339 129 mass_link 13 1 0; +#X obj 1334 176 mass_link 13 2 0; +#X obj 1340 242 mass_link 13 4 0; +#X obj 1335 286 mass_link 13 5 0; +#X obj 1336 327 mass_link 13 6 0; +#X obj 1333 371 mass_link 13 7 0; +#X obj 1431 89 mass_link 14 0 0; +#X obj 1437 127 mass_link 14 1 0; +#X obj 1437 174 mass_link 14 2 0; +#X obj 1430 219 mass_link 14 3 0; +#X obj 1433 249 mass_link 14 4 0; +#X obj 1432 291 mass_link 14 5 0; +#X obj 1431 332 mass_link 14 6 0; +#X obj 1429 374 mass_link 14 7 0; +#X obj 1540 90 mass_link 15 0 0; +#X obj 1532 128 mass_link 15 1 0; +#X obj 1536 172 mass_link 15 2 0; +#X obj 1533 212 mass_link 15 3 0; +#X obj 1530 249 mass_link 15 4 0; +#X obj 1532 287 mass_link 15 5 0; +#X obj 1530 331 mass_link 15 6 0; +#X obj 1530 378 mass_link 15 7 0; +#X obj 32 398 mass_link 0 8 0; +#X obj 29 436 mass_link 0 9 0; +#X obj 32 479 mass_link 0 10 0; +#X obj 37 520 mass_link 0 11 0; +#X obj 34 554 mass_link 0 12 0; +#X obj 31 594 mass_link 0 13 0; +#X obj 31 636 mass_link 0 14 0; +#X obj 31 680 mass_link 0 15 0; +#X obj 124 690 mass_link 1 15 0; +#X obj 221 685 mass_link 2 15 0; +#X obj 323 688 mass_link 3 15 0; +#X obj 432 684 mass_link 4 15 0; +#X obj 524 694 mass_link 5 15 0; +#X obj 622 690 mass_link 6 15 0; +#X obj 722 692 mass_link 7 15 0; +#X obj 837 687 mass_link 8 15 0; +#X obj 933 698 mass_link 9 15 0; +#X obj 1030 693 mass_link 10 15 0; +#X obj 1132 695 mass_link 11 15 0; +#X obj 1241 692 mass_link 12 15 0; +#X obj 1334 694 mass_link 13 15 0; +#X obj 1430 697 mass_link 14 15 0; +#X obj 1532 701 mass_link 15 15 0; +#X obj 1531 654 mass_link 15 14 0; +#X obj 1432 655 mass_link 14 14 0; +#X obj 1337 650 mass_link 13 14 0; +#X obj 1242 647 mass_link 12 14 0; +#X obj 1131 651 mass_link 11 14 0; +#X obj 1033 651 mass_link 10 14 0; +#X obj 936 646 mass_link 9 14 0; +#X obj 842 644 mass_link 8 14 0; +#X obj 722 647 mass_link 7 14 0; +#X obj 624 648 mass_link 6 14 0; +#X obj 527 643 mass_link 5 14 0; +#X obj 432 641 mass_link 4 14 0; +#X obj 322 644 mass_link 3 14 0; +#X obj 223 644 mass_link 2 14 0; +#X obj 127 639 mass_link 1 14 0; +#X obj 127 598 mass_link 1 13 0; +#X obj 224 603 mass_link 2 13 0; +#X obj 324 599 mass_link 3 13 0; +#X obj 431 598 mass_link 4 13 0; +#X obj 526 602 mass_link 5 13 0; +#X obj 624 607 mass_link 6 13 0; +#X obj 724 602 mass_link 7 13 0; +#X obj 840 600 mass_link 8 13 0; +#X obj 936 604 mass_link 9 13 0; +#X obj 1033 610 mass_link 10 13 0; +#X obj 1133 606 mass_link 11 13 0; +#X obj 1240 605 mass_link 12 13 0; +#X obj 1336 609 mass_link 13 13 0; +#X obj 1433 614 mass_link 14 13 0; +#X obj 1534 610 mass_link 15 13 0; +#X obj 1530 573 mass_link 15 12 0; +#X obj 1429 572 mass_link 14 12 0; +#X obj 1337 569 mass_link 13 12 0; +#X obj 1243 565 mass_link 12 12 0; +#X obj 1131 568 mass_link 11 12 0; +#X obj 1034 568 mass_link 10 12 0; +#X obj 937 565 mass_link 9 12 0; +#X obj 843 561 mass_link 8 12 0; +#X obj 722 565 mass_link 7 12 0; +#X obj 625 565 mass_link 6 12 0; +#X obj 527 562 mass_link 5 12 0; +#X obj 434 558 mass_link 4 12 0; +#X obj 322 561 mass_link 3 12 0; +#X obj 225 561 mass_link 2 12 0; +#X obj 127 558 mass_link 1 12 0; +#X obj 128 526 mass_link 1 11 0; +#X obj 221 531 mass_link 2 11 0; +#X obj 326 524 mass_link 3 11 0; +#X obj 436 524 mass_link 4 11 0; +#X obj 525 531 mass_link 5 11 0; +#X obj 622 536 mass_link 6 11 0; +#X obj 725 528 mass_link 7 11 0; +#X obj 845 527 mass_link 8 11 0; +#X obj 938 533 mass_link 9 11 0; +#X obj 1030 538 mass_link 10 11 0; +#X obj 1134 531 mass_link 11 11 0; +#X obj 1245 531 mass_link 12 11 0; +#X obj 1431 542 mass_link 14 11 0; +#X obj 1533 536 mass_link 15 11 0; +#X obj 1533 451 mass_link 15 9 0; +#X obj 1443 451 mass_link 14 9 0; +#X obj 1340 452 mass_link 13 9 0; +#X obj 1238 447 mass_link 12 9 0; +#X obj 1133 448 mass_link 11 9 0; +#X obj 1037 446 mass_link 10 9 0; +#X obj 940 448 mass_link 9 9 0; +#X obj 839 443 mass_link 8 9 0; +#X obj 724 444 mass_link 7 9 0; +#X obj 628 443 mass_link 6 9 0; +#X obj 430 440 mass_link 4 9 0; +#X obj 325 440 mass_link 3 9 0; +#X obj 228 439 mass_link 2 9 0; +#X obj 131 441 mass_link 1 9 0; +#X obj 124 396 mass_link 1 8 0; +#X obj 223 401 mass_link 2 8 0; +#X obj 331 403 mass_link 3 8 0; +#X obj 430 405 mass_link 4 8 0; +#X obj 524 401 mass_link 5 8 0; +#X obj 623 405 mass_link 6 8 0; +#X obj 731 406 mass_link 7 8 0; +#X obj 841 405 mass_link 8 8 0; +#X obj 933 406 mass_link 9 8 0; +#X obj 1034 408 mass_link 10 8 0; +#X obj 1140 409 mass_link 11 8 0; +#X obj 1241 411 mass_link 12 8 0; +#X obj 1336 410 mass_link 13 8 0; +#X obj 1432 412 mass_link 14 8 0; +#X obj 1545 413 mass_link 15 8 0; +#X obj 126 488 mass_link 1 10 0; +#X obj 230 486 mass_link 2 10 0; +#X obj 328 484 mass_link 3 10 0; +#X obj 437 484 mass_link 4 10 0; +#X obj 526 492 mass_link 5 10 0; +#X obj 629 490 mass_link 6 10 0; +#X obj 729 489 mass_link 7 10 0; +#X obj 841 486 mass_link 8 10 0; +#X obj 936 496 mass_link 9 10 0; +#X obj 1042 492 mass_link 10 10 0; +#X obj 1139 491 mass_link 11 10 0; +#X obj 1242 490 mass_link 12 10 0; +#X obj 1335 499 mass_link 13 10 0; +#X obj 1438 497 mass_link 14 10 0; +#X obj 1537 495 mass_link 15 10 0; +#X obj 1336 216 mass_link 13 3 0; +#X obj 1338 537 mass_link 13 11 0; +#X connect 0 0 10 0; +#X connect 1 0 154 0; +#X connect 2 0 139 0; +#X connect 3 0 124 0; +#X connect 4 0 48 0; +#X connect 4 0 54 0; +#X connect 4 0 61 0; +#X connect 5 0 7 0; +#X connect 5 0 47 0; +#X connect 5 0 53 0; +#X connect 5 0 59 0; +#X connect 6 0 33 0; +#X connect 6 0 39 0; +#X connect 6 0 40 0; +#X connect 6 0 47 0; +#X connect 7 0 5 0; +#X connect 7 0 8 0; +#X connect 7 0 60 0; +#X connect 7 0 232 0; +#X connect 8 0 7 0; +#X connect 8 0 40 0; +#X connect 8 0 47 0; +#X connect 8 0 231 0; +#X connect 9 0 223 0; +#X connect 9 0 224 0; +#X connect 9 0 232 0; +#X connect 9 0 247 0; +#X connect 10 0 12 0; +#X connect 10 0 15 0; +#X connect 11 0 12 0; +#X connect 11 0 14 0; +#X connect 11 0 15 0; +#X connect 11 0 28 0; +#X connect 12 0 10 0; +#X connect 12 0 11 0; +#X connect 12 0 27 0; +#X connect 13 0 27 0; +#X connect 13 0 35 0; +#X connect 13 0 41 0; +#X connect 14 0 11 0; +#X connect 14 0 18 0; +#X connect 14 0 22 0; +#X connect 14 0 29 0; +#X connect 15 0 10 0; +#X connect 15 0 11 0; +#X connect 15 0 18 0; +#X connect 16 0 20 0; +#X connect 16 0 21 0; +#X connect 16 0 25 0; +#X connect 17 0 18 0; +#X connect 17 0 19 0; +#X connect 17 0 22 0; +#X connect 18 0 14 0; +#X connect 18 0 15 0; +#X connect 18 0 17 0; +#X connect 19 0 17 0; +#X connect 19 0 20 0; +#X connect 19 0 23 0; +#X connect 20 0 16 0; +#X connect 20 0 19 0; +#X connect 20 0 24 0; +#X connect 21 0 16 0; +#X connect 21 0 26 0; +#X connect 21 0 132 0; +#X connect 22 0 14 0; +#X connect 22 0 17 0; +#X connect 22 0 23 0; +#X connect 22 0 30 0; +#X connect 23 0 19 0; +#X connect 23 0 22 0; +#X connect 23 0 24 0; +#X connect 23 0 31 0; +#X connect 24 0 20 0; +#X connect 24 0 23 0; +#X connect 24 0 25 0; +#X connect 24 0 32 0; +#X connect 25 0 16 0; +#X connect 25 0 24 0; +#X connect 25 0 26 0; +#X connect 25 0 33 0; +#X connect 26 0 21 0; +#X connect 26 0 25 0; +#X connect 26 0 34 0; +#X connect 26 0 228 0; +#X connect 27 0 12 0; +#X connect 27 0 13 0; +#X connect 27 0 28 0; +#X connect 28 0 11 0; +#X connect 28 0 27 0; +#X connect 28 0 29 0; +#X connect 28 0 35 0; +#X connect 29 0 14 0; +#X connect 29 0 28 0; +#X connect 29 0 30 0; +#X connect 29 0 36 0; +#X connect 30 0 22 0; +#X connect 30 0 29 0; +#X connect 30 0 31 0; +#X connect 30 0 37 0; +#X connect 31 0 23 0; +#X connect 31 0 30 0; +#X connect 31 0 32 0; +#X connect 31 0 38 0; +#X connect 32 0 24 0; +#X connect 32 0 31 0; +#X connect 32 0 33 0; +#X connect 32 0 39 0; +#X connect 33 0 6 0; +#X connect 33 0 25 0; +#X connect 33 0 32 0; +#X connect 33 0 34 0; +#X connect 34 0 26 0; +#X connect 34 0 33 0; +#X connect 34 0 40 0; +#X connect 34 0 229 0; +#X connect 35 0 13 0; +#X connect 35 0 28 0; +#X connect 35 0 36 0; +#X connect 35 0 42 0; +#X connect 36 0 29 0; +#X connect 36 0 35 0; +#X connect 36 0 37 0; +#X connect 36 0 43 0; +#X connect 37 0 30 0; +#X connect 37 0 36 0; +#X connect 37 0 38 0; +#X connect 37 0 44 0; +#X connect 38 0 31 0; +#X connect 38 0 37 0; +#X connect 38 0 39 0; +#X connect 38 0 45 0; +#X connect 39 0 6 0; +#X connect 39 0 32 0; +#X connect 39 0 38 0; +#X connect 39 0 46 0; +#X connect 40 0 6 0; +#X connect 40 0 8 0; +#X connect 40 0 34 0; +#X connect 40 0 230 0; +#X connect 41 0 13 0; +#X connect 41 0 42 0; +#X connect 41 0 48 0; +#X connect 42 0 35 0; +#X connect 42 0 41 0; +#X connect 42 0 43 0; +#X connect 42 0 49 0; +#X connect 43 0 36 0; +#X connect 43 0 42 0; +#X connect 43 0 44 0; +#X connect 43 0 50 0; +#X connect 44 0 37 0; +#X connect 44 0 43 0; +#X connect 44 0 45 0; +#X connect 44 0 51 0; +#X connect 45 0 38 0; +#X connect 45 0 44 0; +#X connect 45 0 46 0; +#X connect 45 0 52 0; +#X connect 46 0 39 0; +#X connect 46 0 45 0; +#X connect 46 0 47 0; +#X connect 46 0 53 0; +#X connect 47 0 5 0; +#X connect 47 0 6 0; +#X connect 47 0 8 0; +#X connect 47 0 46 0; +#X connect 48 0 4 0; +#X connect 48 0 41 0; +#X connect 48 0 49 0; +#X connect 49 0 42 0; +#X connect 49 0 48 0; +#X connect 49 0 50 0; +#X connect 49 0 54 0; +#X connect 50 0 43 0; +#X connect 50 0 49 0; +#X connect 50 0 51 0; +#X connect 50 0 55 0; +#X connect 51 0 44 0; +#X connect 51 0 50 0; +#X connect 51 0 52 0; +#X connect 51 0 56 0; +#X connect 52 0 45 0; +#X connect 52 0 51 0; +#X connect 52 0 53 0; +#X connect 52 0 57 0; +#X connect 53 0 5 0; +#X connect 53 0 46 0; +#X connect 53 0 52 0; +#X connect 53 0 58 0; +#X connect 54 0 4 0; +#X connect 54 0 49 0; +#X connect 54 0 55 0; +#X connect 54 0 62 0; +#X connect 55 0 50 0; +#X connect 55 0 54 0; +#X connect 55 0 56 0; +#X connect 55 0 63 0; +#X connect 56 0 51 0; +#X connect 56 0 55 0; +#X connect 56 0 57 0; +#X connect 56 0 64 0; +#X connect 57 0 52 0; +#X connect 57 0 56 0; +#X connect 57 0 58 0; +#X connect 57 0 65 0; +#X connect 58 0 53 0; +#X connect 58 0 57 0; +#X connect 58 0 59 0; +#X connect 58 0 66 0; +#X connect 59 0 5 0; +#X connect 59 0 58 0; +#X connect 59 0 60 0; +#X connect 59 0 67 0; +#X connect 60 0 7 0; +#X connect 60 0 59 0; +#X connect 60 0 68 0; +#X connect 60 0 233 0; +#X connect 61 0 4 0; +#X connect 61 0 62 0; +#X connect 61 0 69 0; +#X connect 62 0 54 0; +#X connect 62 0 61 0; +#X connect 62 0 63 0; +#X connect 62 0 70 0; +#X connect 63 0 55 0; +#X connect 63 0 62 0; +#X connect 63 0 64 0; +#X connect 63 0 71 0; +#X connect 64 0 56 0; +#X connect 64 0 63 0; +#X connect 64 0 65 0; +#X connect 64 0 72 0; +#X connect 65 0 57 0; +#X connect 65 0 64 0; +#X connect 65 0 66 0; +#X connect 65 0 73 0; +#X connect 66 0 58 0; +#X connect 66 0 65 0; +#X connect 66 0 67 0; +#X connect 66 0 74 0; +#X connect 67 0 59 0; +#X connect 67 0 66 0; +#X connect 67 0 68 0; +#X connect 67 0 75 0; +#X connect 68 0 60 0; +#X connect 68 0 67 0; +#X connect 68 0 76 0; +#X connect 68 0 234 0; +#X connect 69 0 61 0; +#X connect 69 0 70 0; +#X connect 69 0 77 0; +#X connect 70 0 62 0; +#X connect 70 0 69 0; +#X connect 70 0 71 0; +#X connect 70 0 78 0; +#X connect 71 0 63 0; +#X connect 71 0 70 0; +#X connect 71 0 72 0; +#X connect 71 0 79 0; +#X connect 72 0 64 0; +#X connect 72 0 71 0; +#X connect 72 0 73 0; +#X connect 72 0 80 0; +#X connect 73 0 65 0; +#X connect 73 0 72 0; +#X connect 73 0 74 0; +#X connect 73 0 81 0; +#X connect 74 0 66 0; +#X connect 74 0 73 0; +#X connect 74 0 75 0; +#X connect 74 0 82 0; +#X connect 75 0 67 0; +#X connect 75 0 74 0; +#X connect 75 0 76 0; +#X connect 75 0 83 0; +#X connect 76 0 68 0; +#X connect 76 0 75 0; +#X connect 76 0 84 0; +#X connect 76 0 235 0; +#X connect 77 0 69 0; +#X connect 77 0 78 0; +#X connect 77 0 85 0; +#X connect 78 0 70 0; +#X connect 78 0 77 0; +#X connect 78 0 79 0; +#X connect 78 0 86 0; +#X connect 79 0 71 0; +#X connect 79 0 78 0; +#X connect 79 0 80 0; +#X connect 79 0 87 0; +#X connect 80 0 72 0; +#X connect 80 0 79 0; +#X connect 80 0 81 0; +#X connect 80 0 88 0; +#X connect 81 0 73 0; +#X connect 81 0 80 0; +#X connect 81 0 82 0; +#X connect 81 0 89 0; +#X connect 82 0 74 0; +#X connect 82 0 81 0; +#X connect 82 0 83 0; +#X connect 82 0 90 0; +#X connect 83 0 75 0; +#X connect 83 0 82 0; +#X connect 83 0 84 0; +#X connect 83 0 91 0; +#X connect 84 0 76 0; +#X connect 84 0 83 0; +#X connect 84 0 92 0; +#X connect 84 0 236 0; +#X connect 85 0 77 0; +#X connect 85 0 86 0; +#X connect 85 0 93 0; +#X connect 86 0 78 0; +#X connect 86 0 85 0; +#X connect 86 0 87 0; +#X connect 86 0 94 0; +#X connect 87 0 79 0; +#X connect 87 0 86 0; +#X connect 87 0 88 0; +#X connect 87 0 95 0; +#X connect 88 0 80 0; +#X connect 88 0 87 0; +#X connect 88 0 89 0; +#X connect 88 0 96 0; +#X connect 89 0 81 0; +#X connect 89 0 88 0; +#X connect 89 0 90 0; +#X connect 89 0 97 0; +#X connect 90 0 82 0; +#X connect 90 0 89 0; +#X connect 90 0 91 0; +#X connect 90 0 98 0; +#X connect 91 0 83 0; +#X connect 91 0 90 0; +#X connect 91 0 92 0; +#X connect 91 0 99 0; +#X connect 92 0 84 0; +#X connect 92 0 91 0; +#X connect 92 0 100 0; +#X connect 92 0 237 0; +#X connect 93 0 85 0; +#X connect 93 0 94 0; +#X connect 93 0 101 0; +#X connect 94 0 86 0; +#X connect 94 0 93 0; +#X connect 94 0 95 0; +#X connect 94 0 102 0; +#X connect 95 0 87 0; +#X connect 95 0 94 0; +#X connect 95 0 96 0; +#X connect 95 0 103 0; +#X connect 96 0 88 0; +#X connect 96 0 95 0; +#X connect 96 0 97 0; +#X connect 96 0 104 0; +#X connect 97 0 89 0; +#X connect 97 0 96 0; +#X connect 97 0 98 0; +#X connect 97 0 105 0; +#X connect 98 0 90 0; +#X connect 98 0 97 0; +#X connect 98 0 99 0; +#X connect 98 0 106 0; +#X connect 99 0 91 0; +#X connect 99 0 98 0; +#X connect 99 0 100 0; +#X connect 99 0 107 0; +#X connect 100 0 92 0; +#X connect 100 0 99 0; +#X connect 100 0 108 0; +#X connect 100 0 238 0; +#X connect 101 0 93 0; +#X connect 101 0 102 0; +#X connect 101 0 109 0; +#X connect 102 0 94 0; +#X connect 102 0 101 0; +#X connect 102 0 103 0; +#X connect 102 0 110 0; +#X connect 103 0 95 0; +#X connect 103 0 102 0; +#X connect 103 0 104 0; +#X connect 103 0 111 0; +#X connect 104 0 96 0; +#X connect 104 0 103 0; +#X connect 104 0 105 0; +#X connect 104 0 258 0; +#X connect 105 0 97 0; +#X connect 105 0 104 0; +#X connect 105 0 106 0; +#X connect 105 0 112 0; +#X connect 106 0 98 0; +#X connect 106 0 105 0; +#X connect 106 0 107 0; +#X connect 106 0 113 0; +#X connect 107 0 99 0; +#X connect 107 0 106 0; +#X connect 107 0 108 0; +#X connect 107 0 114 0; +#X connect 108 0 100 0; +#X connect 108 0 107 0; +#X connect 108 0 115 0; +#X connect 108 0 239 0; +#X connect 109 0 101 0; +#X connect 109 0 110 0; +#X connect 109 0 116 0; +#X connect 110 0 102 0; +#X connect 110 0 109 0; +#X connect 110 0 111 0; +#X connect 110 0 117 0; +#X connect 111 0 103 0; +#X connect 111 0 110 0; +#X connect 111 0 118 0; +#X connect 111 0 258 0; +#X connect 112 0 105 0; +#X connect 112 0 113 0; +#X connect 112 0 120 0; +#X connect 112 0 258 0; +#X connect 113 0 106 0; +#X connect 113 0 112 0; +#X connect 113 0 114 0; +#X connect 113 0 121 0; +#X connect 114 0 107 0; +#X connect 114 0 113 0; +#X connect 114 0 115 0; +#X connect 114 0 122 0; +#X connect 115 0 108 0; +#X connect 115 0 114 0; +#X connect 115 0 123 0; +#X connect 115 0 240 0; +#X connect 116 0 109 0; +#X connect 116 0 117 0; +#X connect 116 0 124 0; +#X connect 117 0 110 0; +#X connect 117 0 116 0; +#X connect 117 0 118 0; +#X connect 117 0 125 0; +#X connect 118 0 111 0; +#X connect 118 0 117 0; +#X connect 118 0 119 0; +#X connect 118 0 126 0; +#X connect 119 0 118 0; +#X connect 119 0 120 0; +#X connect 119 0 127 0; +#X connect 119 0 258 0; +#X connect 120 0 112 0; +#X connect 120 0 119 0; +#X connect 120 0 121 0; +#X connect 120 0 128 0; +#X connect 121 0 113 0; +#X connect 121 0 120 0; +#X connect 121 0 122 0; +#X connect 121 0 129 0; +#X connect 122 0 114 0; +#X connect 122 0 121 0; +#X connect 122 0 123 0; +#X connect 122 0 130 0; +#X connect 123 0 115 0; +#X connect 123 0 122 0; +#X connect 123 0 131 0; +#X connect 123 0 241 0; +#X connect 124 0 116 0; +#X connect 124 0 125 0; +#X connect 125 0 117 0; +#X connect 125 0 124 0; +#X connect 125 0 126 0; +#X connect 126 0 118 0; +#X connect 126 0 125 0; +#X connect 126 0 127 0; +#X connect 127 0 119 0; +#X connect 127 0 126 0; +#X connect 127 0 128 0; +#X connect 128 0 120 0; +#X connect 128 0 127 0; +#X connect 128 0 129 0; +#X connect 129 0 121 0; +#X connect 129 0 128 0; +#X connect 129 0 130 0; +#X connect 130 0 122 0; +#X connect 130 0 129 0; +#X connect 130 0 131 0; +#X connect 131 0 123 0; +#X connect 131 0 130 0; +#X connect 131 0 242 0; +#X connect 132 0 21 0; +#X connect 132 0 133 0; +#X connect 132 0 228 0; +#X connect 133 0 132 0; +#X connect 133 0 134 0; +#X connect 133 0 227 0; +#X connect 134 0 133 0; +#X connect 134 0 135 0; +#X connect 134 0 243 0; +#X connect 135 0 134 0; +#X connect 135 0 136 0; +#X connect 135 0 200 0; +#X connect 136 0 135 0; +#X connect 136 0 137 0; +#X connect 136 0 199 0; +#X connect 137 0 136 0; +#X connect 137 0 138 0; +#X connect 137 0 170 0; +#X connect 138 0 137 0; +#X connect 138 0 139 0; +#X connect 138 0 169 0; +#X connect 139 0 138 0; +#X connect 139 0 140 0; +#X connect 140 0 139 0; +#X connect 140 0 141 0; +#X connect 140 0 169 0; +#X connect 141 0 140 0; +#X connect 141 0 142 0; +#X connect 141 0 168 0; +#X connect 142 0 141 0; +#X connect 142 0 143 0; +#X connect 142 0 167 0; +#X connect 143 0 142 0; +#X connect 143 0 144 0; +#X connect 143 0 166 0; +#X connect 144 0 143 0; +#X connect 144 0 145 0; +#X connect 144 0 165 0; +#X connect 145 0 144 0; +#X connect 145 0 146 0; +#X connect 145 0 164 0; +#X connect 146 0 145 0; +#X connect 146 0 147 0; +#X connect 146 0 163 0; +#X connect 147 0 146 0; +#X connect 147 0 148 0; +#X connect 147 0 162 0; +#X connect 148 0 147 0; +#X connect 148 0 149 0; +#X connect 148 0 161 0; +#X connect 149 0 148 0; +#X connect 149 0 150 0; +#X connect 149 0 160 0; +#X connect 150 0 149 0; +#X connect 150 0 151 0; +#X connect 150 0 159 0; +#X connect 151 0 150 0; +#X connect 151 0 152 0; +#X connect 151 0 158 0; +#X connect 152 0 151 0; +#X connect 152 0 153 0; +#X connect 152 0 157 0; +#X connect 153 0 152 0; +#X connect 153 0 154 0; +#X connect 153 0 156 0; +#X connect 154 0 153 0; +#X connect 154 0 155 0; +#X connect 155 0 154 0; +#X connect 155 0 156 0; +#X connect 155 0 184 0; +#X connect 156 0 153 0; +#X connect 156 0 155 0; +#X connect 156 0 157 0; +#X connect 156 0 183 0; +#X connect 157 0 152 0; +#X connect 157 0 156 0; +#X connect 157 0 158 0; +#X connect 157 0 182 0; +#X connect 158 0 151 0; +#X connect 158 0 157 0; +#X connect 158 0 159 0; +#X connect 158 0 181 0; +#X connect 159 0 150 0; +#X connect 159 0 158 0; +#X connect 159 0 160 0; +#X connect 159 0 180 0; +#X connect 160 0 149 0; +#X connect 160 0 159 0; +#X connect 160 0 161 0; +#X connect 160 0 179 0; +#X connect 161 0 148 0; +#X connect 161 0 160 0; +#X connect 161 0 162 0; +#X connect 161 0 178 0; +#X connect 162 0 147 0; +#X connect 162 0 161 0; +#X connect 162 0 163 0; +#X connect 162 0 177 0; +#X connect 163 0 146 0; +#X connect 163 0 162 0; +#X connect 163 0 164 0; +#X connect 163 0 176 0; +#X connect 164 0 145 0; +#X connect 164 0 163 0; +#X connect 164 0 165 0; +#X connect 164 0 175 0; +#X connect 165 0 144 0; +#X connect 165 0 164 0; +#X connect 165 0 166 0; +#X connect 165 0 174 0; +#X connect 166 0 143 0; +#X connect 166 0 165 0; +#X connect 166 0 167 0; +#X connect 166 0 173 0; +#X connect 167 0 142 0; +#X connect 167 0 166 0; +#X connect 167 0 168 0; +#X connect 167 0 172 0; +#X connect 168 0 141 0; +#X connect 168 0 167 0; +#X connect 168 0 169 0; +#X connect 168 0 171 0; +#X connect 169 0 138 0; +#X connect 169 0 140 0; +#X connect 169 0 168 0; +#X connect 169 0 170 0; +#X connect 170 0 137 0; +#X connect 170 0 169 0; +#X connect 170 0 171 0; +#X connect 170 0 199 0; +#X connect 171 0 168 0; +#X connect 171 0 170 0; +#X connect 171 0 172 0; +#X connect 171 0 198 0; +#X connect 172 0 167 0; +#X connect 172 0 171 0; +#X connect 172 0 173 0; +#X connect 172 0 197 0; +#X connect 173 0 166 0; +#X connect 173 0 172 0; +#X connect 173 0 174 0; +#X connect 173 0 196 0; +#X connect 174 0 165 0; +#X connect 174 0 173 0; +#X connect 174 0 175 0; +#X connect 174 0 195 0; +#X connect 175 0 164 0; +#X connect 175 0 174 0; +#X connect 175 0 176 0; +#X connect 175 0 194 0; +#X connect 176 0 163 0; +#X connect 176 0 175 0; +#X connect 176 0 177 0; +#X connect 176 0 193 0; +#X connect 177 0 162 0; +#X connect 177 0 176 0; +#X connect 177 0 178 0; +#X connect 177 0 192 0; +#X connect 178 0 161 0; +#X connect 178 0 177 0; +#X connect 178 0 179 0; +#X connect 178 0 191 0; +#X connect 179 0 160 0; +#X connect 179 0 178 0; +#X connect 179 0 180 0; +#X connect 179 0 190 0; +#X connect 180 0 159 0; +#X connect 180 0 179 0; +#X connect 180 0 181 0; +#X connect 180 0 189 0; +#X connect 181 0 158 0; +#X connect 181 0 180 0; +#X connect 181 0 182 0; +#X connect 181 0 188 0; +#X connect 182 0 157 0; +#X connect 182 0 181 0; +#X connect 182 0 183 0; +#X connect 182 0 187 0; +#X connect 183 0 156 0; +#X connect 183 0 182 0; +#X connect 183 0 184 0; +#X connect 183 0 186 0; +#X connect 184 0 155 0; +#X connect 184 0 183 0; +#X connect 184 0 185 0; +#X connect 185 0 184 0; +#X connect 185 0 186 0; +#X connect 185 0 213 0; +#X connect 186 0 183 0; +#X connect 186 0 185 0; +#X connect 186 0 187 0; +#X connect 186 0 212 0; +#X connect 187 0 182 0; +#X connect 187 0 186 0; +#X connect 187 0 188 0; +#X connect 187 0 259 0; +#X connect 188 0 181 0; +#X connect 188 0 187 0; +#X connect 188 0 189 0; +#X connect 188 0 211 0; +#X connect 189 0 180 0; +#X connect 189 0 188 0; +#X connect 189 0 190 0; +#X connect 189 0 210 0; +#X connect 190 0 179 0; +#X connect 190 0 189 0; +#X connect 190 0 191 0; +#X connect 190 0 209 0; +#X connect 191 0 178 0; +#X connect 191 0 190 0; +#X connect 191 0 192 0; +#X connect 191 0 208 0; +#X connect 192 0 177 0; +#X connect 192 0 191 0; +#X connect 192 0 193 0; +#X connect 192 0 207 0; +#X connect 193 0 176 0; +#X connect 193 0 192 0; +#X connect 193 0 194 0; +#X connect 193 0 206 0; +#X connect 194 0 175 0; +#X connect 194 0 193 0; +#X connect 194 0 195 0; +#X connect 194 0 205 0; +#X connect 195 0 174 0; +#X connect 195 0 194 0; +#X connect 195 0 196 0; +#X connect 195 0 204 0; +#X connect 196 0 173 0; +#X connect 196 0 195 0; +#X connect 196 0 197 0; +#X connect 196 0 203 0; +#X connect 197 0 172 0; +#X connect 197 0 196 0; +#X connect 197 0 198 0; +#X connect 197 0 202 0; +#X connect 198 0 171 0; +#X connect 198 0 197 0; +#X connect 198 0 199 0; +#X connect 198 0 201 0; +#X connect 199 0 136 0; +#X connect 199 0 170 0; +#X connect 199 0 198 0; +#X connect 199 0 200 0; +#X connect 200 0 135 0; +#X connect 200 0 199 0; +#X connect 200 0 201 0; +#X connect 200 0 243 0; +#X connect 201 0 198 0; +#X connect 201 0 200 0; +#X connect 201 0 202 0; +#X connect 201 0 244 0; +#X connect 202 0 197 0; +#X connect 202 0 201 0; +#X connect 202 0 203 0; +#X connect 202 0 245 0; +#X connect 203 0 196 0; +#X connect 203 0 202 0; +#X connect 203 0 204 0; +#X connect 203 0 246 0; +#X connect 204 0 195 0; +#X connect 204 0 203 0; +#X connect 204 0 205 0; +#X connect 204 0 247 0; +#X connect 205 0 194 0; +#X connect 205 0 204 0; +#X connect 205 0 206 0; +#X connect 205 0 248 0; +#X connect 206 0 193 0; +#X connect 206 0 205 0; +#X connect 206 0 207 0; +#X connect 206 0 249 0; +#X connect 207 0 192 0; +#X connect 207 0 206 0; +#X connect 207 0 208 0; +#X connect 207 0 250 0; +#X connect 208 0 191 0; +#X connect 208 0 207 0; +#X connect 208 0 209 0; +#X connect 208 0 251 0; +#X connect 209 0 190 0; +#X connect 209 0 208 0; +#X connect 209 0 210 0; +#X connect 209 0 252 0; +#X connect 210 0 189 0; +#X connect 210 0 209 0; +#X connect 210 0 211 0; +#X connect 210 0 253 0; +#X connect 211 0 188 0; +#X connect 211 0 210 0; +#X connect 211 0 254 0; +#X connect 211 0 259 0; +#X connect 212 0 186 0; +#X connect 212 0 213 0; +#X connect 212 0 256 0; +#X connect 212 0 259 0; +#X connect 213 0 185 0; +#X connect 213 0 212 0; +#X connect 213 0 257 0; +#X connect 214 0 215 0; +#X connect 214 0 242 0; +#X connect 214 0 257 0; +#X connect 215 0 214 0; +#X connect 215 0 216 0; +#X connect 215 0 241 0; +#X connect 215 0 256 0; +#X connect 216 0 215 0; +#X connect 216 0 217 0; +#X connect 216 0 240 0; +#X connect 216 0 255 0; +#X connect 217 0 216 0; +#X connect 217 0 218 0; +#X connect 217 0 239 0; +#X connect 217 0 254 0; +#X connect 218 0 217 0; +#X connect 218 0 219 0; +#X connect 218 0 238 0; +#X connect 218 0 253 0; +#X connect 219 0 218 0; +#X connect 219 0 220 0; +#X connect 219 0 237 0; +#X connect 219 0 252 0; +#X connect 220 0 219 0; +#X connect 220 0 221 0; +#X connect 220 0 236 0; +#X connect 220 0 251 0; +#X connect 221 0 220 0; +#X connect 221 0 222 0; +#X connect 221 0 235 0; +#X connect 221 0 250 0; +#X connect 222 0 221 0; +#X connect 222 0 223 0; +#X connect 222 0 234 0; +#X connect 222 0 249 0; +#X connect 223 0 9 0; +#X connect 223 0 222 0; +#X connect 223 0 233 0; +#X connect 223 0 248 0; +#X connect 224 0 9 0; +#X connect 224 0 225 0; +#X connect 224 0 231 0; +#X connect 224 0 246 0; +#X connect 225 0 224 0; +#X connect 225 0 226 0; +#X connect 225 0 230 0; +#X connect 225 0 245 0; +#X connect 226 0 225 0; +#X connect 226 0 227 0; +#X connect 226 0 229 0; +#X connect 226 0 244 0; +#X connect 227 0 133 0; +#X connect 227 0 226 0; +#X connect 227 0 228 0; +#X connect 227 0 243 0; +#X connect 228 0 26 0; +#X connect 228 0 132 0; +#X connect 228 0 227 0; +#X connect 228 0 229 0; +#X connect 229 0 34 0; +#X connect 229 0 226 0; +#X connect 229 0 228 0; +#X connect 229 0 230 0; +#X connect 230 0 40 0; +#X connect 230 0 225 0; +#X connect 230 0 229 0; +#X connect 230 0 231 0; +#X connect 231 0 8 0; +#X connect 231 0 224 0; +#X connect 231 0 230 0; +#X connect 231 0 232 0; +#X connect 232 0 7 0; +#X connect 232 0 9 0; +#X connect 232 0 231 0; +#X connect 232 0 233 0; +#X connect 233 0 60 0; +#X connect 233 0 223 0; +#X connect 233 0 232 0; +#X connect 233 0 234 0; +#X connect 234 0 68 0; +#X connect 234 0 222 0; +#X connect 234 0 233 0; +#X connect 234 0 235 0; +#X connect 235 0 76 0; +#X connect 235 0 221 0; +#X connect 235 0 234 0; +#X connect 235 0 236 0; +#X connect 236 0 84 0; +#X connect 236 0 220 0; +#X connect 236 0 235 0; +#X connect 236 0 237 0; +#X connect 237 0 92 0; +#X connect 237 0 219 0; +#X connect 237 0 236 0; +#X connect 237 0 238 0; +#X connect 238 0 100 0; +#X connect 238 0 218 0; +#X connect 238 0 237 0; +#X connect 238 0 239 0; +#X connect 239 0 108 0; +#X connect 239 0 217 0; +#X connect 239 0 238 0; +#X connect 239 0 240 0; +#X connect 240 0 115 0; +#X connect 240 0 216 0; +#X connect 240 0 239 0; +#X connect 240 0 241 0; +#X connect 241 0 123 0; +#X connect 241 0 215 0; +#X connect 241 0 240 0; +#X connect 241 0 242 0; +#X connect 242 0 131 0; +#X connect 242 0 214 0; +#X connect 242 0 241 0; +#X connect 243 0 134 0; +#X connect 243 0 200 0; +#X connect 243 0 227 0; +#X connect 243 0 244 0; +#X connect 244 0 201 0; +#X connect 244 0 226 0; +#X connect 244 0 243 0; +#X connect 244 0 245 0; +#X connect 245 0 202 0; +#X connect 245 0 225 0; +#X connect 245 0 244 0; +#X connect 245 0 246 0; +#X connect 246 0 203 0; +#X connect 246 0 224 0; +#X connect 246 0 245 0; +#X connect 246 0 247 0; +#X connect 247 0 9 0; +#X connect 247 0 204 0; +#X connect 247 0 246 0; +#X connect 247 0 248 0; +#X connect 248 0 205 0; +#X connect 248 0 223 0; +#X connect 248 0 247 0; +#X connect 248 0 249 0; +#X connect 249 0 206 0; +#X connect 249 0 222 0; +#X connect 249 0 248 0; +#X connect 249 0 250 0; +#X connect 250 0 207 0; +#X connect 250 0 221 0; +#X connect 250 0 249 0; +#X connect 250 0 251 0; +#X connect 251 0 208 0; +#X connect 251 0 220 0; +#X connect 251 0 250 0; +#X connect 251 0 252 0; +#X connect 252 0 209 0; +#X connect 252 0 219 0; +#X connect 252 0 251 0; +#X connect 252 0 253 0; +#X connect 253 0 210 0; +#X connect 253 0 218 0; +#X connect 253 0 252 0; +#X connect 253 0 254 0; +#X connect 254 0 211 0; +#X connect 254 0 217 0; +#X connect 254 0 253 0; +#X connect 254 0 255 0; +#X connect 255 0 216 0; +#X connect 255 0 254 0; +#X connect 255 0 256 0; +#X connect 255 0 259 0; +#X connect 256 0 212 0; +#X connect 256 0 215 0; +#X connect 256 0 255 0; +#X connect 256 0 257 0; +#X connect 257 0 213 0; +#X connect 257 0 214 0; +#X connect 257 0 256 0; +#X connect 258 0 104 0; +#X connect 258 0 111 0; +#X connect 258 0 112 0; +#X connect 258 0 119 0; +#X connect 259 0 187 0; +#X connect 259 0 211 0; +#X connect 259 0 212 0; +#X connect 259 0 255 0; +#X restore 606 498 pd array; +#X obj 364 384 loadbang; +#X msg 364 428 0.45; +#X msg 313 476 setL \$1; +#X msg 81 165 force3D 0 0 -0.0031; +#X msg 42 489 setZ \$1; +#X floatatom 42 342 5 0 0 0 - - -; +#X obj 31 512 iSphere3D masse 7.5 7.5 -12 0 9 0 1; +#X msg 266 425 0.4; +#X msg 313 358 1.3; +#X msg 42 318 -10; +#X obj 31 115 metro 20; +#X msg 290 404 0.8; +#X obj 42 387 line; +#X msg 42 362 \$1 100; +#X obj 477 116 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 +-1; +#X obj 477 136 t b b; +#X msg 127 462 -3; +#X obj 536 115 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 +-1; +#X obj 536 135 t b b; +#X text 337 7 elastic membrane on a sphere; +#X floatatom 313 453 5 0 0 0 - - -; +#X obj 42 293 loadbang; +#X msg 77 461 -7; +#X obj 502 161 s anim1; +#X obj 561 161 s anim2; +#X obj 77 437 r anim2; +#X obj 127 438 r anim1; +#X obj 313 334 r anim1; +#X obj 290 382 r anim2; +#X obj 51 413 s position; +#X text 63 34 <- begin (change metro speed if to much; +#X text 86 341 <- change red ball position; +#X obj 238 155 hsl 128 15 0 127 0 0 empty empty empty -2 -6 0 8 -262144 +-1 -1 0 1; +#X obj 254 178 hsl 128 15 0 127 0 0 empty empty empty -2 -6 0 8 -262144 +-1 -1 0 1; +#X obj 271 203 hsl 128 15 0 127 0 0 empty empty empty -2 -6 0 8 -262144 +-1 -1 0 1; +#X text 267 133 camera position; +#X text 359 79 <- 1; +#N canvas 0 0 545 312 spheres 0; +#X obj 44 101 r gemhead; +#X obj 44 122 separator; +#X obj 44 174 color 1 0 0; +#X msg 87 219 30; +#X obj 87 198 loadbang; +#X msg 132 104 7.5; +#X obj 132 127 / 3; +#X obj 44 239 sphere 3; +#X obj 44 151 translateXYZ 7.5 7.5 -4; +#X obj 177 128 / 3; +#X obj 132 79 loadbang; +#X msg 228 105 -7; +#X msg 197 83 -3; +#X obj 228 84 r anim2; +#X obj 197 59 r anim1; +#X obj 177 36 r position; +#X obj 323 92 gemhead; +#X obj 323 156 rotateXYZ; +#X obj 323 182 s gemhead; +#X floatatom 369 110 5 0 0 0 - - -; +#X floatatom 415 109 5 0 0 0 - - -; +#X floatatom 462 109 5 0 0 0 - - -; +#X obj 323 131 translateXYZ -2.5 -2.5 2; +#X connect 0 0 1 0; +#X connect 1 0 8 0; +#X connect 2 0 7 0; +#X connect 3 0 7 2; +#X connect 4 0 3 0; +#X connect 5 0 6 0; +#X connect 6 0 8 2; +#X connect 6 0 8 1; +#X connect 8 0 2 0; +#X connect 9 0 8 3; +#X connect 10 0 5 0; +#X connect 11 0 9 0; +#X connect 12 0 9 0; +#X connect 13 0 11 0; +#X connect 14 0 12 0; +#X connect 15 0 9 0; +#X connect 16 0 22 0; +#X connect 17 0 18 0; +#X connect 19 0 22 1; +#X connect 20 0 22 2; +#X connect 21 0 22 3; +#X connect 22 0 17 0; +#X restore 608 428 pd spheres; +#X connect 0 0 44 0; +#X connect 2 0 28 0; +#X connect 3 0 4 0; +#X connect 5 0 29 0; +#X connect 6 0 2 0; +#X connect 7 0 11 0; +#X connect 8 0 3 0; +#X connect 10 0 9 0; +#X connect 11 0 28 0; +#X connect 12 0 14 0; +#X connect 13 0 14 0; +#X connect 14 0 16 0; +#X connect 14 1 22 0; +#X connect 14 2 15 0; +#X connect 15 0 17 0; +#X connect 15 0 23 0; +#X connect 16 0 20 0; +#X connect 18 0 7 0; +#X connect 19 0 35 0; +#X connect 19 0 18 0; +#X connect 19 0 27 0; +#X connect 24 0 29 0; +#X connect 26 0 21 0; +#X connect 26 0 37 0; +#X connect 26 0 40 0; +#X connect 26 1 25 0; +#X connect 26 1 30 0; +#X connect 26 2 1 0; +#X connect 27 0 8 0; +#X connect 32 0 44 1; +#X connect 34 0 19 0; +#X connect 35 0 6 0; +#X connect 36 0 28 0; +#X connect 37 0 1 0; +#X connect 38 0 40 0; +#X connect 39 0 47 0; +#X connect 41 0 54 0; +#X connect 42 0 54 0; +#X connect 43 0 39 0; +#X connect 44 0 26 0; +#X connect 45 0 54 0; +#X connect 46 0 38 0; +#X connect 46 0 63 0; +#X connect 47 0 46 0; +#X connect 48 0 49 0; +#X connect 49 0 14 0; +#X connect 49 1 57 0; +#X connect 50 0 38 0; +#X connect 51 0 52 0; +#X connect 52 0 14 0; +#X connect 52 1 58 0; +#X connect 54 0 36 0; +#X connect 55 0 43 0; +#X connect 56 0 38 0; +#X connect 59 0 56 0; +#X connect 60 0 50 0; +#X connect 61 0 42 0; +#X connect 62 0 45 0; +#X connect 66 0 29 1; +#X connect 67 0 29 2; +#X connect 68 0 29 3; diff --git a/exemples/39_blob.pd b/exemples/39_blob.pd new file mode 100755 index 0000000..299ffb5 --- /dev/null +++ b/exemples/39_blob.pd @@ -0,0 +1,696 @@ +#N canvas 184 131 697 488 10; +#N canvas 289 242 849 567 array 0; +#X obj 401 247 blob 62 1.39556 1 0; +#X obj 28 386 lia3D link2 1 1 0 0.5; +#X obj 203 382 lia3D link2 1 1 0 0.5; +#X obj 393 385 lia3D link2 1 1 0 0.5; +#X obj 576 387 lia3D link2 1 1 0 0.5; +#X obj 793 385 lia3D link2 1 1 0 0.5; +#X obj 988 387 lia3D link2 1 1 0 0.5; +#X obj 1190 385 lia3D link2 1 1 0 0.5; +#X obj 1391 387 lia3D link2 1 1 0 0.5; +#X obj 1593 382 lia3D link2 1 1 0 0.5; +#X obj 217 66 lia3D link2 1 1 0 0.5; +#X obj 407 70 lia3D link2 1 1 0 0.5; +#X obj 603 72 lia3D link2 1 1 0 0.5; +#X obj 807 70 lia3D link2 1 1 0 0.5; +#X obj 1002 72 lia3D link2 1 1 0 0.5; +#X obj 1204 70 lia3D link2 1 1 0 0.5; +#X obj 1405 72 lia3D link2 1 1 0 0.5; +#X obj 1607 67 lia3D link2 1 1 0 0.5; +#X obj 711 461 / 10; +#X msg 751 489 setZ \$1 \, bang; +#X obj 1089 353 mass3D foo 1 0 0 5; +#X obj 1105 28 mass3D foo 1 0 0 -5; +#X obj 848 464 * -1; +#X msg 851 492 setZ \$1 \, bang; +#X obj 999 481 translateXYZ 0 0 0; +#X obj 999 509 sphere 0.3; +#X obj 1009 448 unpack s f f f; +#X obj 1128 480 translateXYZ 0 0 0; +#X obj 1128 508 sphere 0.3; +#X obj 1136 449 unpack s f f f; +#X obj 932 408 r gemhead; +#X obj 932 432 separator; +#X obj 1017 426 separator; +#X obj 42 71 lia3D link2 1 1 0 0.5; +#X msg 40 34 setK 0.5 \, setL 0; +#X obj 25 314 blob 99 6.28 3 0; +#X obj 406 314 blob 92 1.39556 3 0; +#X obj 1600 315 blob 98 5.58222 3 0; +#X obj 1400 315 blob 97 4.88444 3 0; +#X obj 1202 311 blob 96 4.18667 3 0; +#X obj 1002 311 blob 95 3.48889 3 0; +#X obj 802 311 blob 94 2.79111 3 0; +#X obj 216 314 blob 91 0.697778 3 0; +#X obj 26 286 blob 89 6.28 2.33333 0; +#X obj 1601 287 blob 88 5.58222 2.33333 0; +#X obj 1401 287 blob 87 4.88444 2.33333 0; +#X obj 1201 287 blob 86 4.18667 2.33333 0; +#X obj 1001 287 blob 85 3.48889 2.33333 0; +#X obj 801 287 blob 84 2.79111 2.33333 0; +#X obj 601 290 blob 83 2.09333 2.33333 0; +#X obj 401 287 blob 82 1.39556 2.33333 0; +#X obj 201 287 blob 81 0.697778 2.33333 0; +#X obj 26 266 blob 79 6.28 1.66667 0; +#X obj 1601 267 blob 78 5.58222 1.66667 0; +#X obj 1401 267 blob 77 4.88444 1.66667 0; +#X obj 1201 267 blob 76 4.18667 1.66667 0; +#X obj 1001 267 blob 75 3.48889 1.66667 0; +#X obj 801 267 blob 74 2.79111 1.66667 0; +#X obj 601 267 blob 73 2.09333 1.66667 0; +#X obj 401 267 blob 72 1.39556 1.66667 0; +#X obj 198 267 blob 71 0.697778 1.66667 0; +#X obj 26 246 blob 69 6.28 1 0; +#X obj 1601 247 blob 68 5.58222 1 0; +#X obj 1401 247 blob 67 4.88444 1 0; +#X obj 1201 247 blob 66 4.18667 1 0; +#X obj 1001 247 blob 65 3.48889 1 0; +#X obj 801 247 blob 64 2.79111 1 0; +#X obj 601 247 blob 63 2.09333 1 0; +#X obj 201 247 blob 61 0.697778 1 0; +#X obj 26 226 blob 59 6.28 0.333333 0; +#X obj 1601 227 blob 58 5.58222 0.333333 0; +#X obj 1401 227 blob 57 4.88444 0.333333 0; +#X obj 1201 227 blob 56 4.18667 0.333333 0; +#X obj 1001 227 blob 55 3.48889 0.333333 0; +#X obj 801 227 blob 54 2.79111 0.333333 0; +#X obj 601 227 blob 53 2.09333 0.333333 0; +#X obj 401 227 blob 52 1.39556 0.333333 0; +#X obj 202 228 blob 51 0.697778 0.333333 0; +#X obj 26 206 blob 49 6.28 -0.333333 0; +#X obj 1601 207 blob 48 5.58222 -0.333333 0; +#X obj 1401 207 blob 47 4.88444 -0.333333 0; +#X obj 1201 207 blob 46 4.18667 -0.333333 0; +#X obj 1001 207 blob 45 3.48889 -0.333333 0; +#X obj 801 207 blob 44 2.79111 -0.333333 0; +#X obj 601 207 blob 43 2.09333 -0.333333 0; +#X obj 401 207 blob 42 1.39556 -0.333333 0; +#X obj 201 207 blob 41 0.697778 -0.333333 0; +#X obj 26 186 blob 39 6.28 -1 0; +#X obj 1601 187 blob 38 5.58222 -1 0; +#X obj 1401 187 blob 37 4.88444 -1 0; +#X obj 1201 187 blob 36 4.18667 -1 0; +#X obj 1001 187 blob 35 3.48889 -1 0; +#X obj 801 187 blob 34 2.79111 -1 0; +#X obj 601 187 blob 33 2.09333 -1 0; +#X obj 401 187 blob 32 1.39556 -1 0; +#X obj 201 187 blob 31 0.697778 -1 0; +#X obj 26 166 blob 29 6.28 -1.66667 0; +#X obj 1601 167 blob 28 5.58222 -1.66667 0; +#X obj 1401 167 blob 27 4.88444 -1.66667 0; +#X obj 1201 167 blob 26 4.18667 -1.66667 0; +#X obj 1001 167 blob 25 3.48889 -1.66667 0; +#X obj 801 167 blob 24 2.79111 -1.66667 0; +#X obj 601 167 blob 23 2.09333 -1.66667 0; +#X obj 401 167 blob 22 1.39556 -1.66667 0; +#X obj 201 167 blob 21 0.697778 -1.66667 0; +#X obj 26 146 blob 19 6.28 -2.33333 0; +#X obj 1601 147 blob 18 5.58222 -2.33333 0; +#X obj 1401 147 blob 17 4.88444 -2.33333 0; +#X obj 1201 147 blob 16 4.18667 -2.33333 0; +#X obj 1001 147 blob 15 3.48889 -2.33333 0; +#X obj 801 147 blob 14 2.79111 -2.33333 0; +#X obj 601 147 blob 13 2.09333 -2.33333 0; +#X obj 401 147 blob 12 1.39556 -2.33333 0; +#X obj 201 147 blob 11 0.697778 -2.33333 0; +#X obj 26 126 blob 9 6.28 -3 0; +#X obj 1601 127 blob 8 5.58222 -3 0; +#X obj 1401 127 blob 7 4.88444 -3 0; +#X obj 1201 127 blob 6 4.18667 -3 0; +#X obj 1001 127 blob 5 3.48889 -3 0; +#X obj 801 127 blob 4 2.79111 -3 0; +#X obj 601 127 blob 3 2.09333 -3 0; +#X obj 401 127 blob 2 1.39556 -3 0; +#X obj 201 127 blob 1 0.697778 -3 0; +#X obj 598 322 blob 93 2.09333 3 0; +#X obj 38 12 loadbang; +#X obj 242 18 inlet; +#X connect 0 0 59 0; +#X connect 0 0 67 0; +#X connect 0 0 68 0; +#X connect 0 0 76 0; +#X connect 1 0 35 1; +#X connect 2 0 42 1; +#X connect 3 0 36 1; +#X connect 4 0 123 1; +#X connect 5 0 41 1; +#X connect 6 0 40 1; +#X connect 7 0 39 1; +#X connect 8 0 38 1; +#X connect 9 0 37 1; +#X connect 10 0 122 1; +#X connect 11 0 121 1; +#X connect 12 0 120 1; +#X connect 13 0 119 1; +#X connect 14 0 118 1; +#X connect 15 0 117 1; +#X connect 16 0 116 1; +#X connect 17 0 115 1; +#X connect 18 0 19 0; +#X connect 18 0 22 0; +#X connect 19 0 20 0; +#X connect 20 0 3 1; +#X connect 20 0 2 1; +#X connect 20 0 1 1; +#X connect 20 0 4 1; +#X connect 20 0 5 1; +#X connect 20 0 6 1; +#X connect 20 0 7 1; +#X connect 20 0 8 1; +#X connect 20 0 9 1; +#X connect 20 0 26 0; +#X connect 21 0 11 1; +#X connect 21 0 10 1; +#X connect 21 0 12 1; +#X connect 21 0 13 1; +#X connect 21 0 14 1; +#X connect 21 0 15 1; +#X connect 21 0 16 1; +#X connect 21 0 17 1; +#X connect 21 0 29 0; +#X connect 21 0 33 1; +#X connect 22 0 23 0; +#X connect 23 0 21 0; +#X connect 24 0 25 0; +#X connect 26 1 24 1; +#X connect 26 2 24 2; +#X connect 26 3 24 3; +#X connect 27 0 28 0; +#X connect 29 1 27 1; +#X connect 29 2 27 2; +#X connect 29 3 27 3; +#X connect 30 0 31 0; +#X connect 30 0 32 0; +#X connect 31 0 24 0; +#X connect 32 0 27 0; +#X connect 33 0 114 1; +#X connect 34 0 33 0; +#X connect 34 0 10 0; +#X connect 34 0 11 0; +#X connect 34 0 12 0; +#X connect 34 0 13 0; +#X connect 34 0 14 0; +#X connect 34 0 15 0; +#X connect 34 0 16 0; +#X connect 34 0 17 0; +#X connect 34 0 1 0; +#X connect 34 0 2 0; +#X connect 34 0 3 0; +#X connect 34 0 4 0; +#X connect 34 0 5 0; +#X connect 34 0 6 0; +#X connect 34 0 7 0; +#X connect 34 0 8 0; +#X connect 34 0 9 0; +#X connect 35 0 1 0; +#X connect 35 0 37 0; +#X connect 35 0 42 0; +#X connect 35 0 43 0; +#X connect 36 0 3 0; +#X connect 36 0 42 0; +#X connect 36 0 50 0; +#X connect 36 0 123 0; +#X connect 37 0 9 0; +#X connect 37 0 35 0; +#X connect 37 0 38 0; +#X connect 37 0 44 0; +#X connect 38 0 8 0; +#X connect 38 0 37 0; +#X connect 38 0 39 0; +#X connect 38 0 45 0; +#X connect 39 0 7 0; +#X connect 39 0 38 0; +#X connect 39 0 40 0; +#X connect 39 0 46 0; +#X connect 40 0 6 0; +#X connect 40 0 39 0; +#X connect 40 0 41 0; +#X connect 40 0 47 0; +#X connect 41 0 5 0; +#X connect 41 0 40 0; +#X connect 41 0 48 0; +#X connect 41 0 123 0; +#X connect 42 0 2 0; +#X connect 42 0 35 0; +#X connect 42 0 36 0; +#X connect 42 0 51 0; +#X connect 43 0 35 0; +#X connect 43 0 44 0; +#X connect 43 0 51 0; +#X connect 43 0 52 0; +#X connect 44 0 37 0; +#X connect 44 0 43 0; +#X connect 44 0 45 0; +#X connect 44 0 53 0; +#X connect 45 0 38 0; +#X connect 45 0 44 0; +#X connect 45 0 46 0; +#X connect 45 0 54 0; +#X connect 46 0 39 0; +#X connect 46 0 45 0; +#X connect 46 0 47 0; +#X connect 46 0 55 0; +#X connect 47 0 40 0; +#X connect 47 0 46 0; +#X connect 47 0 48 0; +#X connect 47 0 56 0; +#X connect 48 0 41 0; +#X connect 48 0 47 0; +#X connect 48 0 49 0; +#X connect 48 0 57 0; +#X connect 49 0 48 0; +#X connect 49 0 50 0; +#X connect 49 0 58 0; +#X connect 49 0 123 0; +#X connect 50 0 36 0; +#X connect 50 0 49 0; +#X connect 50 0 51 0; +#X connect 50 0 59 0; +#X connect 51 0 42 0; +#X connect 51 0 43 0; +#X connect 51 0 50 0; +#X connect 51 0 60 0; +#X connect 52 0 43 0; +#X connect 52 0 53 0; +#X connect 52 0 60 0; +#X connect 52 0 61 0; +#X connect 53 0 44 0; +#X connect 53 0 52 0; +#X connect 53 0 54 0; +#X connect 53 0 62 0; +#X connect 54 0 45 0; +#X connect 54 0 53 0; +#X connect 54 0 55 0; +#X connect 54 0 63 0; +#X connect 55 0 46 0; +#X connect 55 0 54 0; +#X connect 55 0 56 0; +#X connect 55 0 64 0; +#X connect 56 0 47 0; +#X connect 56 0 55 0; +#X connect 56 0 57 0; +#X connect 56 0 65 0; +#X connect 57 0 48 0; +#X connect 57 0 56 0; +#X connect 57 0 58 0; +#X connect 57 0 66 0; +#X connect 58 0 49 0; +#X connect 58 0 57 0; +#X connect 58 0 59 0; +#X connect 58 0 67 0; +#X connect 59 0 0 0; +#X connect 59 0 50 0; +#X connect 59 0 58 0; +#X connect 59 0 60 0; +#X connect 60 0 51 0; +#X connect 60 0 52 0; +#X connect 60 0 59 0; +#X connect 60 0 68 0; +#X connect 61 0 52 0; +#X connect 61 0 62 0; +#X connect 61 0 68 0; +#X connect 61 0 69 0; +#X connect 62 0 53 0; +#X connect 62 0 61 0; +#X connect 62 0 63 0; +#X connect 62 0 70 0; +#X connect 63 0 54 0; +#X connect 63 0 62 0; +#X connect 63 0 64 0; +#X connect 63 0 71 0; +#X connect 64 0 55 0; +#X connect 64 0 63 0; +#X connect 64 0 65 0; +#X connect 64 0 72 0; +#X connect 65 0 56 0; +#X connect 65 0 64 0; +#X connect 65 0 66 0; +#X connect 65 0 73 0; +#X connect 66 0 57 0; +#X connect 66 0 65 0; +#X connect 66 0 67 0; +#X connect 66 0 74 0; +#X connect 67 0 0 0; +#X connect 67 0 58 0; +#X connect 67 0 66 0; +#X connect 67 0 75 0; +#X connect 68 0 0 0; +#X connect 68 0 60 0; +#X connect 68 0 61 0; +#X connect 68 0 77 0; +#X connect 69 0 61 0; +#X connect 69 0 70 0; +#X connect 69 0 77 0; +#X connect 69 0 78 0; +#X connect 70 0 62 0; +#X connect 70 0 69 0; +#X connect 70 0 71 0; +#X connect 70 0 79 0; +#X connect 71 0 63 0; +#X connect 71 0 70 0; +#X connect 71 0 72 0; +#X connect 71 0 80 0; +#X connect 72 0 64 0; +#X connect 72 0 71 0; +#X connect 72 0 73 0; +#X connect 72 0 81 0; +#X connect 73 0 65 0; +#X connect 73 0 72 0; +#X connect 73 0 74 0; +#X connect 73 0 82 0; +#X connect 74 0 66 0; +#X connect 74 0 73 0; +#X connect 74 0 75 0; +#X connect 74 0 83 0; +#X connect 75 0 67 0; +#X connect 75 0 74 0; +#X connect 75 0 76 0; +#X connect 75 0 84 0; +#X connect 76 0 0 0; +#X connect 76 0 75 0; +#X connect 76 0 77 0; +#X connect 76 0 85 0; +#X connect 77 0 68 0; +#X connect 77 0 69 0; +#X connect 77 0 76 0; +#X connect 77 0 86 0; +#X connect 78 0 69 0; +#X connect 78 0 79 0; +#X connect 78 0 86 0; +#X connect 78 0 87 0; +#X connect 79 0 70 0; +#X connect 79 0 78 0; +#X connect 79 0 80 0; +#X connect 79 0 88 0; +#X connect 80 0 71 0; +#X connect 80 0 79 0; +#X connect 80 0 81 0; +#X connect 80 0 89 0; +#X connect 81 0 72 0; +#X connect 81 0 80 0; +#X connect 81 0 82 0; +#X connect 81 0 90 0; +#X connect 82 0 73 0; +#X connect 82 0 81 0; +#X connect 82 0 83 0; +#X connect 82 0 91 0; +#X connect 83 0 74 0; +#X connect 83 0 82 0; +#X connect 83 0 84 0; +#X connect 83 0 92 0; +#X connect 84 0 75 0; +#X connect 84 0 83 0; +#X connect 84 0 85 0; +#X connect 84 0 93 0; +#X connect 85 0 76 0; +#X connect 85 0 84 0; +#X connect 85 0 86 0; +#X connect 85 0 94 0; +#X connect 86 0 77 0; +#X connect 86 0 78 0; +#X connect 86 0 85 0; +#X connect 86 0 95 0; +#X connect 87 0 78 0; +#X connect 87 0 88 0; +#X connect 87 0 95 0; +#X connect 87 0 96 0; +#X connect 88 0 79 0; +#X connect 88 0 87 0; +#X connect 88 0 89 0; +#X connect 88 0 97 0; +#X connect 89 0 80 0; +#X connect 89 0 88 0; +#X connect 89 0 90 0; +#X connect 89 0 98 0; +#X connect 90 0 81 0; +#X connect 90 0 89 0; +#X connect 90 0 91 0; +#X connect 90 0 99 0; +#X connect 91 0 82 0; +#X connect 91 0 90 0; +#X connect 91 0 92 0; +#X connect 91 0 100 0; +#X connect 92 0 83 0; +#X connect 92 0 91 0; +#X connect 92 0 93 0; +#X connect 92 0 101 0; +#X connect 93 0 84 0; +#X connect 93 0 92 0; +#X connect 93 0 94 0; +#X connect 93 0 102 0; +#X connect 94 0 85 0; +#X connect 94 0 93 0; +#X connect 94 0 95 0; +#X connect 94 0 103 0; +#X connect 95 0 86 0; +#X connect 95 0 87 0; +#X connect 95 0 94 0; +#X connect 95 0 104 0; +#X connect 96 0 87 0; +#X connect 96 0 97 0; +#X connect 96 0 104 0; +#X connect 96 0 105 0; +#X connect 97 0 88 0; +#X connect 97 0 96 0; +#X connect 97 0 98 0; +#X connect 97 0 106 0; +#X connect 98 0 89 0; +#X connect 98 0 97 0; +#X connect 98 0 99 0; +#X connect 98 0 107 0; +#X connect 99 0 90 0; +#X connect 99 0 98 0; +#X connect 99 0 100 0; +#X connect 99 0 108 0; +#X connect 100 0 91 0; +#X connect 100 0 99 0; +#X connect 100 0 101 0; +#X connect 100 0 109 0; +#X connect 101 0 92 0; +#X connect 101 0 100 0; +#X connect 101 0 102 0; +#X connect 101 0 110 0; +#X connect 102 0 93 0; +#X connect 102 0 101 0; +#X connect 102 0 103 0; +#X connect 102 0 111 0; +#X connect 103 0 94 0; +#X connect 103 0 102 0; +#X connect 103 0 104 0; +#X connect 103 0 112 0; +#X connect 104 0 95 0; +#X connect 104 0 96 0; +#X connect 104 0 103 0; +#X connect 104 0 113 0; +#X connect 105 0 96 0; +#X connect 105 0 106 0; +#X connect 105 0 113 0; +#X connect 105 0 114 0; +#X connect 106 0 97 0; +#X connect 106 0 105 0; +#X connect 106 0 107 0; +#X connect 106 0 115 0; +#X connect 107 0 98 0; +#X connect 107 0 106 0; +#X connect 107 0 108 0; +#X connect 107 0 116 0; +#X connect 108 0 99 0; +#X connect 108 0 107 0; +#X connect 108 0 109 0; +#X connect 108 0 117 0; +#X connect 109 0 100 0; +#X connect 109 0 108 0; +#X connect 109 0 110 0; +#X connect 109 0 118 0; +#X connect 110 0 101 0; +#X connect 110 0 109 0; +#X connect 110 0 111 0; +#X connect 110 0 119 0; +#X connect 111 0 102 0; +#X connect 111 0 110 0; +#X connect 111 0 112 0; +#X connect 111 0 120 0; +#X connect 112 0 103 0; +#X connect 112 0 111 0; +#X connect 112 0 113 0; +#X connect 112 0 121 0; +#X connect 113 0 104 0; +#X connect 113 0 105 0; +#X connect 113 0 112 0; +#X connect 113 0 122 0; +#X connect 114 0 33 0; +#X connect 114 0 105 0; +#X connect 114 0 115 0; +#X connect 114 0 122 0; +#X connect 115 0 17 0; +#X connect 115 0 106 0; +#X connect 115 0 114 0; +#X connect 115 0 116 0; +#X connect 116 0 16 0; +#X connect 116 0 107 0; +#X connect 116 0 115 0; +#X connect 116 0 117 0; +#X connect 117 0 15 0; +#X connect 117 0 108 0; +#X connect 117 0 116 0; +#X connect 117 0 118 0; +#X connect 118 0 14 0; +#X connect 118 0 109 0; +#X connect 118 0 117 0; +#X connect 118 0 119 0; +#X connect 119 0 13 0; +#X connect 119 0 110 0; +#X connect 119 0 118 0; +#X connect 119 0 120 0; +#X connect 120 0 12 0; +#X connect 120 0 111 0; +#X connect 120 0 119 0; +#X connect 120 0 121 0; +#X connect 121 0 11 0; +#X connect 121 0 112 0; +#X connect 121 0 120 0; +#X connect 121 0 122 0; +#X connect 122 0 10 0; +#X connect 122 0 113 0; +#X connect 122 0 114 0; +#X connect 122 0 121 0; +#X connect 123 0 4 0; +#X connect 123 0 36 0; +#X connect 123 0 41 0; +#X connect 123 0 49 0; +#X connect 124 0 34 0; +#X connect 125 0 18 0; +#X restore 51 367 pd array; +#X obj 31 35 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0 1 +; +#X obj 106 226 s masse; +#X msg 426 100 0 \, destroy; +#X obj 187 69 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 +-1; +#X obj 203 95 loadbang; +#X msg 344 153 reset; +#X msg 140 150 resetF; +#X obj 140 174 s link; +#X obj 58 159 s lia; +#X obj 239 152 s r_lia; +#X msg 415 75 lighting 1 \, create \, 1; +#X obj 74 180 s masse3; +#X obj 31 106 t b b b; +#X obj 415 227 ch_gemwin; +#X obj 89 204 s masse2; +#X text 213 68 <- reset; +#X text 61 34 <- begin (change metro speed if to much); +#X floatatom 74 57 5 0 0 0 - - -; +#X obj 344 176 s masse2; +#X obj 42 136 s link2; +#X msg 187 151 resetF; +#X obj 187 174 s link2; +#X msg 291 153 bang; +#X obj 291 176 s masse3; +#X obj 44 258 iAmbient3D masse 0 0 0 0 0 0 0.113; +#X obj 50 408 / 100; +#X obj 31 80 metro 40; +#X obj 31 456 iCylinder3D masse 0 0 1 0 0 -6 0 1.5 0 0.6; +#X obj 54 347 hsl 128 15 0 127 0 0 empty empty empty -2 -6 0 8 -262144 +-1 -1 4500 1; +#X msg 51 322 45; +#X text 293 9 "Blob" simulation; +#X obj 187 120 trigger bang bang bang bang; +#X text 566 76 <- create GEM windows; +#X obj 51 298 loadbang; +#X obj 53 388 hsl 128 15 20 100 0 0 empty empty empty -2 -6 0 8 -262144 +-1 -1 0 1; +#X text 202 347 <- play here (change length of the blob); +#X text 203 384 <- play here (change radius); +#X msg 50 431 setKN \$1; +#X obj 467 204 hsl 128 15 0 127 0 0 empty empty empty -2 -6 0 8 -262144 +-1 -1 0 1; +#X obj 450 181 hsl 128 15 0 127 0 0 empty empty empty -2 -6 0 8 -262144 +-1 -1 0 1; +#X obj 434 156 hsl 128 15 0 127 0 0 empty empty empty -2 -6 0 8 -262144 +-1 -1 0 1; +#X text 457 137 change camera position; +#N canvas 0 0 454 304 gem 0; +#X obj 21 73 world_light; +#X obj 21 45 gemhead; +#X obj 241 34 gemhead; +#X obj 241 83 s gemhead; +#X obj 241 58 color 1 1 1; +#X obj 107 81 world_light; +#X obj 107 35 gemhead; +#X obj 107 57 rotateXYZ 30 150 0; +#X connect 1 0 0 0; +#X connect 2 0 4 0; +#X connect 4 0 3 0; +#X connect 6 0 7 0; +#X connect 7 0 5 0; +#X restore 513 318 pd gem; +#N canvas 0 0 376 283 init 0; +#X msg 28 80 0.5; +#X msg 28 126 setK \$1; +#X msg 209 125 setM \$1; +#X obj 209 149 s masse; +#X floatatom 28 104 5 0 0 0 - - -; +#X floatatom 141 103 5 0 0 0 - - -; +#X floatatom 209 104 5 0 0 0 - - -; +#X msg 141 125 setD2 \$1; +#X floatatom 85 104 5 0 0 0 - - -; +#X msg 85 125 setD \$1; +#X msg 141 79 0.03; +#X obj 141 50 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 +-1; +#X msg 85 79 0; +#X obj 85 150 s link; +#X obj 141 26 loadbang; +#X msg 209 80 10; +#X connect 0 0 4 0; +#X connect 1 0 13 0; +#X connect 2 0 3 0; +#X connect 4 0 1 0; +#X connect 5 0 7 0; +#X connect 6 0 2 0; +#X connect 7 0 13 0; +#X connect 8 0 9 0; +#X connect 9 0 13 0; +#X connect 10 0 5 0; +#X connect 11 0 12 0; +#X connect 11 0 10 0; +#X connect 11 0 15 0; +#X connect 11 0 0 0; +#X connect 12 0 8 0; +#X connect 14 0 11 0; +#X connect 15 0 6 0; +#X restore 512 292 pd init; +#X connect 1 0 27 0; +#X connect 3 0 14 0; +#X connect 4 0 32 0; +#X connect 5 0 32 0; +#X connect 6 0 19 0; +#X connect 7 0 8 0; +#X connect 11 0 14 0; +#X connect 13 0 9 0; +#X connect 13 0 20 0; +#X connect 13 0 25 0; +#X connect 13 0 28 0; +#X connect 13 1 12 0; +#X connect 13 1 15 0; +#X connect 13 2 2 0; +#X connect 18 0 27 1; +#X connect 21 0 22 0; +#X connect 23 0 24 0; +#X connect 26 0 38 0; +#X connect 27 0 13 0; +#X connect 29 0 0 0; +#X connect 30 0 29 0; +#X connect 32 0 7 0; +#X connect 32 0 21 0; +#X connect 32 1 10 0; +#X connect 32 2 23 0; +#X connect 32 3 6 0; +#X connect 34 0 30 0; +#X connect 35 0 26 0; +#X connect 38 0 28 0; +#X connect 39 0 14 3; +#X connect 40 0 14 2; +#X connect 41 0 14 1; diff --git a/exemples/40_i3D.pd b/exemples/40_i3D.pd new file mode 100755 index 0000000..34b88cd --- /dev/null +++ b/exemples/40_i3D.pd @@ -0,0 +1,214 @@ +#N canvas 136 11 692 589 10; +#X obj 33 84 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0 1 +; +#X msg 419 150 0 \, destroy; +#X obj 431 424 world_light; +#X obj 431 396 gemhead; +#X obj 141 110 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 +-1; +#X obj 157 136 loadbang; +#X msg 354 188 reset; +#X msg 407 125 lighting 1 \, create \, 1; +#X obj 33 155 t b b b; +#X obj 407 262 ch_gemwin; +#X text 167 109 <- reset; +#X text 63 83 <- begin (change metro speed if to much); +#X floatatom 76 106 5 0 0 0 - - -; +#X obj 33 129 metro 40; +#X obj 511 447 world_light; +#X obj 511 401 gemhead; +#X obj 511 423 rotateXYZ 30 150 0; +#X text 549 125 <- create GEM windows; +#X obj 141 161 t b b; +#X obj 33 186 s link; +#X obj 427 482 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0 +1; +#N canvas 0 0 967 703 array 0; +#X obj 860 780 i3D 119 2 1 2; +#X obj 0 0 i3D 0 -2 -2 -2; +#X obj 200 0 i3D 1 -1 -2 -2; +#X obj 400 0 i3D 2 0 -2 -2; +#X obj 600 0 i3D 3 1 -2 -2; +#X obj 800 0 i3D 4 2 -2 -2; +#X obj 20 20 i3D 5 -2 -1 -2; +#X obj 220 20 i3D 6 -1 -1 -2; +#X obj 420 20 i3D 7 0 -1 -2; +#X obj 620 20 i3D 8 1 -1 -2; +#X obj 820 20 i3D 9 2 -1 -2; +#X obj 40 40 i3D 10 -2 0 -2; +#X obj 240 40 i3D 11 -1 0 -2; +#X obj 440 40 i3D 12 0 0 -2; +#X obj 640 40 i3D 13 1 0 -2; +#X obj 840 40 i3D 14 2 0 -2; +#X obj 60 60 i3D 15 -2 1 -2; +#X obj 260 60 i3D 16 -1 1 -2; +#X obj 460 60 i3D 17 0 1 -2; +#X obj 660 60 i3D 18 1 1 -2; +#X obj 860 60 i3D 19 2 1 -2; +#X obj 80 80 i3D 20 -2 2 -2; +#X obj 280 80 i3D 21 -1 2 -2; +#X obj 480 80 i3D 22 0 2 -2; +#X obj 680 80 i3D 23 1 2 -2; +#X obj 880 80 i3D 24 2 2 -2; +#X obj 0 180 i3D 25 -2 -2 -1; +#X obj 200 180 i3D 26 -1 -2 -1; +#X obj 400 180 i3D 27 0 -2 -1; +#X obj 600 180 i3D 28 1 -2 -1; +#X obj 800 180 i3D 29 2 -2 -1; +#X obj 20 200 i3D 30 -2 -1 -1; +#X obj 220 200 i3D 31 -1 -1 -1; +#X obj 420 200 i3D 32 0 -1 -1; +#X obj 620 200 i3D 33 1 -1 -1; +#X obj 820 200 i3D 34 2 -1 -1; +#X obj 40 220 i3D 35 -2 0 -1; +#X obj 240 220 i3D 36 -1 0 -1; +#X obj 440 220 i3D 37 0 0 -1; +#X obj 640 220 i3D 38 1 0 -1; +#X obj 840 220 i3D 39 2 0 -1; +#X obj 60 240 i3D 40 -2 1 -1; +#X obj 260 240 i3D 41 -1 1 -1; +#X obj 460 240 i3D 42 0 1 -1; +#X obj 660 240 i3D 43 1 1 -1; +#X obj 860 240 i3D 44 2 1 -1; +#X obj 80 260 i3D 45 -2 2 -1; +#X obj 280 260 i3D 46 -1 2 -1; +#X obj 480 260 i3D 47 0 2 -1; +#X obj 680 260 i3D 48 1 2 -1; +#X obj 880 260 i3D 49 2 2 -1; +#X obj 0 360 i3D 50 -2 -2 0; +#X obj 200 360 i3D 51 -1 -2 0; +#X obj 400 360 i3D 52 0 -2 0; +#X obj 600 360 i3D 53 1 -2 0; +#X obj 800 360 i3D 54 2 -2 0; +#X obj 20 380 i3D 55 -2 -1 0; +#X obj 220 380 i3D 56 -1 -1 0; +#X obj 420 380 i3D 57 0 -1 0; +#X obj 620 380 i3D 58 1 -1 0; +#X obj 820 380 i3D 59 2 -1 0; +#X obj 40 400 i3D 60 -2 0 0; +#X obj 240 400 i3D 61 -1 0 0; +#X obj 440 400 i3D 62 0 0 0; +#X obj 640 400 i3D 63 1 0 0; +#X obj 840 400 i3D 64 2 0 0; +#X obj 60 420 i3D 65 -2 1 0; +#X obj 260 420 i3D 66 -1 1 0; +#X obj 460 420 i3D 67 0 1 0; +#X obj 660 420 i3D 68 1 1 0; +#X obj 860 420 i3D 69 2 1 0; +#X obj 80 440 i3D 70 -2 2 0; +#X obj 280 440 i3D 71 -1 2 0; +#X obj 480 440 i3D 72 0 2 0; +#X obj 680 440 i3D 73 1 2 0; +#X obj 880 440 i3D 74 2 2 0; +#X obj 0 540 i3D 75 -2 -2 1; +#X obj 200 540 i3D 76 -1 -2 1; +#X obj 400 540 i3D 77 0 -2 1; +#X obj 600 540 i3D 78 1 -2 1; +#X obj 800 540 i3D 79 2 -2 1; +#X obj 20 560 i3D 80 -2 -1 1; +#X obj 220 560 i3D 81 -1 -1 1; +#X obj 420 560 i3D 82 0 -1 1; +#X obj 620 560 i3D 83 1 -1 1; +#X obj 820 560 i3D 84 2 -1 1; +#X obj 40 580 i3D 85 -2 0 1; +#X obj 240 580 i3D 86 -1 0 1; +#X obj 440 580 i3D 87 0 0 1; +#X obj 640 580 i3D 88 1 0 1; +#X obj 840 580 i3D 89 2 0 1; +#X obj 60 600 i3D 90 -2 1 1; +#X obj 260 600 i3D 91 -1 1 1; +#X obj 460 600 i3D 92 0 1 1; +#X obj 660 600 i3D 93 1 1 1; +#X obj 860 600 i3D 94 2 1 1; +#X obj 80 620 i3D 95 -2 2 1; +#X obj 280 620 i3D 96 -1 2 1; +#X obj 480 620 i3D 97 0 2 1; +#X obj 680 620 i3D 98 1 2 1; +#X obj 880 620 i3D 99 2 2 1; +#X obj 0 720 i3D 100 -2 -2 2; +#X obj 200 720 i3D 101 -1 -2 2; +#X obj 400 720 i3D 102 0 -2 2; +#X obj 600 720 i3D 103 1 -2 2; +#X obj 800 720 i3D 104 2 -2 2; +#X obj 20 740 i3D 105 -2 -1 2; +#X obj 220 740 i3D 106 -1 -1 2; +#X obj 420 740 i3D 107 0 -1 2; +#X obj 620 740 i3D 108 1 -1 2; +#X obj 820 740 i3D 109 2 -1 2; +#X obj 40 760 i3D 110 -2 0 2; +#X obj 240 760 i3D 111 -1 0 2; +#X obj 440 760 i3D 112 0 0 2; +#X obj 640 760 i3D 113 1 0 2; +#X obj 840 760 i3D 114 2 0 2; +#X obj 60 780 i3D 115 -2 1 2; +#X obj 260 780 i3D 116 -1 1 2; +#X obj 460 780 i3D 117 0 1 2; +#X obj 660 780 i3D 118 1 1 2; +#X obj 80 800 i3D 120 -2 2 2; +#X obj 280 800 i3D 121 -1 2 2; +#X obj 480 800 i3D 122 0 2 2; +#X obj 680 800 i3D 123 1 2 2; +#X obj 880 800 i3D 124 2 2 2; +#X restore 431 448 pd array; +#X obj 427 502 constructor 5 5 5 -2 2 -2 2 -2 2 i3D; +#X obj 70 186 s mass; +#X obj 354 211 s mass; +#X obj 141 211 s link; +#X obj 43 296 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 +-1; +#X obj 59 311 iAmbient3D mass 0 0 0 1 1 1; +#X obj 42 341 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 +-1; +#X obj 43 387 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 +-1; +#X obj 42 434 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 +-1; +#X obj 42 482 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 +-1; +#X msg 141 187 resetF \, setK 0.1 \, setD 1 \, setD2 1; +#X text 287 9 interactors on a masse field; +#X obj 58 497 iSphere3D mass 0 0 0 0.1 5 0 1; +#X obj 42 528 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 +-1; +#X obj 59 402 iCylinder3D mass 1 1 1 0 0 0 0.1 5 0 0 0 0 0 -10 10 0 +0.5; +#X obj 58 356 iCylinder3D mass 1 1 1 0 0 0 0.1 2 0 2; +#X obj 58 449 iCircle3D mass 1 1 1 2 2 2 0.1 2 0 0 0 4 0 0.3; +#X obj 58 543 iPlane3D mass 1 1 1 0 0 0 0 1; +#X text 28 263 you can test the action of the interactor in a 3D space +; +#X text 213 32 this patch allows to see the displacement due to interactors +in 3D; +#X obj 426 187 hsl 128 15 0 127 0 0 empty empty empty -2 -6 0 8 -262144 +-1 -1 0 1; +#X obj 442 211 hsl 128 15 0 127 0 0 empty empty empty -2 -6 0 8 -262144 +-1 -1 0 1; +#X obj 459 234 hsl 128 15 0 127 0 0 empty empty empty -2 -6 0 8 -262144 +-1 -1 0 1; +#X text 505 169 camera position; +#X connect 0 0 13 0; +#X connect 1 0 9 0; +#X connect 3 0 2 0; +#X connect 4 0 18 0; +#X connect 5 0 18 0; +#X connect 6 0 24 0; +#X connect 7 0 9 0; +#X connect 8 0 19 0; +#X connect 8 2 23 0; +#X connect 12 0 13 1; +#X connect 13 0 8 0; +#X connect 15 0 16 0; +#X connect 16 0 14 0; +#X connect 18 0 32 0; +#X connect 18 1 6 0; +#X connect 20 0 22 0; +#X connect 26 0 27 0; +#X connect 28 0 37 0; +#X connect 29 0 36 0; +#X connect 30 0 38 0; +#X connect 31 0 34 0; +#X connect 32 0 25 0; +#X connect 35 0 39 0; +#X connect 42 0 9 1; +#X connect 43 0 9 2; +#X connect 44 0 9 3; diff --git a/exemples/41_morfing.pd b/exemples/41_morfing.pd new file mode 100755 index 0000000..4840f2c --- /dev/null +++ b/exemples/41_morfing.pd @@ -0,0 +1,265 @@ +#N canvas 204 50 605 681 10; +#X obj 34 71 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0 1 +; +#X msg 153 131 0 \, destroy; +#X obj 334 481 world_light; +#X obj 334 453 gemhead; +#X obj 349 204 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 +-1; +#X obj 365 230 loadbang; +#X msg 144 109 lighting 1 \, create \, 1; +#X obj 33 139 t b b b; +#X obj 144 244 ch_gemwin; +#X text 375 203 <- reset; +#X text 64 70 <- begin (change metro speed if to much); +#X floatatom 77 93 5 0 0 0 - - -; +#X obj 34 116 metro 40; +#X obj 414 504 world_light; +#X obj 414 458 gemhead; +#X obj 414 480 rotateXYZ 30 150 0; +#X text 294 108 <- create GEM windows; +#X obj 334 547 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0 +1; +#N canvas 243 141 997 733 array 0; +#X obj 220 380 i3D2 56 -1 -1 0; +#X obj 80 80 i3D2 20 -2 2 -2; +#X obj 400 360 i3D2 52 0 -2 0; +#X obj 240 400 i3D2 61 -1 0 0; +#X obj 20 20 i3D2 5 -2 -1 -2; +#X obj 600 540 i3D2 78 1 -2 1; +#X obj 480 440 i3D2 72 0 2 0; +#X obj 200 180 i3D2 26 -1 -2 -1; +#X obj 0 0 i3D2 0 -2 -2 -2; +#X obj 200 0 i3D2 1 -1 -2 -2; +#X obj 400 0 i3D2 2 0 -2 -2; +#X obj 600 0 i3D2 3 1 -2 -2; +#X obj 800 0 i3D2 4 2 -2 -2; +#X obj 220 20 i3D2 6 -1 -1 -2; +#X obj 420 20 i3D2 7 0 -1 -2; +#X obj 620 20 i3D2 8 1 -1 -2; +#X obj 820 20 i3D2 9 2 -1 -2; +#X obj 40 40 i3D2 10 -2 0 -2; +#X obj 240 40 i3D2 11 -1 0 -2; +#X obj 440 40 i3D2 12 0 0 -2; +#X obj 640 40 i3D2 13 1 0 -2; +#X obj 840 40 i3D2 14 2 0 -2; +#X obj 60 60 i3D2 15 -2 1 -2; +#X obj 260 60 i3D2 16 -1 1 -2; +#X obj 460 60 i3D2 17 0 1 -2; +#X obj 660 60 i3D2 18 1 1 -2; +#X obj 860 60 i3D2 19 2 1 -2; +#X obj 280 80 i3D2 21 -1 2 -2; +#X obj 480 80 i3D2 22 0 2 -2; +#X obj 680 80 i3D2 23 1 2 -2; +#X obj 880 80 i3D2 24 2 2 -2; +#X obj 0 180 i3D2 25 -2 -2 -1; +#X obj 400 180 i3D2 27 0 -2 -1; +#X obj 600 180 i3D2 28 1 -2 -1; +#X obj 800 180 i3D2 29 2 -2 -1; +#X obj 20 200 i3D2 30 -2 -1 -1; +#X obj 220 200 i3D2 31 -1 -1 -1; +#X obj 420 200 i3D2 32 0 -1 -1; +#X obj 620 200 i3D2 33 1 -1 -1; +#X obj 820 200 i3D2 34 2 -1 -1; +#X obj 40 220 i3D2 35 -2 0 -1; +#X obj 240 220 i3D2 36 -1 0 -1; +#X obj 440 220 i3D2 37 0 0 -1; +#X obj 640 220 i3D2 38 1 0 -1; +#X obj 840 220 i3D2 39 2 0 -1; +#X obj 60 240 i3D2 40 -2 1 -1; +#X obj 260 240 i3D2 41 -1 1 -1; +#X obj 460 240 i3D2 42 0 1 -1; +#X obj 660 240 i3D2 43 1 1 -1; +#X obj 860 240 i3D2 44 2 1 -1; +#X obj 80 260 i3D2 45 -2 2 -1; +#X obj 280 260 i3D2 46 -1 2 -1; +#X obj 480 260 i3D2 47 0 2 -1; +#X obj 680 260 i3D2 48 1 2 -1; +#X obj 880 260 i3D2 49 2 2 -1; +#X obj 0 360 i3D2 50 -2 -2 0; +#X obj 200 360 i3D2 51 -1 -2 0; +#X obj 600 360 i3D2 53 1 -2 0; +#X obj 800 360 i3D2 54 2 -2 0; +#X obj 20 380 i3D2 55 -2 -1 0; +#X obj 420 380 i3D2 57 0 -1 0; +#X obj 620 380 i3D2 58 1 -1 0; +#X obj 820 380 i3D2 59 2 -1 0; +#X obj 40 400 i3D2 60 -2 0 0; +#X obj 440 400 i3D2 62 0 0 0; +#X obj 640 400 i3D2 63 1 0 0; +#X obj 840 400 i3D2 64 2 0 0; +#X obj 60 420 i3D2 65 -2 1 0; +#X obj 260 420 i3D2 66 -1 1 0; +#X obj 460 420 i3D2 67 0 1 0; +#X obj 660 420 i3D2 68 1 1 0; +#X obj 860 420 i3D2 69 2 1 0; +#X obj 80 440 i3D2 70 -2 2 0; +#X obj 280 440 i3D2 71 -1 2 0; +#X obj 680 440 i3D2 73 1 2 0; +#X obj 880 440 i3D2 74 2 2 0; +#X obj 0 540 i3D2 75 -2 -2 1; +#X obj 200 540 i3D2 76 -1 -2 1; +#X obj 400 540 i3D2 77 0 -2 1; +#X obj 800 540 i3D2 79 2 -2 1; +#X obj 20 560 i3D2 80 -2 -1 1; +#X obj 220 560 i3D2 81 -1 -1 1; +#X obj 420 560 i3D2 82 0 -1 1; +#X obj 620 560 i3D2 83 1 -1 1; +#X obj 820 560 i3D2 84 2 -1 1; +#X obj 40 580 i3D2 85 -2 0 1; +#X obj 240 580 i3D2 86 -1 0 1; +#X obj 440 580 i3D2 87 0 0 1; +#X obj 640 580 i3D2 88 1 0 1; +#X obj 840 580 i3D2 89 2 0 1; +#X obj 60 600 i3D2 90 -2 1 1; +#X obj 260 600 i3D2 91 -1 1 1; +#X obj 460 600 i3D2 92 0 1 1; +#X obj 660 600 i3D2 93 1 1 1; +#X obj 860 600 i3D2 94 2 1 1; +#X obj 80 620 i3D2 95 -2 2 1; +#X obj 280 620 i3D2 96 -1 2 1; +#X obj 480 620 i3D2 97 0 2 1; +#X obj 680 620 i3D2 98 1 2 1; +#X obj 880 620 i3D2 99 2 2 1; +#X obj 0 720 i3D2 100 -2 -2 2; +#X obj 200 720 i3D2 101 -1 -2 2; +#X obj 400 720 i3D2 102 0 -2 2; +#X obj 600 720 i3D2 103 1 -2 2; +#X obj 800 720 i3D2 104 2 -2 2; +#X obj 20 740 i3D2 105 -2 -1 2; +#X obj 220 740 i3D2 106 -1 -1 2; +#X obj 420 740 i3D2 107 0 -1 2; +#X obj 620 740 i3D2 108 1 -1 2; +#X obj 820 740 i3D2 109 2 -1 2; +#X obj 40 760 i3D2 110 -2 0 2; +#X obj 240 760 i3D2 111 -1 0 2; +#X obj 440 760 i3D2 112 0 0 2; +#X obj 640 760 i3D2 113 1 0 2; +#X obj 840 760 i3D2 114 2 0 2; +#X obj 60 780 i3D2 115 -2 1 2; +#X obj 260 780 i3D2 116 -1 1 2; +#X obj 460 780 i3D2 117 0 1 2; +#X obj 660 780 i3D2 118 1 1 2; +#X obj 860 780 i3D2 119 2 1 2; +#X obj 80 800 i3D2 120 -2 2 2; +#X obj 280 800 i3D2 121 -1 2 2; +#X obj 480 800 i3D2 122 0 2 2; +#X obj 680 800 i3D2 123 1 2 2; +#X obj 880 800 i3D2 124 2 2 2; +#X restore 334 505 pd array; +#X obj 71 173 s mass; +#X obj 349 351 s mass; +#X obj 334 567 constructor 5 5 5 -2 2 -2 2 -2 2 i3D2; +#X obj 366 307 s link1; +#X obj 414 307 s link2; +#X obj 39 652 s link1; +#X msg 39 626 setK \$1; +#X floatatom 39 605 5 0 0 0 - - -; +#X msg 95 627 setK \$1; +#X floatatom 95 606 5 0 0 0 - - -; +#X obj 95 653 s link2; +#X obj 29 208 s link1; +#X obj 38 230 s link2; +#X msg 157 627 setK \$1; +#X floatatom 157 606 5 0 0 0 - - -; +#X msg 213 628 setK \$1; +#X floatatom 213 607 5 0 0 0 - - -; +#X obj 461 307 s link3; +#X obj 511 307 s link4; +#X obj 157 653 s link3; +#X obj 213 654 s link4; +#X obj 49 252 s link3; +#X obj 58 274 s link4; +#X obj 39 577 unpack f f f f; +#X msg 48 321 1 0 0 0; +#X msg 68 366 0 1 0 0; +#X msg 39 300 0 0 1 0; +#X msg 59 342 0 0 0 1; +#X msg 349 328 resetF; +#X msg 365 279 setK 0 \, setD 1 \, setD2 1 \, resetF \, bang; +#X msg 91 413 0 1 0 1; +#X msg 101 435 0 0 0.1 3; +#X obj 349 255 t b b b; +#X msg 395 329 reset; +#X msg 113 455 2 3 0 3; +#X msg 81 390 0.1 0 0 0.1; +#X text 301 6 morfing; +#X text 128 21 each masses are link to 4 diferents point \, among diferents +shapes. depending of the rigidity of the link \, the diferents shapes +an be show; +#X text 220 379 <- select diferents rigidity (and diferents shape) +; +#X obj 163 166 hsl 128 15 0 127 0 0 empty empty empty -2 -6 0 8 -262144 +-1 -1 0 1; +#X obj 179 190 hsl 128 15 0 127 0 0 empty empty empty -2 -6 0 8 -262144 +-1 -1 0 1; +#X obj 196 213 hsl 128 15 0 127 0 0 empty empty empty -2 -6 0 8 -262144 +-1 -1 0 1; +#X text 242 148 camera position; +#X obj 125 549 pack f f f f; +#X floatatom 125 497 5 0 0 0 - - -; +#X floatatom 160 497 5 0 0 0 - - -; +#X floatatom 195 497 5 0 0 0 - - -; +#X floatatom 230 498 5 0 0 0 - - -; +#X obj 160 517 t b f; +#X obj 195 517 t b f; +#X obj 230 517 t b f; +#X connect 0 0 12 0; +#X connect 1 0 8 0; +#X connect 3 0 2 0; +#X connect 4 0 51 0; +#X connect 5 0 51 0; +#X connect 6 0 8 0; +#X connect 7 0 30 0; +#X connect 7 0 31 0; +#X connect 7 0 40 0; +#X connect 7 0 41 0; +#X connect 7 2 19 0; +#X connect 11 0 12 1; +#X connect 12 0 7 0; +#X connect 14 0 15 0; +#X connect 15 0 13 0; +#X connect 17 0 21 0; +#X connect 25 0 24 0; +#X connect 26 0 25 0; +#X connect 27 0 29 0; +#X connect 28 0 27 0; +#X connect 32 0 38 0; +#X connect 33 0 32 0; +#X connect 34 0 39 0; +#X connect 35 0 34 0; +#X connect 42 0 26 0; +#X connect 42 1 28 0; +#X connect 42 2 33 0; +#X connect 42 3 35 0; +#X connect 43 0 42 0; +#X connect 44 0 42 0; +#X connect 45 0 42 0; +#X connect 46 0 42 0; +#X connect 47 0 20 0; +#X connect 48 0 22 0; +#X connect 48 0 23 0; +#X connect 48 0 36 0; +#X connect 48 0 37 0; +#X connect 49 0 42 0; +#X connect 50 0 42 0; +#X connect 51 0 47 0; +#X connect 51 1 48 0; +#X connect 51 2 52 0; +#X connect 52 0 20 0; +#X connect 53 0 42 0; +#X connect 54 0 42 0; +#X connect 58 0 8 1; +#X connect 59 0 8 2; +#X connect 60 0 8 3; +#X connect 62 0 42 0; +#X connect 63 0 62 0; +#X connect 64 0 67 0; +#X connect 65 0 68 0; +#X connect 66 0 69 0; +#X connect 67 0 62 0; +#X connect 67 1 62 1; +#X connect 68 0 62 0; +#X connect 68 1 62 2; +#X connect 69 0 62 0; +#X connect 69 1 62 3; diff --git a/exemples/42_tentacule.pd b/exemples/42_tentacule.pd new file mode 100755 index 0000000..03bf052 --- /dev/null +++ b/exemples/42_tentacule.pd @@ -0,0 +1,453 @@ +#N canvas 165 113 638 442 10; +#N canvas 20 38 1340 956 tentacule 0; +#X obj 482 749 gemhead; +#X obj 114 173 mass3D M 1 1 -0.6 0; +#X obj 277 123 mass3D M 1 0 -0.6 0; +#X obj 364 170 mass3D M 1 -1 -0.6 0; +#X obj 283 231 mass3D M 1 0 1.13 0; +#X obj 115 402 mass3D M 1 1 -0.6 1; +#X obj 305 370 mass3D M 1 0 -0.6 1; +#X obj 414 402 mass3D M 1 -1 -0.6 1; +#X obj 310 479 mass3D M 1 0 1.13 1; +#X obj 351 448 link3D L 0 1; +#X obj 245 446 link3D L 0 1; +#X obj 250 400 link3D L 0 1; +#X obj 324 401 link3D L 0 1; +#X obj 348 336 link3D L2 0 1; +#X obj 280 309 link3D L2 0 1; +#X obj 263 247 link3D L2 0 1; +#X obj 179 332 link3D L2 0 1; +#X obj 77 266 link3D L2 0 1; +#X obj 175 253 link3D L2 0 1; +#X obj 354 258 link3D L2 0 1; +#X obj 395 298 link3D L2 0 1; +#X obj 306 201 link3D L 0 1; +#X obj 218 198 link3D L 0 1; +#X obj 222 152 link3D L 0 1; +#X obj 297 152 link3D L 0 1; +#X obj 838 302 link3D L2 0 1; +#X obj 906 268 link3D L2 0 1; +#X obj 1026 212 link3D L 0 1; +#X obj 949 213 link3D L 0 1; +#X obj 953 167 link3D L 0 1; +#X obj 1028 167 link3D L 0 1; +#X obj 696 325 link3D L2 0 1; +#X obj 617 379 link3D L2 0 1; +#X obj 618 175 link3D L2 0 1; +#X obj 588 296 link3D L2 0 1; +#X obj 496 245 link3D L2 0 1; +#X obj 575 217 link3D L2 0 1; +#X obj 750 232 link3D L2 0 1; +#X obj 770 269 link3D L2 0 1; +#X obj 287 44 link3D L 0 1; +#X obj 431 96 link3D L 0 1; +#X obj 506 147 link3D L 0 1; +#X obj 84 119 link3D L 0 1; +#X msg 88 91 position3D 1 -0.6 0; +#X msg 529 29 position3D -1 -0.6 0; +#X msg 577 122 position3D 0 1.13 0; +#X msg 301 16 position3D 0 -0.6 0; +#X obj 722 46 r M2; +#X obj 722 72 route reset; +#X obj 1003 361 link3D L3 0 1; +#X obj 1051 316 link3D L3 0 1; +#X obj 1108 283 link3D L3 0 1; +#X obj 991 405 link3D L3 0 1; +#X obj 1209 370 r M2; +#X obj 1109 190 mass3D M 1 -0.5 -0.3 1.5; +#X obj 1009 138 mass3D M 1 0 -0.3 1.5; +#X obj 822 188 mass3D M 1 0.5 -0.3 1.5; +#X obj 984 274 mass3D M 1 0 0.58 1.5; +#X obj 465 776 curve3d 5 5; +#X msg 198 573 set 0 1 \$1 \$2 \$3; +#X msg 218 604 set 1 1 \$1 \$2 \$3; +#X msg 239 621 set 2 1 \$1 \$2 \$3; +#X msg 261 644 set 3 1 \$1 \$2 \$3; +#X msg 278 666 set 4 1 \$1 \$2 \$3; +#X msg 395 580 set 0 2 \$1 \$2 \$3; +#X msg 417 606 set 1 2 \$1 \$2 \$3; +#X msg 436 628 set 2 2 \$1 \$2 \$3; +#X msg 458 651 set 3 2 \$1 \$2 \$3; +#X msg 475 673 set 4 2 \$1 \$2 \$3; +#X msg 666 580 set 0 3 \$1 \$2 \$3; +#X msg 686 611 set 1 3 \$1 \$2 \$3; +#X msg 706 628 set 2 3 \$1 \$2 \$3; +#X msg 730 651 set 3 3 \$1 \$2 \$3; +#X msg 746 673 set 4 3 \$1 \$2 \$3; +#X msg 863 587 set 0 4 \$1 \$2 \$3; +#X msg 884 613 set 1 4 \$1 \$2 \$3; +#X msg 903 635 set 2 4 \$1 \$2 \$3; +#X msg 926 658 set 3 4 \$1 \$2 \$3; +#X msg 944 681 set 4 4 \$1 \$2 \$3; +#X obj 43 568 loadbang; +#X msg 88 649 set 2 0 0 -0.3 0; +#X msg 106 687 set 3 0 0 -0.3 0; +#X msg 53 596 set 0 0 0 -0.3 0; +#X msg 70 628 set 1 0 0 -0.3 0; +#X msg 123 709 set 4 0 0 -0.3 0; +#X obj 1152 421 mass3D M 4 0 0 2; +#X msg 6 64 setM \$1; +#X obj 4 40 inlet; +#X msg 148 42 setM \$1; +#X obj 146 18 inlet; +#X obj 836 40 inlet; +#X connect 0 0 58 0; +#X connect 1 0 13 0; +#X connect 1 0 17 1; +#X connect 1 0 22 0; +#X connect 1 0 23 0; +#X connect 1 0 62 0; +#X connect 1 0 42 1; +#X connect 2 0 15 0; +#X connect 2 0 18 1; +#X connect 2 0 23 1; +#X connect 2 0 24 0; +#X connect 2 0 59 0; +#X connect 2 0 63 0; +#X connect 2 0 39 0; +#X connect 3 0 16 1; +#X connect 3 0 20 0; +#X connect 3 0 21 1; +#X connect 3 0 24 1; +#X connect 3 0 60 0; +#X connect 3 0 40 0; +#X connect 4 0 14 0; +#X connect 4 0 19 0; +#X connect 4 0 21 0; +#X connect 4 0 22 1; +#X connect 4 0 61 0; +#X connect 4 0 41 0; +#X connect 5 0 10 0; +#X connect 5 0 11 0; +#X connect 5 0 16 0; +#X connect 5 0 17 0; +#X connect 5 0 67 0; +#X connect 5 0 35 0; +#X connect 5 0 34 0; +#X connect 6 0 11 1; +#X connect 6 0 12 0; +#X connect 6 0 15 1; +#X connect 6 0 19 1; +#X connect 6 0 64 0; +#X connect 6 0 68 0; +#X connect 6 0 33 0; +#X connect 6 0 31 0; +#X connect 7 0 9 1; +#X connect 7 0 12 1; +#X connect 7 0 13 1; +#X connect 7 0 20 1; +#X connect 7 0 65 0; +#X connect 7 0 38 0; +#X connect 7 0 36 0; +#X connect 8 0 9 0; +#X connect 8 0 10 1; +#X connect 8 0 14 1; +#X connect 8 0 18 0; +#X connect 8 0 66 0; +#X connect 8 0 32 0; +#X connect 8 0 37 1; +#X connect 9 0 8 0; +#X connect 9 1 7 0; +#X connect 10 0 5 0; +#X connect 10 1 8 0; +#X connect 11 0 5 0; +#X connect 11 1 6 0; +#X connect 12 0 6 0; +#X connect 12 1 7 0; +#X connect 13 0 1 0; +#X connect 13 1 7 0; +#X connect 14 0 4 0; +#X connect 14 1 8 0; +#X connect 15 0 2 0; +#X connect 15 1 6 0; +#X connect 16 0 5 0; +#X connect 16 1 3 0; +#X connect 17 0 5 0; +#X connect 17 1 1 0; +#X connect 18 0 8 0; +#X connect 18 1 2 0; +#X connect 19 0 4 0; +#X connect 19 1 6 0; +#X connect 20 0 3 0; +#X connect 20 1 7 0; +#X connect 21 0 4 0; +#X connect 21 1 3 0; +#X connect 22 0 1 0; +#X connect 22 1 4 0; +#X connect 23 0 1 0; +#X connect 23 1 2 0; +#X connect 24 0 2 0; +#X connect 24 1 3 0; +#X connect 25 1 56 0; +#X connect 26 1 55 0; +#X connect 27 0 57 0; +#X connect 27 1 54 0; +#X connect 28 0 56 0; +#X connect 28 1 57 0; +#X connect 29 0 56 0; +#X connect 29 1 55 0; +#X connect 30 0 55 0; +#X connect 30 1 54 0; +#X connect 31 0 6 0; +#X connect 31 1 57 0; +#X connect 32 0 8 0; +#X connect 32 1 57 0; +#X connect 33 0 6 0; +#X connect 33 1 55 0; +#X connect 34 0 5 0; +#X connect 34 1 54 0; +#X connect 35 0 5 0; +#X connect 35 1 56 0; +#X connect 36 0 7 0; +#X connect 36 1 56 0; +#X connect 37 0 55 0; +#X connect 37 1 8 0; +#X connect 38 0 7 0; +#X connect 38 1 54 0; +#X connect 39 0 2 0; +#X connect 40 0 3 0; +#X connect 41 0 4 0; +#X connect 42 1 1 0; +#X connect 43 0 42 0; +#X connect 44 0 40 1; +#X connect 45 0 41 1; +#X connect 46 0 39 1; +#X connect 47 0 48 0; +#X connect 48 0 44 0; +#X connect 48 0 45 0; +#X connect 48 0 46 0; +#X connect 48 0 43 0; +#X connect 49 0 55 0; +#X connect 49 1 85 0; +#X connect 50 0 54 0; +#X connect 50 1 85 0; +#X connect 51 0 57 0; +#X connect 51 1 85 0; +#X connect 52 0 56 0; +#X connect 52 1 85 0; +#X connect 53 0 85 0; +#X connect 54 0 27 1; +#X connect 54 0 30 1; +#X connect 54 0 70 0; +#X connect 54 0 38 1; +#X connect 54 0 34 1; +#X connect 54 0 50 0; +#X connect 55 0 26 1; +#X connect 55 0 29 1; +#X connect 55 0 30 0; +#X connect 55 0 69 0; +#X connect 55 0 73 0; +#X connect 55 0 33 1; +#X connect 55 0 37 0; +#X connect 55 0 49 0; +#X connect 56 0 25 1; +#X connect 56 0 28 0; +#X connect 56 0 29 0; +#X connect 56 0 72 0; +#X connect 56 0 35 1; +#X connect 56 0 36 1; +#X connect 56 0 52 0; +#X connect 57 0 27 0; +#X connect 57 0 28 1; +#X connect 57 0 71 0; +#X connect 57 0 32 1; +#X connect 57 0 31 1; +#X connect 57 0 51 0; +#X connect 59 0 58 0; +#X connect 60 0 58 0; +#X connect 61 0 58 0; +#X connect 62 0 58 0; +#X connect 63 0 58 0; +#X connect 64 0 58 0; +#X connect 65 0 58 0; +#X connect 66 0 58 0; +#X connect 67 0 58 0; +#X connect 68 0 58 0; +#X connect 69 0 58 0; +#X connect 70 0 58 0; +#X connect 71 0 58 0; +#X connect 72 0 58 0; +#X connect 73 0 58 0; +#X connect 74 0 58 0; +#X connect 75 0 58 0; +#X connect 76 0 58 0; +#X connect 77 0 58 0; +#X connect 78 0 58 0; +#X connect 79 0 82 0; +#X connect 79 0 83 0; +#X connect 79 0 80 0; +#X connect 79 0 81 0; +#X connect 79 0 84 0; +#X connect 80 0 58 0; +#X connect 81 0 58 0; +#X connect 82 0 58 0; +#X connect 83 0 58 0; +#X connect 84 0 58 0; +#X connect 85 0 74 0; +#X connect 85 0 78 0; +#X connect 85 0 49 1; +#X connect 85 0 50 1; +#X connect 85 0 51 1; +#X connect 85 0 52 1; +#X connect 85 0 75 0; +#X connect 85 0 76 0; +#X connect 85 0 77 0; +#X connect 86 0 17 0; +#X connect 86 0 35 0; +#X connect 86 0 52 0; +#X connect 87 0 86 0; +#X connect 88 0 15 0; +#X connect 88 0 33 0; +#X connect 88 0 49 0; +#X connect 89 0 88 0; +#X connect 90 0 58 0; +#X restore 51 405 pd tentacule; +#X msg 17 56 create \, 1; +#X msg 27 77 0 \, destroy; +#X msg 36 121 lighting 1; +#X obj 367 144 t b b; +#X obj 392 169 s M; +#X obj 398 201 s L; +#X obj 380 220 s L2; +#X obj 480 101 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 +-1; +#X obj 500 143 t b b b; +#X obj 566 213 s M; +#X msg 566 190 reset; +#X obj 528 222 s L; +#X obj 510 241 s L2; +#X msg 518 188 resetL; +#X msg 500 167 resetF; +#X obj 593 214 s M2; +#X obj 500 263 s L3; +#X obj 367 242 s L3; +#X obj 17 238 ch_gemwin 50; +#X obj 367 120 gemhead; +#X obj 121 309 hsl 128 15 0 127 0 0 empty empty empty -2 -6 0 8 -262144 +-1 -1 0 1; +#X obj 121 333 hsl 128 15 0 127 0 0 empty empty empty -2 -6 0 8 -262144 +-1 -1 0 1; +#X obj 51 359 / 150; +#X obj 84 359 / 150; +#X obj 84 383 + 0.6; +#X obj 51 383 + 0.6; +#X msg 136 356 draw control_line; +#X msg 136 385 draw fill; +#X obj 36 98 loadbang; +#N canvas 0 0 452 302 light 0; +#X obj 43 70 gemhead; +#X obj 43 114 world_light; +#X obj 43 25 gemhead; +#X obj 43 49 world_light; +#X obj 43 92 rotateXYZ 230 0 80; +#X connect 0 0 4 0; +#X connect 2 0 3 0; +#X connect 4 0 1 0; +#X restore 272 222 pd light; +#X obj 500 119 loadbang; +#N canvas 0 0 547 274 init 0; +#X obj 11 125 s M; +#X msg 11 102 setM \$1; +#X msg 17 58 13; +#X msg 91 109 setD \$1; +#X obj 91 138 s L; +#X floatatom 90 86 5 0 0 0 - - -; +#X obj 153 137 s L; +#X floatatom 152 85 5 0 0 0 - - -; +#X msg 153 108 setK \$1; +#X msg 93 59 2; +#X msg 216 109 setD \$1; +#X floatatom 215 86 5 0 0 0 - - -; +#X floatatom 277 85 5 0 0 0 - - -; +#X msg 278 108 setK \$1; +#X msg 218 59 2; +#X obj 216 138 s L2; +#X obj 278 137 s L2; +#X msg 165 55 5; +#X msg 290 55 0.7; +#X msg 343 108 setD \$1; +#X floatatom 342 85 5 0 0 0 - - -; +#X floatatom 416 89 5 0 0 0 - - -; +#X msg 417 112 setK \$1; +#X obj 343 137 s L3; +#X obj 417 141 s L3; +#X msg 429 59 1; +#X msg 345 58 3; +#X obj 84 -14 loadbang; +#X floatatom 9 79 5 0 0 0 - - -; +#X connect 1 0 0 0; +#X connect 2 0 1 0; +#X connect 3 0 4 0; +#X connect 5 0 3 0; +#X connect 7 0 8 0; +#X connect 8 0 6 0; +#X connect 9 0 3 0; +#X connect 10 0 15 0; +#X connect 11 0 10 0; +#X connect 12 0 13 0; +#X connect 13 0 16 0; +#X connect 14 0 10 0; +#X connect 17 0 8 0; +#X connect 18 0 13 0; +#X connect 19 0 23 0; +#X connect 20 0 19 0; +#X connect 21 0 22 0; +#X connect 22 0 24 0; +#X connect 25 0 22 0; +#X connect 26 0 19 0; +#X connect 27 0 9 0; +#X connect 27 0 17 0; +#X connect 27 0 14 0; +#X connect 27 0 18 0; +#X connect 27 0 26 0; +#X connect 27 0 25 0; +#X connect 27 0 2 0; +#X connect 28 0 1 0; +#X restore 272 247 pd init; +#X text 522 98 <- reset; +#X text 280 319 <- change lenght of some link to distord the structure +; +#X text 283 10 muscle exemples; +#X text 158 26 you can change the lengh of some like to distord the +structure; +#X obj 42 154 hsl 128 15 0 127 0 0 empty empty empty -2 -6 0 8 -262144 +-1 -1 0 1; +#X obj 64 178 hsl 128 15 0 127 0 0 empty empty empty -2 -6 0 8 -262144 +-1 -1 0 1; +#X obj 87 201 hsl 128 15 0 127 0 0 empty empty empty -2 -6 0 8 -262144 +-1 -1 0 1; +#X text 129 136 camera position; +#X connect 1 0 19 0; +#X connect 2 0 19 0; +#X connect 3 0 19 0; +#X connect 4 0 6 0; +#X connect 4 0 7 0; +#X connect 4 0 18 0; +#X connect 4 1 5 0; +#X connect 8 0 9 0; +#X connect 9 0 15 0; +#X connect 9 1 14 0; +#X connect 9 2 11 0; +#X connect 11 0 10 0; +#X connect 11 0 16 0; +#X connect 14 0 12 0; +#X connect 14 0 13 0; +#X connect 14 0 17 0; +#X connect 15 0 10 0; +#X connect 15 0 13 0; +#X connect 15 0 12 0; +#X connect 15 0 17 0; +#X connect 20 0 4 0; +#X connect 21 0 23 0; +#X connect 22 0 24 0; +#X connect 23 0 26 0; +#X connect 24 0 25 0; +#X connect 25 0 0 1; +#X connect 26 0 0 0; +#X connect 27 0 0 2; +#X connect 28 0 0 2; +#X connect 29 0 3 0; +#X connect 31 0 9 0; +#X connect 37 0 19 1; +#X connect 38 0 19 2; +#X connect 39 0 19 3; diff --git a/exemples/43_game.pd b/exemples/43_game.pd new file mode 100755 index 0000000..b16acfb --- /dev/null +++ b/exemples/43_game.pd @@ -0,0 +1,1251 @@ +#N canvas 161 34 536 536 10; +#X obj 32 137 t b b; +#X obj 32 89 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 1 1 +; +#X obj 260 176 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 +-1; +#X obj 283 198 loadbang; +#X obj 57 160 s \$0-lia; +#X obj 32 187 s \$0-masse; +#X msg 308 269 reset; +#X msg 283 316 resetF; +#X msg 168 137 0 \, destroy; +#X obj 134 165 gemwin; +#N canvas 1361 275 872 665 space_ship 0; +#X obj 89 18 r \$0-lia; +#X obj 13 18 r \$0-masse; +#X obj 323 371 gemhead; +#X obj 323 435 translateXYZ; +#X obj 311 406 unpack s f f; +#X obj 200 377 gemhead; +#X obj 200 441 translateXYZ; +#X obj 188 412 unpack s f f; +#X obj 70 383 gemhead; +#X obj 74 456 translateXYZ; +#X obj 58 418 unpack s f f; +#X obj 406 380 gemhead; +#X obj 406 444 translateXYZ; +#X obj 394 415 unpack s f f; +#X obj 68 239 link2D ship 0.6 0.1 0.1; +#X obj 388 234 link2D ship 0.6 0.1 0.1; +#X obj 392 285 link2D ship 0.3 0.1 0.1; +#X obj 71 291 link2D ship 0.3 0.1 0.1; +#X obj 69 341 mass2D ship_rearL 1 0.15 -0.3; +#X obj 400 341 mass2D ship_rearR 1 -0.15 -0.3; +#X obj 408 528 sphere 0.05; +#X obj 71 535 sphere 0.05; +#X obj 326 466 sphere 0.05; +#X obj 135 116 tLia2D; +#X obj 199 467 rotateXYZ; +#X obj 71 510 scaleXYZ 2 1 1; +#X obj 408 494 scaleXYZ 2 1 1; +#X obj 74 485 rotateXYZ; +#X obj 409 468 rotateXYZ; +#X obj 206 545 sphere 0.2; +#X msg 530 445 25; +#X obj 528 421 loadbang; +#X obj 234 23 mass2D ship_front 2 0 0.3; +#X obj 199 514 ambientRGB 0 1 0; +#X msg 673 120 setXY \$1 \$2; +#X obj 697 28 inlet; +#X msg 687 202 setXY \$1 \$2; +#X obj 231 166 mass2D ship_body 3 0 0; +#X obj 643 25 inlet; +#X msg 601 325 setXY \$1 \$2; +#X obj 201 492 scaleXYZ 1.5 0.5 0.5; +#X obj 520 21 inlet; +#N canvas 654 146 482 495 8_bulet 0; +#X obj 170 34 inlet; +#X obj 301 33 inlet; +#X obj 36 22 inlet; +#N canvas 0 0 474 556 bullet 0; +#X obj 142 24 inlet; +#X obj 220 24 inlet; +#X obj 36 22 inlet; +#X obj 240 278 gemhead; +#X obj 228 350 translateXYZ; +#X obj 220 307 unpack s f f; +#X obj 222 384 sphere 0.03; +#X msg 220 173 setXY \$1 \$2; +#X obj 143 202 r \$0-masse; +#X obj 36 44 t b b; +#X obj 129 238 mass2D bulet 1 10 10; +#X obj 142 49 unpack s f f; +#X obj 136 131 pack f f; +#X obj 134 106 f; +#X msg 133 154 setXY \$1 \$2; +#X obj 119 283 s bulletpos; +#X obj 220 203 iCircle2D foo 0 0 0 1 0 0 0.04; +#X connect 0 0 11 0; +#X connect 1 0 7 0; +#X connect 2 0 9 0; +#X connect 3 0 4 0; +#X connect 4 0 6 0; +#X connect 5 1 4 1; +#X connect 5 2 4 2; +#X connect 7 0 16 0; +#X connect 8 0 10 0; +#X connect 9 0 16 0; +#X connect 9 1 13 0; +#X connect 10 0 5 0; +#X connect 10 0 15 0; +#X connect 11 1 13 1; +#X connect 11 2 12 1; +#X connect 12 0 14 0; +#X connect 13 0 12 0; +#X connect 14 0 10 0; +#X connect 16 0 10 0; +#X restore 252 360 pd bullet; +#N canvas 497 321 480 418 bullet 0; +#X obj 142 24 inlet; +#X obj 139 278 gemhead; +#X obj 140 328 translateXYZ; +#X obj 123 304 unpack s f f; +#X obj 130 357 sphere 0.03; +#X obj 220 24 inlet; +#X msg 220 173 setXY \$1 \$2; +#X obj 143 202 r \$0-masse; +#X obj 36 22 inlet; +#X obj 36 44 t b b; +#X obj 129 238 mass2D bulet 1 10 10; +#X obj 142 49 unpack s f f; +#X obj 136 131 pack f f; +#X obj 134 106 f; +#X msg 133 154 setXY \$1 \$2; +#X obj 211 283 s bulletpos; +#X obj 220 203 iCircle2D foo 0 0 0 1 0 0 0.04; +#X connect 0 0 11 0; +#X connect 1 0 2 0; +#X connect 2 0 4 0; +#X connect 3 1 2 1; +#X connect 3 2 2 2; +#X connect 5 0 6 0; +#X connect 6 0 16 0; +#X connect 7 0 10 0; +#X connect 8 0 9 0; +#X connect 9 0 16 0; +#X connect 9 1 13 0; +#X connect 10 0 3 0; +#X connect 10 0 15 0; +#X connect 11 1 13 1; +#X connect 11 2 12 1; +#X connect 12 0 14 0; +#X connect 13 0 12 0; +#X connect 14 0 10 0; +#X connect 16 0 10 0; +#X restore 146 193 pd bullet; +#N canvas 0 0 468 318 bullet 0; +#X obj 142 24 inlet; +#X obj 220 24 inlet; +#X obj 36 22 inlet; +#X obj 139 278 gemhead; +#X obj 207 329 translateXYZ; +#X obj 182 304 unpack s f f; +#X obj 232 354 sphere 0.03; +#X msg 220 173 setXY \$1 \$2; +#X obj 143 202 r \$0-masse; +#X obj 36 44 t b b; +#X obj 129 238 mass2D bulet 1 10 10; +#X obj 142 49 unpack s f f; +#X obj 136 131 pack f f; +#X obj 134 106 f; +#X msg 133 154 setXY \$1 \$2; +#X obj 72 273 s bulletpos; +#X obj 220 203 iCircle2D foo 0 0 0 1 0 0 0.04; +#X connect 0 0 11 0; +#X connect 1 0 7 0; +#X connect 2 0 9 0; +#X connect 3 0 4 0; +#X connect 4 0 6 0; +#X connect 5 1 4 1; +#X connect 5 2 4 2; +#X connect 7 0 16 0; +#X connect 8 0 10 0; +#X connect 9 0 16 0; +#X connect 9 1 13 0; +#X connect 10 0 5 0; +#X connect 10 0 15 0; +#X connect 11 1 13 1; +#X connect 11 2 12 1; +#X connect 12 0 14 0; +#X connect 13 0 12 0; +#X connect 14 0 10 0; +#X connect 16 0 10 0; +#X restore 161 217 pd bullet; +#N canvas 0 0 468 318 bullet 0; +#X obj 142 24 inlet; +#X obj 220 24 inlet; +#X obj 33 19 inlet; +#X obj 139 278 gemhead; +#X obj 201 331 translateXYZ; +#X obj 173 305 unpack s f f; +#X obj 219 360 sphere 0.03; +#X msg 220 173 setXY \$1 \$2; +#X obj 143 202 r \$0-masse; +#X obj 36 44 t b b; +#X obj 129 238 mass2D bulet 1 10 10; +#X obj 142 49 unpack s f f; +#X obj 136 131 pack f f; +#X obj 134 106 f; +#X msg 133 154 setXY \$1 \$2; +#X obj 204 268 s bulletpos; +#X obj 220 203 iCircle2D foo 0 0 0 1 0 0 0.04; +#X connect 0 0 11 0; +#X connect 1 0 7 0; +#X connect 2 0 9 0; +#X connect 3 0 4 0; +#X connect 4 0 6 0; +#X connect 5 1 4 1; +#X connect 5 2 4 2; +#X connect 7 0 16 0; +#X connect 8 0 10 0; +#X connect 9 0 16 0; +#X connect 9 1 13 0; +#X connect 10 0 5 0; +#X connect 10 0 15 0; +#X connect 11 1 13 1; +#X connect 11 2 12 1; +#X connect 12 0 14 0; +#X connect 13 0 12 0; +#X connect 14 0 10 0; +#X connect 16 0 10 0; +#X restore 177 241 pd bullet; +#N canvas 0 0 466 370 bullet 0; +#X obj 142 24 inlet; +#X obj 220 24 inlet; +#X obj 36 22 inlet; +#X obj 206 281 gemhead; +#X obj 230 335 translateXYZ; +#X obj 185 302 unpack s f f; +#X obj 243 365 sphere 0.03; +#X msg 220 173 setXY \$1 \$2; +#X obj 143 202 r \$0-masse; +#X obj 36 44 t b b; +#X obj 129 238 mass2D bulet 1 10 10; +#X obj 142 49 unpack s f f; +#X obj 136 131 pack f f; +#X obj 134 106 f; +#X msg 133 154 setXY \$1 \$2; +#X obj 119 283 s bulletpos; +#X obj 220 203 iCircle2D foo 0 0 0 1 0 0 0.04; +#X connect 0 0 11 0; +#X connect 1 0 7 0; +#X connect 2 0 9 0; +#X connect 3 0 4 0; +#X connect 4 0 6 0; +#X connect 5 1 4 1; +#X connect 5 2 4 2; +#X connect 7 0 16 0; +#X connect 8 0 10 0; +#X connect 9 0 16 0; +#X connect 9 1 13 0; +#X connect 10 0 5 0; +#X connect 10 0 15 0; +#X connect 11 1 13 1; +#X connect 11 2 12 1; +#X connect 12 0 14 0; +#X connect 13 0 12 0; +#X connect 14 0 10 0; +#X connect 16 0 10 0; +#X restore 189 265 pd bullet; +#N canvas 0 0 468 377 bullet 0; +#X obj 142 24 inlet; +#X obj 220 24 inlet; +#X obj 36 22 inlet; +#X obj 179 278 gemhead; +#X obj 205 330 translateXYZ; +#X obj 182 303 unpack s f f; +#X obj 209 356 sphere 0.03; +#X msg 220 173 setXY \$1 \$2; +#X obj 143 202 r \$0-masse; +#X obj 36 44 t b b; +#X obj 129 238 mass2D bulet 1 10 10; +#X obj 142 49 unpack s f f; +#X obj 136 131 pack f f; +#X obj 134 106 f; +#X msg 133 154 setXY \$1 \$2; +#X obj 119 283 s bulletpos; +#X obj 220 203 iCircle2D foo 0 0 0 1 0 0 0.04; +#X connect 0 0 11 0; +#X connect 1 0 7 0; +#X connect 2 0 9 0; +#X connect 3 0 4 0; +#X connect 4 0 6 0; +#X connect 5 1 4 1; +#X connect 5 2 4 2; +#X connect 7 0 16 0; +#X connect 8 0 10 0; +#X connect 9 0 16 0; +#X connect 9 1 13 0; +#X connect 10 0 5 0; +#X connect 10 0 15 0; +#X connect 11 1 13 1; +#X connect 11 2 12 1; +#X connect 12 0 14 0; +#X connect 13 0 12 0; +#X connect 14 0 10 0; +#X connect 16 0 10 0; +#X restore 205 289 pd bullet; +#N canvas 0 0 464 453 bullet 0; +#X obj 142 24 inlet; +#X obj 220 24 inlet; +#X obj 36 22 inlet; +#X obj 228 277 gemhead; +#X obj 195 336 translateXYZ; +#X obj 199 305 unpack s f f; +#X obj 185 366 sphere 0.03; +#X msg 220 173 setXY \$1 \$2; +#X obj 143 202 r \$0-masse; +#X obj 36 44 t b b; +#X obj 129 238 mass2D bulet 1 10 10; +#X obj 142 49 unpack s f f; +#X obj 136 131 pack f f; +#X obj 134 106 f; +#X msg 133 154 setXY \$1 \$2; +#X obj 119 283 s bulletpos; +#X obj 220 203 iCircle2D foo 0 0 0 1 0 0 0.04; +#X connect 0 0 11 0; +#X connect 1 0 7 0; +#X connect 2 0 9 0; +#X connect 3 0 4 0; +#X connect 4 0 6 0; +#X connect 5 1 4 1; +#X connect 5 2 4 2; +#X connect 7 0 16 0; +#X connect 8 0 10 0; +#X connect 9 0 16 0; +#X connect 9 1 13 0; +#X connect 10 0 5 0; +#X connect 10 0 15 0; +#X connect 11 1 13 1; +#X connect 11 2 12 1; +#X connect 12 0 14 0; +#X connect 13 0 12 0; +#X connect 14 0 10 0; +#X connect 16 0 10 0; +#X restore 220 313 pd bullet; +#N canvas 0 0 464 454 bullet 0; +#X obj 142 24 inlet; +#X obj 220 24 inlet; +#X obj 36 22 inlet; +#X obj 220 283 gemhead; +#X obj 202 337 translateXYZ; +#X obj 201 308 unpack s f f; +#X obj 186 364 sphere 0.03; +#X msg 220 173 setXY \$1 \$2; +#X obj 143 202 r \$0-masse; +#X obj 36 44 t b b; +#X obj 129 238 mass2D bulet 1 10 10; +#X obj 142 49 unpack s f f; +#X obj 136 131 pack f f; +#X obj 134 106 f; +#X msg 133 154 setXY \$1 \$2; +#X obj 119 283 s bulletpos; +#X obj 220 203 iCircle2D foo 0 0 0 1 0 0 0.04; +#X connect 0 0 11 0; +#X connect 1 0 7 0; +#X connect 2 0 9 0; +#X connect 3 0 4 0; +#X connect 4 0 6 0; +#X connect 5 1 4 1; +#X connect 5 2 4 2; +#X connect 7 0 16 0; +#X connect 8 0 10 0; +#X connect 9 0 16 0; +#X connect 9 1 13 0; +#X connect 10 0 5 0; +#X connect 10 0 15 0; +#X connect 11 1 13 1; +#X connect 11 2 12 1; +#X connect 12 0 14 0; +#X connect 13 0 12 0; +#X connect 14 0 10 0; +#X connect 16 0 10 0; +#X restore 236 337 pd bullet; +#X obj 36 94 % 8; +#X obj 36 125 sel 0 1 2 3 4 5 6 7; +#X obj 36 71 + 1; +#X msg 36 45 1; +#X connect 0 0 3 1; +#X connect 0 0 4 1; +#X connect 0 0 5 1; +#X connect 0 0 6 1; +#X connect 0 0 7 1; +#X connect 0 0 8 1; +#X connect 0 0 9 1; +#X connect 0 0 10 1; +#X connect 1 0 3 2; +#X connect 1 0 4 2; +#X connect 1 0 5 2; +#X connect 1 0 6 2; +#X connect 1 0 7 2; +#X connect 1 0 8 2; +#X connect 1 0 9 2; +#X connect 1 0 10 2; +#X connect 2 0 14 0; +#X connect 11 0 12 0; +#X connect 11 0 13 1; +#X connect 12 0 3 0; +#X connect 12 1 10 0; +#X connect 12 2 9 0; +#X connect 12 3 8 0; +#X connect 12 4 7 0; +#X connect 12 5 6 0; +#X connect 12 6 5 0; +#X connect 12 7 4 0; +#X connect 13 0 11 0; +#X connect 14 0 13 0; +#X restore 218 583 pd 8_bulet; +#X obj 458 18 inlet; +#X msg 610 392 setXY \$1 \$2; +#X obj 585 22 inlet; +#X obj 318 559 s space_ship; +#X obj 673 150 iCircle2D foo 0 0 0 1 0 0.003; +#X obj 693 229 iCircle2D foo 0 0 0 1 0 -0.003; +#X obj 600 353 iCircle2D foo 0 0 0 1 -0.03; +#X obj 611 430 iCircle2D foo 0 0 0 1 0.03; +#X msg 689 87 dXY 0.1 0; +#X msg 654 60 dXY -0.1 0; +#X obj 228 313 link2D ship 0.2 0.1 0.1; +#X obj 237 64 link2D ship 0.3 0.1 0.1; +#X connect 0 0 14 0; +#X connect 0 0 15 0; +#X connect 0 0 16 0; +#X connect 0 0 17 0; +#X connect 0 0 23 0; +#X connect 0 0 53 0; +#X connect 0 0 54 0; +#X connect 1 0 18 0; +#X connect 1 0 19 0; +#X connect 1 0 32 0; +#X connect 1 0 37 0; +#X connect 2 0 3 0; +#X connect 3 0 22 0; +#X connect 4 1 3 1; +#X connect 4 2 3 2; +#X connect 5 0 6 0; +#X connect 6 0 24 0; +#X connect 7 1 6 1; +#X connect 7 2 6 2; +#X connect 8 0 9 0; +#X connect 9 0 27 0; +#X connect 10 1 9 1; +#X connect 10 2 9 2; +#X connect 11 0 12 0; +#X connect 12 0 28 0; +#X connect 13 1 12 1; +#X connect 13 2 12 2; +#X connect 14 0 18 0; +#X connect 14 1 32 0; +#X connect 15 0 32 0; +#X connect 15 1 19 0; +#X connect 16 0 37 0; +#X connect 16 1 19 0; +#X connect 17 0 18 0; +#X connect 17 1 37 0; +#X connect 18 0 10 0; +#X connect 18 0 14 0; +#X connect 18 0 17 0; +#X connect 18 0 46 0; +#X connect 18 0 53 0; +#X connect 19 0 13 0; +#X connect 19 0 15 1; +#X connect 19 0 16 1; +#X connect 19 0 46 0; +#X connect 19 0 53 1; +#X connect 23 2 24 3; +#X connect 23 2 27 3; +#X connect 23 2 28 3; +#X connect 24 0 40 0; +#X connect 25 0 21 0; +#X connect 26 0 20 0; +#X connect 27 0 25 0; +#X connect 28 0 26 0; +#X connect 30 0 20 2; +#X connect 30 0 29 2; +#X connect 30 0 22 2; +#X connect 30 0 21 2; +#X connect 31 0 30 0; +#X connect 32 0 4 0; +#X connect 32 0 14 1; +#X connect 32 0 15 0; +#X connect 32 0 23 0; +#X connect 32 0 39 0; +#X connect 32 0 42 1; +#X connect 32 0 44 0; +#X connect 32 0 46 0; +#X connect 32 0 54 0; +#X connect 33 0 29 0; +#X connect 34 0 47 0; +#X connect 35 0 51 0; +#X connect 36 0 48 0; +#X connect 37 0 7 0; +#X connect 37 0 16 0; +#X connect 37 0 17 1; +#X connect 37 0 23 1; +#X connect 37 0 34 0; +#X connect 37 0 36 0; +#X connect 37 0 42 2; +#X connect 37 0 46 0; +#X connect 37 0 54 1; +#X connect 38 0 52 0; +#X connect 39 0 49 0; +#X connect 40 0 33 0; +#X connect 41 0 49 0; +#X connect 43 0 42 0; +#X connect 44 0 50 0; +#X connect 45 0 50 0; +#X connect 47 0 32 0; +#X connect 47 0 19 0; +#X connect 47 0 18 0; +#X connect 48 0 32 0; +#X connect 48 0 18 0; +#X connect 48 0 19 0; +#X connect 49 0 37 0; +#X connect 50 0 37 0; +#X connect 51 0 19 0; +#X connect 51 0 37 0; +#X connect 51 0 32 0; +#X connect 51 0 18 0; +#X connect 52 0 37 0; +#X connect 52 0 32 0; +#X connect 52 0 19 0; +#X connect 52 0 18 0; +#X connect 53 0 18 0; +#X connect 53 1 19 0; +#X connect 54 0 32 0; +#X connect 54 1 37 0; +#X restore 47 477 pd space_ship; +#X obj 382 399 world_light; +#X obj 382 377 gemhead 1; +#X msg 134 114 reset \, lighting 1 \, create \, 1; +#X obj 120 417 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 +-1; +#X obj 104 433 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 +-1; +#X obj 136 433 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 +-1; +#X obj 47 434 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 +-1; +#X obj 120 449 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 +-1; +#X obj 73 312 keyname; +#X obj 73 333 pack f s; +#X obj 73 355 route 1; +#X obj 47 394 key; +#X obj 47 415 sel 32; +#X obj 73 376 route Up Down Left Right; +#N canvas 213 219 1094 659 border 0; +#X text 268 11 This is the first exemple of physical modeling; +#X text 268 33 this is an elastic string; +#X text 158 95 <- metronome send bangs to mass and link and gives the +general computation speed; +#X obj 47 198 lia \$0-link 0 1 1; +#X obj 63 251 lia \$0-link 0 1 1; +#X obj 89 307 lia \$0-link 0 1 1; +#X obj 108 364 lia \$0-link 0 1 1; +#X obj 138 420 lia \$0-link 0 1 1; +#X obj 165 477 lia \$0-link 0 1 1; +#X obj 42 174 masse \$0-mass 30; +#X obj 57 226 masse \$0-mass 30; +#X obj 84 283 masse \$0-mass 30; +#X obj 104 340 masse \$0-mass 30; +#X obj 134 395 masse \$0-mass 30; +#X obj 163 452 masse \$0-mass 30; +#X text 160 132 masses and link has to be compute one after the other. +; +#X obj 27 148 lia \$0-link 0 0 5; +#X obj 354 214 lia \$0-link 0 1 1; +#X obj 370 267 lia \$0-link 0 1 1; +#X obj 396 323 lia \$0-link 0 1 1; +#X obj 415 380 lia \$0-link 0 1 1; +#X obj 445 436 lia \$0-link 0 1 1; +#X obj 472 493 lia \$0-link 0 1 1; +#X obj 349 190 masse \$0-mass 30; +#X obj 364 242 masse \$0-mass 30; +#X obj 374 293 masse \$0-mass 30; +#X obj 411 356 masse \$0-mass 30; +#X obj 435 408 masse \$0-mass 30; +#X obj 470 468 masse \$0-mass 30; +#X obj 615 210 lia \$0-link 0 1 1; +#X obj 631 263 lia \$0-link 0 1 1; +#X obj 657 319 lia \$0-link 0 1 1; +#X obj 676 376 lia \$0-link 0 1 1; +#X obj 706 432 lia \$0-link 0 1 1; +#X obj 610 186 masse \$0-mass 30; +#X obj 625 238 masse \$0-mass 30; +#X obj 652 295 masse \$0-mass 30; +#X obj 672 352 masse \$0-mass 30; +#X obj 702 407 masse \$0-mass 30; +#X obj 731 464 masse \$0-mass 30; +#X obj 919 270 + 10; +#X obj 919 202 loadbang; +#X obj 919 225 metro 600; +#X obj 921 292 / 10; +#X obj 734 489 lia \$0-link 0 0.01 2; +#X obj 919 250 random 20; +#X obj 62 41 r \$0-link; +#X obj 869 481 game_line 4; +#X obj 60 66 s bounce; +#X obj 615 503 game_line 1; +#X obj 759 221 game_line 1.5; +#X obj 511 237 game_line -1; +#X obj 203 229 game_line -4; +#X obj 849 445 game_line 3.5; +#X obj 804 388 game_line 3; +#X obj 790 336 game_line 2.5; +#X obj 774 273 game_line 2; +#X obj 591 450 game_line 0.5; +#X obj 568 391 game_line 0; +#X obj 531 310 game_line -0.5; +#X obj 324 466 game_line -1.5; +#X obj 331 422 game_line -2; +#X obj 272 381 game_line -2.5; +#X obj 257 333 game_line -3; +#X obj 223 286 game_line -3.5; +#X connect 3 0 9 0; +#X connect 3 1 10 0; +#X connect 4 0 10 0; +#X connect 4 1 11 0; +#X connect 5 0 11 0; +#X connect 5 1 12 0; +#X connect 6 0 12 0; +#X connect 6 1 13 0; +#X connect 7 0 13 0; +#X connect 7 1 14 0; +#X connect 8 0 14 0; +#X connect 8 1 23 0; +#X connect 9 0 3 0; +#X connect 9 0 16 1; +#X connect 9 0 52 1; +#X connect 10 0 3 1; +#X connect 10 0 4 0; +#X connect 10 0 52 0; +#X connect 10 0 64 1; +#X connect 11 0 4 1; +#X connect 11 0 5 0; +#X connect 11 0 63 1; +#X connect 11 0 64 0; +#X connect 12 0 5 1; +#X connect 12 0 6 0; +#X connect 12 0 62 1; +#X connect 12 0 63 0; +#X connect 13 0 6 1; +#X connect 13 0 7 0; +#X connect 13 0 61 1; +#X connect 13 0 62 0; +#X connect 14 0 7 1; +#X connect 14 0 8 0; +#X connect 14 0 60 1; +#X connect 14 0 61 0; +#X connect 16 1 9 0; +#X connect 17 0 23 0; +#X connect 17 1 24 0; +#X connect 18 0 24 0; +#X connect 18 1 25 0; +#X connect 19 0 25 0; +#X connect 19 1 26 0; +#X connect 20 0 26 0; +#X connect 20 1 27 0; +#X connect 21 0 27 0; +#X connect 21 1 28 0; +#X connect 22 0 28 0; +#X connect 22 1 34 0; +#X connect 23 0 17 0; +#X connect 23 0 8 1; +#X connect 23 0 51 1; +#X connect 23 0 60 0; +#X connect 24 0 17 1; +#X connect 24 0 18 0; +#X connect 24 0 51 0; +#X connect 24 0 59 1; +#X connect 25 0 18 1; +#X connect 25 0 19 0; +#X connect 25 0 58 1; +#X connect 25 0 59 0; +#X connect 26 0 19 1; +#X connect 26 0 20 0; +#X connect 26 0 57 1; +#X connect 26 0 58 0; +#X connect 27 0 20 1; +#X connect 27 0 21 0; +#X connect 27 0 49 1; +#X connect 27 0 57 0; +#X connect 28 0 21 1; +#X connect 28 0 22 0; +#X connect 28 0 49 0; +#X connect 28 0 50 1; +#X connect 29 0 34 0; +#X connect 29 1 35 0; +#X connect 30 0 35 0; +#X connect 30 1 36 0; +#X connect 31 0 36 0; +#X connect 31 0 37 0; +#X connect 31 1 37 0; +#X connect 32 0 37 0; +#X connect 32 1 38 0; +#X connect 33 0 38 0; +#X connect 33 1 39 0; +#X connect 34 0 29 0; +#X connect 34 0 22 1; +#X connect 34 0 50 0; +#X connect 34 0 56 1; +#X connect 35 0 29 1; +#X connect 35 0 30 0; +#X connect 35 0 55 1; +#X connect 35 0 56 0; +#X connect 36 0 30 1; +#X connect 36 0 31 0; +#X connect 36 0 54 1; +#X connect 36 0 55 0; +#X connect 37 0 31 1; +#X connect 37 0 32 0; +#X connect 37 0 53 1; +#X connect 37 0 54 0; +#X connect 38 0 32 1; +#X connect 38 0 33 0; +#X connect 38 0 47 1; +#X connect 38 0 53 0; +#X connect 39 0 33 1; +#X connect 39 0 44 0; +#X connect 39 0 47 0; +#X connect 40 0 43 0; +#X connect 41 0 42 0; +#X connect 42 0 45 0; +#X connect 43 0 44 1; +#X connect 44 0 39 0; +#X connect 45 0 40 0; +#X connect 46 0 48 0; +#X restore 382 421 pd border; +#N canvas 819 401 251 318 bombs 0; +#X obj 45 108 % 8; +#X obj 45 85 + 1; +#X obj 44 13 loadbang; +#X msg 45 60 1; +#X obj 45 36 metro 1200; +#X obj 104 11 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 +-1; +#N canvas 510 387 653 468 bomb 0; +#X obj 36 22 inlet; +#X obj 82 242 gemhead; +#X obj 85 272 translateXYZ; +#X obj 84 215 unpack s f f; +#X obj 104 153 r \$0-masse; +#X obj 86 294 color 1 0 0; +#X obj 36 44 t b b b; +#X msg 154 122 reset; +#X obj 87 21 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 +-1; +#X obj 272 271 r space_ship; +#X msg 261 240 setXY \$1 \$2; +#X obj 262 294 tCircle2D 0 0 0 0.2; +#X obj 262 316 sel 1; +#X obj 86 316 sphere 0.2; +#X obj 429 263 r bulletpos; +#X obj 435 319 sel 1; +#X obj 261 341 s space_inside; +#X obj 430 292 tCircle2D 0 0 0 0.15; +#X obj 463 382 s points; +#X obj 85 186 mass2D bomb 100 1000 1000; +#X msg 439 351 reset \, setXY 1000 1000; +#X obj 34 86 iAmbient2D foo -0.1 -1 0.2 0; +#X msg 80 123 setXY 0 5; +#X connect 0 0 6 0; +#X connect 1 0 2 0; +#X connect 2 0 5 0; +#X connect 3 1 2 1; +#X connect 3 2 2 2; +#X connect 4 0 19 0; +#X connect 5 0 13 0; +#X connect 6 0 21 0; +#X connect 6 1 22 0; +#X connect 6 2 7 0; +#X connect 7 0 19 0; +#X connect 8 0 6 0; +#X connect 9 0 11 0; +#X connect 10 0 11 0; +#X connect 10 0 17 0; +#X connect 11 0 12 0; +#X connect 12 0 16 0; +#X connect 14 0 17 0; +#X connect 15 0 20 0; +#X connect 15 0 18 0; +#X connect 17 0 15 0; +#X connect 19 0 3 0; +#X connect 19 0 10 0; +#X connect 20 0 19 0; +#X connect 21 0 19 0; +#X connect 22 0 19 0; +#X restore 45 167 pd bomb; +#X obj 45 140 sel 0 1 2 3 4 5 6 7; +#N canvas 510 387 653 468 bomb 0; +#X obj 36 22 inlet; +#X obj 82 242 gemhead; +#X obj 85 272 translateXYZ; +#X obj 84 215 unpack s f f; +#X obj 104 153 r \$0-masse; +#X obj 86 294 color 1 0 0; +#X obj 36 44 t b b b; +#X msg 154 122 reset; +#X obj 87 21 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 +-1; +#X obj 272 271 r space_ship; +#X msg 261 240 setXY \$1 \$2; +#X obj 262 294 tCircle2D 0 0 0 0.2; +#X obj 262 316 sel 1; +#X obj 86 316 sphere 0.2; +#X obj 429 263 r bulletpos; +#X obj 435 319 sel 1; +#X obj 261 341 s space_inside; +#X obj 430 292 tCircle2D 0 0 0 0.15; +#X obj 463 382 s points; +#X obj 85 186 mass2D bomb 100 1000 1000; +#X msg 439 351 reset \, setXY 1000 1000; +#X obj 34 86 iAmbient2D foo -0.1 -1 0.2 0; +#X msg 80 123 setXY 0 5; +#X connect 0 0 6 0; +#X connect 1 0 2 0; +#X connect 2 0 5 0; +#X connect 3 1 2 1; +#X connect 3 2 2 2; +#X connect 4 0 19 0; +#X connect 5 0 13 0; +#X connect 6 0 21 0; +#X connect 6 1 22 0; +#X connect 6 2 7 0; +#X connect 7 0 19 0; +#X connect 8 0 6 0; +#X connect 9 0 11 0; +#X connect 10 0 11 0; +#X connect 10 0 17 0; +#X connect 11 0 12 0; +#X connect 12 0 16 0; +#X connect 14 0 17 0; +#X connect 15 0 20 0; +#X connect 15 0 18 0; +#X connect 17 0 15 0; +#X connect 19 0 3 0; +#X connect 19 0 10 0; +#X connect 20 0 19 0; +#X connect 21 0 19 0; +#X connect 22 0 19 0; +#X restore 55 177 pd bomb; +#N canvas 510 387 653 468 bomb 0; +#X obj 36 22 inlet; +#X obj 82 242 gemhead; +#X obj 85 272 translateXYZ; +#X obj 84 215 unpack s f f; +#X obj 104 153 r \$0-masse; +#X obj 86 294 color 1 0 0; +#X obj 36 44 t b b b; +#X msg 154 122 reset; +#X obj 87 21 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 +-1; +#X obj 272 271 r space_ship; +#X msg 261 240 setXY \$1 \$2; +#X obj 262 294 tCircle2D 0 0 0 0.2; +#X obj 262 316 sel 1; +#X obj 86 316 sphere 0.2; +#X obj 429 263 r bulletpos; +#X obj 435 319 sel 1; +#X obj 261 341 s space_inside; +#X obj 430 292 tCircle2D 0 0 0 0.15; +#X obj 463 382 s points; +#X obj 85 186 mass2D bomb 100 1000 1000; +#X msg 439 351 reset \, setXY 1000 1000; +#X obj 34 86 iAmbient2D foo -0.1 -1 0.2 0; +#X msg 80 123 setXY 0 5; +#X connect 0 0 6 0; +#X connect 1 0 2 0; +#X connect 2 0 5 0; +#X connect 3 1 2 1; +#X connect 3 2 2 2; +#X connect 4 0 19 0; +#X connect 5 0 13 0; +#X connect 6 0 21 0; +#X connect 6 1 22 0; +#X connect 6 2 7 0; +#X connect 7 0 19 0; +#X connect 8 0 6 0; +#X connect 9 0 11 0; +#X connect 10 0 11 0; +#X connect 10 0 17 0; +#X connect 11 0 12 0; +#X connect 12 0 16 0; +#X connect 14 0 17 0; +#X connect 15 0 20 0; +#X connect 15 0 18 0; +#X connect 17 0 15 0; +#X connect 19 0 3 0; +#X connect 19 0 10 0; +#X connect 20 0 19 0; +#X connect 21 0 19 0; +#X connect 22 0 19 0; +#X restore 65 187 pd bomb; +#N canvas 510 387 653 468 bomb 0; +#X obj 36 22 inlet; +#X obj 82 242 gemhead; +#X obj 85 272 translateXYZ; +#X obj 84 215 unpack s f f; +#X obj 104 153 r \$0-masse; +#X obj 86 294 color 1 0 0; +#X obj 36 44 t b b b; +#X msg 154 122 reset; +#X obj 87 21 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 +-1; +#X obj 272 271 r space_ship; +#X msg 261 240 setXY \$1 \$2; +#X obj 262 294 tCircle2D 0 0 0 0.2; +#X obj 262 316 sel 1; +#X obj 86 316 sphere 0.2; +#X obj 429 263 r bulletpos; +#X obj 435 319 sel 1; +#X obj 261 341 s space_inside; +#X obj 430 292 tCircle2D 0 0 0 0.15; +#X obj 463 382 s points; +#X obj 85 186 mass2D bomb 100 1000 1000; +#X msg 439 351 reset \, setXY 1000 1000; +#X obj 34 86 iAmbient2D foo -0.1 -1 0.2 0; +#X msg 80 123 setXY 0 5; +#X connect 0 0 6 0; +#X connect 1 0 2 0; +#X connect 2 0 5 0; +#X connect 3 1 2 1; +#X connect 3 2 2 2; +#X connect 4 0 19 0; +#X connect 5 0 13 0; +#X connect 6 0 21 0; +#X connect 6 1 22 0; +#X connect 6 2 7 0; +#X connect 7 0 19 0; +#X connect 8 0 6 0; +#X connect 9 0 11 0; +#X connect 10 0 11 0; +#X connect 10 0 17 0; +#X connect 11 0 12 0; +#X connect 12 0 16 0; +#X connect 14 0 17 0; +#X connect 15 0 20 0; +#X connect 15 0 18 0; +#X connect 17 0 15 0; +#X connect 19 0 3 0; +#X connect 19 0 10 0; +#X connect 20 0 19 0; +#X connect 21 0 19 0; +#X connect 22 0 19 0; +#X restore 75 197 pd bomb; +#N canvas 510 387 653 468 bomb 0; +#X obj 36 22 inlet; +#X obj 82 242 gemhead; +#X obj 85 272 translateXYZ; +#X obj 84 215 unpack s f f; +#X obj 104 153 r \$0-masse; +#X obj 86 294 color 1 0 0; +#X obj 36 44 t b b b; +#X msg 154 122 reset; +#X obj 87 21 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 +-1; +#X obj 272 271 r space_ship; +#X msg 261 240 setXY \$1 \$2; +#X obj 262 294 tCircle2D 0 0 0 0.2; +#X obj 262 316 sel 1; +#X obj 86 316 sphere 0.2; +#X obj 429 263 r bulletpos; +#X obj 435 319 sel 1; +#X obj 261 341 s space_inside; +#X obj 430 292 tCircle2D 0 0 0 0.15; +#X obj 463 382 s points; +#X obj 85 186 mass2D bomb 100 1000 1000; +#X msg 439 351 reset \, setXY 1000 1000; +#X obj 34 86 iAmbient2D foo -0.1 -1 0.2 0; +#X msg 80 123 setXY 0 5; +#X connect 0 0 6 0; +#X connect 1 0 2 0; +#X connect 2 0 5 0; +#X connect 3 1 2 1; +#X connect 3 2 2 2; +#X connect 4 0 19 0; +#X connect 5 0 13 0; +#X connect 6 0 21 0; +#X connect 6 1 22 0; +#X connect 6 2 7 0; +#X connect 7 0 19 0; +#X connect 8 0 6 0; +#X connect 9 0 11 0; +#X connect 10 0 11 0; +#X connect 10 0 17 0; +#X connect 11 0 12 0; +#X connect 12 0 16 0; +#X connect 14 0 17 0; +#X connect 15 0 20 0; +#X connect 15 0 18 0; +#X connect 17 0 15 0; +#X connect 19 0 3 0; +#X connect 19 0 10 0; +#X connect 20 0 19 0; +#X connect 21 0 19 0; +#X connect 22 0 19 0; +#X restore 85 207 pd bomb; +#N canvas 510 387 653 468 bomb 0; +#X obj 36 22 inlet; +#X obj 82 242 gemhead; +#X obj 85 272 translateXYZ; +#X obj 84 215 unpack s f f; +#X obj 104 153 r \$0-masse; +#X obj 86 294 color 1 0 0; +#X obj 36 44 t b b b; +#X msg 154 122 reset; +#X obj 87 21 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 +-1; +#X obj 272 271 r space_ship; +#X msg 261 240 setXY \$1 \$2; +#X obj 262 294 tCircle2D 0 0 0 0.2; +#X obj 262 316 sel 1; +#X obj 86 316 sphere 0.2; +#X obj 429 263 r bulletpos; +#X obj 435 319 sel 1; +#X obj 261 341 s space_inside; +#X obj 430 292 tCircle2D 0 0 0 0.15; +#X obj 463 382 s points; +#X obj 85 186 mass2D bomb 100 1000 1000; +#X msg 439 351 reset \, setXY 1000 1000; +#X obj 34 86 iAmbient2D foo -0.1 -1 0.2 0; +#X msg 80 123 setXY 0 5; +#X connect 0 0 6 0; +#X connect 1 0 2 0; +#X connect 2 0 5 0; +#X connect 3 1 2 1; +#X connect 3 2 2 2; +#X connect 4 0 19 0; +#X connect 5 0 13 0; +#X connect 6 0 21 0; +#X connect 6 1 22 0; +#X connect 6 2 7 0; +#X connect 7 0 19 0; +#X connect 8 0 6 0; +#X connect 9 0 11 0; +#X connect 10 0 11 0; +#X connect 10 0 17 0; +#X connect 11 0 12 0; +#X connect 12 0 16 0; +#X connect 14 0 17 0; +#X connect 15 0 20 0; +#X connect 15 0 18 0; +#X connect 17 0 15 0; +#X connect 19 0 3 0; +#X connect 19 0 10 0; +#X connect 20 0 19 0; +#X connect 21 0 19 0; +#X connect 22 0 19 0; +#X restore 95 217 pd bomb; +#N canvas 510 387 655 470 bomb 0; +#X obj 36 22 inlet; +#X obj 82 242 gemhead; +#X obj 85 272 translateXYZ; +#X obj 84 215 unpack s f f; +#X obj 104 153 r \$0-masse; +#X obj 86 294 color 1 0 0; +#X obj 36 44 t b b b; +#X msg 154 122 reset; +#X obj 87 21 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 +-1; +#X obj 272 271 r space_ship; +#X msg 261 240 setXY \$1 \$2; +#X obj 262 294 tCircle2D 0 0 0 0.2; +#X obj 262 316 sel 1; +#X obj 86 316 sphere 0.2; +#X obj 429 263 r bulletpos; +#X obj 435 319 sel 1; +#X obj 261 341 s space_inside; +#X obj 430 292 tCircle2D 0 0 0 0.15; +#X obj 463 382 s points; +#X obj 85 186 mass2D bomb 100 1000 1000; +#X msg 439 351 reset \, setXY 1000 1000; +#X msg 80 123 setXY 0 5; +#X obj 34 86 iAmbient2D foo 0 -1 0.2 0; +#X connect 0 0 6 0; +#X connect 1 0 2 0; +#X connect 2 0 5 0; +#X connect 3 1 2 1; +#X connect 3 2 2 2; +#X connect 4 0 19 0; +#X connect 5 0 13 0; +#X connect 6 0 22 0; +#X connect 6 1 21 0; +#X connect 6 2 7 0; +#X connect 7 0 19 0; +#X connect 8 0 6 0; +#X connect 9 0 11 0; +#X connect 10 0 11 0; +#X connect 10 0 17 0; +#X connect 11 0 12 0; +#X connect 12 0 16 0; +#X connect 14 0 17 0; +#X connect 15 0 20 0; +#X connect 15 0 18 0; +#X connect 17 0 15 0; +#X connect 19 0 3 0; +#X connect 19 0 10 0; +#X connect 20 0 19 0; +#X connect 21 0 19 0; +#X connect 22 0 19 0; +#X restore 105 227 pd bomb; +#N canvas 510 387 657 472 bomb 0; +#X obj 36 22 inlet; +#X obj 82 242 gemhead; +#X obj 85 272 translateXYZ; +#X obj 84 215 unpack s f f; +#X obj 104 153 r \$0-masse; +#X obj 86 294 color 1 0 0; +#X obj 36 44 t b b b; +#X msg 154 122 reset; +#X obj 87 21 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 +-1; +#X obj 272 271 r space_ship; +#X msg 261 240 setXY \$1 \$2; +#X obj 262 294 tCircle2D 0 0 0 0.2; +#X obj 262 316 sel 1; +#X obj 86 316 sphere 0.2; +#X obj 429 263 r bulletpos; +#X obj 435 319 sel 1; +#X obj 261 341 s space_inside; +#X obj 430 292 tCircle2D 0 0 0 0.15; +#X obj 463 382 s points; +#X obj 85 186 mass2D bomb 100 1000 1000; +#X msg 439 351 reset \, setXY 1000 1000; +#X obj 34 86 iAmbient2D foo -0.1 -1 0.2 0; +#X msg 80 123 setXY 0 5; +#X connect 0 0 6 0; +#X connect 1 0 2 0; +#X connect 2 0 5 0; +#X connect 3 1 2 1; +#X connect 3 2 2 2; +#X connect 4 0 19 0; +#X connect 5 0 13 0; +#X connect 6 0 21 0; +#X connect 6 1 22 0; +#X connect 6 2 7 0; +#X connect 7 0 19 0; +#X connect 8 0 6 0; +#X connect 9 0 11 0; +#X connect 10 0 11 0; +#X connect 10 0 17 0; +#X connect 11 0 12 0; +#X connect 12 0 16 0; +#X connect 14 0 17 0; +#X connect 15 0 20 0; +#X connect 15 0 18 0; +#X connect 17 0 15 0; +#X connect 19 0 3 0; +#X connect 19 0 10 0; +#X connect 20 0 19 0; +#X connect 21 0 19 0; +#X connect 22 0 19 0; +#X restore 115 237 pd bomb; +#X connect 0 0 1 1; +#X connect 0 0 7 0; +#X connect 1 0 0 0; +#X connect 2 0 4 0; +#X connect 3 0 1 0; +#X connect 4 0 3 0; +#X connect 5 0 4 0; +#X connect 7 0 6 0; +#X connect 7 1 8 0; +#X connect 7 2 9 0; +#X connect 7 3 10 0; +#X connect 7 4 11 0; +#X connect 7 5 12 0; +#X connect 7 6 13 0; +#X connect 7 7 14 0; +#X restore 382 443 pd bombs; +#X obj 32 68 loadbang; +#X obj 283 339 s \$0-lia; +#X obj 308 294 s \$0-masse; +#X obj 339 319 s rbombs; +#X obj 32 110 metro 10; +#X obj 283 246 t b b b b; +#X text 187 433 <- move the ship; +#X obj 367 269 s init; +#N canvas 0 0 148 173 points 0; +#X obj 53 36 r points; +#X obj 58 108 + 1; +#X obj 57 84 f; +#X msg 24 60 -1; +#X obj 24 16 r init; +#X obj 57 135 outlet; +#X connect 0 0 2 0; +#X connect 1 0 2 1; +#X connect 1 0 5 0; +#X connect 2 0 1 0; +#X connect 3 0 2 0; +#X connect 4 0 3 0; +#X restore 383 465 pd points; +#X floatatom 383 488 5 0 0 0 - - -; +#X text 181 448 (use arraw key to); +#N canvas 265 590 255 308 init 0; +#X obj 94 85 r bomb_in; +#X obj 50 189 spigot; +#X obj 95 146 delay 1000; +#X msg 95 169 1; +#X obj 64 35 r space_inside; +#X obj 73 59 r inside; +#X obj 51 230 outlet; +#X obj 95 119 r init; +#X msg 127 171 0; +#X connect 0 0 1 0; +#X connect 1 0 6 0; +#X connect 2 0 3 0; +#X connect 3 0 1 1; +#X connect 4 0 1 0; +#X connect 5 0 1 0; +#X connect 7 0 8 0; +#X connect 7 0 2 0; +#X connect 8 0 1 1; +#X restore 299 222 pd init; +#X text 286 172 <- reset; +#X text 444 482 <- points; +#X obj 19 210 t b b; +#X obj 54 235 s \$0-link; +#X obj 19 261 s \$0-mass; +#X text 226 10 space-ship game; +#X text 131 37 use the arrow key to displace the "space ship". space +for fire. you should stay in the tunnel \, and shoot the red bombs +; +#X text 133 80 game restart if you hit the tunnel \, or a red bomb +; +#X connect 0 0 5 0; +#X connect 0 1 4 0; +#X connect 1 0 31 0; +#X connect 2 0 32 0; +#X connect 3 0 32 0; +#X connect 6 0 29 0; +#X connect 7 0 28 0; +#X connect 8 0 9 0; +#X connect 12 0 11 0; +#X connect 13 0 9 0; +#X connect 14 0 10 1; +#X connect 15 0 10 3; +#X connect 16 0 10 4; +#X connect 17 0 10 0; +#X connect 18 0 10 2; +#X connect 19 0 20 0; +#X connect 19 1 20 1; +#X connect 20 0 21 0; +#X connect 21 0 24 0; +#X connect 22 0 23 0; +#X connect 23 0 17 0; +#X connect 24 0 14 0; +#X connect 24 1 18 0; +#X connect 24 2 15 0; +#X connect 24 3 16 0; +#X connect 27 0 1 0; +#X connect 31 0 0 0; +#X connect 31 0 41 0; +#X connect 32 0 7 0; +#X connect 32 1 6 0; +#X connect 32 2 30 0; +#X connect 32 3 34 0; +#X connect 35 0 36 0; +#X connect 38 0 32 0; +#X connect 41 0 43 0; +#X connect 41 1 42 0; diff --git a/exemples/44_flag.pd b/exemples/44_flag.pd new file mode 100755 index 0000000..54819bd --- /dev/null +++ b/exemples/44_flag.pd @@ -0,0 +1,806 @@ +#N canvas 178 45 497 616 10; +#N canvas 529 347 774 319 array 0; +#X obj 200 0 mass_link3 1 -3 -4 0; +#X obj 400 0 mass_link3 2 -2 -4 0; +#X obj 600 0 mass_link3 3 -1 -4 0; +#X obj 800 0 mass_link3 4 0 -4 0; +#X obj 1000 0 mass_link3 5 1 -4 0; +#X obj 1200 0 mass_link3 6 2 -4 0; +#X obj 1400 0 mass_link3 7 3 -4 0; +#X obj 1600 0 mass_link3 8 4 -4 0; +#X obj 20 20 mass_link3 9 -4 -3 0; +#X obj 220 20 mass_link3 10 -3 -3 0; +#X obj 420 20 mass_link3 11 -2 -3 0; +#X obj 620 20 mass_link3 12 -1 -3 0; +#X obj 820 20 mass_link3 13 0 -3 0; +#X obj 1020 20 mass_link3 14 1 -3 0; +#X obj 1220 20 mass_link3 15 2 -3 0; +#X obj 1420 20 mass_link3 16 3 -3 0; +#X obj 1620 20 mass_link3 17 4 -3 0; +#X obj 40 40 mass_link3 18 -4 -2 0; +#X obj 240 40 mass_link3 19 -3 -2 0; +#X obj 440 40 mass_link3 20 -2 -2 0; +#X obj 640 40 mass_link3 21 -1 -2 0; +#X obj 840 40 mass_link3 22 0 -2 0; +#X obj 1040 40 mass_link3 23 1 -2 0; +#X obj 1240 40 mass_link3 24 2 -2 0; +#X obj 1440 40 mass_link3 25 3 -2 0; +#X obj 1640 40 mass_link3 26 4 -2 0; +#X obj 60 60 mass_link3 27 -4 -1 0; +#X obj 260 60 mass_link3 28 -3 -1 0; +#X obj 460 60 mass_link3 29 -2 -1 0; +#X obj 660 60 mass_link3 30 -1 -1 0; +#X obj 860 60 mass_link3 31 0 -1 0; +#X obj 1060 60 mass_link3 32 1 -1 0; +#X obj 1260 60 mass_link3 33 2 -1 0; +#X obj 1460 60 mass_link3 34 3 -1 0; +#X obj 1660 60 mass_link3 35 4 -1 0; +#X obj 80 80 mass_link3 36 -4 0 0; +#X obj 280 80 mass_link3 37 -3 0 0; +#X obj 480 80 mass_link3 38 -2 0 0; +#X obj 680 80 mass_link3 39 -1 0 0; +#X obj 880 80 mass_link3 40 0 0 0; +#X obj 1080 80 mass_link3 41 1 0 0; +#X obj 1280 80 mass_link3 42 2 0 0; +#X obj 1480 80 mass_link3 43 3 0 0; +#X obj 1680 80 mass_link3 44 4 0 0; +#X obj 100 100 mass_link3 45 -4 1 0; +#X obj 300 100 mass_link3 46 -3 1 0; +#X obj 500 100 mass_link3 47 -2 1 0; +#X obj 700 100 mass_link3 48 -1 1 0; +#X obj 900 100 mass_link3 49 0 1 0; +#X obj 1100 100 mass_link3 50 1 1 0; +#X obj 1300 100 mass_link3 51 2 1 0; +#X obj 1500 100 mass_link3 52 3 1 0; +#X obj 1700 100 mass_link3 53 4 1 0; +#X obj 120 120 mass_link3 54 -4 2 0; +#X obj 320 120 mass_link3 55 -3 2 0; +#X obj 520 120 mass_link3 56 -2 2 0; +#X obj 720 120 mass_link3 57 -1 2 0; +#X obj 920 120 mass_link3 58 0 2 0; +#X obj 1120 120 mass_link3 59 1 2 0; +#X obj 1320 120 mass_link3 60 2 2 0; +#X obj 1520 120 mass_link3 61 3 2 0; +#X obj 1720 120 mass_link3 62 4 2 0; +#X obj 140 140 mass_link3 63 -4 3 0; +#X obj 340 140 mass_link3 64 -3 3 0; +#X obj 540 140 mass_link3 65 -2 3 0; +#X obj 740 140 mass_link3 66 -1 3 0; +#X obj 940 140 mass_link3 67 0 3 0; +#X obj 1140 140 mass_link3 68 1 3 0; +#X obj 1340 140 mass_link3 69 2 3 0; +#X obj 1540 140 mass_link3 70 3 3 0; +#X obj 1740 140 mass_link3 71 4 3 0; +#X obj 360 160 mass_link3 73 -3 4 0; +#X obj 560 160 mass_link3 74 -2 4 0; +#X obj 760 160 mass_link3 75 -1 4 0; +#X obj 960 160 mass_link3 76 0 4 0; +#X obj 1160 160 mass_link3 77 1 4 0; +#X obj 1360 160 mass_link3 78 2 4 0; +#X obj 1560 160 mass_link3 79 3 4 0; +#X obj 1760 160 mass_link3 80 4 4 0; +#X obj 7 -1 mass_link2 -4 -4 0; +#X obj 163 166 mass_link2 -4 4 0; +#X connect 0 0 1 0; +#X connect 0 0 9 0; +#X connect 0 0 10 1; +#X connect 0 0 8 1; +#X connect 1 0 2 0; +#X connect 1 0 0 0; +#X connect 1 0 10 0; +#X connect 1 0 11 1; +#X connect 1 0 9 1; +#X connect 2 0 3 0; +#X connect 2 0 1 0; +#X connect 2 0 11 0; +#X connect 2 0 12 1; +#X connect 2 0 10 1; +#X connect 3 0 4 0; +#X connect 3 0 2 0; +#X connect 3 0 12 0; +#X connect 3 0 13 1; +#X connect 3 0 11 1; +#X connect 4 0 5 0; +#X connect 4 0 3 0; +#X connect 4 0 13 0; +#X connect 4 0 14 1; +#X connect 4 0 12 1; +#X connect 5 0 6 0; +#X connect 5 0 4 0; +#X connect 5 0 14 0; +#X connect 5 0 15 1; +#X connect 5 0 13 1; +#X connect 6 0 7 0; +#X connect 6 0 5 0; +#X connect 6 0 15 0; +#X connect 6 0 16 1; +#X connect 6 0 14 1; +#X connect 7 0 6 0; +#X connect 7 0 16 0; +#X connect 7 0 15 1; +#X connect 8 0 9 0; +#X connect 8 0 17 0; +#X connect 8 0 18 1; +#X connect 8 0 0 1; +#X connect 9 0 10 0; +#X connect 9 0 8 0; +#X connect 9 0 18 0; +#X connect 9 0 0 0; +#X connect 9 0 19 1; +#X connect 9 0 17 1; +#X connect 9 0 1 1; +#X connect 10 0 11 0; +#X connect 10 0 9 0; +#X connect 10 0 19 0; +#X connect 10 0 1 0; +#X connect 10 0 20 1; +#X connect 10 0 18 1; +#X connect 10 0 0 1; +#X connect 10 0 2 1; +#X connect 11 0 12 0; +#X connect 11 0 10 0; +#X connect 11 0 20 0; +#X connect 11 0 2 0; +#X connect 11 0 21 1; +#X connect 11 0 19 1; +#X connect 11 0 1 1; +#X connect 11 0 3 1; +#X connect 12 0 13 0; +#X connect 12 0 11 0; +#X connect 12 0 21 0; +#X connect 12 0 3 0; +#X connect 12 0 22 1; +#X connect 12 0 20 1; +#X connect 12 0 2 1; +#X connect 12 0 4 1; +#X connect 13 0 14 0; +#X connect 13 0 12 0; +#X connect 13 0 22 0; +#X connect 13 0 4 0; +#X connect 13 0 23 1; +#X connect 13 0 21 1; +#X connect 13 0 3 1; +#X connect 13 0 5 1; +#X connect 14 0 15 0; +#X connect 14 0 13 0; +#X connect 14 0 23 0; +#X connect 14 0 5 0; +#X connect 14 0 24 1; +#X connect 14 0 22 1; +#X connect 14 0 4 1; +#X connect 14 0 6 1; +#X connect 15 0 16 0; +#X connect 15 0 14 0; +#X connect 15 0 24 0; +#X connect 15 0 6 0; +#X connect 15 0 25 1; +#X connect 15 0 23 1; +#X connect 15 0 5 1; +#X connect 15 0 7 1; +#X connect 16 0 15 0; +#X connect 16 0 25 0; +#X connect 16 0 7 0; +#X connect 16 0 24 1; +#X connect 16 0 6 1; +#X connect 17 0 18 0; +#X connect 17 0 26 0; +#X connect 17 0 8 0; +#X connect 17 0 27 1; +#X connect 17 0 9 1; +#X connect 18 0 19 0; +#X connect 18 0 17 0; +#X connect 18 0 27 0; +#X connect 18 0 9 0; +#X connect 18 0 28 1; +#X connect 18 0 26 1; +#X connect 18 0 8 1; +#X connect 18 0 10 1; +#X connect 19 0 20 0; +#X connect 19 0 18 0; +#X connect 19 0 28 0; +#X connect 19 0 10 0; +#X connect 19 0 29 1; +#X connect 19 0 27 1; +#X connect 19 0 9 1; +#X connect 19 0 11 1; +#X connect 20 0 21 0; +#X connect 20 0 19 0; +#X connect 20 0 29 0; +#X connect 20 0 11 0; +#X connect 20 0 30 1; +#X connect 20 0 28 1; +#X connect 20 0 10 1; +#X connect 20 0 12 1; +#X connect 21 0 22 0; +#X connect 21 0 20 0; +#X connect 21 0 30 0; +#X connect 21 0 12 0; +#X connect 21 0 31 1; +#X connect 21 0 29 1; +#X connect 21 0 11 1; +#X connect 21 0 13 1; +#X connect 22 0 23 0; +#X connect 22 0 21 0; +#X connect 22 0 31 0; +#X connect 22 0 13 0; +#X connect 22 0 32 1; +#X connect 22 0 30 1; +#X connect 22 0 12 1; +#X connect 22 0 14 1; +#X connect 23 0 24 0; +#X connect 23 0 22 0; +#X connect 23 0 32 0; +#X connect 23 0 14 0; +#X connect 23 0 33 1; +#X connect 23 0 31 1; +#X connect 23 0 13 1; +#X connect 23 0 15 1; +#X connect 24 0 25 0; +#X connect 24 0 23 0; +#X connect 24 0 33 0; +#X connect 24 0 15 0; +#X connect 24 0 34 1; +#X connect 24 0 32 1; +#X connect 24 0 14 1; +#X connect 24 0 16 1; +#X connect 25 0 24 0; +#X connect 25 0 34 0; +#X connect 25 0 16 0; +#X connect 25 0 33 1; +#X connect 25 0 15 1; +#X connect 26 0 27 0; +#X connect 26 0 35 0; +#X connect 26 0 17 0; +#X connect 26 0 36 1; +#X connect 26 0 18 1; +#X connect 27 0 28 0; +#X connect 27 0 26 0; +#X connect 27 0 36 0; +#X connect 27 0 18 0; +#X connect 27 0 37 1; +#X connect 27 0 35 1; +#X connect 27 0 17 1; +#X connect 27 0 19 1; +#X connect 28 0 29 0; +#X connect 28 0 27 0; +#X connect 28 0 37 0; +#X connect 28 0 19 0; +#X connect 28 0 38 1; +#X connect 28 0 36 1; +#X connect 28 0 18 1; +#X connect 28 0 20 1; +#X connect 29 0 30 0; +#X connect 29 0 28 0; +#X connect 29 0 38 0; +#X connect 29 0 20 0; +#X connect 29 0 39 1; +#X connect 29 0 37 1; +#X connect 29 0 19 1; +#X connect 29 0 21 1; +#X connect 30 0 31 0; +#X connect 30 0 29 0; +#X connect 30 0 39 0; +#X connect 30 0 21 0; +#X connect 30 0 40 1; +#X connect 30 0 38 1; +#X connect 30 0 20 1; +#X connect 30 0 22 1; +#X connect 31 0 32 0; +#X connect 31 0 30 0; +#X connect 31 0 40 0; +#X connect 31 0 22 0; +#X connect 31 0 41 1; +#X connect 31 0 39 1; +#X connect 31 0 21 1; +#X connect 31 0 23 1; +#X connect 32 0 33 0; +#X connect 32 0 31 0; +#X connect 32 0 41 0; +#X connect 32 0 23 0; +#X connect 32 0 42 1; +#X connect 32 0 40 1; +#X connect 32 0 22 1; +#X connect 32 0 24 1; +#X connect 33 0 34 0; +#X connect 33 0 32 0; +#X connect 33 0 42 0; +#X connect 33 0 24 0; +#X connect 33 0 43 1; +#X connect 33 0 41 1; +#X connect 33 0 23 1; +#X connect 33 0 25 1; +#X connect 34 0 33 0; +#X connect 34 0 43 0; +#X connect 34 0 25 0; +#X connect 34 0 42 1; +#X connect 34 0 24 1; +#X connect 35 0 36 0; +#X connect 35 0 44 0; +#X connect 35 0 26 0; +#X connect 35 0 45 1; +#X connect 35 0 27 1; +#X connect 36 0 37 0; +#X connect 36 0 35 0; +#X connect 36 0 45 0; +#X connect 36 0 27 0; +#X connect 36 0 46 1; +#X connect 36 0 44 1; +#X connect 36 0 26 1; +#X connect 36 0 28 1; +#X connect 37 0 38 0; +#X connect 37 0 36 0; +#X connect 37 0 46 0; +#X connect 37 0 28 0; +#X connect 37 0 47 1; +#X connect 37 0 45 1; +#X connect 37 0 27 1; +#X connect 37 0 29 1; +#X connect 38 0 39 0; +#X connect 38 0 37 0; +#X connect 38 0 47 0; +#X connect 38 0 29 0; +#X connect 38 0 48 1; +#X connect 38 0 46 1; +#X connect 38 0 28 1; +#X connect 38 0 30 1; +#X connect 39 0 40 0; +#X connect 39 0 38 0; +#X connect 39 0 48 0; +#X connect 39 0 30 0; +#X connect 39 0 49 1; +#X connect 39 0 47 1; +#X connect 39 0 29 1; +#X connect 39 0 31 1; +#X connect 40 0 41 0; +#X connect 40 0 39 0; +#X connect 40 0 49 0; +#X connect 40 0 31 0; +#X connect 40 0 50 1; +#X connect 40 0 48 1; +#X connect 40 0 30 1; +#X connect 40 0 32 1; +#X connect 41 0 42 0; +#X connect 41 0 40 0; +#X connect 41 0 50 0; +#X connect 41 0 32 0; +#X connect 41 0 51 1; +#X connect 41 0 49 1; +#X connect 41 0 31 1; +#X connect 41 0 33 1; +#X connect 42 0 43 0; +#X connect 42 0 41 0; +#X connect 42 0 51 0; +#X connect 42 0 33 0; +#X connect 42 0 52 1; +#X connect 42 0 50 1; +#X connect 42 0 32 1; +#X connect 42 0 34 1; +#X connect 43 0 42 0; +#X connect 43 0 52 0; +#X connect 43 0 34 0; +#X connect 43 0 51 1; +#X connect 43 0 33 1; +#X connect 44 0 45 0; +#X connect 44 0 53 0; +#X connect 44 0 35 0; +#X connect 44 0 54 1; +#X connect 44 0 36 1; +#X connect 45 0 46 0; +#X connect 45 0 44 0; +#X connect 45 0 54 0; +#X connect 45 0 36 0; +#X connect 45 0 55 1; +#X connect 45 0 53 1; +#X connect 45 0 35 1; +#X connect 45 0 37 1; +#X connect 46 0 47 0; +#X connect 46 0 45 0; +#X connect 46 0 55 0; +#X connect 46 0 37 0; +#X connect 46 0 56 1; +#X connect 46 0 54 1; +#X connect 46 0 36 1; +#X connect 46 0 38 1; +#X connect 47 0 48 0; +#X connect 47 0 46 0; +#X connect 47 0 56 0; +#X connect 47 0 38 0; +#X connect 47 0 57 1; +#X connect 47 0 55 1; +#X connect 47 0 37 1; +#X connect 47 0 39 1; +#X connect 48 0 49 0; +#X connect 48 0 47 0; +#X connect 48 0 57 0; +#X connect 48 0 39 0; +#X connect 48 0 58 1; +#X connect 48 0 56 1; +#X connect 48 0 38 1; +#X connect 48 0 40 1; +#X connect 49 0 50 0; +#X connect 49 0 48 0; +#X connect 49 0 58 0; +#X connect 49 0 40 0; +#X connect 49 0 59 1; +#X connect 49 0 57 1; +#X connect 49 0 39 1; +#X connect 49 0 41 1; +#X connect 50 0 51 0; +#X connect 50 0 49 0; +#X connect 50 0 59 0; +#X connect 50 0 41 0; +#X connect 50 0 60 1; +#X connect 50 0 58 1; +#X connect 50 0 40 1; +#X connect 50 0 42 1; +#X connect 51 0 52 0; +#X connect 51 0 50 0; +#X connect 51 0 60 0; +#X connect 51 0 42 0; +#X connect 51 0 61 1; +#X connect 51 0 59 1; +#X connect 51 0 41 1; +#X connect 51 0 43 1; +#X connect 52 0 51 0; +#X connect 52 0 61 0; +#X connect 52 0 43 0; +#X connect 52 0 60 1; +#X connect 52 0 42 1; +#X connect 53 0 54 0; +#X connect 53 0 62 0; +#X connect 53 0 44 0; +#X connect 53 0 63 1; +#X connect 53 0 45 1; +#X connect 54 0 55 0; +#X connect 54 0 53 0; +#X connect 54 0 63 0; +#X connect 54 0 45 0; +#X connect 54 0 64 1; +#X connect 54 0 62 1; +#X connect 54 0 44 1; +#X connect 54 0 46 1; +#X connect 55 0 56 0; +#X connect 55 0 54 0; +#X connect 55 0 64 0; +#X connect 55 0 46 0; +#X connect 55 0 65 1; +#X connect 55 0 63 1; +#X connect 55 0 45 1; +#X connect 55 0 47 1; +#X connect 56 0 57 0; +#X connect 56 0 55 0; +#X connect 56 0 65 0; +#X connect 56 0 47 0; +#X connect 56 0 66 1; +#X connect 56 0 64 1; +#X connect 56 0 46 1; +#X connect 56 0 48 1; +#X connect 57 0 58 0; +#X connect 57 0 56 0; +#X connect 57 0 66 0; +#X connect 57 0 48 0; +#X connect 57 0 67 1; +#X connect 57 0 65 1; +#X connect 57 0 47 1; +#X connect 57 0 49 1; +#X connect 58 0 59 0; +#X connect 58 0 57 0; +#X connect 58 0 67 0; +#X connect 58 0 49 0; +#X connect 58 0 68 1; +#X connect 58 0 66 1; +#X connect 58 0 48 1; +#X connect 58 0 50 1; +#X connect 59 0 60 0; +#X connect 59 0 58 0; +#X connect 59 0 68 0; +#X connect 59 0 50 0; +#X connect 59 0 69 1; +#X connect 59 0 67 1; +#X connect 59 0 49 1; +#X connect 59 0 51 1; +#X connect 60 0 61 0; +#X connect 60 0 59 0; +#X connect 60 0 69 0; +#X connect 60 0 51 0; +#X connect 60 0 70 1; +#X connect 60 0 68 1; +#X connect 60 0 50 1; +#X connect 60 0 52 1; +#X connect 61 0 60 0; +#X connect 61 0 70 0; +#X connect 61 0 52 0; +#X connect 61 0 69 1; +#X connect 61 0 51 1; +#X connect 62 0 63 0; +#X connect 62 0 53 0; +#X connect 62 0 71 1; +#X connect 62 0 54 1; +#X connect 63 0 64 0; +#X connect 63 0 62 0; +#X connect 63 0 71 0; +#X connect 63 0 54 0; +#X connect 63 0 72 1; +#X connect 63 0 53 1; +#X connect 63 0 55 1; +#X connect 64 0 65 0; +#X connect 64 0 63 0; +#X connect 64 0 72 0; +#X connect 64 0 55 0; +#X connect 64 0 73 1; +#X connect 64 0 71 1; +#X connect 64 0 54 1; +#X connect 64 0 56 1; +#X connect 65 0 66 0; +#X connect 65 0 64 0; +#X connect 65 0 73 0; +#X connect 65 0 56 0; +#X connect 65 0 74 1; +#X connect 65 0 72 1; +#X connect 65 0 55 1; +#X connect 65 0 57 1; +#X connect 66 0 67 0; +#X connect 66 0 65 0; +#X connect 66 0 74 0; +#X connect 66 0 57 0; +#X connect 66 0 75 1; +#X connect 66 0 73 1; +#X connect 66 0 56 1; +#X connect 66 0 58 1; +#X connect 67 0 68 0; +#X connect 67 0 66 0; +#X connect 67 0 75 0; +#X connect 67 0 58 0; +#X connect 67 0 76 1; +#X connect 67 0 74 1; +#X connect 67 0 57 1; +#X connect 67 0 59 1; +#X connect 68 0 69 0; +#X connect 68 0 67 0; +#X connect 68 0 76 0; +#X connect 68 0 59 0; +#X connect 68 0 77 1; +#X connect 68 0 75 1; +#X connect 68 0 58 1; +#X connect 68 0 60 1; +#X connect 69 0 70 0; +#X connect 69 0 68 0; +#X connect 69 0 77 0; +#X connect 69 0 60 0; +#X connect 69 0 78 1; +#X connect 69 0 76 1; +#X connect 69 0 59 1; +#X connect 69 0 61 1; +#X connect 70 0 69 0; +#X connect 70 0 78 0; +#X connect 70 0 61 0; +#X connect 70 0 77 1; +#X connect 70 0 60 1; +#X connect 71 0 72 0; +#X connect 71 0 63 0; +#X connect 71 0 62 1; +#X connect 71 0 64 1; +#X connect 72 0 73 0; +#X connect 72 0 71 0; +#X connect 72 0 64 0; +#X connect 72 0 63 1; +#X connect 72 0 65 1; +#X connect 73 0 74 0; +#X connect 73 0 72 0; +#X connect 73 0 65 0; +#X connect 73 0 64 1; +#X connect 73 0 66 1; +#X connect 74 0 75 0; +#X connect 74 0 73 0; +#X connect 74 0 66 0; +#X connect 74 0 65 1; +#X connect 74 0 67 1; +#X connect 75 0 76 0; +#X connect 75 0 74 0; +#X connect 75 0 67 0; +#X connect 75 0 66 1; +#X connect 75 0 68 1; +#X connect 76 0 77 0; +#X connect 76 0 75 0; +#X connect 76 0 68 0; +#X connect 76 0 67 1; +#X connect 76 0 69 1; +#X connect 77 0 78 0; +#X connect 77 0 76 0; +#X connect 77 0 69 0; +#X connect 77 0 68 1; +#X connect 77 0 70 1; +#X connect 78 0 77 0; +#X connect 78 0 70 0; +#X connect 78 0 69 1; +#X connect 79 0 0 0; +#X connect 79 0 8 0; +#X connect 79 0 9 1; +#X connect 80 0 71 0; +#X connect 80 0 62 0; +#X connect 80 0 63 1; +#X restore 169 500 pd array; +#X obj 23 31 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0 1 +; +#X obj 60 155 s masse; +#X obj 33 223 s lia; +#X obj 58 181 s masse3; +#X obj 23 107 t b b b; +#X obj 41 202 s masse2; +#X floatatom 60 57 5 0 0 0 - - -; +#X msg 163 112 0 \, destroy; +#X msg 154 88 lighting 1 \, create \, 1; +#X obj 166 234 ch_gemwin; +#X obj 185 163 hsl 128 15 0 127 0 0 empty empty empty -2 -6 0 8 -262144 +-1 -1 0 1; +#X obj 201 186 hsl 128 15 0 127 0 0 empty empty empty -2 -6 0 8 -262144 +-1 -1 0 1; +#X obj 218 211 hsl 128 15 0 127 0 0 empty empty empty -2 -6 0 8 -262144 +-1 -1 0 1; +#X text 214 141 camera position; +#X obj 27 361 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 +-1; +#X obj 61 391 loadbang; +#X obj 27 416 t b b b; +#X msg 64 446 reset; +#X msg 27 561 resetF; +#X obj 79 492 s masse; +#X obj 27 583 s link; +#X obj 45 539 s r_lia; +#X obj 64 516 s masse2; +#X text 55 361 <- reset; +#X obj 23 250 s lia2; +#X obj 23 82 metro 5; +#N canvas 0 0 452 302 init 0; +#X msg 240 131 setK \$1; +#X msg 357 131 setM \$1; +#X obj 357 159 s masse; +#X floatatom 240 107 5 0 0 0 - - -; +#X floatatom 295 107 5 0 0 0 - - -; +#X floatatom 357 108 5 0 0 0 - - -; +#X msg 295 130 setD2 \$1; +#X obj 240 62 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 +-1; +#X obj 189 158 s link; +#X obj 240 39 loadbang; +#X msg 189 131 setL \$1; +#X floatatom 189 108 5 0 0 0 - - -; +#X msg 62 153 setK \$1; +#X floatatom 62 129 5 0 0 0 - - -; +#X floatatom 117 129 5 0 0 0 - - -; +#X msg 117 152 setD2 \$1; +#X obj 62 84 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 +-1; +#X obj 62 61 loadbang; +#X msg 11 153 setL \$1; +#X floatatom 11 130 5 0 0 0 - - -; +#X obj 11 180 s link2; +#X msg 62 105 1; +#X msg 240 83 1; +#X msg 118 104 0; +#X msg 297 81 1; +#X msg 357 84 10; +#X msg 189 84 1; +#X msg 13 102 1.4; +#X connect 0 0 8 0; +#X connect 1 0 2 0; +#X connect 3 0 0 0; +#X connect 4 0 6 0; +#X connect 5 0 1 0; +#X connect 6 0 8 0; +#X connect 7 0 22 0; +#X connect 7 0 24 0; +#X connect 7 0 25 0; +#X connect 7 0 26 0; +#X connect 9 0 7 0; +#X connect 10 0 8 0; +#X connect 11 0 10 0; +#X connect 12 0 20 0; +#X connect 13 0 12 0; +#X connect 14 0 15 0; +#X connect 15 0 20 0; +#X connect 16 0 21 0; +#X connect 16 0 23 0; +#X connect 16 0 27 0; +#X connect 17 0 16 0; +#X connect 18 0 20 0; +#X connect 19 0 18 0; +#X connect 21 0 13 0; +#X connect 22 0 3 0; +#X connect 23 0 14 0; +#X connect 24 0 4 0; +#X connect 25 0 5 0; +#X connect 26 0 11 0; +#X connect 27 0 19 0; +#X restore 169 551 pd init physical properties; +#N canvas 0 0 452 302 gem 0; +#X obj 15 213 world_light; +#X obj 15 190 gemhead; +#X obj 19 29 gemhead; +#X obj 19 93 rotateXYZ; +#X obj 19 119 s gemhead; +#X floatatom 65 47 5 0 0 0 - - -; +#X floatatom 111 46 5 0 0 0 - - -; +#X floatatom 158 46 5 0 0 0 - - -; +#X obj 19 68 translateXYZ 0 0 0; +#X connect 1 0 0 0; +#X connect 2 0 8 0; +#X connect 3 0 4 0; +#X connect 5 0 8 1; +#X connect 6 0 8 2; +#X connect 7 0 8 3; +#X connect 8 0 3 0; +#X restore 169 527 pd gem; +#N canvas 0 0 452 302 constructor 0; +#X obj 10 161 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0 1 +; +#X msg 216 13 1 0 0 1 1; +#X msg 227 35 -1 0 0 1 1; +#X msg 249 77 0 -1 0 1 1; +#X msg 239 56 0 1 0 1 1; +#X msg 259 97 1 1 0 1 2; +#X msg 270 119 -1 1 0 1 2; +#X msg 282 140 -1 -1 0 1 2; +#X msg 292 161 1 -1 0 1 2; +#X obj 10 188 constructor 9 9 1 -4 4 -4 4 0 0 mass_link3; +#X connect 0 0 9 0; +#X connect 1 0 9 1; +#X connect 2 0 9 1; +#X connect 3 0 9 1; +#X connect 4 0 9 1; +#X connect 5 0 9 1; +#X connect 6 0 9 1; +#X connect 7 0 9 1; +#X connect 8 0 9 1; +#X restore 169 575 pd constructor of the array; +#X text 55 30 <- begin (change metro speed if to much); +#X obj 169 472 s masse; +#X msg 169 448 force3D \$1 -0.03 \$2; +#X obj 169 425 pack f f; +#X obj 169 266 random 100; +#X obj 242 267 random 100; +#X obj 169 340 / 1000; +#X obj 242 293 - 50; +#X obj 242 317 / 300; +#X obj 71 133 s mass; +#X obj 354 361 mass mass 1000; +#X obj 90 472 s mass; +#X obj 242 340 link lia 0 1 0 10; +#X text 317 267 random wind speed; +#X text 253 381 filter to get a smooth wind movment; +#X text 204 11 flag in the wind; +#X connect 1 0 26 0; +#X connect 5 0 3 0; +#X connect 5 0 25 0; +#X connect 5 0 34 0; +#X connect 5 0 35 0; +#X connect 5 1 4 0; +#X connect 5 1 6 0; +#X connect 5 2 2 0; +#X connect 5 2 39 0; +#X connect 7 0 26 1; +#X connect 8 0 10 0; +#X connect 9 0 10 0; +#X connect 11 0 10 1; +#X connect 12 0 10 2; +#X connect 13 0 10 3; +#X connect 15 0 17 0; +#X connect 16 0 17 0; +#X connect 17 0 19 0; +#X connect 17 1 22 0; +#X connect 17 2 18 0; +#X connect 18 0 20 0; +#X connect 18 0 23 0; +#X connect 18 0 41 0; +#X connect 19 0 21 0; +#X connect 26 0 5 0; +#X connect 32 0 31 0; +#X connect 33 0 32 0; +#X connect 34 0 36 0; +#X connect 35 0 37 0; +#X connect 36 0 33 0; +#X connect 37 0 38 0; +#X connect 38 0 42 0; +#X connect 40 0 33 1; +#X connect 40 0 42 1; +#X connect 42 1 40 0; diff --git a/exemples/45_newWave.pd b/exemples/45_newWave.pd new file mode 100755 index 0000000..57d7614 --- /dev/null +++ b/exemples/45_newWave.pd @@ -0,0 +1,775 @@ +#N canvas 82 67 713 498 10; +#N canvas 150 74 785 554 array 0; +#X obj 0 0 mountain 0 -5 0 -5; +#X obj 200 0 mountain 1 -4 0 -5; +#X obj 400 0 mountain 2 -3 0 -5; +#X obj 600 0 mountain 3 -2 0 -5; +#X obj 800 0 mountain 4 -1 0 -5; +#X obj 1000 0 mountain 5 0 0 -5; +#X obj 1200 0 mountain 6 1 0 -5; +#X obj 1400 0 mountain 7 2 0 -5; +#X obj 1600 0 mountain 8 3 0 -5; +#X obj 1800 0 mountain 9 4 0 -5; +#X obj 2000 0 mountain 10 5 0 -5; +#X obj 0 100 mountain 11 -5 0 -4; +#X obj 200 100 mountain 12 -4 0 -4; +#X obj 400 100 mountain 13 -3 0 -4; +#X obj 600 100 mountain 14 -2 0 -4; +#X obj 800 100 mountain 15 -1 0 -4; +#X obj 1000 100 mountain 16 0 0 -4; +#X obj 1200 100 mountain 17 1 0 -4; +#X obj 1400 100 mountain 18 2 0 -4; +#X obj 1600 100 mountain 19 3 0 -4; +#X obj 1800 100 mountain 20 4 0 -4; +#X obj 2000 100 mountain 21 5 0 -4; +#X obj 0 200 mountain 22 -5 0 -3; +#X obj 200 200 mountain 23 -4 0 -3; +#X obj 400 200 mountain 24 -3 0 -3; +#X obj 600 200 mountain 25 -2 0 -3; +#X obj 800 200 mountain 26 -1 0 -3; +#X obj 1000 200 mountain 27 0 0 -3; +#X obj 1200 200 mountain 28 1 0 -3; +#X obj 1400 200 mountain 29 2 0 -3; +#X obj 1600 200 mountain 30 3 0 -3; +#X obj 1800 200 mountain 31 4 0 -3; +#X obj 2000 200 mountain 32 5 0 -3; +#X obj 0 300 mountain 33 -5 0 -2; +#X obj 200 300 mountain 34 -4 0 -2; +#X obj 400 300 mountain 35 -3 0 -2; +#X obj 600 300 mountain 36 -2 0 -2; +#X obj 800 300 mountain 37 -1 0 -2; +#X obj 1000 300 mountain 38 0 0 -2; +#X obj 1200 300 mountain 39 1 0 -2; +#X obj 1400 300 mountain 40 2 0 -2; +#X obj 1600 300 mountain 41 3 0 -2; +#X obj 1800 300 mountain 42 4 0 -2; +#X obj 2000 300 mountain 43 5 0 -2; +#X obj 0 400 mountain 44 -5 0 -1; +#X obj 200 400 mountain 45 -4 0 -1; +#X obj 400 400 mountain 46 -3 0 -1; +#X obj 600 400 mountain 47 -2 0 -1; +#X obj 800 400 mountain 48 -1 0 -1; +#X obj 1000 400 mountain 49 0 0 -1; +#X obj 1200 400 mountain 50 1 0 -1; +#X obj 1400 400 mountain 51 2 0 -1; +#X obj 1600 400 mountain 52 3 0 -1; +#X obj 1800 400 mountain 53 4 0 -1; +#X obj 2000 400 mountain 54 5 0 -1; +#X obj 0 500 mountain 55 -5 0 0; +#X obj 200 500 mountain 56 -4 0 0; +#X obj 400 500 mountain 57 -3 0 0; +#X obj 600 500 mountain 58 -2 0 0; +#X obj 800 500 mountain 59 -1 0 0; +#X obj 1000 500 mountain 60 0 0 0; +#X obj 1200 500 mountain 61 1 0 0; +#X obj 1400 500 mountain 62 2 0 0; +#X obj 1600 500 mountain 63 3 0 0; +#X obj 1800 500 mountain 64 4 0 0; +#X obj 2000 500 mountain 65 5 0 0; +#X obj 0 600 mountain 66 -5 0 1; +#X obj 200 600 mountain 67 -4 0 1; +#X obj 400 600 mountain 68 -3 0 1; +#X obj 600 600 mountain 69 -2 0 1; +#X obj 800 600 mountain 70 -1 0 1; +#X obj 1000 600 mountain 71 0 0 1; +#X obj 1200 600 mountain 72 1 0 1; +#X obj 1400 600 mountain 73 2 0 1; +#X obj 1600 600 mountain 74 3 0 1; +#X obj 1800 600 mountain 75 4 0 1; +#X obj 2000 600 mountain 76 5 0 1; +#X obj 0 700 mountain 77 -5 0 2; +#X obj 200 700 mountain 78 -4 0 2; +#X obj 400 700 mountain 79 -3 0 2; +#X obj 600 700 mountain 80 -2 0 2; +#X obj 800 700 mountain 81 -1 0 2; +#X obj 1000 700 mountain 82 0 0 2; +#X obj 1200 700 mountain 83 1 0 2; +#X obj 1400 700 mountain 84 2 0 2; +#X obj 1600 700 mountain 85 3 0 2; +#X obj 1800 700 mountain 86 4 0 2; +#X obj 2000 700 mountain 87 5 0 2; +#X obj 0 800 mountain 88 -5 0 3; +#X obj 200 800 mountain 89 -4 0 3; +#X obj 400 800 mountain 90 -3 0 3; +#X obj 600 800 mountain 91 -2 0 3; +#X obj 800 800 mountain 92 -1 0 3; +#X obj 1000 800 mountain 93 0 0 3; +#X obj 1200 800 mountain 94 1 0 3; +#X obj 1400 800 mountain 95 2 0 3; +#X obj 1600 800 mountain 96 3 0 3; +#X obj 1800 800 mountain 97 4 0 3; +#X obj 2000 800 mountain 98 5 0 3; +#X obj 0 900 mountain 99 -5 0 4; +#X obj 200 900 mountain 100 -4 0 4; +#X obj 400 900 mountain 101 -3 0 4; +#X obj 600 900 mountain 102 -2 0 4; +#X obj 800 900 mountain 103 -1 0 4; +#X obj 1000 900 mountain 104 0 0 4; +#X obj 1200 900 mountain 105 1 0 4; +#X obj 1400 900 mountain 106 2 0 4; +#X obj 1600 900 mountain 107 3 0 4; +#X obj 1800 900 mountain 108 4 0 4; +#X obj 2000 900 mountain 109 5 0 4; +#X obj 0 1000 mountain 110 -5 0 5; +#X obj 200 1000 mountain 111 -4 0 5; +#X obj 400 1000 mountain 112 -3 0 5; +#X obj 600 1000 mountain 113 -2 0 5; +#X obj 800 1000 mountain 114 -1 0 5; +#X obj 1000 1000 mountain 115 0 0 5; +#X obj 1200 1000 mountain 116 1 0 5; +#X obj 1400 1000 mountain 117 2 0 5; +#X obj 1600 1000 mountain 118 3 0 5; +#X obj 1800 1000 mountain 119 4 0 5; +#X obj 2000 1000 mountain 120 5 0 5; +#X obj 1945 970 outlet; +#X connect 0 0 1 1; +#X connect 0 0 11 2; +#X connect 0 0 12 3; +#X connect 1 0 2 1; +#X connect 1 0 12 2; +#X connect 1 0 13 3; +#X connect 1 1 0 0; +#X connect 2 0 3 1; +#X connect 2 0 13 2; +#X connect 2 0 14 3; +#X connect 2 1 1 0; +#X connect 3 0 4 1; +#X connect 3 0 14 2; +#X connect 3 0 15 3; +#X connect 3 1 2 0; +#X connect 4 0 5 1; +#X connect 4 0 15 2; +#X connect 4 0 16 3; +#X connect 4 1 3 0; +#X connect 5 0 6 1; +#X connect 5 0 16 2; +#X connect 5 0 17 3; +#X connect 5 1 4 0; +#X connect 6 0 7 1; +#X connect 6 0 17 2; +#X connect 6 0 18 3; +#X connect 6 1 5 0; +#X connect 7 0 8 1; +#X connect 7 0 18 2; +#X connect 7 0 19 3; +#X connect 7 1 6 0; +#X connect 8 0 9 1; +#X connect 8 0 19 2; +#X connect 8 0 20 3; +#X connect 8 1 7 0; +#X connect 9 0 10 1; +#X connect 9 0 20 2; +#X connect 9 0 21 3; +#X connect 9 1 8 0; +#X connect 10 0 21 2; +#X connect 10 1 9 0; +#X connect 11 0 12 1; +#X connect 11 0 22 2; +#X connect 11 0 23 3; +#X connect 11 2 0 0; +#X connect 12 0 13 1; +#X connect 12 0 23 2; +#X connect 12 0 24 3; +#X connect 12 1 11 0; +#X connect 12 2 1 0; +#X connect 13 0 14 1; +#X connect 13 0 24 2; +#X connect 13 0 25 3; +#X connect 13 1 12 0; +#X connect 13 2 2 0; +#X connect 14 0 15 1; +#X connect 14 0 25 2; +#X connect 14 0 26 3; +#X connect 14 1 13 0; +#X connect 14 2 3 0; +#X connect 15 0 16 1; +#X connect 15 0 26 2; +#X connect 15 0 27 3; +#X connect 15 1 14 0; +#X connect 15 2 4 0; +#X connect 16 0 17 1; +#X connect 16 0 27 2; +#X connect 16 0 28 3; +#X connect 16 1 15 0; +#X connect 16 2 5 0; +#X connect 17 0 18 1; +#X connect 17 0 28 2; +#X connect 17 0 29 3; +#X connect 17 1 16 0; +#X connect 17 2 6 0; +#X connect 18 0 19 1; +#X connect 18 0 29 2; +#X connect 18 0 30 3; +#X connect 18 1 17 0; +#X connect 18 2 7 0; +#X connect 19 0 20 1; +#X connect 19 0 30 2; +#X connect 19 0 31 3; +#X connect 19 1 18 0; +#X connect 19 2 8 0; +#X connect 20 0 21 1; +#X connect 20 0 31 2; +#X connect 20 0 32 3; +#X connect 20 1 19 0; +#X connect 20 2 9 0; +#X connect 21 0 32 2; +#X connect 21 1 20 0; +#X connect 21 2 10 0; +#X connect 22 0 23 1; +#X connect 22 0 33 2; +#X connect 22 0 34 3; +#X connect 22 2 11 0; +#X connect 23 0 24 1; +#X connect 23 0 34 2; +#X connect 23 0 35 3; +#X connect 23 1 22 0; +#X connect 23 2 12 0; +#X connect 24 0 25 1; +#X connect 24 0 35 2; +#X connect 24 0 36 3; +#X connect 24 1 23 0; +#X connect 24 2 13 0; +#X connect 25 0 26 1; +#X connect 25 0 36 2; +#X connect 25 0 37 3; +#X connect 25 1 24 0; +#X connect 25 2 14 0; +#X connect 26 0 27 1; +#X connect 26 0 37 2; +#X connect 26 0 38 3; +#X connect 26 1 25 0; +#X connect 26 2 15 0; +#X connect 27 0 28 1; +#X connect 27 0 38 2; +#X connect 27 0 39 3; +#X connect 27 1 26 0; +#X connect 27 2 16 0; +#X connect 28 0 29 1; +#X connect 28 0 39 2; +#X connect 28 0 40 3; +#X connect 28 1 27 0; +#X connect 28 2 17 0; +#X connect 29 0 30 1; +#X connect 29 0 40 2; +#X connect 29 0 41 3; +#X connect 29 1 28 0; +#X connect 29 2 18 0; +#X connect 30 0 31 1; +#X connect 30 0 41 2; +#X connect 30 0 42 3; +#X connect 30 1 29 0; +#X connect 30 2 19 0; +#X connect 31 0 32 1; +#X connect 31 0 42 2; +#X connect 31 0 43 3; +#X connect 31 1 30 0; +#X connect 31 2 20 0; +#X connect 32 0 43 2; +#X connect 32 1 31 0; +#X connect 32 2 21 0; +#X connect 33 0 34 1; +#X connect 33 0 44 2; +#X connect 33 0 45 3; +#X connect 33 2 22 0; +#X connect 34 0 35 1; +#X connect 34 0 45 2; +#X connect 34 0 46 3; +#X connect 34 1 33 0; +#X connect 34 2 23 0; +#X connect 35 0 36 1; +#X connect 35 0 46 2; +#X connect 35 0 47 3; +#X connect 35 1 34 0; +#X connect 35 2 24 0; +#X connect 36 0 37 1; +#X connect 36 0 47 2; +#X connect 36 0 48 3; +#X connect 36 1 35 0; +#X connect 36 2 25 0; +#X connect 37 0 38 1; +#X connect 37 0 48 2; +#X connect 37 0 49 3; +#X connect 37 1 36 0; +#X connect 37 2 26 0; +#X connect 38 0 39 1; +#X connect 38 0 49 2; +#X connect 38 0 50 3; +#X connect 38 1 37 0; +#X connect 38 2 27 0; +#X connect 39 0 40 1; +#X connect 39 0 50 2; +#X connect 39 0 51 3; +#X connect 39 1 38 0; +#X connect 39 2 28 0; +#X connect 40 0 41 1; +#X connect 40 0 51 2; +#X connect 40 0 52 3; +#X connect 40 1 39 0; +#X connect 40 2 29 0; +#X connect 41 0 42 1; +#X connect 41 0 52 2; +#X connect 41 0 53 3; +#X connect 41 1 40 0; +#X connect 41 2 30 0; +#X connect 42 0 43 1; +#X connect 42 0 53 2; +#X connect 42 0 54 3; +#X connect 42 1 41 0; +#X connect 42 2 31 0; +#X connect 43 0 54 2; +#X connect 43 1 42 0; +#X connect 43 2 32 0; +#X connect 44 0 45 1; +#X connect 44 0 55 2; +#X connect 44 0 56 3; +#X connect 44 2 33 0; +#X connect 45 0 46 1; +#X connect 45 0 56 2; +#X connect 45 0 57 3; +#X connect 45 1 44 0; +#X connect 45 2 34 0; +#X connect 46 0 47 1; +#X connect 46 0 57 2; +#X connect 46 0 58 3; +#X connect 46 1 45 0; +#X connect 46 2 35 0; +#X connect 47 0 48 1; +#X connect 47 0 58 2; +#X connect 47 0 59 3; +#X connect 47 1 46 0; +#X connect 47 2 36 0; +#X connect 48 0 49 1; +#X connect 48 0 59 2; +#X connect 48 0 60 3; +#X connect 48 1 47 0; +#X connect 48 2 37 0; +#X connect 49 0 50 1; +#X connect 49 0 60 2; +#X connect 49 0 61 3; +#X connect 49 1 48 0; +#X connect 49 2 38 0; +#X connect 50 0 51 1; +#X connect 50 0 61 2; +#X connect 50 0 62 3; +#X connect 50 1 49 0; +#X connect 50 2 39 0; +#X connect 51 0 52 1; +#X connect 51 0 62 2; +#X connect 51 0 63 3; +#X connect 51 1 50 0; +#X connect 51 2 40 0; +#X connect 52 0 53 1; +#X connect 52 0 63 2; +#X connect 52 0 64 3; +#X connect 52 1 51 0; +#X connect 52 2 41 0; +#X connect 53 0 54 1; +#X connect 53 0 64 2; +#X connect 53 0 65 3; +#X connect 53 1 52 0; +#X connect 53 2 42 0; +#X connect 54 0 65 2; +#X connect 54 1 53 0; +#X connect 54 2 43 0; +#X connect 55 0 56 1; +#X connect 55 0 66 2; +#X connect 55 0 67 3; +#X connect 55 2 44 0; +#X connect 56 0 57 1; +#X connect 56 0 67 2; +#X connect 56 0 68 3; +#X connect 56 1 55 0; +#X connect 56 2 45 0; +#X connect 57 0 58 1; +#X connect 57 0 68 2; +#X connect 57 0 69 3; +#X connect 57 1 56 0; +#X connect 57 2 46 0; +#X connect 58 0 59 1; +#X connect 58 0 69 2; +#X connect 58 0 70 3; +#X connect 58 1 57 0; +#X connect 58 2 47 0; +#X connect 59 0 60 1; +#X connect 59 0 70 2; +#X connect 59 0 71 3; +#X connect 59 1 58 0; +#X connect 59 2 48 0; +#X connect 60 0 61 1; +#X connect 60 0 71 2; +#X connect 60 0 72 3; +#X connect 60 1 59 0; +#X connect 60 2 49 0; +#X connect 61 0 62 1; +#X connect 61 0 72 2; +#X connect 61 0 73 3; +#X connect 61 1 60 0; +#X connect 61 2 50 0; +#X connect 62 0 63 1; +#X connect 62 0 73 2; +#X connect 62 0 74 3; +#X connect 62 1 61 0; +#X connect 62 2 51 0; +#X connect 63 0 64 1; +#X connect 63 0 74 2; +#X connect 63 0 75 3; +#X connect 63 1 62 0; +#X connect 63 2 52 0; +#X connect 64 0 65 1; +#X connect 64 0 75 2; +#X connect 64 0 76 3; +#X connect 64 1 63 0; +#X connect 64 2 53 0; +#X connect 65 0 76 2; +#X connect 65 1 64 0; +#X connect 65 2 54 0; +#X connect 66 0 67 1; +#X connect 66 0 77 2; +#X connect 66 0 78 3; +#X connect 66 2 55 0; +#X connect 67 0 68 1; +#X connect 67 0 78 2; +#X connect 67 0 79 3; +#X connect 67 1 66 0; +#X connect 67 2 56 0; +#X connect 68 0 69 1; +#X connect 68 0 79 2; +#X connect 68 0 80 3; +#X connect 68 1 67 0; +#X connect 68 2 57 0; +#X connect 69 0 70 1; +#X connect 69 0 80 2; +#X connect 69 0 81 3; +#X connect 69 1 68 0; +#X connect 69 2 58 0; +#X connect 70 0 71 1; +#X connect 70 0 81 2; +#X connect 70 0 82 3; +#X connect 70 1 69 0; +#X connect 70 2 59 0; +#X connect 71 0 72 1; +#X connect 71 0 82 2; +#X connect 71 0 83 3; +#X connect 71 1 70 0; +#X connect 71 2 60 0; +#X connect 72 0 73 1; +#X connect 72 0 83 2; +#X connect 72 0 84 3; +#X connect 72 1 71 0; +#X connect 72 2 61 0; +#X connect 73 0 74 1; +#X connect 73 0 84 2; +#X connect 73 0 85 3; +#X connect 73 1 72 0; +#X connect 73 2 62 0; +#X connect 74 0 75 1; +#X connect 74 0 85 2; +#X connect 74 0 86 3; +#X connect 74 1 73 0; +#X connect 74 2 63 0; +#X connect 75 0 76 1; +#X connect 75 0 86 2; +#X connect 75 0 87 3; +#X connect 75 1 74 0; +#X connect 75 2 64 0; +#X connect 76 0 87 2; +#X connect 76 1 75 0; +#X connect 76 2 65 0; +#X connect 77 0 78 1; +#X connect 77 0 88 2; +#X connect 77 0 89 3; +#X connect 77 2 66 0; +#X connect 78 0 79 1; +#X connect 78 0 89 2; +#X connect 78 0 90 3; +#X connect 78 1 77 0; +#X connect 78 2 67 0; +#X connect 79 0 80 1; +#X connect 79 0 90 2; +#X connect 79 0 91 3; +#X connect 79 1 78 0; +#X connect 79 2 68 0; +#X connect 80 0 81 1; +#X connect 80 0 91 2; +#X connect 80 0 92 3; +#X connect 80 1 79 0; +#X connect 80 2 69 0; +#X connect 81 0 82 1; +#X connect 81 0 92 2; +#X connect 81 0 93 3; +#X connect 81 1 80 0; +#X connect 81 2 70 0; +#X connect 82 0 83 1; +#X connect 82 0 93 2; +#X connect 82 0 94 3; +#X connect 82 1 81 0; +#X connect 82 2 71 0; +#X connect 83 0 84 1; +#X connect 83 0 94 2; +#X connect 83 0 95 3; +#X connect 83 1 82 0; +#X connect 83 2 72 0; +#X connect 84 0 85 1; +#X connect 84 0 95 2; +#X connect 84 0 96 3; +#X connect 84 1 83 0; +#X connect 84 2 73 0; +#X connect 85 0 86 1; +#X connect 85 0 96 2; +#X connect 85 0 97 3; +#X connect 85 1 84 0; +#X connect 85 2 74 0; +#X connect 86 0 87 1; +#X connect 86 0 97 2; +#X connect 86 0 98 3; +#X connect 86 1 85 0; +#X connect 86 2 75 0; +#X connect 87 0 98 2; +#X connect 87 1 86 0; +#X connect 87 2 76 0; +#X connect 88 0 89 1; +#X connect 88 0 99 2; +#X connect 88 0 100 3; +#X connect 88 2 77 0; +#X connect 89 0 90 1; +#X connect 89 0 100 2; +#X connect 89 0 101 3; +#X connect 89 1 88 0; +#X connect 89 2 78 0; +#X connect 90 0 91 1; +#X connect 90 0 101 2; +#X connect 90 0 102 3; +#X connect 90 1 89 0; +#X connect 90 2 79 0; +#X connect 91 0 92 1; +#X connect 91 0 102 2; +#X connect 91 0 103 3; +#X connect 91 1 90 0; +#X connect 91 2 80 0; +#X connect 92 0 93 1; +#X connect 92 0 103 2; +#X connect 92 0 104 3; +#X connect 92 1 91 0; +#X connect 92 2 81 0; +#X connect 93 0 94 1; +#X connect 93 0 104 2; +#X connect 93 0 105 3; +#X connect 93 1 92 0; +#X connect 93 2 82 0; +#X connect 94 0 95 1; +#X connect 94 0 105 2; +#X connect 94 0 106 3; +#X connect 94 1 93 0; +#X connect 94 2 83 0; +#X connect 95 0 96 1; +#X connect 95 0 106 2; +#X connect 95 0 107 3; +#X connect 95 1 94 0; +#X connect 95 2 84 0; +#X connect 96 0 97 1; +#X connect 96 0 107 2; +#X connect 96 0 108 3; +#X connect 96 1 95 0; +#X connect 96 2 85 0; +#X connect 97 0 98 1; +#X connect 97 0 108 2; +#X connect 97 0 109 3; +#X connect 97 1 96 0; +#X connect 97 2 86 0; +#X connect 98 0 109 2; +#X connect 98 1 97 0; +#X connect 98 2 87 0; +#X connect 99 0 100 1; +#X connect 99 0 110 2; +#X connect 99 0 111 3; +#X connect 99 2 88 0; +#X connect 100 0 101 1; +#X connect 100 0 111 2; +#X connect 100 0 112 3; +#X connect 100 1 99 0; +#X connect 100 2 89 0; +#X connect 101 0 102 1; +#X connect 101 0 112 2; +#X connect 101 0 113 3; +#X connect 101 1 100 0; +#X connect 101 2 90 0; +#X connect 102 0 103 1; +#X connect 102 0 113 2; +#X connect 102 0 114 3; +#X connect 102 1 101 0; +#X connect 102 2 91 0; +#X connect 103 0 104 1; +#X connect 103 0 114 2; +#X connect 103 0 115 3; +#X connect 103 1 102 0; +#X connect 103 2 92 0; +#X connect 104 0 105 1; +#X connect 104 0 115 2; +#X connect 104 0 116 3; +#X connect 104 1 103 0; +#X connect 104 2 93 0; +#X connect 105 0 106 1; +#X connect 105 0 116 2; +#X connect 105 0 117 3; +#X connect 105 1 104 0; +#X connect 105 2 94 0; +#X connect 106 0 107 1; +#X connect 106 0 117 2; +#X connect 106 0 118 3; +#X connect 106 1 105 0; +#X connect 106 2 95 0; +#X connect 107 0 108 1; +#X connect 107 0 118 2; +#X connect 107 0 119 3; +#X connect 107 1 106 0; +#X connect 107 2 96 0; +#X connect 108 0 109 1; +#X connect 108 0 119 2; +#X connect 108 0 120 3; +#X connect 108 1 107 0; +#X connect 108 2 97 0; +#X connect 109 0 120 2; +#X connect 109 1 108 0; +#X connect 109 2 98 0; +#X connect 110 0 111 1; +#X connect 110 2 99 0; +#X connect 111 0 112 1; +#X connect 111 1 110 0; +#X connect 111 2 100 0; +#X connect 112 0 113 1; +#X connect 112 1 111 0; +#X connect 112 2 101 0; +#X connect 113 0 114 1; +#X connect 113 1 112 0; +#X connect 113 2 102 0; +#X connect 114 0 115 1; +#X connect 114 1 113 0; +#X connect 114 2 103 0; +#X connect 115 0 116 1; +#X connect 115 1 114 0; +#X connect 115 2 104 0; +#X connect 116 0 117 1; +#X connect 116 1 115 0; +#X connect 116 2 105 0; +#X connect 117 0 118 1; +#X connect 117 1 116 0; +#X connect 117 2 106 0; +#X connect 118 0 119 1; +#X connect 118 1 117 0; +#X connect 118 2 107 0; +#X connect 119 0 120 1; +#X connect 119 1 118 0; +#X connect 119 2 108 0; +#X connect 120 0 121 0; +#X connect 120 1 119 0; +#X connect 120 2 109 0; +#X restore 15 366 pd array; +#X obj 16 122 t b b; +#X obj 16 48 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 1 1 +; +#X msg 160 112 0 \, destroy; +#X floatatom 59 64 5 0 0 0 - - -; +#X text 432 110 <- reset the simulation; +#X obj 151 212 ch_gemwin; +#X obj 170 143 hsl 128 15 0 127 0 0 empty empty empty -2 -6 0 8 -262144 +-1 -1 0 1; +#X obj 186 167 hsl 128 15 0 127 0 0 empty empty empty -2 -6 0 8 -262144 +-1 -1 0 1; +#X obj 203 190 hsl 128 15 0 127 0 0 empty empty empty -2 -6 0 8 -262144 +-1 -1 9600 1; +#X text 249 125 camera position; +#X msg 151 87 reset \, lighting 1 \, create \, 1; +#X obj 604 138 gemhead 1; +#X obj 604 187 world_light; +#X obj 604 163 rotateXYZ 0 0 0; +#X obj 403 112 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 +-1; +#X obj 404 137 s init; +#X obj 41 144 s L; +#X obj 16 144 s M; +#X floatatom 544 137 5 0 0 0 - - -; +#X obj 544 159 s size; +#X msg 490 135 reset; +#X obj 490 159 s M; +#X obj 16 95 metro 50; +#X obj 388 91 loadbang; +#X text 321 10 newWave; +#X text 203 23 this exemple is a bit like Gem native object : newWave. +; +#N canvas 0 0 458 308 constructor 0; +#X obj 20 124 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0 1 +; +#X obj 20 146 constructor 11 1 11 -5 5 0 0 -5 5 mountain; +#X msg 265 17 1 0 0 1 2; +#X msg 274 38 -1 0 0 2 1; +#X msg 288 60 0 0 1 1 3; +#X msg 297 81 0 0 -1 3 1; +#X msg 309 109 1 0 1 1 4; +#X connect 0 0 1 0; +#X connect 2 0 1 1; +#X connect 3 0 1 1; +#X connect 4 0 1 1; +#X connect 5 0 1 1; +#X connect 6 0 1 1; +#X restore 490 181 pd constructor; +#X obj 436 458 dac~; +#X obj 436 412 line~; +#X obj 435 435 tabread4~ toto; +#N canvas 0 0 456 306 graph1 0; +#X array toto 100000 float 0; +#X coords 0 1 99999 -1 200 140 1; +#X restore 198 321 graph; +#X obj 15 410 tabwrite toto; +#X obj 88 388 + 1; +#X obj 88 361 f; +#X msg 117 360 0; +#X obj 117 336 r init; +#X obj 88 290 r L; +#X obj 388 190 s L; +#X msg 388 163 setD2 0; +#X obj 88 314 route bang; +#X obj 15 388 / 10; +#X msg 451 383 0 \, 100000 10000; +#X msg 442 359 0 \, 100000 4000; +#X msg 436 336 0 \, 100000 1000; +#X text 151 244 you can record the position of a mass in a array. This +array can be read at audio rate...; +#X text 443 315 play the sound at various frequency; +#X text 37 46 <- begin (change metro speed for slow computer); +#X text 151 273 you can accelerate trhe simulation if the CPU allows +you \, to accelerate the computing of the array.; +#X obj 436 296 loadbang; +#X connect 0 0 41 0; +#X connect 1 0 18 0; +#X connect 1 1 17 0; +#X connect 2 0 23 0; +#X connect 3 0 6 0; +#X connect 4 0 23 1; +#X connect 7 0 6 1; +#X connect 8 0 6 2; +#X connect 9 0 6 3; +#X connect 11 0 6 0; +#X connect 12 0 14 0; +#X connect 14 0 13 0; +#X connect 15 0 16 0; +#X connect 19 0 20 0; +#X connect 21 0 22 0; +#X connect 23 0 1 0; +#X connect 24 0 16 0; +#X connect 24 0 39 0; +#X connect 29 0 30 0; +#X connect 30 0 28 0; +#X connect 30 0 28 1; +#X connect 33 0 34 1; +#X connect 33 0 32 1; +#X connect 34 0 33 0; +#X connect 35 0 33 0; +#X connect 36 0 35 0; +#X connect 37 0 40 0; +#X connect 39 0 38 0; +#X connect 40 0 34 0; +#X connect 41 0 32 0; +#X connect 42 0 29 0; +#X connect 43 0 29 0; +#X connect 44 0 29 0; +#X connect 49 0 44 0; diff --git a/exemples/46_non_linear.pd b/exemples/46_non_linear.pd new file mode 100755 index 0000000..df5a915 --- /dev/null +++ b/exemples/46_non_linear.pd @@ -0,0 +1,191 @@ +#N canvas 42 51 885 658 12; +#X obj 144 508 vsl 15 128 0 127 0 0 empty empty empty 0 -8 0 8 -262144 +-1 -1 6988 1; +#X obj 162 508 vsl 15 128 0 127 0 0 empty empty empty 0 -8 0 8 -262144 +-1 -1 7419 1; +#X obj 180 508 vsl 15 128 0 127 0 0 empty empty empty 0 -8 0 8 -262144 +-1 -1 7655 1; +#X obj 198 508 vsl 15 128 0 127 0 0 empty empty empty 0 -8 0 8 -262144 +-1 -1 7806 1; +#X obj 216 508 vsl 15 128 0 127 0 0 empty empty empty 0 -8 0 8 -262144 +-1 -1 7830 1; +#X obj 234 508 vsl 15 128 0 127 0 0 empty empty empty 0 -8 0 8 -262144 +-1 -1 7834 1; +#X obj 19 148 metro 10; +#X obj 252 508 vsl 15 128 0 127 0 0 empty empty empty 0 -8 0 8 -262144 +-1 -1 7746 1; +#X obj 19 175 t b b; +#X obj 54 200 s \$0-link; +#X obj 19 226 s \$0-mass; +#X obj 19 401 lia \$0-link 0 1 1; +#X obj 167 401 lia \$0-link 0 1 1; +#X obj 316 401 lia \$0-link 0 1 1; +#X obj 480 403 lia \$0-link 0 1 1; +#X obj 630 403 lia \$0-link 0 1 1; +#X obj 778 403 lia \$0-link 0 1 1; +#X obj 927 403 lia \$0-link 0 1 1; +#X obj 1073 402 lia \$0-link 0 1 1; +#X msg 19 376 64; +#X obj 19 349 loadbang; +#X obj 568 213 moses 0; +#X obj 568 139 lia \$0-link 0 0 1; +#X obj 568 238 * -1; +#X obj 17 460 lia \$0-link 0 1 1; +#X obj 166 460 lia \$0-link 0 1 1; +#X obj 315 460 lia \$0-link 0 1 1; +#X obj 472 459 lia \$0-link 0 1 1; +#X obj 620 459 lia \$0-link 0 1 1; +#X obj 769 459 lia \$0-link 0 1 1; +#X msg 928 458 64; +#X obj 927 436 loadbang; +#X obj 271 508 vsl 15 128 0 127 0 0 empty empty empty 0 -8 0 8 -262144 +-1 -1 7562 1; +#X obj 289 508 vsl 15 128 0 127 0 0 empty empty empty 0 -8 0 8 -262144 +-1 -1 7336 1; +#X obj 307 508 vsl 15 128 0 127 0 0 empty empty empty 0 -8 0 8 -262144 +-1 -1 7115 1; +#X obj 325 508 vsl 15 128 0 127 0 0 empty empty empty 0 -8 0 8 -262144 +-1 -1 6917 1; +#X obj 343 508 vsl 15 128 0 127 0 0 empty empty empty 0 -8 0 8 -262144 +-1 -1 6738 1; +#X obj 361 508 vsl 15 128 0 127 0 0 empty empty empty 0 -8 0 8 -262144 +-1 -1 6567 1; +#X obj 19 120 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 1 1 +; +#X obj 568 163 * 40; +#X obj 568 188 + 35; +#X obj 568 292 * -16; +#X obj 619 317 * 16; +#X obj 162 377 masse \$0-mass 30 64; +#X obj 313 378 masse \$0-mass 30 64; +#X obj 475 379 masse \$0-mass 30 64; +#X obj 626 379 masse \$0-mass 30 64; +#X obj 774 378 masse \$0-mass 30 64; +#X obj 925 378 masse \$0-mass 30 64; +#X obj 1069 377 masse \$0-mass 30 64; +#X obj 12 434 masse \$0-mass 30 64; +#X obj 163 437 masse \$0-mass 30 64; +#X obj 310 436 masse \$0-mass 30 64; +#X obj 468 435 masse \$0-mass 30 64; +#X obj 616 434 masse \$0-mass 30 64; +#X obj 767 434 masse \$0-mass 30 64; +#N canvas 0 0 450 300 graph2 0; +#X array force_speed 127 float 1; +#A 0 -0.0133335 0.126668 0.413337 0.740006 0.993341 0.886674 0.83334 +0.780006 0.746673 0.700005 0.686672 0.640005 0.600005 0.573338 0.546671 +0.520004 0.48667 0.460004 0.453337 0.42667 0.420003 0.400003 0.38667 +0.380003 0.366669 0.353336 0.340003 0.320002 0.320002 0.306669 0.293336 +0.286669 0.273335 0.260002 0.253335 0.253335 0.240002 0.226668 0.226668 +0.220002 0.213335 0.206668 0.200001 0.193335 0.186668 0.186668 0.186668 +0.180001 0.180001 0.173335 0.160001 0.160001 0.153334 0.140001 0.133334 +0.126668 0.120001 0.120001 0.113334 0.113334 0.106667 0.100001 0.093334 +0.0866672 0.0866672 0.0800005 0.0733338 0.0666671 0.0666671 0.0600004 +0.0600004 0.0533336 0.0533336 0.0533336 0.0533336 0.0466669 0.0466669 +0.0466669 0.0466669 0.0466669 0.0466669 0.0466669 0.0466669 0.0466669 +0.0466669 0.0466669 0.0466669 0.0400002 0.0400002 0.0400002 0.0400002 +0.0400002 0.0400002 0.0400002 0.0400002 0.0333335 0.0333335 0.0266668 +0.0266668 0.0266668 0.0266668 0.0266668 0.0266668 0.0266668 0.0266668 +0.0266668 0.0266668 0.0266668 0.0266668 0.0266668 0.0266668 0.0266668 +0.0266668 0.0266668 0.0266668 0.0266668 0.0200001 0.0200001 0.0200001 +0.0200001 0.0266668 0.0266668 0.0266668 0.0266668 0.0266668 0.0266668 +0.0200001; +#X coords 0 1 126 -1 200 100 1; +#X restore 214 142 graph; +#X obj 568 265 tabread4 force_speed; +#X obj 619 292 tabread4 force_speed; +#X text 105 5 This is an exemple of non linear link; +#X text 105 26 a table is used to store the relation between deformation +speed and force; +#X text 611 188 bow speed; +#X text 610 164 adjust curve size; +#X text 463 338 use the same curve for positive or negative force; +#X text 520 120 non linear exitation of a sigle mass; +#X text 27 273 the speed / force relation is like a bow on a string +interaction; +#X text 103 65 this simulation provide a continus exitation \, like +in a violon string exited with a bow.; +#X text 49 117 <- 1; +#X connect 6 0 8 0; +#X connect 8 0 10 0; +#X connect 8 1 9 0; +#X connect 11 1 43 0; +#X connect 12 0 43 0; +#X connect 12 1 44 0; +#X connect 13 0 44 0; +#X connect 13 1 45 0; +#X connect 14 0 45 0; +#X connect 14 1 46 0; +#X connect 15 0 46 0; +#X connect 15 1 47 0; +#X connect 16 0 47 0; +#X connect 16 1 48 0; +#X connect 17 0 48 0; +#X connect 17 1 49 0; +#X connect 18 0 49 0; +#X connect 18 1 50 0; +#X connect 19 0 11 0; +#X connect 20 0 19 0; +#X connect 21 0 23 0; +#X connect 21 1 58 0; +#X connect 22 0 39 0; +#X connect 23 0 57 0; +#X connect 24 0 50 0; +#X connect 24 1 51 0; +#X connect 25 0 51 0; +#X connect 25 1 52 0; +#X connect 26 0 52 0; +#X connect 26 1 53 0; +#X connect 27 0 53 0; +#X connect 27 1 54 0; +#X connect 28 0 54 0; +#X connect 28 1 55 0; +#X connect 29 0 55 0; +#X connect 30 0 29 1; +#X connect 31 0 30 0; +#X connect 38 0 6 0; +#X connect 39 0 40 0; +#X connect 40 0 21 0; +#X connect 41 0 46 0; +#X connect 42 0 46 0; +#X connect 43 0 0 0; +#X connect 43 0 11 1; +#X connect 43 0 12 0; +#X connect 44 0 1 0; +#X connect 44 0 12 1; +#X connect 44 0 13 0; +#X connect 45 0 2 0; +#X connect 45 0 13 1; +#X connect 45 0 14 0; +#X connect 46 0 3 0; +#X connect 46 0 14 1; +#X connect 46 0 15 0; +#X connect 46 0 22 0; +#X connect 47 0 4 0; +#X connect 47 0 15 1; +#X connect 47 0 16 0; +#X connect 48 0 5 0; +#X connect 48 0 16 1; +#X connect 48 0 17 0; +#X connect 49 0 7 0; +#X connect 49 0 17 1; +#X connect 49 0 18 0; +#X connect 50 0 24 0; +#X connect 50 0 18 1; +#X connect 50 0 32 0; +#X connect 51 0 24 1; +#X connect 51 0 25 0; +#X connect 51 0 33 0; +#X connect 52 0 25 1; +#X connect 52 0 26 0; +#X connect 52 0 34 0; +#X connect 53 0 26 1; +#X connect 53 0 27 0; +#X connect 53 0 35 0; +#X connect 54 0 27 1; +#X connect 54 0 28 0; +#X connect 54 0 36 0; +#X connect 55 0 28 1; +#X connect 55 0 29 0; +#X connect 55 0 37 0; +#X connect 57 0 41 0; +#X connect 58 0 42 0; diff --git a/exemples/aglom.pd b/exemples/aglom.pd new file mode 100755 index 0000000..753b21f --- /dev/null +++ b/exemples/aglom.pd @@ -0,0 +1,43 @@ +#N canvas 598 312 416 470 10; +#X msg 36 169 setXY \$1 \$2; +#X obj 36 22 loadbang; +#X obj 36 144 pack f f; +#X obj 36 46 t b b; +#X obj 57 246 gemhead; +#X obj 57 269 translateXYZ; +#X obj 46 219 unpack s f f; +#X obj 143 24 r reset_masse; +#X msg 36 355 setX \$1 \, setY \$2; +#X obj 36 70 random 20; +#X obj 36 116 / 4; +#X obj 102 69 random 20; +#X obj 102 115 / 4; +#X obj 36 93 - 10; +#X obj 102 91 - 10; +#X obj 12 332 r link; +#X obj 36 195 masse2D masse 100; +#X obj 57 293 sphere 0.1; +#X obj 38 382 iCircle2D masse 0 0 0.0001 0.3 0 0 0.1 0 0 0 1 1; +#X obj 51 405 iCircle2D masse 0 0 0.3 0.7 0 0 -0.1 0 0 0 1 1; +#X connect 0 0 16 0; +#X connect 1 0 3 0; +#X connect 2 0 0 0; +#X connect 3 0 9 0; +#X connect 3 1 11 0; +#X connect 4 0 5 0; +#X connect 5 0 17 0; +#X connect 6 1 5 1; +#X connect 6 2 5 2; +#X connect 7 0 3 0; +#X connect 8 0 18 0; +#X connect 8 0 19 0; +#X connect 9 0 13 0; +#X connect 10 0 2 0; +#X connect 11 0 14 0; +#X connect 12 0 2 1; +#X connect 13 0 10 0; +#X connect 14 0 12 0; +#X connect 15 0 18 0; +#X connect 15 0 19 0; +#X connect 16 0 6 0; +#X connect 16 0 8 0; diff --git a/exemples/aglom2.pd b/exemples/aglom2.pd new file mode 100755 index 0000000..775f7a5 --- /dev/null +++ b/exemples/aglom2.pd @@ -0,0 +1,43 @@ +#N canvas 151 425 338 461 10; +#X msg 36 169 setXY \$1 \$2; +#X obj 36 22 loadbang; +#X obj 36 144 pack f f; +#X obj 36 46 t b b; +#X obj 57 246 gemhead; +#X obj 57 269 translateXYZ; +#X obj 46 219 unpack s f f; +#X obj 143 24 r reset_masse; +#X msg 36 355 setX \$1 \, setY \$2; +#X obj 36 70 random 20; +#X obj 36 116 / 4; +#X obj 102 69 random 20; +#X obj 102 115 / 4; +#X obj 36 93 - 10; +#X obj 102 91 - 10; +#X obj 12 332 r link; +#X obj 36 195 masse2D masse 100; +#X obj 57 293 sphere 0.1; +#X obj 36 415 iCircle2D masse 0 0 1e-006 0.6 0 0 -0.1; +#X obj 50 383 iCircle2D masse 0 0 1e-006 0.3 0 0 1; +#X connect 0 0 16 0; +#X connect 1 0 3 0; +#X connect 2 0 0 0; +#X connect 3 0 9 0; +#X connect 3 1 11 0; +#X connect 4 0 5 0; +#X connect 5 0 17 0; +#X connect 6 1 5 1; +#X connect 6 2 5 2; +#X connect 7 0 3 0; +#X connect 8 0 18 0; +#X connect 8 0 19 0; +#X connect 9 0 13 0; +#X connect 10 0 2 0; +#X connect 11 0 14 0; +#X connect 12 0 2 1; +#X connect 13 0 10 0; +#X connect 14 0 12 0; +#X connect 15 0 18 0; +#X connect 15 0 19 0; +#X connect 16 0 6 0; +#X connect 16 0 8 0; diff --git a/exemples/aglom3.pd b/exemples/aglom3.pd new file mode 100755 index 0000000..61c310e --- /dev/null +++ b/exemples/aglom3.pd @@ -0,0 +1,23 @@ +#N canvas 594 454 446 333 10; +#X obj 61 77 gemhead; +#X obj 61 100 translateXYZ; +#X obj 50 50 unpack s f f; +#X msg 40 185 setX \$1 \, setY \$2; +#X obj 17 155 r link; +#X obj 61 124 sphere 0.1; +#X obj 54 214 iCircle2D masse 0 0 1e-006 0.3 0 0 1; +#X obj 40 26 masse2D masse 100 \$1 \$2; +#X obj 40 246 iCircle2D masse 0 0 1e-006 0.6 0 0 -0.1; +#X obj 27 275 iCircle2D masse 0 0 1e-006 0.9 0 0 0.01; +#X connect 0 0 1 0; +#X connect 1 0 5 0; +#X connect 2 1 1 1; +#X connect 2 2 1 2; +#X connect 3 0 6 0; +#X connect 3 0 8 0; +#X connect 3 0 9 0; +#X connect 4 0 6 0; +#X connect 4 0 8 0; +#X connect 4 0 9 0; +#X connect 7 0 2 0; +#X connect 7 0 3 0; diff --git a/exemples/aglom4.pd b/exemples/aglom4.pd new file mode 100755 index 0000000..47c329a --- /dev/null +++ b/exemples/aglom4.pd @@ -0,0 +1,24 @@ +#N canvas 822 26 480 367 10; +#X obj 82 144 gemhead; +#X obj 82 167 translateXYZ; +#X obj 71 117 unpack s f f; +#X msg 61 252 setX \$1 \, setY \$2; +#X obj 28 229 r link; +#X obj 61 93 masse2D masse 100 \$1 \$2; +#X obj 61 46 loadbang; +#X msg 61 70 setYmin -7.5; +#X obj 82 191 sphere 0.3; +#X obj 83 290 iCircle2D masse 0 0 1e-006 0.5 0 0 5; +#X obj 60 315 iCircle2D masse 0 0 1e-006 1 0 0 0 0 0 0 0 0 0 0 2; +#X connect 0 0 1 0; +#X connect 1 0 8 0; +#X connect 2 1 1 1; +#X connect 2 2 1 2; +#X connect 3 0 9 0; +#X connect 3 0 10 0; +#X connect 4 0 9 0; +#X connect 4 0 10 0; +#X connect 5 0 2 0; +#X connect 5 0 3 0; +#X connect 6 0 7 0; +#X connect 7 0 5 0; diff --git a/exemples/blob.pd b/exemples/blob.pd new file mode 100755 index 0000000..7b8e96f --- /dev/null +++ b/exemples/blob.pd @@ -0,0 +1,105 @@ +#N canvas 44 276 674 587 10; +#X obj 245 408 translateXYZ 0 0 0; +#X obj 245 436 sphere 0.3; +#X obj 254 353 unpack s f f f; +#X obj 14 24 inlet; +#X obj 14 45 t b a; +#X obj 149 527 outlet; +#X obj 276 118 unpack s f f f; +#X obj 307 142 + 0; +#X obj 307 166 f; +#X obj 291 192 f; +#X obj 340 143 + 0; +#X obj 340 167 f; +#X obj 324 193 f; +#X obj 372 146 + 0; +#X obj 372 170 f; +#X obj 361 194 f; +#X obj 252 226 pack f f f; +#X msg 253 257 force3D \$1 \$2 \$3; +#X obj 262 28 r lia; +#X obj 401 43 r r_lia; +#X obj 264 53 t b b b; +#X msg 401 117 0 0; +#X obj 144 426 r masse3; +#X obj 145 467 pack 0 f f f; +#X msg 142 497 position3D \$2 \$3 \$4; +#X obj 139 326 r gemhead; +#X obj 139 350 separator; +#X msg 472 288 setXYZ \$1 \$2 \$3; +#X obj 472 263 pack f f \$3; +#X obj 255 330 masse3D masse 1; +#X obj 476 158 loadbang; +#X obj 473 241 cos; +#X obj 501 238 sin; +#X obj 474 190 t b b b; +#X obj 472 220 \$2; +#X obj 496 214 \$2; +#X obj 534 218 \$3; +#X obj 511 44 r masse2; +#X obj 510 65 route reset; +#X obj 508 92 t b b; +#X msg 473 125 reset; +#X obj 154 33 inlet; +#X obj 14 72 lia3D link 0.5 1 0 0.5; +#X connect 0 0 1 0; +#X connect 2 1 0 1; +#X connect 2 1 23 1; +#X connect 2 2 0 2; +#X connect 2 2 23 2; +#X connect 2 3 0 3; +#X connect 2 3 23 3; +#X connect 3 0 4 0; +#X connect 4 0 42 0; +#X connect 4 1 42 0; +#X connect 6 1 7 0; +#X connect 6 2 10 0; +#X connect 6 3 13 0; +#X connect 7 0 8 0; +#X connect 8 0 7 1; +#X connect 8 0 9 1; +#X connect 9 0 16 0; +#X connect 10 0 11 0; +#X connect 11 0 10 1; +#X connect 11 0 12 1; +#X connect 12 0 16 1; +#X connect 13 0 14 0; +#X connect 14 0 13 1; +#X connect 14 0 15 1; +#X connect 15 0 16 2; +#X connect 16 0 17 0; +#X connect 17 0 29 0; +#X connect 18 0 20 0; +#X connect 19 0 21 0; +#X connect 20 0 21 0; +#X connect 20 1 9 0; +#X connect 20 2 15 0; +#X connect 20 2 12 0; +#X connect 21 0 13 0; +#X connect 21 0 10 0; +#X connect 21 0 7 0; +#X connect 22 0 23 0; +#X connect 23 0 24 0; +#X connect 24 0 5 0; +#X connect 25 0 26 0; +#X connect 26 0 0 0; +#X connect 27 0 29 0; +#X connect 28 0 27 0; +#X connect 29 0 2 0; +#X connect 29 0 42 1; +#X connect 30 0 33 0; +#X connect 31 0 28 0; +#X connect 32 0 28 1; +#X connect 33 0 34 0; +#X connect 33 1 35 0; +#X connect 33 2 36 0; +#X connect 34 0 31 0; +#X connect 35 0 32 0; +#X connect 36 0 28 2; +#X connect 37 0 38 0; +#X connect 38 0 39 0; +#X connect 39 0 33 0; +#X connect 39 1 40 0; +#X connect 40 0 29 0; +#X connect 41 0 29 0; +#X connect 42 1 6 0; diff --git a/exemples/ch_gemwin.pd b/exemples/ch_gemwin.pd new file mode 100755 index 0000000..1ebbb42 --- /dev/null +++ b/exemples/ch_gemwin.pd @@ -0,0 +1,170 @@ +#N canvas 0 0 796 617 10; +#X obj 285 171 f; +#X obj 206 152 spigot; +#X obj 267 143 sel 0 1; +#X obj 237 124 t f f; +#X obj 206 200 -; +#X obj 206 249 +; +#X obj 267 213 f; +#X obj 159 168 f; +#X obj 80 149 spigot; +#X obj 141 140 sel 0 1; +#X obj 111 121 t f f; +#X obj 80 200 -; +#X obj 80 249 +; +#X obj 141 210 f; +#X obj 406 162 f; +#X obj 327 146 spigot; +#X obj 388 137 sel 0 1; +#X obj 358 118 t f f; +#X obj 327 197 -; +#X obj 388 207 f; +#X obj 80 465 * 4; +#X obj 135 467 * 4; +#X obj 156 308 t b f; +#X obj 94 372 cos; +#X obj 106 430 * 1; +#X obj 80 430 * 1; +#X obj 132 373 sin; +#X obj 107 466 * 4; +#X obj 94 394 t b f; +#X obj 94 348 / 200; +#X obj 80 491 pack f f f; +#X obj 458 49 gemmouse; +#X obj 515 135 t b f; +#X obj 515 164 |; +#X obj 487 240 gemhead; +#X obj 491 193 loadbang; +#X msg 487 215 0; +#X obj 487 315 curve 2; +#X obj 487 266 color 1 0 0; +#X obj 571 240 gemhead; +#X obj 571 315 curve 2; +#X obj 651 242 gemhead; +#X obj 651 317 curve 2; +#X msg 524 289 3 0 0; +#X msg 608 289 0 3 0; +#X msg 688 291 0 0 3; +#X msg 80 516 view \$1 \$2 \$3 0 0 0 0 1 0; +#X obj 571 266 color 0 1 0; +#X obj 651 268 color 0 0 1; +#X obj 80 308 sin; +#X obj 106 309 cos; +#X obj 327 246 + 200; +#X obj 157 282 / 50; +#X obj 80 283 / -200; +#X obj 18 12 inlet; +#X obj 20 579 outlet; +#X obj 21 551 gemwin \$1; +#X obj 60 14 inlet; +#X obj 215 19 inlet; +#X obj 132 15 inlet; +#X obj 213 44 * 5; +#X obj 59 82 / 127; +#X obj 60 61 * 400; +#X obj 131 82 / 127; +#X obj 131 58 * 200; +#X obj 131 36 * -3.14; +#X obj 60 37 * 3.14; +#X connect 0 0 4 1; +#X connect 1 0 4 0; +#X connect 2 0 6 0; +#X connect 2 1 0 0; +#X connect 3 0 1 1; +#X connect 3 1 2 0; +#X connect 4 0 5 0; +#X connect 5 0 6 1; +#X connect 5 0 29 0; +#X connect 6 0 5 1; +#X connect 7 0 11 1; +#X connect 8 0 11 0; +#X connect 9 0 13 0; +#X connect 9 1 7 0; +#X connect 10 0 8 1; +#X connect 10 1 9 0; +#X connect 11 0 12 0; +#X connect 12 0 13 1; +#X connect 12 0 53 0; +#X connect 13 0 12 1; +#X connect 14 0 18 1; +#X connect 15 0 18 0; +#X connect 16 0 19 0; +#X connect 16 1 14 0; +#X connect 17 0 15 1; +#X connect 17 1 16 0; +#X connect 18 0 51 0; +#X connect 19 0 51 1; +#X connect 20 0 30 0; +#X connect 21 0 30 2; +#X connect 22 0 21 0; +#X connect 22 0 20 0; +#X connect 22 0 27 0; +#X connect 22 1 21 1; +#X connect 22 1 20 1; +#X connect 22 1 27 1; +#X connect 23 0 28 0; +#X connect 24 0 21 0; +#X connect 25 0 20 0; +#X connect 26 0 27 0; +#X connect 27 0 30 1; +#X connect 28 0 24 0; +#X connect 28 0 25 0; +#X connect 28 1 24 1; +#X connect 28 1 25 1; +#X connect 29 0 23 0; +#X connect 29 0 26 0; +#X connect 30 0 46 0; +#X connect 31 0 8 0; +#X connect 31 0 7 1; +#X connect 31 1 1 0; +#X connect 31 1 0 1; +#X connect 31 1 14 1; +#X connect 31 1 15 0; +#X connect 31 2 3 0; +#X connect 31 2 10 0; +#X connect 31 2 33 0; +#X connect 31 3 17 0; +#X connect 31 3 32 0; +#X connect 32 0 33 0; +#X connect 32 1 33 1; +#X connect 33 0 34 0; +#X connect 33 0 39 0; +#X connect 33 0 41 0; +#X connect 34 0 38 0; +#X connect 35 0 36 0; +#X connect 35 0 43 0; +#X connect 35 0 44 0; +#X connect 35 0 45 0; +#X connect 35 0 53 0; +#X connect 35 0 51 0; +#X connect 36 0 34 0; +#X connect 36 0 39 0; +#X connect 36 0 41 0; +#X connect 38 0 37 0; +#X connect 39 0 47 0; +#X connect 41 0 48 0; +#X connect 43 0 37 2; +#X connect 44 0 40 2; +#X connect 45 0 42 2; +#X connect 46 0 56 0; +#X connect 47 0 40 0; +#X connect 48 0 42 0; +#X connect 49 0 25 0; +#X connect 50 0 24 0; +#X connect 51 0 19 1; +#X connect 51 0 52 0; +#X connect 52 0 22 0; +#X connect 53 0 49 0; +#X connect 53 0 50 0; +#X connect 54 0 56 0; +#X connect 56 0 55 0; +#X connect 57 0 66 0; +#X connect 58 0 60 0; +#X connect 59 0 65 0; +#X connect 60 0 52 0; +#X connect 61 0 53 0; +#X connect 62 0 61 0; +#X connect 63 0 29 0; +#X connect 64 0 63 0; +#X connect 65 0 64 0; +#X connect 66 0 62 0; diff --git a/exemples/ch_uzi.pd b/exemples/ch_uzi.pd new file mode 100755 index 0000000..43b450d --- /dev/null +++ b/exemples/ch_uzi.pd @@ -0,0 +1,22 @@ +#N canvas 0 0 450 300 10; +#X obj 82 155 moses \$1; +#X obj 81 102 0; +#X obj 82 126 + 1; +#X obj 81 182 t b; +#X msg 78 78 0; +#X obj 33 236 outlet; +#X obj 91 237 outlet; +#X obj 153 239 outlet; +#X msg 153 196 bang; +#X obj 62 24 inlet; +#X connect 0 0 3 0; +#X connect 0 0 6 0; +#X connect 0 1 8 0; +#X connect 1 0 2 0; +#X connect 2 0 1 1; +#X connect 2 0 0 0; +#X connect 3 0 1 0; +#X connect 3 0 5 0; +#X connect 4 0 1 0; +#X connect 8 0 7 0; +#X connect 9 0 4 0; diff --git a/exemples/constructor.pd b/exemples/constructor.pd new file mode 100755 index 0000000..0e1aa28 --- /dev/null +++ b/exemples/constructor.pd @@ -0,0 +1,773 @@ +#N canvas 182 111 694 704 10; +#X obj 139 340 symbol \$10; +#X obj 18 177 inlet; +#X obj 18 202 sel 0 1; +#X obj 36 227 t b b; +#X msg 18 413 menuclose; +#X obj 18 595 s pd-array; +#X obj 36 361 pack f f f f f f s; +#X msg 36 388 obj \$1 \$2 \$7 \$3 \$4 \$5 \$6; +#N canvas 672 57 395 809 generator 0; +#X obj 24 21 inlet; +#X obj 24 747 outlet; +#X obj 24 688 pack f f f f f f; +#X obj 65 45 \$1; +#X text 40 708 posX \, posY \, number \, valueX \, valueY \, valueZ +; +#N canvas 587 356 209 245 uzi 0; +#X obj 41 91 0; +#X obj 42 115 + 1; +#X obj 41 202 outlet; +#X obj 41 16 inlet; +#X obj 42 140 moses 1; +#X obj 41 42 t b f; +#X msg 41 68 -1; +#X obj 41 167 delay 0; +#X connect 0 0 1 0; +#X connect 1 0 4 0; +#X connect 1 0 0 1; +#X connect 3 0 5 0; +#X connect 4 0 2 0; +#X connect 4 0 7 0; +#X connect 5 0 6 0; +#X connect 5 1 4 1; +#X connect 6 0 0 0; +#X connect 7 0 0 0; +#X restore 24 145 pd uzi; +#X obj 65 21 loadbang; +#X obj 65 91 * \$3; +#X obj 65 67 * \$2; +#X obj 24 121 f; +#X obj 24 193 % \$1; +#X obj 24 169 t f f f f; +#X text 54 193 X; +#X obj 133 24 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 +-1; +#X obj 34 67 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 +-1; +#X obj 40 275 % \$2; +#X text 76 277 Y; +#X obj 56 306 / \$2; +#X obj 56 351 % \$3; +#X obj 40 252 / \$1; +#X obj 56 328 / \$1; +#X text 91 351 Z; +#X obj 24 420 +; +#X obj 40 570 +; +#X obj 40 400 * 20; +#X obj 56 542 * 50; +#X obj 24 218 t f f; +#N canvas 724 448 176 188 valeurX 0; +#X obj 15 11 inlet; +#X obj 15 146 outlet; +#X obj 25 34 loadbang; +#N canvas 0 0 315 417 range 0; +#X obj 16 45 inlet; +#X obj 63 45 inlet; +#X obj 109 45 inlet; +#X obj 154 45 inlet; +#X obj 200 45 inlet; +#X obj 125 112 -; +#X obj 109 76 t b f; +#X obj 154 113 -; +#X obj 16 168 -; +#X obj 16 76 t b f; +#X obj 125 218 /; +#X obj 154 264 *; +#X obj 186 306 +; +#X obj 154 77 t b f f; +#X obj 186 337 outlet; +#X obj 63 76 t f f; +#X obj 15 107 f; +#X connect 0 0 9 0; +#X connect 1 0 15 0; +#X connect 2 0 6 0; +#X connect 3 0 13 0; +#X connect 4 0 7 0; +#X connect 5 0 10 1; +#X connect 6 0 5 0; +#X connect 6 1 5 1; +#X connect 7 0 11 1; +#X connect 8 0 10 0; +#X connect 9 0 16 0; +#X connect 9 1 8 1; +#X connect 10 0 11 0; +#X connect 11 0 12 0; +#X connect 12 0 14 0; +#X connect 13 0 7 0; +#X connect 13 1 7 1; +#X connect 13 2 12 1; +#X connect 15 0 16 1; +#X connect 15 1 5 0; +#X connect 16 0 8 0; +#X restore 15 121 pd range; +#X msg 25 67 0; +#X obj 53 67 \$1; +#X obj 53 91 - 1; +#X obj 82 67 \$4; +#X obj 113 67 \$5; +#X connect 0 0 3 0; +#X connect 2 0 4 0; +#X connect 2 0 5 0; +#X connect 2 0 7 0; +#X connect 2 0 8 0; +#X connect 3 0 1 0; +#X connect 4 0 3 1; +#X connect 5 0 6 0; +#X connect 6 0 3 2; +#X connect 7 0 3 3; +#X connect 8 0 3 4; +#X restore 78 607 pd valeurX; +#X obj 75 454 \$2; +#X obj 75 429 loadbang; +#X obj 75 476 - 1; +#X obj 75 498 * 20; +#X obj 75 521 + 100; +#X obj 24 378 * 200; +#N canvas 724 448 180 192 valeurY 0; +#X obj 15 11 inlet; +#X obj 15 146 outlet; +#X obj 25 34 loadbang; +#N canvas 0 0 315 417 range 0; +#X obj 16 45 inlet; +#X obj 63 45 inlet; +#X obj 109 45 inlet; +#X obj 154 45 inlet; +#X obj 200 45 inlet; +#X obj 125 112 -; +#X obj 109 76 t b f; +#X obj 154 113 -; +#X obj 16 168 -; +#X obj 16 76 t b f; +#X obj 109 193 /; +#X obj 138 239 *; +#X obj 170 281 +; +#X obj 154 77 t b f f; +#X obj 170 312 outlet; +#X obj 63 76 t f f; +#X obj 13 112 f; +#X connect 0 0 9 0; +#X connect 1 0 15 0; +#X connect 2 0 6 0; +#X connect 3 0 13 0; +#X connect 4 0 7 0; +#X connect 5 0 10 1; +#X connect 6 0 5 0; +#X connect 6 1 5 1; +#X connect 7 0 11 1; +#X connect 8 0 10 0; +#X connect 9 0 16 0; +#X connect 9 1 8 1; +#X connect 10 0 11 0; +#X connect 11 0 12 0; +#X connect 12 0 14 0; +#X connect 13 0 7 0; +#X connect 13 1 7 1; +#X connect 13 2 12 1; +#X connect 15 0 16 1; +#X connect 15 1 5 0; +#X connect 16 0 8 0; +#X restore 15 121 pd range; +#X msg 25 67 0; +#X obj 53 91 - 1; +#X obj 53 67 \$2; +#X obj 82 67 \$6; +#X obj 113 67 \$7; +#X connect 0 0 3 0; +#X connect 2 0 4 0; +#X connect 2 0 6 0; +#X connect 2 0 7 0; +#X connect 2 0 8 0; +#X connect 3 0 1 0; +#X connect 4 0 3 1; +#X connect 5 0 3 2; +#X connect 6 0 5 0; +#X connect 7 0 3 3; +#X connect 8 0 3 4; +#X restore 96 627 pd valeurY; +#N canvas 724 448 178 190 valeurZ 0; +#X obj 15 11 inlet; +#X obj 15 146 outlet; +#X obj 25 34 loadbang; +#N canvas 352 24 315 417 range 0; +#X obj 16 45 inlet; +#X obj 63 45 inlet; +#X obj 109 45 inlet; +#X obj 154 45 inlet; +#X obj 200 45 inlet; +#X obj 125 112 -; +#X obj 109 76 t b f; +#X obj 154 113 -; +#X obj 16 168 -; +#X obj 16 76 t b f; +#X obj 109 202 /; +#X obj 138 248 *; +#X obj 170 290 +; +#X obj 154 77 t b f f; +#X obj 170 321 outlet; +#X obj 63 76 t f f; +#X obj 15 110 f; +#X connect 0 0 9 0; +#X connect 1 0 15 0; +#X connect 2 0 6 0; +#X connect 3 0 13 0; +#X connect 4 0 7 0; +#X connect 5 0 10 1; +#X connect 6 0 5 0; +#X connect 6 1 5 1; +#X connect 7 0 11 1; +#X connect 8 0 10 0; +#X connect 9 0 16 0; +#X connect 9 1 8 1; +#X connect 10 0 11 0; +#X connect 11 0 12 0; +#X connect 12 0 14 0; +#X connect 13 0 7 0; +#X connect 13 1 7 1; +#X connect 13 2 12 1; +#X connect 15 0 16 1; +#X connect 15 1 5 0; +#X connect 16 0 8 0; +#X restore 15 121 pd range; +#X msg 25 67 0; +#X obj 53 91 - 1; +#X obj 53 67 \$3; +#X obj 82 67 \$8; +#X obj 114 67 \$9; +#X connect 0 0 3 0; +#X connect 2 0 4 0; +#X connect 2 0 6 0; +#X connect 2 0 7 0; +#X connect 2 0 8 0; +#X connect 3 0 1 0; +#X connect 4 0 3 1; +#X connect 5 0 3 2; +#X connect 6 0 5 0; +#X connect 7 0 3 3; +#X connect 8 0 3 4; +#X restore 115 648 pd valeurZ; +#X connect 0 0 9 0; +#X connect 2 0 1 0; +#X connect 3 0 8 0; +#X connect 5 0 11 0; +#X connect 6 0 3 0; +#X connect 7 0 9 1; +#X connect 8 0 7 0; +#X connect 9 0 5 0; +#X connect 10 0 26 0; +#X connect 11 0 10 0; +#X connect 11 1 19 0; +#X connect 11 2 17 0; +#X connect 11 3 2 2; +#X connect 13 0 3 0; +#X connect 14 0 9 0; +#X connect 15 0 24 0; +#X connect 15 0 34 0; +#X connect 17 0 20 0; +#X connect 18 0 25 0; +#X connect 18 0 35 0; +#X connect 19 0 15 0; +#X connect 20 0 18 0; +#X connect 22 0 2 0; +#X connect 23 0 2 1; +#X connect 24 0 22 1; +#X connect 24 0 23 0; +#X connect 25 0 23 1; +#X connect 26 0 33 0; +#X connect 26 1 27 0; +#X connect 27 0 2 3; +#X connect 28 0 30 0; +#X connect 29 0 28 0; +#X connect 30 0 31 0; +#X connect 31 0 32 0; +#X connect 32 0 25 1; +#X connect 33 0 22 0; +#X connect 34 0 2 4; +#X connect 35 0 2 5; +#X restore 36 334 pd generator; +#X obj 139 315 loadbang; +#X obj 248 233 inlet; +#N canvas 417 47 606 869 connect 0; +#X obj 18 4 inlet; +#X obj 154 785 outlet; +#X text 27 35 offsetX \, offestY \, offsetZ \, outlet \, inlet; +#X obj 127 201 - \$1; +#X obj 127 223 * -1; +#X obj 18 175 moses 0; +#X msg 55 199 0; +#X obj 18 199 abs; +#X obj 89 222 \$1; +#X msg 89 199 bang; +#X obj 88 175 moses 0; +#X obj 280 264 * -1; +#X obj 171 213 moses 0; +#X msg 208 237 0; +#X obj 171 237 abs; +#X msg 242 237 bang; +#X obj 241 213 moses 0; +#X obj 428 326 * -1; +#X obj 319 275 moses 0; +#X msg 356 299 0; +#X obj 319 299 abs; +#X msg 390 299 bang; +#X obj 389 275 moses 0; +#X obj 154 762 pack f f f f; +#X msg 89 12 1 2 1 1 1; +#X obj 505 320 - 1; +#X obj 556 332 - 1; +#X obj 280 239 - \$2; +#X obj 242 258 \$2; +#X obj 428 301 - \$3; +#X obj 390 320 \$3; +#X text 54 232 Xmin; +#X text 201 269 Ymin; +#X text 120 249 Xmax; +#X text 279 293 Ymax; +#X text 349 332 Zmin; +#X text 414 354 Zmax; +#X text 502 300 outlet; +#X text 565 305 inlet; +#N canvas 220 47 314 643 generator 0; +#X obj 37 38 inlet; +#X obj 38 536 outlet; +#X obj 84 138 \$1; +#N canvas 587 356 211 247 uzi 0; +#X obj 41 91 0; +#X obj 42 115 + 1; +#X obj 41 202 outlet; +#X obj 41 16 inlet; +#X obj 42 140 moses 1; +#X obj 41 42 t b f; +#X msg 41 68 -1; +#X obj 41 167 delay 0; +#X connect 0 0 1 0; +#X connect 1 0 4 0; +#X connect 1 0 0 1; +#X connect 3 0 5 0; +#X connect 4 0 2 0; +#X connect 4 0 7 0; +#X connect 5 0 6 0; +#X connect 5 1 4 1; +#X connect 6 0 0 0; +#X connect 7 0 0 0; +#X restore 38 230 pd uzi; +#X obj 84 184 * \$3; +#X obj 84 160 * \$2; +#X obj 38 206 f; +#X obj 38 278 % \$1; +#X obj 38 254 t f f f f; +#X text 68 278 X; +#X obj 54 328 % \$2; +#X text 90 330 Y; +#X obj 70 356 / \$2; +#X obj 70 401 % \$3; +#X obj 54 305 / \$1; +#X obj 70 378 / \$1; +#X text 105 401 Z; +#N canvas 524 397 238 191 valeurZ 0; +#X obj 31 29 inlet; +#X obj 31 164 outlet; +#X obj 41 52 loadbang; +#N canvas 0 0 315 417 range 0; +#X obj 16 45 inlet; +#X obj 63 45 inlet; +#X obj 109 45 inlet; +#X obj 154 45 inlet; +#X obj 200 45 inlet; +#X obj 125 112 -; +#X obj 109 76 t b f; +#X obj 154 113 -; +#X obj 16 168 -; +#X obj 16 76 t b f; +#X obj 125 218 /; +#X obj 154 264 *; +#X obj 186 306 +; +#X obj 154 77 t b f f; +#X obj 186 337 outlet; +#X obj 63 76 t f f; +#X obj 16 113 f; +#X connect 0 0 9 0; +#X connect 1 0 15 0; +#X connect 2 0 6 0; +#X connect 3 0 13 0; +#X connect 4 0 7 0; +#X connect 5 0 10 1; +#X connect 6 0 5 0; +#X connect 6 1 5 1; +#X connect 7 0 11 1; +#X connect 8 0 10 0; +#X connect 9 0 16 0; +#X connect 9 1 8 1; +#X connect 10 0 11 0; +#X connect 11 0 12 0; +#X connect 12 0 14 0; +#X connect 13 0 7 0; +#X connect 13 1 7 1; +#X connect 13 2 12 1; +#X connect 15 0 16 1; +#X connect 15 1 5 0; +#X connect 16 0 8 0; +#X restore 31 139 pd range; +#X msg 41 85 0; +#X obj 69 109 - 1; +#X obj 103 31 inlet; +#X obj 142 31 inlet; +#X obj 182 31 inlet; +#X connect 0 0 3 0; +#X connect 2 0 4 0; +#X connect 3 0 1 0; +#X connect 4 0 3 1; +#X connect 5 0 3 2; +#X connect 6 0 5 0; +#X connect 7 0 3 3; +#X connect 8 0 3 4; +#X restore 70 425 pd valeurZ; +#X obj 38 509 pack f f f; +#X text 90 541 valueX \, valueY \, valueZ; +#X obj 37 66 t b l; +#X obj 87 92 unpack f f f f f f f f f; +#N canvas 366 669 236 189 valeurY 0; +#X obj 31 29 inlet; +#X obj 31 164 outlet; +#X obj 41 52 loadbang; +#N canvas 326 5 317 419 range 0; +#X obj 16 45 inlet; +#X obj 63 45 inlet; +#X obj 109 45 inlet; +#X obj 154 45 inlet; +#X obj 200 45 inlet; +#X obj 125 112 -; +#X obj 109 76 t b f; +#X obj 154 113 -; +#X obj 16 168 -; +#X obj 16 76 t b f; +#X obj 125 218 /; +#X obj 154 264 *; +#X obj 186 306 +; +#X obj 154 77 t b f f; +#X obj 186 337 outlet; +#X obj 63 76 t f f; +#X obj 15 119 f; +#X connect 0 0 9 0; +#X connect 1 0 15 0; +#X connect 2 0 6 0; +#X connect 3 0 13 0; +#X connect 4 0 7 0; +#X connect 5 0 10 1; +#X connect 6 0 5 0; +#X connect 6 1 5 1; +#X connect 7 0 11 1; +#X connect 8 0 10 0; +#X connect 9 0 16 0; +#X connect 9 1 8 1; +#X connect 10 0 11 0; +#X connect 11 0 12 0; +#X connect 12 0 14 0; +#X connect 13 0 7 0; +#X connect 13 1 7 1; +#X connect 13 2 12 1; +#X connect 15 0 16 1; +#X connect 15 1 5 0; +#X connect 16 0 8 0; +#X restore 31 139 pd range; +#X msg 41 85 0; +#X obj 69 109 - 1; +#X obj 103 31 inlet; +#X obj 142 31 inlet; +#X obj 182 31 inlet; +#X connect 0 0 3 0; +#X connect 2 0 4 0; +#X connect 3 0 1 0; +#X connect 4 0 3 1; +#X connect 5 0 3 2; +#X connect 6 0 5 0; +#X connect 7 0 3 3; +#X connect 8 0 3 4; +#X restore 56 447 pd valeurY; +#N canvas 671 661 240 193 valeurX 0; +#X obj 31 29 inlet; +#X obj 31 164 outlet; +#X obj 41 52 loadbang; +#N canvas 0 0 321 423 range 0; +#X obj 16 45 inlet; +#X obj 63 45 inlet; +#X obj 109 45 inlet; +#X obj 154 45 inlet; +#X obj 200 45 inlet; +#X obj 125 112 -; +#X obj 109 76 t b f; +#X obj 154 113 -; +#X obj 16 168 -; +#X obj 16 76 t b f; +#X obj 125 218 /; +#X obj 154 264 *; +#X obj 186 306 +; +#X obj 157 76 t b f f; +#X obj 186 337 outlet; +#X obj 63 76 t f f; +#X obj 16 143 f; +#X connect 0 0 9 0; +#X connect 1 0 15 0; +#X connect 2 0 6 0; +#X connect 3 0 13 0; +#X connect 4 0 7 0; +#X connect 5 0 10 1; +#X connect 6 0 5 0; +#X connect 6 1 5 1; +#X connect 7 0 11 1; +#X connect 8 0 10 0; +#X connect 9 0 16 0; +#X connect 9 1 8 1; +#X connect 10 0 11 0; +#X connect 11 0 12 0; +#X connect 12 0 14 0; +#X connect 13 0 7 0; +#X connect 13 1 7 1; +#X connect 13 2 12 1; +#X connect 15 0 16 1; +#X connect 15 1 5 0; +#X connect 16 0 8 0; +#X restore 31 139 pd range; +#X msg 41 85 0; +#X obj 69 109 - 1; +#X obj 103 31 inlet; +#X obj 142 31 inlet; +#X obj 182 31 inlet; +#X connect 0 0 3 0; +#X connect 2 0 4 0; +#X connect 3 0 1 0; +#X connect 4 0 3 1; +#X connect 5 0 3 2; +#X connect 6 0 5 0; +#X connect 7 0 3 3; +#X connect 8 0 3 4; +#X restore 38 475 pd valeurX; +#X connect 0 0 20 0; +#X connect 2 0 5 0; +#X connect 3 0 8 0; +#X connect 4 0 6 1; +#X connect 5 0 4 0; +#X connect 6 0 3 0; +#X connect 7 0 23 0; +#X connect 8 0 7 0; +#X connect 8 1 14 0; +#X connect 8 2 12 0; +#X connect 10 0 22 0; +#X connect 12 0 15 0; +#X connect 13 0 17 0; +#X connect 14 0 10 0; +#X connect 15 0 13 0; +#X connect 17 0 18 2; +#X connect 18 0 1 0; +#X connect 20 0 6 0; +#X connect 20 1 21 0; +#X connect 21 0 2 0; +#X connect 21 0 7 1; +#X connect 21 0 14 1; +#X connect 21 0 12 1; +#X connect 21 0 23 1; +#X connect 21 1 5 1; +#X connect 21 1 10 1; +#X connect 21 1 15 1; +#X connect 21 1 22 1; +#X connect 21 2 4 1; +#X connect 21 2 13 1; +#X connect 21 2 17 1; +#X connect 21 3 23 2; +#X connect 21 4 23 3; +#X connect 21 5 22 2; +#X connect 21 6 22 3; +#X connect 21 7 17 2; +#X connect 21 8 17 3; +#X connect 22 0 18 1; +#X connect 23 0 18 0; +#X restore 154 489 pd generator; +#X obj 18 108 t f f; +#X obj 171 184 t f f; +#X obj 319 245 t f f; +#X obj 18 56 unpack f f f f f; +#X obj 18 306 -; +#X obj 154 464 pack f f f f f f f f f; +#X obj 89 249 f; +#X obj 171 267 f; +#X obj 242 291 f; +#X obj 319 331 f; +#X obj 390 354 f; +#X obj 171 340 -; +#X obj 18 230 t f f; +#X obj 319 377 -; +#X obj 154 547 unpack f f f; +#X obj 260 552 unpack f f f; +#X obj 293 598 * \$1; +#X obj 327 598 * \$2; +#X obj 154 513 t l l; +#X obj 260 574 +; +#X obj 293 575 +; +#X obj 327 575 +; +#X obj 18 329 * -1; +#X obj 171 365 * -1; +#X obj 319 399 * -1; +#X obj 171 386 + 1; +#X obj 319 422 + 1; +#X obj 90 272 - 1; +#X obj 242 314 - 1; +#X obj 392 374 - 1; +#X obj 20 351 + 1; +#X obj 187 598 * \$1; +#X obj 221 598 * \$2; +#X obj 221 619 * \$1; +#X obj 187 644 +; +#X obj 327 620 * \$1; +#X obj 293 647 +; +#X obj 154 671 +; +#X obj 260 670 +; +#X connect 0 0 43 0; +#X connect 3 0 4 0; +#X connect 4 0 46 0; +#X connect 5 0 7 0; +#X connect 5 1 6 0; +#X connect 6 0 52 0; +#X connect 7 0 52 0; +#X connect 8 0 46 0; +#X connect 9 0 8 0; +#X connect 10 0 9 0; +#X connect 10 1 3 0; +#X connect 11 0 48 0; +#X connect 12 0 14 0; +#X connect 12 1 13 0; +#X connect 13 0 47 0; +#X connect 14 0 47 0; +#X connect 15 0 28 0; +#X connect 16 0 15 0; +#X connect 16 1 27 0; +#X connect 17 0 50 0; +#X connect 18 0 20 0; +#X connect 18 1 19 0; +#X connect 19 0 49 0; +#X connect 20 0 49 0; +#X connect 21 0 30 0; +#X connect 22 0 21 0; +#X connect 22 1 29 0; +#X connect 23 0 1 0; +#X connect 24 0 43 0; +#X connect 25 0 23 1; +#X connect 26 0 23 3; +#X connect 27 0 11 0; +#X connect 28 0 48 0; +#X connect 29 0 17 0; +#X connect 30 0 50 0; +#X connect 39 0 58 0; +#X connect 40 0 5 0; +#X connect 40 1 10 0; +#X connect 40 1 59 1; +#X connect 41 0 12 0; +#X connect 41 1 16 0; +#X connect 42 0 18 0; +#X connect 42 1 22 0; +#X connect 43 0 40 0; +#X connect 43 1 41 0; +#X connect 43 1 60 1; +#X connect 43 2 42 0; +#X connect 43 2 61 1; +#X connect 43 3 25 0; +#X connect 43 4 26 0; +#X connect 44 0 62 0; +#X connect 45 0 39 0; +#X connect 46 0 67 0; +#X connect 47 0 45 5; +#X connect 47 0 51 0; +#X connect 48 0 68 0; +#X connect 49 0 45 7; +#X connect 49 0 53 0; +#X connect 50 0 69 0; +#X connect 51 0 63 0; +#X connect 52 0 44 0; +#X connect 52 1 45 3; +#X connect 53 0 64 0; +#X connect 54 0 77 0; +#X connect 54 1 71 0; +#X connect 54 2 72 0; +#X connect 55 0 59 0; +#X connect 55 1 60 0; +#X connect 55 2 61 0; +#X connect 56 0 76 0; +#X connect 57 0 75 0; +#X connect 58 0 54 0; +#X connect 58 1 55 0; +#X connect 59 0 78 0; +#X connect 60 0 56 0; +#X connect 61 0 57 0; +#X connect 62 0 70 0; +#X connect 63 0 65 0; +#X connect 64 0 66 0; +#X connect 65 0 45 1; +#X connect 66 0 45 2; +#X connect 67 0 44 1; +#X connect 67 0 45 4; +#X connect 68 0 45 6; +#X connect 68 0 51 1; +#X connect 69 0 45 8; +#X connect 69 0 53 1; +#X connect 70 0 45 0; +#X connect 71 0 74 0; +#X connect 72 0 73 0; +#X connect 73 0 74 1; +#X connect 74 0 77 1; +#X connect 75 0 76 1; +#X connect 76 0 78 1; +#X connect 77 0 23 0; +#X connect 78 0 23 2; +#X restore 248 515 pd connect; +#X msg 248 544 connect \$1 \$2 \$3 \$4; +#X text 12 35 args : [x] [y] [z] [Xmin] [Xmax] [Ymin] [Ymax] [Zmin] +[Zmax] [abstraction]; +#X text 14 67 inlet 1 : 1 to create the array of abstraction; +#X text 13 88 inlet 2 : create connection beetween abstraction : send +a liste ([offsetX] [offsetY] [offsetZ] [outlet num] [inlet num]); +#X msg 61 254 \; pd-array vis 1 \, selectall \; pd-array cut \; pd-array +vis 0 \;; +#X text 242 137 Ben Bogart & ch; +#X text 14 5 create a X Y Z matrix of abstraction. create connection +beetween them.; +#X text 289 233 <- connect object from the array; +#X text 291 254 comment; +#X obj 267 487 pack f f f f f; +#X floatatom 267 381 5 0 0 0 - - -; +#X floatatom 286 403 5 0 0 0 - - -; +#X floatatom 306 424 5 0 0 0 - - -; +#X floatatom 326 445 5 0 0 0 - - -; +#X floatatom 346 466 5 0 0 0 - - -; +#X text 266 353 create a connection beetween the objects of the array +; +#X text 309 378 X offset from the 1st object to the secont object to +link; +#X text 326 401 Y offset from the 1st object to the secont object to +link; +#X text 345 422 Z offset from the 1st object to the secont object to +link; +#X text 368 443 oultet of the 1st object number; +#X text 386 465 inlet of the 2nd object number; +#X text 73 176 <- 0/1 : fill the array. You sould have create a "pd +array" somwhere; +#X text 24 620 the argument feed to the created abstraction are : abstraction +number (unique) \, X position \, Y position \, Z position; +#X connect 0 0 6 6; +#X connect 1 0 2 0; +#X connect 2 0 4 0; +#X connect 2 1 3 0; +#X connect 3 0 8 0; +#X connect 3 1 16 0; +#X connect 4 0 5 0; +#X connect 6 0 7 0; +#X connect 7 0 5 0; +#X connect 8 0 6 0; +#X connect 9 0 0 0; +#X connect 10 0 11 0; +#X connect 11 0 12 0; +#X connect 12 0 5 0; +#X connect 21 0 11 0; +#X connect 22 0 21 0; +#X connect 23 0 21 1; +#X connect 24 0 21 2; +#X connect 25 0 21 3; +#X connect 26 0 21 4; diff --git a/exemples/explose1.pd b/exemples/explose1.pd new file mode 100755 index 0000000..131d5df --- /dev/null +++ b/exemples/explose1.pd @@ -0,0 +1,12 @@ +#N canvas 571 315 268 263 10; +#X obj 30 113 gemhead; +#X obj 30 139 translateXYZ; +#X obj 22 60 unpack s f f f; +#X obj 22 37 masse3D masse 1 0 3; +#X obj 31 163 sphere 0.1; +#X connect 0 0 1 0; +#X connect 1 0 4 0; +#X connect 2 1 1 1; +#X connect 2 2 1 2; +#X connect 2 3 1 3; +#X connect 3 0 2 0; diff --git a/exemples/explose2.pd b/exemples/explose2.pd new file mode 100755 index 0000000..d89be81 --- /dev/null +++ b/exemples/explose2.pd @@ -0,0 +1,12 @@ +#N canvas 571 315 270 265 10; +#X obj 30 113 gemhead; +#X obj 30 139 translateXYZ; +#X obj 22 60 unpack s f f f; +#X obj 30 163 sphere 0.05; +#X obj 22 37 masse3D masse2 1 0 3; +#X connect 0 0 1 0; +#X connect 1 0 3 0; +#X connect 2 1 1 1; +#X connect 2 2 1 2; +#X connect 2 3 1 3; +#X connect 4 0 2 0; diff --git a/exemples/fluide_masse.pd b/exemples/fluide_masse.pd new file mode 100755 index 0000000..f8bfa11 --- /dev/null +++ b/exemples/fluide_masse.pd @@ -0,0 +1,34 @@ +#N canvas 598 312 244 340 10; +#X msg 39 180 setXY \$1 \$2; +#X obj 38 26 loadbang; +#X obj 38 155 pack f f; +#X obj 36 46 t b b; +#X obj 57 256 gemhead; +#X obj 59 318 sphere 0.3; +#X obj 57 289 translateXYZ; +#X obj 37 229 unpack s f f; +#X obj 40 206 masse2D masse 10; +#X obj 143 24 r reset_masse; +#X obj 36 70 random 60; +#X obj 94 70 random 60; +#X obj 35 90 - 30; +#X obj 94 96 - 30; +#X obj 35 119 / 10; +#X obj 86 123 / 10; +#X connect 0 0 8 0; +#X connect 1 0 3 0; +#X connect 2 0 0 0; +#X connect 3 0 10 0; +#X connect 3 1 11 0; +#X connect 4 0 6 0; +#X connect 6 0 5 0; +#X connect 7 1 6 1; +#X connect 7 2 6 2; +#X connect 8 0 7 0; +#X connect 9 0 3 0; +#X connect 10 0 12 0; +#X connect 11 0 13 0; +#X connect 12 0 14 0; +#X connect 13 0 15 0; +#X connect 14 0 2 0; +#X connect 15 0 2 1; diff --git a/exemples/fluide_masse2.pd b/exemples/fluide_masse2.pd new file mode 100755 index 0000000..dee927b --- /dev/null +++ b/exemples/fluide_masse2.pd @@ -0,0 +1,138 @@ +#N canvas 120 313 686 433 10; +#X msg 38 179 setXY \$1 \$2; +#X obj 396 15 loadbang; +#X obj 38 155 pack f f; +#X obj 38 65 t b b; +#X obj 49 262 gemhead; +#X obj 49 288 translateXYZ; +#X obj 38 228 unpack s f f; +#X obj 38 205 masse2D masse 10; +#X obj 452 16 r reset_masse; +#X msg 81 131 0; +#X obj 49 313 sphere 0.03; +#X obj 38 88 \$1; +#X obj 38 110 / 10; +#X obj 38 132 - 3; +#X msg 151 180 setXY \$1 \$2; +#X obj 151 156 pack f f; +#X obj 151 66 t b b; +#X obj 162 263 gemhead; +#X obj 162 289 translateXYZ; +#X obj 151 229 unpack s f f; +#X obj 151 206 masse2D masse 10; +#X obj 162 314 sphere 0.03; +#X obj 151 89 \$1; +#X obj 151 111 / 10; +#X obj 151 133 - 3; +#X msg 262 180 setXY \$1 \$2; +#X obj 262 156 pack f f; +#X obj 262 66 t b b; +#X obj 273 263 gemhead; +#X obj 273 289 translateXYZ; +#X obj 262 229 unpack s f f; +#X obj 262 206 masse2D masse 10; +#X obj 273 314 sphere 0.03; +#X obj 262 89 \$1; +#X obj 262 111 / 10; +#X obj 262 133 - 3; +#X msg 194 132 -1; +#X msg 305 132 1; +#X msg 397 184 setXY \$1 \$2; +#X obj 397 160 pack f f; +#X obj 397 70 t b b; +#X obj 408 267 gemhead; +#X obj 408 293 translateXYZ; +#X obj 397 233 unpack s f f; +#X obj 397 210 masse2D masse 10; +#X obj 408 318 sphere 0.03; +#X obj 397 93 \$1; +#X obj 397 115 / 10; +#X obj 397 137 - 3; +#X msg 508 184 setXY \$1 \$2; +#X obj 508 160 pack f f; +#X obj 508 70 t b b; +#X obj 519 267 gemhead; +#X obj 519 293 translateXYZ; +#X obj 508 233 unpack s f f; +#X obj 508 210 masse2D masse 10; +#X obj 519 318 sphere 0.03; +#X obj 508 93 \$1; +#X obj 508 115 / 10; +#X obj 508 137 - 3; +#X msg 440 136 -0.5; +#X msg 552 136 0.5; +#X connect 0 0 7 0; +#X connect 1 0 3 0; +#X connect 1 0 16 0; +#X connect 1 0 27 0; +#X connect 1 0 40 0; +#X connect 1 0 51 0; +#X connect 2 0 0 0; +#X connect 3 0 11 0; +#X connect 3 1 9 0; +#X connect 4 0 5 0; +#X connect 5 0 10 0; +#X connect 6 1 5 1; +#X connect 6 2 5 2; +#X connect 7 0 6 0; +#X connect 8 0 3 0; +#X connect 8 0 16 0; +#X connect 8 0 27 0; +#X connect 8 0 40 0; +#X connect 8 0 51 0; +#X connect 9 0 2 1; +#X connect 11 0 12 0; +#X connect 12 0 13 0; +#X connect 13 0 2 0; +#X connect 14 0 20 0; +#X connect 15 0 14 0; +#X connect 16 0 22 0; +#X connect 16 1 36 0; +#X connect 17 0 18 0; +#X connect 18 0 21 0; +#X connect 19 1 18 1; +#X connect 19 2 18 2; +#X connect 20 0 19 0; +#X connect 22 0 23 0; +#X connect 23 0 24 0; +#X connect 24 0 15 0; +#X connect 25 0 31 0; +#X connect 26 0 25 0; +#X connect 27 0 33 0; +#X connect 27 1 37 0; +#X connect 28 0 29 0; +#X connect 29 0 32 0; +#X connect 30 1 29 1; +#X connect 30 2 29 2; +#X connect 31 0 30 0; +#X connect 33 0 34 0; +#X connect 34 0 35 0; +#X connect 35 0 26 0; +#X connect 36 0 15 1; +#X connect 37 0 26 1; +#X connect 38 0 44 0; +#X connect 39 0 38 0; +#X connect 40 0 46 0; +#X connect 40 1 60 0; +#X connect 41 0 42 0; +#X connect 42 0 45 0; +#X connect 43 1 42 1; +#X connect 43 2 42 2; +#X connect 44 0 43 0; +#X connect 46 0 47 0; +#X connect 47 0 48 0; +#X connect 48 0 39 0; +#X connect 49 0 55 0; +#X connect 50 0 49 0; +#X connect 51 0 57 0; +#X connect 51 1 61 0; +#X connect 52 0 53 0; +#X connect 53 0 56 0; +#X connect 54 1 53 1; +#X connect 54 2 53 2; +#X connect 55 0 54 0; +#X connect 57 0 58 0; +#X connect 58 0 59 0; +#X connect 59 0 50 0; +#X connect 60 0 39 1; +#X connect 61 0 50 1; diff --git a/exemples/fluide_masse3.pd b/exemples/fluide_masse3.pd new file mode 100755 index 0000000..f339fab --- /dev/null +++ b/exemples/fluide_masse3.pd @@ -0,0 +1,17 @@ +#N canvas 598 312 379 296 10; +#X obj 40 94 gemhead; +#X obj 40 120 translateXYZ; +#X obj 20 60 unpack s f f; +#X obj 40 146 sphere 0.03; +#X obj 127 88 sel 1; +#X msg 127 112 \; masse reset \;; +#X obj 127 65 tSquare2D 6 10 -4 4; +#X obj 20 37 masse2D masse 100 \$1 \$2; +#X connect 0 0 1 0; +#X connect 1 0 3 0; +#X connect 2 1 1 1; +#X connect 2 2 1 2; +#X connect 4 0 5 0; +#X connect 6 0 4 0; +#X connect 7 0 2 0; +#X connect 7 0 6 0; diff --git a/exemples/fluide_masse4.pd b/exemples/fluide_masse4.pd new file mode 100755 index 0000000..60c1d9f --- /dev/null +++ b/exemples/fluide_masse4.pd @@ -0,0 +1,30 @@ +#N canvas 598 312 252 348 10; +#X msg 39 180 setXY \$1 \$2; +#X obj 38 26 loadbang; +#X obj 38 155 pack f f; +#X obj 36 46 t b b; +#X obj 57 256 gemhead; +#X obj 57 289 translateXYZ; +#X obj 37 229 unpack s f f; +#X obj 40 206 masse2D masse 10; +#X obj 143 24 r reset_masse; +#X msg 92 111 -1; +#X obj 59 318 sphere 0.03; +#X obj 36 70 random 10; +#X obj 38 91 - 5; +#X obj 36 119 / 2; +#X connect 0 0 7 0; +#X connect 1 0 3 0; +#X connect 2 0 0 0; +#X connect 3 0 11 0; +#X connect 3 1 9 0; +#X connect 4 0 5 0; +#X connect 5 0 10 0; +#X connect 6 1 5 1; +#X connect 6 2 5 2; +#X connect 7 0 6 0; +#X connect 8 0 3 0; +#X connect 9 0 2 1; +#X connect 11 0 12 0; +#X connect 12 0 13 0; +#X connect 13 0 2 0; diff --git a/exemples/fluide_masse5.pd b/exemples/fluide_masse5.pd new file mode 100755 index 0000000..b2bc219 --- /dev/null +++ b/exemples/fluide_masse5.pd @@ -0,0 +1,66 @@ +#N canvas 598 312 512 564 10; +#X msg 36 169 setXY \$1 \$2; +#X obj 36 22 loadbang; +#X obj 36 144 pack f f; +#X obj 36 46 t b b; +#X obj 57 246 gemhead; +#X obj 57 269 translateXYZ; +#X obj 46 219 unpack s f f; +#X obj 143 24 r reset_masse; +#X msg 36 355 setX \$1 \, setY \$2; +#X obj 36 70 random 20; +#X obj 36 116 / 4; +#X obj 102 69 random 20; +#X obj 102 115 / 4; +#X obj 36 93 - 10; +#X obj 102 91 - 10; +#X obj 12 332 r link; +#X obj 36 195 masse2D masse 100; +#X obj 57 293 sphere 0.1; +#X obj 37 382 iCircle2D masse 0 0 0.0001 0.3 0 0 1; +#X obj 267 184 unpack s f f f; +#X obj 389 293 osc~; +#X obj 389 268 mtof; +#X obj 389 185 loadbang; +#X obj 347 357 *~; +#X obj 346 293 line~; +#X obj 347 387 dac~; +#X obj 346 243 *; +#X obj 389 212 random 60; +#X msg 346 268 \$1 5; +#X obj 346 212 * 1; +#X obj 389 243 + 20; +#X connect 0 0 16 0; +#X connect 1 0 3 0; +#X connect 2 0 0 0; +#X connect 3 0 9 0; +#X connect 3 1 11 0; +#X connect 4 0 5 0; +#X connect 5 0 17 0; +#X connect 6 1 5 1; +#X connect 6 2 5 2; +#X connect 7 0 3 0; +#X connect 8 0 18 0; +#X connect 9 0 13 0; +#X connect 10 0 2 0; +#X connect 11 0 14 0; +#X connect 12 0 2 1; +#X connect 13 0 10 0; +#X connect 14 0 12 0; +#X connect 15 0 18 0; +#X connect 16 0 6 0; +#X connect 16 0 8 0; +#X connect 16 1 19 0; +#X connect 19 3 29 0; +#X connect 20 0 23 1; +#X connect 21 0 20 0; +#X connect 22 0 27 0; +#X connect 23 0 25 0; +#X connect 23 0 25 1; +#X connect 24 0 23 0; +#X connect 26 0 28 0; +#X connect 27 0 30 0; +#X connect 28 0 24 0; +#X connect 29 0 26 0; +#X connect 29 0 26 1; +#X connect 30 0 21 0; diff --git a/exemples/fluide_masse6.pd b/exemples/fluide_masse6.pd new file mode 100755 index 0000000..1cf6a9a --- /dev/null +++ b/exemples/fluide_masse6.pd @@ -0,0 +1,17 @@ +#N canvas 598 312 379 296 10; +#X obj 40 94 gemhead; +#X obj 40 120 translateXYZ; +#X obj 20 60 unpack s f f; +#X obj 40 146 sphere 0.03; +#X obj 127 88 sel 1; +#X msg 127 112 \; masse reset \;; +#X obj 127 65 tSquare2D 6 10 -4 4; +#X obj 20 37 masse2D masse 0 \$1 \$2; +#X connect 0 0 1 0; +#X connect 1 0 3 0; +#X connect 2 1 1 1; +#X connect 2 2 1 2; +#X connect 4 0 5 0; +#X connect 6 0 4 0; +#X connect 7 0 2 0; +#X connect 7 0 6 0; diff --git a/exemples/game_line.pd b/exemples/game_line.pd new file mode 100755 index 0000000..ee29813 --- /dev/null +++ b/exemples/game_line.pd @@ -0,0 +1,70 @@ +#N canvas 734 65 656 713 10; +#X obj 43 227 gemhead; +#X obj 43 257 curve 2; +#X obj 70 28 inlet; +#X obj 100 123 \$1; +#X obj 108 94 loadbang; +#X obj 65 195 pack f f 0; +#X obj 196 33 inlet; +#X obj 191 200 pack f f 0; +#X obj 182 160 - 0.5; +#X obj 280 243 gemhead; +#X obj 280 273 curve 2; +#X obj 337 139 \$1; +#X obj 345 110 loadbang; +#X obj 292 207 pack f f 0; +#X obj 428 216 pack f f 0; +#X obj 460 185 - 0.5; +#X msg 67 339 setX1 \$1 \, setY1 \$2; +#X msg 89 364 setX2 \$1 \, setY2 \$2; +#X msg 329 331 setX1 \$1 \, setY1 \$2; +#X msg 368 364 setX2 \$1 \, setY2 \$2; +#X obj 83 464 s inside; +#X obj 224 366 r space_ship; +#X obj 78 441 sel 1; +#X obj 79 407 tSeg2D 0 0 0 0 3; +#X obj 341 399 tSeg2D 0 0 0 0 3; +#X obj 290 168 - 3; +#X obj 469 129 - 3; +#X obj 231 475 r bounce; +#X obj 400 542 iSeg2D bomb 0 0 0 0 3 1; +#X obj 191 544 iSeg2D bomb 0 0 0 0 3 1; +#X connect 0 0 1 0; +#X connect 2 0 5 0; +#X connect 2 0 25 0; +#X connect 3 0 8 0; +#X connect 3 0 5 1; +#X connect 4 0 3 0; +#X connect 5 0 1 1; +#X connect 5 0 17 0; +#X connect 6 0 7 0; +#X connect 6 0 26 0; +#X connect 7 0 1 2; +#X connect 7 0 16 0; +#X connect 8 0 7 1; +#X connect 9 0 10 0; +#X connect 11 0 15 0; +#X connect 11 0 13 1; +#X connect 12 0 11 0; +#X connect 13 0 10 1; +#X connect 13 0 18 0; +#X connect 14 0 10 2; +#X connect 14 0 19 0; +#X connect 15 0 14 1; +#X connect 16 0 23 0; +#X connect 16 0 29 0; +#X connect 17 0 23 0; +#X connect 17 0 29 0; +#X connect 18 0 24 0; +#X connect 18 0 28 0; +#X connect 19 0 24 0; +#X connect 19 0 28 0; +#X connect 21 0 23 0; +#X connect 21 0 24 0; +#X connect 22 0 20 0; +#X connect 23 0 22 0; +#X connect 24 0 22 0; +#X connect 25 0 13 0; +#X connect 26 0 14 0; +#X connect 27 0 28 0; +#X connect 27 0 29 0; diff --git a/exemples/gemLia.pd b/exemples/gemLia.pd new file mode 100755 index 0000000..1a5b710 --- /dev/null +++ b/exemples/gemLia.pd @@ -0,0 +1,21 @@ +#N canvas 0 0 397 255 12; +#X obj 249 24 inlet; +#X obj 249 77 outlet; +#X obj 86 23 inlet; +#X obj 86 78 outlet; +#X msg 123 111 \$1 \$2 \$3; +#X msg 271 106 \$1 \$2 \$3; +#X obj 98 202 curve 2; +#X obj 86 51 lia3D lia \$1 \$2 \$3 \$4; +#X obj 98 145 r gemhead; +#X obj 98 174 separator; +#X connect 0 0 5 0; +#X connect 0 0 7 1; +#X connect 2 0 4 0; +#X connect 2 0 7 0; +#X connect 4 0 6 1; +#X connect 5 0 6 2; +#X connect 7 0 3 0; +#X connect 7 1 1 0; +#X connect 8 0 9 0; +#X connect 9 0 6 0; diff --git a/exemples/gemLia2.pd b/exemples/gemLia2.pd new file mode 100755 index 0000000..a53071d --- /dev/null +++ b/exemples/gemLia2.pd @@ -0,0 +1,10 @@ +#N canvas 0 0 401 259 12; +#X obj 249 24 inlet; +#X obj 249 77 outlet; +#X obj 86 23 inlet; +#X obj 86 78 outlet; +#X obj 86 51 lia3D lia \$1 \$2 \$3 \$4; +#X connect 0 0 4 1; +#X connect 2 0 4 0; +#X connect 4 0 3 0; +#X connect 4 1 1 0; diff --git a/exemples/gemMasse.pd b/exemples/gemMasse.pd new file mode 100755 index 0000000..9fa5f08 --- /dev/null +++ b/exemples/gemMasse.pd @@ -0,0 +1,18 @@ +#N canvas 615 387 345 312 12; +#X obj 25 38 inlet; +#X obj 26 100 outlet; +#X obj 75 228 translateXYZ 0 0 0; +#X obj 75 256 sphere 0.3; +#X obj 75 168 r gemhead; +#X obj 75 197 separator; +#X obj 86 100 unpack s f f f; +#X obj 26 70 masse3D masse \$1 \$2 \$3 \$4; +#X connect 0 0 7 0; +#X connect 2 0 3 0; +#X connect 4 0 5 0; +#X connect 5 0 2 0; +#X connect 6 1 2 1; +#X connect 6 2 2 2; +#X connect 6 3 2 3; +#X connect 7 0 1 0; +#X connect 7 0 6 0; diff --git a/exemples/gemMasse2.pd b/exemples/gemMasse2.pd new file mode 100755 index 0000000..3bca778 --- /dev/null +++ b/exemples/gemMasse2.pd @@ -0,0 +1,12 @@ +#N canvas 705 218 349 316 12; +#X obj 25 38 inlet; +#X obj 25 100 outlet; +#X obj 86 100 unpack s f f f; +#X obj 25 70 masse3D masse2 \$1 \$2 \$3 \$4; +#X obj 121 131 pack f f f \$2 \$3; +#X connect 0 0 3 0; +#X connect 2 1 4 0; +#X connect 2 2 4 1; +#X connect 2 3 4 2; +#X connect 3 0 1 0; +#X connect 3 0 2 0; diff --git a/exemples/gemMasse3.pd b/exemples/gemMasse3.pd new file mode 100755 index 0000000..2e44a2e --- /dev/null +++ b/exemples/gemMasse3.pd @@ -0,0 +1,27 @@ +#N canvas 615 387 353 320 12; +#X obj 26 39 inlet; +#X obj 26 100 outlet; +#X obj 86 100 unpack s f f f; +#X obj 26 70 masse3D masse \$1 \$2 \$3 \$4; +#X msg 121 156 set \$4 \$5 \$1 \$2 \$3; +#X obj 121 185 send curve3d; +#X obj 248 64 - 1; +#X obj 121 129 pack f f f f f; +#X obj 248 38 \$2; +#X obj 248 12 loadbang; +#X obj 283 65 - 1; +#X obj 283 39 \$3; +#X connect 0 0 3 0; +#X connect 2 1 7 0; +#X connect 2 2 7 1; +#X connect 2 3 7 2; +#X connect 3 0 1 0; +#X connect 3 0 2 0; +#X connect 4 0 5 0; +#X connect 6 0 7 3; +#X connect 7 0 4 0; +#X connect 8 0 6 0; +#X connect 9 0 8 0; +#X connect 9 0 11 0; +#X connect 10 0 7 4; +#X connect 11 0 10 0; diff --git a/exemples/i3D.pd b/exemples/i3D.pd new file mode 100755 index 0000000..e65eef4 --- /dev/null +++ b/exemples/i3D.pd @@ -0,0 +1,21 @@ +#N canvas 693 514 332 321 10; +#X obj 54 109 link3D link 0; +#X obj 54 60 pack \$2 \$3 \$4; +#X obj 145 109 mass3D mass 10 \$2 \$3 \$4; +#X obj 54 36 loadbang; +#X obj 148 166 gemhead; +#X obj 145 138 unpack s f f f; +#X obj 148 192 translateXYZ; +#X obj 148 217 sphere 0.1; +#X msg 54 84 position3D \$1 \$2 \$3; +#X connect 0 1 2 0; +#X connect 1 0 8 0; +#X connect 2 0 0 1; +#X connect 2 0 5 0; +#X connect 3 0 1 0; +#X connect 4 0 6 0; +#X connect 5 1 6 1; +#X connect 5 2 6 2; +#X connect 5 3 6 3; +#X connect 6 0 7 0; +#X connect 8 0 0 0; diff --git a/exemples/i3D2.pd b/exemples/i3D2.pd new file mode 100755 index 0000000..5966eb5 --- /dev/null +++ b/exemples/i3D2.pd @@ -0,0 +1,83 @@ +#N canvas 404 182 802 500 10; +#X obj 613 302 mass3D mass 10 \$2 \$3 \$4; +#X obj 54 36 loadbang; +#X obj 616 359 gemhead; +#X obj 613 331 unpack s f f f; +#X obj 616 385 translateXYZ; +#X obj 619 421 sphere 0.1; +#X obj 190 36 loadbang; +#X obj 321 38 loadbang; +#X msg 320 247 position3D \$1 \$2 \$3; +#X obj 453 32 loadbang; +#X msg 452 241 position3D \$1 \$2 \$3; +#X obj 53 270 link3D link1 0; +#X obj 189 270 link3D link2 0; +#X obj 320 272 link3D link3 0; +#X obj 453 267 link3D link4 0; +#X obj 190 60 \$1; +#X msg 189 245 position3D \$1 0 0; +#X obj 188 113 / 20; +#X obj 453 56 \$1; +#X obj 479 145 sin; +#X obj 452 78 / 124; +#X obj 451 101 * 6.28; +#X obj 454 144 cos; +#X obj 451 169 pack f f 0; +#X obj 452 120 t f f; +#X obj 79 177 sin; +#X obj 53 133 * 6.28; +#X obj 54 176 cos; +#X obj 54 201 pack f f 0; +#X obj 54 152 t f f; +#X obj 54 110 / 25; +#X obj 54 60 pack \$1; +#X obj 54 84 t f f; +#X msg 53 245 position3D \$2 \$3 \$1; +#X obj 321 62 pack \$2 \$3 \$4; +#X obj 111 178 / 50; +#X obj 188 83 - 70; +#X connect 0 0 3 0; +#X connect 0 0 11 1; +#X connect 0 0 12 1; +#X connect 0 0 13 1; +#X connect 0 0 14 1; +#X connect 1 0 31 0; +#X connect 2 0 4 0; +#X connect 3 1 4 1; +#X connect 3 2 4 2; +#X connect 3 3 4 3; +#X connect 4 0 5 0; +#X connect 6 0 15 0; +#X connect 7 0 34 0; +#X connect 8 0 13 0; +#X connect 9 0 18 0; +#X connect 10 0 14 0; +#X connect 11 1 0 0; +#X connect 12 1 0 0; +#X connect 13 1 0 0; +#X connect 14 1 0 0; +#X connect 15 0 36 0; +#X connect 16 0 12 0; +#X connect 17 0 16 0; +#X connect 18 0 20 0; +#X connect 19 0 23 1; +#X connect 20 0 21 0; +#X connect 21 0 24 0; +#X connect 22 0 23 0; +#X connect 23 0 10 0; +#X connect 24 0 22 0; +#X connect 24 1 19 0; +#X connect 25 0 28 1; +#X connect 26 0 29 0; +#X connect 27 0 28 0; +#X connect 28 0 33 0; +#X connect 29 0 27 0; +#X connect 29 1 25 0; +#X connect 30 0 26 0; +#X connect 31 0 32 0; +#X connect 32 0 30 0; +#X connect 32 1 35 0; +#X connect 33 0 11 0; +#X connect 34 0 8 0; +#X connect 35 0 28 2; +#X connect 36 0 17 0; diff --git a/exemples/mass_link.pd b/exemples/mass_link.pd new file mode 100755 index 0000000..73a9358 --- /dev/null +++ b/exemples/mass_link.pd @@ -0,0 +1,82 @@ +#N canvas 726 205 509 623 10; +#X obj 255 447 translateXYZ 0 0 0; +#X obj 254 353 unpack s f f f; +#X obj 14 24 inlet; +#X obj 14 45 t b a; +#X obj 149 527 outlet; +#X obj 254 330 masse3D masse 1 \$1 \$2 \$3; +#X obj 276 118 unpack s f f f; +#X obj 307 142 + 0; +#X obj 307 166 f; +#X obj 291 192 f; +#X obj 340 143 + 0; +#X obj 340 167 f; +#X obj 324 193 f; +#X obj 372 146 + 0; +#X obj 372 170 f; +#X obj 361 194 f; +#X obj 252 226 pack f f f; +#X msg 253 257 force3D \$1 \$2 \$3; +#X obj 262 28 r lia; +#X obj 401 43 r r_lia; +#X obj 264 53 t b b b; +#X msg 401 117 0 0; +#X obj 144 426 r masse3; +#X obj 145 467 pack 0 f f f; +#X msg 142 497 position3D \$2 \$3 \$4; +#X obj 14 72 lia3D link 1 1 0 0.5; +#X obj 137 326 r gemhead; +#X obj 139 350 separator; +#X obj 286 418 / 3; +#X obj 318 416 / 3; +#X obj 350 415 / 3; +#X obj 255 475 sphere 0.2; +#X obj 140 373 color 1 1 1; +#X connect 0 0 31 0; +#X connect 1 1 23 1; +#X connect 1 1 28 0; +#X connect 1 2 23 2; +#X connect 1 2 29 0; +#X connect 1 3 23 3; +#X connect 1 3 30 0; +#X connect 2 0 3 0; +#X connect 3 0 25 0; +#X connect 3 1 25 0; +#X connect 5 0 1 0; +#X connect 5 0 25 1; +#X connect 6 1 7 0; +#X connect 6 2 10 0; +#X connect 6 3 13 0; +#X connect 7 0 8 0; +#X connect 8 0 7 1; +#X connect 8 0 9 1; +#X connect 9 0 16 0; +#X connect 10 0 11 0; +#X connect 11 0 10 1; +#X connect 11 0 12 1; +#X connect 12 0 16 1; +#X connect 13 0 14 0; +#X connect 14 0 13 1; +#X connect 14 0 15 1; +#X connect 15 0 16 2; +#X connect 16 0 17 0; +#X connect 17 0 5 0; +#X connect 18 0 20 0; +#X connect 19 0 21 0; +#X connect 20 0 21 0; +#X connect 20 1 9 0; +#X connect 20 2 15 0; +#X connect 20 2 12 0; +#X connect 21 0 13 0; +#X connect 21 0 10 0; +#X connect 21 0 7 0; +#X connect 22 0 23 0; +#X connect 23 0 24 0; +#X connect 24 0 4 0; +#X connect 25 1 6 0; +#X connect 26 0 27 0; +#X connect 27 0 32 0; +#X connect 28 0 0 1; +#X connect 29 0 0 2; +#X connect 30 0 0 3; +#X connect 32 0 0 0; diff --git a/exemples/mass_link2.pd b/exemples/mass_link2.pd new file mode 100755 index 0000000..f395846 --- /dev/null +++ b/exemples/mass_link2.pd @@ -0,0 +1,24 @@ +#N canvas 792 238 341 264 10; +#X obj 112 80 unpack s f f f; +#X obj 15 171 outlet; +#X obj 112 57 masse3D masse2 1 \$1 \$2 \$3; +#X obj 98 202 translateXYZ 0 0 0; +#X obj 99 226 sphere 0.3; +#X obj 93 120 r gemhead; +#X obj 95 144 separator; +#X obj 129 173 / 3; +#X obj 161 171 / 3; +#X obj 193 170 / 3; +#X obj 66 11 inlet; +#X connect 0 1 7 0; +#X connect 0 2 8 0; +#X connect 0 3 9 0; +#X connect 2 0 0 0; +#X connect 2 0 1 0; +#X connect 3 0 4 0; +#X connect 5 0 6 0; +#X connect 6 0 3 0; +#X connect 7 0 3 1; +#X connect 8 0 3 2; +#X connect 9 0 3 3; +#X connect 10 0 2 0; diff --git a/exemples/mass_link3.pd b/exemples/mass_link3.pd new file mode 100755 index 0000000..12e3792 --- /dev/null +++ b/exemples/mass_link3.pd @@ -0,0 +1,90 @@ +#N canvas 726 205 515 629 10; +#X obj 255 447 translateXYZ 0 0 0; +#X obj 254 353 unpack s f f f; +#X obj 14 24 inlet; +#X obj 14 45 t b a; +#X obj 149 527 outlet; +#X obj 276 118 unpack s f f f; +#X obj 307 142 + 0; +#X obj 307 166 f; +#X obj 291 192 f; +#X obj 340 143 + 0; +#X obj 340 167 f; +#X obj 324 193 f; +#X obj 372 146 + 0; +#X obj 372 170 f; +#X obj 361 194 f; +#X obj 252 226 pack f f f; +#X msg 253 257 force3D \$1 \$2 \$3; +#X obj 262 28 r lia; +#X obj 401 43 r r_lia; +#X obj 264 53 t b b b; +#X msg 401 117 0 0; +#X obj 144 426 r masse3; +#X obj 145 467 pack 0 f f f; +#X msg 142 497 position3D \$2 \$3 \$4; +#X obj 14 72 lia3D link 1 1 0 0.5; +#X obj 137 326 r gemhead; +#X obj 139 350 separator; +#X obj 286 418 / 3; +#X obj 318 416 / 3; +#X obj 350 415 / 3; +#X obj 255 475 sphere 0.2; +#X obj 140 373 color 1 1 1; +#X obj 254 330 masse3D masse 1 \$2 \$3 \$4; +#X obj 66 87 inlet; +#X obj 66 108 t b a; +#X obj 66 135 lia3D link2 1 1 0 0.5; +#X connect 0 0 30 0; +#X connect 1 1 22 1; +#X connect 1 1 27 0; +#X connect 1 2 22 2; +#X connect 1 2 28 0; +#X connect 1 3 22 3; +#X connect 1 3 29 0; +#X connect 2 0 3 0; +#X connect 3 0 24 0; +#X connect 3 1 24 0; +#X connect 5 1 6 0; +#X connect 5 2 9 0; +#X connect 5 3 12 0; +#X connect 6 0 7 0; +#X connect 7 0 6 1; +#X connect 7 0 8 1; +#X connect 8 0 15 0; +#X connect 9 0 10 0; +#X connect 10 0 9 1; +#X connect 10 0 11 1; +#X connect 11 0 15 1; +#X connect 12 0 13 0; +#X connect 13 0 12 1; +#X connect 13 0 14 1; +#X connect 14 0 15 2; +#X connect 15 0 16 0; +#X connect 16 0 32 0; +#X connect 17 0 19 0; +#X connect 18 0 20 0; +#X connect 19 0 20 0; +#X connect 19 1 8 0; +#X connect 19 2 14 0; +#X connect 19 2 11 0; +#X connect 20 0 12 0; +#X connect 20 0 9 0; +#X connect 20 0 6 0; +#X connect 21 0 22 0; +#X connect 22 0 23 0; +#X connect 23 0 4 0; +#X connect 24 1 5 0; +#X connect 25 0 26 0; +#X connect 26 0 31 0; +#X connect 27 0 0 1; +#X connect 28 0 0 2; +#X connect 29 0 0 3; +#X connect 31 0 0 0; +#X connect 32 0 1 0; +#X connect 32 0 24 1; +#X connect 32 0 35 1; +#X connect 33 0 34 0; +#X connect 34 0 35 0; +#X connect 34 1 35 0; +#X connect 35 1 5 0; diff --git a/exemples/mountain.pd b/exemples/mountain.pd new file mode 100755 index 0000000..bedab1d --- /dev/null +++ b/exemples/mountain.pd @@ -0,0 +1,144 @@ +#N canvas 122 226 1016 613 10; +#X obj 25 24 inlet; +#X obj 134 33 inlet; +#X obj 21 215 outlet; +#X obj 134 217 outlet; +#X obj 221 34 inlet; +#X obj 221 218 outlet; +#X obj 358 60 random 10; +#X obj 358 33 r init; +#X obj 274 208 gemhead; +#X obj 274 289 translateXYZ; +#X obj 274 337 sphere 0.2; +#X obj 296 256 \$2; +#X obj 296 231 loadbang; +#X obj 318 256 \$4; +#X msg 358 83 setX \$1; +#X obj 341 142 mass M 22; +#X obj 301 312 r size; +#X obj 427 476 primTri 0 0 0; +#X obj 426 122 t b f; +#X obj 450 213 t b f; +#X obj 463 451 pack \$2 \$4 f; +#X obj 463 428 t b f; +#X obj 517 87 \$2; +#X obj 517 62 loadbang; +#X obj 539 87 \$4; +#X obj 425 149 pack f f f; +#X obj 450 280 pack f f f; +#X obj 516 111 - 1; +#X obj 540 110 - 1; +#X obj 427 390 gemhead; +#X obj 427 362 &&; +#X msg 488 329 0; +#X obj 488 308 loadbang; +#X msg 455 329 1; +#X msg 427 329 1; +#X obj 610 37 inlet; +#X obj 632 539 primTri 0 0 0; +#X obj 632 148 t b f; +#X obj 656 239 t b f; +#X obj 821 299 t b f; +#X obj 723 113 \$2; +#X obj 723 88 loadbang; +#X obj 745 113 \$4; +#X obj 631 175 pack f f f; +#X obj 656 306 pack f f f; +#X obj 722 137 - 1; +#X obj 746 136 - 1; +#X obj 632 469 gemhead; +#X obj 633 388 &&; +#X msg 694 355 0; +#X obj 694 334 loadbang; +#X msg 661 355 1; +#X msg 633 355 1; +#X obj 657 426 &&; +#X msg 697 394 1; +#X obj 668 514 pack f f f; +#X obj 224 89 link L 0 1 0.1 0.1; +#X obj 135 58 link L 0 1 0.1 0.1; +#X connect 0 0 15 0; +#X connect 1 0 34 0; +#X connect 1 0 18 0; +#X connect 1 0 52 0; +#X connect 1 0 37 0; +#X connect 1 0 57 0; +#X connect 4 0 33 0; +#X connect 4 0 19 0; +#X connect 4 0 51 0; +#X connect 4 0 38 0; +#X connect 4 0 56 0; +#X connect 6 0 14 0; +#X connect 7 0 6 0; +#X connect 8 0 9 0; +#X connect 9 0 10 0; +#X connect 11 0 9 1; +#X connect 12 0 11 0; +#X connect 12 0 13 0; +#X connect 13 0 9 2; +#X connect 14 0 15 0; +#X connect 15 0 2 0; +#X connect 15 0 9 3; +#X connect 15 0 21 0; +#X connect 15 0 56 1; +#X connect 15 0 57 1; +#X connect 16 0 10 1; +#X connect 18 0 25 0; +#X connect 18 1 25 2; +#X connect 19 0 26 0; +#X connect 19 1 26 2; +#X connect 20 0 17 3; +#X connect 21 0 20 0; +#X connect 21 1 20 2; +#X connect 22 0 27 0; +#X connect 22 0 26 0; +#X connect 23 0 22 0; +#X connect 23 0 24 0; +#X connect 24 0 25 1; +#X connect 24 0 28 0; +#X connect 25 0 17 1; +#X connect 26 0 17 2; +#X connect 27 0 25 0; +#X connect 28 0 26 1; +#X connect 29 0 17 0; +#X connect 30 0 29 0; +#X connect 31 0 30 1; +#X connect 31 0 30 0; +#X connect 32 0 31 0; +#X connect 33 0 30 1; +#X connect 34 0 30 0; +#X connect 35 0 39 0; +#X connect 35 0 54 0; +#X connect 37 0 43 0; +#X connect 37 1 43 2; +#X connect 38 0 44 0; +#X connect 38 1 44 2; +#X connect 39 0 55 0; +#X connect 39 1 55 2; +#X connect 40 0 45 0; +#X connect 40 0 44 0; +#X connect 41 0 40 0; +#X connect 41 0 42 0; +#X connect 42 0 43 1; +#X connect 42 0 46 0; +#X connect 43 0 36 1; +#X connect 44 0 36 2; +#X connect 45 0 43 0; +#X connect 45 0 55 0; +#X connect 46 0 44 1; +#X connect 46 0 55 1; +#X connect 47 0 36 0; +#X connect 48 0 53 0; +#X connect 49 0 48 1; +#X connect 49 0 48 0; +#X connect 49 0 53 1; +#X connect 50 0 49 0; +#X connect 51 0 48 1; +#X connect 52 0 48 0; +#X connect 53 0 47 0; +#X connect 54 0 53 1; +#X connect 55 0 36 3; +#X connect 56 0 5 0; +#X connect 56 1 15 0; +#X connect 57 0 3 0; +#X connect 57 1 15 0; diff --git a/exemples/pd_lia.pd b/exemples/pd_lia.pd new file mode 100755 index 0000000..c1e51d1 --- /dev/null +++ b/exemples/pd_lia.pd @@ -0,0 +1,19 @@ +#N canvas 587 514 324 278 12; +#X obj 177 35 inlet; +#X obj 171 96 outlet; +#X obj 12 32 inlet; +#X obj 6 93 outlet; +#X msg 56 156 \$1 \$2 0; +#X obj 24 186 gemhead; +#X obj 26 210 curve 2; +#X msg 134 155 \$1 \$2 0; +#X obj 45 61 lia2D \$1-lia 0 10 2.5 0.001; +#X connect 0 0 7 0; +#X connect 0 0 8 1; +#X connect 2 0 4 0; +#X connect 2 0 8 0; +#X connect 4 0 6 1; +#X connect 5 0 6 0; +#X connect 7 0 6 2; +#X connect 8 0 3 0; +#X connect 8 1 1 0; diff --git a/exemples/pd_lia2.pd b/exemples/pd_lia2.pd new file mode 100755 index 0000000..b6f9b7e --- /dev/null +++ b/exemples/pd_lia2.pd @@ -0,0 +1,19 @@ +#N canvas 587 514 324 278 12; +#X obj 177 35 inlet; +#X obj 171 96 outlet; +#X obj 12 32 inlet; +#X obj 6 93 outlet; +#X msg 56 156 \$1 \$2 0; +#X obj 24 186 gemhead; +#X obj 26 210 curve 2; +#X msg 134 155 \$1 \$2 0; +#X obj 45 61 lia2D \$1-lia2 0 10 2.5 0.1; +#X connect 0 0 7 0; +#X connect 0 0 8 1; +#X connect 2 0 4 0; +#X connect 2 0 8 0; +#X connect 4 0 6 1; +#X connect 5 0 6 0; +#X connect 7 0 6 2; +#X connect 8 0 3 0; +#X connect 8 1 1 0; diff --git a/exemples/pd_masse.pd b/exemples/pd_masse.pd new file mode 100755 index 0000000..23e7308 --- /dev/null +++ b/exemples/pd_masse.pd @@ -0,0 +1,44 @@ +#N canvas 645 -2 656 389 12; +#X obj 26 38 inlet; +#X obj 11 137 outlet; +#X obj 25 104 unpack s f f; +#X obj 62 165 gemhead; +#X obj 59 206 translateXYZ; +#X obj 56 248 sphere 0.1; +#X obj 25 71 masse2D \$3-masse 50 \$1 \$2 -3.8 3.8 -3.8 3.8; +#X obj 257 105 unpack s f f f; +#X obj 438 233 osc~; +#X obj 438 208 mtof; +#X obj 438 133 loadbang; +#X obj 364 275 *~; +#X msg 364 209 \$1 50; +#X obj 364 234 line~; +#X obj 364 305 dac~; +#X obj 438 183 + 30; +#X obj 438 159 random 60; +#X obj 442 29 inlet; +#X msg 442 53 0; +#X obj 364 183 min 0.1; +#X obj 364 130 * 0.03; +#X connect 0 0 6 0; +#X connect 2 1 4 1; +#X connect 2 2 4 2; +#X connect 3 0 4 0; +#X connect 4 0 5 0; +#X connect 6 0 2 0; +#X connect 6 0 1 0; +#X connect 6 1 7 0; +#X connect 7 3 20 0; +#X connect 8 0 11 1; +#X connect 9 0 8 0; +#X connect 10 0 16 0; +#X connect 11 0 14 0; +#X connect 11 0 14 1; +#X connect 12 0 13 0; +#X connect 13 0 11 0; +#X connect 15 0 9 0; +#X connect 16 0 15 0; +#X connect 17 0 18 0; +#X connect 18 0 19 1; +#X connect 19 0 12 0; +#X connect 20 0 19 0; diff --git a/exemples/pd_masse2.pd b/exemples/pd_masse2.pd new file mode 100755 index 0000000..fdc2e4e --- /dev/null +++ b/exemples/pd_masse2.pd @@ -0,0 +1,15 @@ +#N canvas 500 206 486 336 12; +#X obj 26 38 inlet; +#X obj 11 137 outlet; +#X obj 25 104 unpack s f f; +#X obj 285 48 gemhead; +#X obj 284 89 translateXYZ; +#X obj 281 131 sphere 0.1; +#X obj 25 71 masse2D \$3-masse2 50 \$1 \$2; +#X connect 0 0 6 0; +#X connect 2 1 4 1; +#X connect 2 2 4 2; +#X connect 3 0 4 0; +#X connect 4 0 5 0; +#X connect 6 0 2 0; +#X connect 6 0 1 0; diff --git a/exemples/rain.pd b/exemples/rain.pd new file mode 100755 index 0000000..0969a50 --- /dev/null +++ b/exemples/rain.pd @@ -0,0 +1,16 @@ +#N canvas 571 315 266 261 10; +#X obj 33 161 gemhead; +#X obj 33 187 translateXYZ; +#X obj 25 39 loadbang; +#X obj 25 85 masse3D masse 1 0 3; +#X obj 25 108 unpack s f f f; +#X obj 33 211 sphere 0.05; +#X msg 25 62 setYmin -3 \, setT 1; +#X connect 0 0 1 0; +#X connect 1 0 5 0; +#X connect 2 0 6 0; +#X connect 3 0 4 0; +#X connect 4 1 1 1; +#X connect 4 2 1 2; +#X connect 4 3 1 3; +#X connect 6 0 3 0; diff --git a/exemples/rain1.pd b/exemples/rain1.pd new file mode 100755 index 0000000..436f34f --- /dev/null +++ b/exemples/rain1.pd @@ -0,0 +1,16 @@ +#N canvas 571 315 262 257 10; +#X obj 33 161 gemhead; +#X obj 33 187 translateXYZ; +#X obj 25 39 loadbang; +#X msg 25 62 setYmin -3; +#X obj 25 85 masse3D masse 1 0 3; +#X obj 25 108 unpack s f f f; +#X obj 33 211 sphere 0.05; +#X connect 0 0 1 0; +#X connect 1 0 6 0; +#X connect 2 0 3 0; +#X connect 3 0 4 0; +#X connect 4 0 5 0; +#X connect 5 1 1 1; +#X connect 5 2 1 2; +#X connect 5 3 1 3; diff --git a/exemples/sand.pd b/exemples/sand.pd new file mode 100755 index 0000000..b162a86 --- /dev/null +++ b/exemples/sand.pd @@ -0,0 +1,29 @@ +#N canvas 571 315 419 342 10; +#X obj 45 142 gemhead; +#X obj 45 168 translateXYZ; +#X obj 25 108 unpack s f f; +#X obj 25 85 masse2D masse 1 \$1 \$2; +#X msg 37 259 setX \$1 \, setY \$2; +#X obj 13 236 r link; +#X obj 25 39 loadbang; +#X msg 175 155 1 0 0; +#X obj 175 23 inlet; +#X obj 45 191 color 1 1 1; +#X obj 45 212 circle 0.05; +#X msg 25 62 setYmin -3 \, setT 0.9; +#X obj 85 40 r reset; +#X obj 40 286 iCircle2D masse 0 0 0.0001 0.15 0 0 1 0 0 0 0.31; +#X connect 0 0 1 0; +#X connect 1 0 9 0; +#X connect 2 1 1 1; +#X connect 2 2 1 2; +#X connect 3 0 2 0; +#X connect 3 0 4 0; +#X connect 4 0 13 0; +#X connect 5 0 13 0; +#X connect 6 0 11 0; +#X connect 7 0 9 1; +#X connect 8 0 7 0; +#X connect 9 0 10 0; +#X connect 11 0 3 0; +#X connect 12 0 11 0; diff --git a/exemples/smoke.pd b/exemples/smoke.pd new file mode 100755 index 0000000..66d4fb5 --- /dev/null +++ b/exemples/smoke.pd @@ -0,0 +1,55 @@ +#N canvas 830 39 529 709 10; +#X obj 143 288 gemhead; +#X obj 143 311 translateXYZ; +#X obj 69 197 unpack s f f; +#X msg 49 484 setX \$1 \, setY \$2; +#X obj 24 296 r link; +#X obj 143 335 sphere 0.05; +#X msg 59 45 off; +#X obj 139 21 r reset_smoke; +#X obj 59 15 loadbang; +#X obj 139 48 sel \$1; +#X obj 199 50 r reset_all; +#X obj 268 369 spigot; +#X msg 294 327 0; +#X msg 327 330 1; +#X msg 191 97 off; +#X obj 196 74 t b b b; +#X obj 53 458 pack f f; +#X obj 327 250 delay 1000; +#X obj 54 511 iCircle2D masse 0 0 0.1 10 0 0 0 0 0 0 0 0 0 -1e-005 +; +#X obj 190 254 / 10; +#X obj 155 249 / 10; +#X msg 157 130 on \, reset \, setXY 0 -35; +#X obj 53 427 - 0; +#X obj 61 173 masse2D masse 1 0 -35; +#X connect 0 0 1 0; +#X connect 1 0 5 0; +#X connect 2 1 20 0; +#X connect 2 1 22 0; +#X connect 2 2 16 1; +#X connect 2 2 19 0; +#X connect 3 0 18 0; +#X connect 4 0 11 0; +#X connect 6 0 23 0; +#X connect 7 0 9 0; +#X connect 8 0 6 0; +#X connect 8 0 12 0; +#X connect 9 0 21 0; +#X connect 9 0 17 0; +#X connect 10 0 15 0; +#X connect 11 0 18 0; +#X connect 12 0 11 1; +#X connect 13 0 11 1; +#X connect 14 0 23 0; +#X connect 15 0 14 0; +#X connect 15 1 21 0; +#X connect 15 2 12 0; +#X connect 16 0 3 0; +#X connect 17 0 13 0; +#X connect 19 0 1 2; +#X connect 20 0 1 1; +#X connect 21 0 23 0; +#X connect 22 0 16 0; +#X connect 23 0 2 0; diff --git a/exemples/smoke1.pd b/exemples/smoke1.pd new file mode 100755 index 0000000..4153b82 --- /dev/null +++ b/exemples/smoke1.pd @@ -0,0 +1,32 @@ +#N canvas 830 39 365 388 10; +#X obj 80 254 gemhead; +#X obj 80 277 translateXYZ; +#X obj 69 197 unpack s f f; +#X obj 80 301 sphere 0.05; +#X msg 59 45 off; +#X obj 139 21 r reset_smoke; +#X obj 59 15 loadbang; +#X obj 139 48 sel \$1; +#X obj 199 50 r reset_all; +#X msg 191 97 off; +#X obj 196 74 t b b b; +#X obj 136 224 / 10; +#X obj 102 224 / 10; +#X obj 61 173 masse2D masse 1 0 -35; +#X msg 157 130 on \, reset \, setXY 0 -35; +#X connect 0 0 1 0; +#X connect 1 0 3 0; +#X connect 2 1 12 0; +#X connect 2 2 11 0; +#X connect 4 0 13 0; +#X connect 5 0 7 0; +#X connect 6 0 4 0; +#X connect 7 0 14 0; +#X connect 8 0 10 0; +#X connect 9 0 13 0; +#X connect 10 0 9 0; +#X connect 10 1 14 0; +#X connect 11 0 1 2; +#X connect 12 0 1 1; +#X connect 13 0 2 0; +#X connect 14 0 13 0; diff --git a/exemples/smoke_vortex.pd b/exemples/smoke_vortex.pd new file mode 100755 index 0000000..d17eaa7 --- /dev/null +++ b/exemples/smoke_vortex.pd @@ -0,0 +1,41 @@ +#N canvas 0 0 460 532 10; +#X obj 66 303 line; +#X obj 137 305 line; +#X obj 67 331 pack; +#X msg 69 359 setX \$1 \, setY \$2; +#X obj 71 3 loadbang; +#X obj 24 38 r link; +#X obj 67 146 randomF 80; +#X obj 138 148 randomF 80; +#X obj 137 172 - 40; +#X obj 66 170 - 40; +#X obj 65 234 pack f f; +#X obj 67 95 metro 8000; +#X msg 158 254 -50 \, 50 8000; +#X obj 73 75 delay; +#X obj 71 28 t b b; +#X obj 99 54 random 8000; +#X obj 25 389 iCircle2D masse 0 0 0.1 50 0 0 0 0 0 \$1; +#X obj 144 8 r reset_all; +#X msg 67 257 \$1 \, \$2 500000; +#X connect 0 0 2 0; +#X connect 1 0 2 1; +#X connect 2 0 3 0; +#X connect 3 0 16 0; +#X connect 4 0 14 0; +#X connect 5 0 16 0; +#X connect 6 0 9 0; +#X connect 7 0 8 0; +#X connect 8 0 10 1; +#X connect 9 0 10 0; +#X connect 10 0 18 0; +#X connect 11 0 6 0; +#X connect 11 0 7 0; +#X connect 11 0 12 0; +#X connect 12 0 1 0; +#X connect 13 0 11 0; +#X connect 14 0 13 0; +#X connect 14 1 15 0; +#X connect 15 0 13 1; +#X connect 17 0 14 0; +#X connect 18 0 0 0; diff --git a/exemples/tut_lia.pd b/exemples/tut_lia.pd new file mode 100755 index 0000000..9563ede --- /dev/null +++ b/exemples/tut_lia.pd @@ -0,0 +1,19 @@ +#N canvas 0 0 454 304 10; +#X obj 177 35 inlet; +#X obj 171 96 outlet; +#X obj 12 32 inlet; +#X obj 6 93 outlet; +#X msg 56 156 \$1 \$2 0; +#X obj 24 186 gemhead; +#X obj 26 210 curve 2; +#X msg 134 155 \$1 \$2 0; +#X obj 45 61 lia2D tut_lia 0 10 2.5 0.1; +#X connect 0 0 7 0; +#X connect 0 0 8 1; +#X connect 2 0 4 0; +#X connect 2 0 8 0; +#X connect 4 0 6 1; +#X connect 5 0 6 0; +#X connect 7 0 6 2; +#X connect 8 0 3 0; +#X connect 8 1 1 0; diff --git a/exemples/tut_masse.pd b/exemples/tut_masse.pd new file mode 100755 index 0000000..05d523e --- /dev/null +++ b/exemples/tut_masse.pd @@ -0,0 +1,15 @@ +#N canvas 0 0 416 404 10; +#X obj 40 110 inlet; +#X obj 25 209 outlet; +#X obj 39 176 unpack s f f; +#X obj 114 224 gemhead; +#X obj 113 265 translateXYZ; +#X obj 110 307 sphere 0.1; +#X obj 38 137 masse2D tut_masse 50 \$1 \$2; +#X connect 0 0 6 0; +#X connect 2 1 4 1; +#X connect 2 2 4 2; +#X connect 3 0 4 0; +#X connect 4 0 5 0; +#X connect 6 0 2 0; +#X connect 6 0 1 0; diff --git a/exemples/vortex.pd b/exemples/vortex.pd new file mode 100755 index 0000000..66c399c --- /dev/null +++ b/exemples/vortex.pd @@ -0,0 +1,26 @@ +#N canvas 844 114 502 389 10; +#X obj 77 177 gemhead; +#X obj 77 200 translateXYZ; +#X obj 66 150 unpack s f f; +#X msg 56 285 setX \$1 \, setY \$2; +#X obj 23 262 r link; +#X obj 58 15 r masse2; +#X msg 54 61 bang; +#X msg 94 66 reset; +#X obj 60 36 t b b; +#X obj 56 126 masse2D masse 0 \$1; +#X obj 77 224 sphere 0.05; +#X obj 56 312 iCircle2D masse 0 0 1e-006 10 0 0 0 0 0 0 0 0 0 0.0001 +; +#X connect 0 0 1 0; +#X connect 1 0 10 0; +#X connect 2 1 1 1; +#X connect 2 2 1 2; +#X connect 3 0 11 0; +#X connect 4 0 11 0; +#X connect 5 0 8 0; +#X connect 7 0 9 0; +#X connect 8 0 6 0; +#X connect 8 1 7 0; +#X connect 9 0 2 0; +#X connect 9 0 3 0; diff --git a/exemples/vortex2.pd b/exemples/vortex2.pd new file mode 100755 index 0000000..1ea2e69 --- /dev/null +++ b/exemples/vortex2.pd @@ -0,0 +1,53 @@ +#N canvas 703 127 516 799 10; +#X obj 85 424 gemhead; +#X obj 85 447 translateXYZ; +#X obj 74 397 unpack s f f; +#X msg 64 532 setX \$1 \, setY \$2; +#X obj 31 509 r link; +#X obj 64 30 loadbang; +#X obj 64 166 cos; +#X obj 64 110 * 3.14159; +#X obj 88 167 sin; +#X obj 63 317 pack f f; +#X msg 64 343 setXY \$1 \$2; +#X obj 132 29 r masse2; +#X obj 64 59 random 360; +#X obj 64 85 / 180; +#X obj 135 176 random 100; +#X obj 272 167 random 100; +#X obj 64 135 t f f b; +#X obj 124 227 *; +#X obj 149 272 *; +#X obj 85 471 sphere 0.05; +#X obj 271 190 / 50; +#X obj 137 202 / 100; +#X obj 64 373 masse2D masse 0; +#X obj 64 559 iCircle2D masse 0 0 1e-006 10 0 0 0 0 0 0 0 0 0 0.0001 +; +#X connect 0 0 1 0; +#X connect 1 0 19 0; +#X connect 2 1 1 1; +#X connect 2 2 1 2; +#X connect 3 0 23 0; +#X connect 4 0 23 0; +#X connect 5 0 12 0; +#X connect 6 0 18 0; +#X connect 7 0 16 0; +#X connect 8 0 17 0; +#X connect 9 0 10 0; +#X connect 10 0 22 0; +#X connect 11 0 12 0; +#X connect 12 0 13 0; +#X connect 13 0 7 0; +#X connect 14 0 21 0; +#X connect 15 0 20 0; +#X connect 16 0 6 0; +#X connect 16 1 8 0; +#X connect 16 2 14 0; +#X connect 16 2 15 0; +#X connect 17 0 9 1; +#X connect 18 0 9 0; +#X connect 20 0 18 1; +#X connect 21 0 17 1; +#X connect 22 0 2 0; +#X connect 22 0 3 0; diff --git a/help/help-iAmbient2D.pd b/help/help-iAmbient2D.pd new file mode 100755 index 0000000..8e00c71 --- /dev/null +++ b/help/help-iAmbient2D.pd @@ -0,0 +1,61 @@ +#N canvas 572 117 613 725 10; +#X obj 16 652 iAmbient2D; +#X text 272 20 ambient interaction; +#X text 178 41 This object sould be used for the simulation of interaction +between a collection of masse and a commun environement; +#X text 179 143 1 : name; +#X text 176 71 This object should receive a bang to be active (act +like the link object); +#X obj 46 672 pmpd.iAmbient2D; +#X text 196 155 this is the name of the mass interacting with this +object. you can also conect the output of this object to a mass \, +to allow an interaction with this mass.; +#X text 201 552 if a mass is outside of this rectangle \, the mass +will not interact with this object.; +#X text 196 404 value of the damping forces. this force is oposite +from the velocity of the mass. It is proportional to the velocity of +the masse.; +#X text 195 356 Maximum amplitude of a random force aplyed to masses +(X and Y amplitude).; +#X text 196 270 this is constant force apply to all masses interacting +this this object. Gravity is a constant negative force on Y axes.; +#X msg 73 225 setFX 0; +#X msg 73 249 setFY 0; +#X msg 76 304 setRndFX 0; +#X msg 77 333 setRndFY 0; +#X msg 79 385 setD 0; +#X msg 76 451 setXmin -100000; +#X msg 76 495 setYmin -100000; +#X msg 76 473 setXmax 100000; +#X msg 76 518 setYmax 100000; +#X text 173 517 10 : Y maximum; +#X text 179 495 9 : Y minimum; +#X text 179 473 8 : X maximum; +#X text 179 452 7 : X minimum; +#X text 202 537 minimum and maximum position of the interactor.; +#X msg 78 593 setdX 0; +#X msg 78 616 setdY 0; +#X text 77 112 message to change parametter / default value / creation +arg number / description; +#X text 175 225 2 : X constant force field; +#X text 174 249 3 : Y constant force field; +#X text 177 306 4 : rnd X force field; +#X text 175 334 5 : rnd Y force field; +#X text 176 389 6 : damping; +#X text 174 593 11 : X displacement field; +#X text 173 617 12 : y displacement field; +#X text 205 640 X and Y displacement field. displace the mass if it's +inside the interactor field; +#X msg 72 202 setFXY 0 0; +#X connect 11 0 0 0; +#X connect 12 0 0 0; +#X connect 13 0 0 0; +#X connect 14 0 0 0; +#X connect 15 0 0 0; +#X connect 16 0 0 0; +#X connect 17 0 0 0; +#X connect 18 0 0 0; +#X connect 19 0 0 0; +#X connect 25 0 0 0; +#X connect 26 0 0 0; +#X connect 36 0 0 0; diff --git a/help/help-iAmbient3D.pd b/help/help-iAmbient3D.pd new file mode 100755 index 0000000..11c3d6f --- /dev/null +++ b/help/help-iAmbient3D.pd @@ -0,0 +1,76 @@ +#N canvas 281 53 599 822 10; +#X text 272 20 ambient interaction; +#X text 172 40 This object sould be used for the simulation of interaction +between a collection of masse and a commun environement; +#X text 179 143 1 : name; +#X text 172 70 This object should receive a bang to be active (act +like the link object); +#X text 196 155 this is the name of the mass interacting with this +object. you can also conect the output of this object to a mass \, +to allow an interaction with this mass.; +#X text 200 642 if a mass is outside of this rectangle \, the mass +will not interact with this object.; +#X text 197 450 value of the damping forces. this force is oposite +from the velocity of the mass. It is proportional to the velocity of +the masse.; +#X text 198 295 this is constant force apply to all masses interacting +this this object. Gravity is a constant negative force on Y axes.; +#X msg 74 225 setFX 0; +#X msg 75 249 setFY 0; +#X msg 76 335 setRndFX 0; +#X msg 76 359 setRndFY 0; +#X msg 77 431 setD 0; +#X msg 69 499 setXmin -100000; +#X msg 69 543 setYmin -100000; +#X msg 69 521 setXmax 100000; +#X msg 69 566 setYmax 100000; +#X text 202 627 minimum and maximum position of the interactor.; +#X msg 70 673 setdX 0; +#X msg 70 694 setdY 0; +#X text 77 112 message to change parametter / default value / creation +arg number / description; +#X obj 16 752 iAmbient3D; +#X obj 47 775 pmpd.iAmbient3D; +#X msg 76 272 setFZ 0; +#X msg 77 385 setRndFZ 0; +#X msg 69 589 setZmin -100000; +#X msg 69 611 setZmax 100000; +#X msg 70 716 setdZ 0; +#X text 200 401 Maximum amplitude of a random force aplyed to masses +(X \, Y and Z amplitude).; +#X text 175 225 2 : X constant force field; +#X text 174 249 3 : Y constant force field; +#X text 173 270 4 : Z constant force field; +#X text 172 333 5 : rnd X force field; +#X text 170 360 6 : rnd Y force field; +#X text 170 386 7 : rnd Z force field; +#X text 170 432 8 : damping; +#X text 172 500 9 : X minimum; +#X text 172 521 10 : X maximum; +#X text 172 543 11 : Y minimum; +#X text 171 565 12 : Y maximum; +#X text 172 591 13 : Z minimum; +#X text 171 611 14 : Z maximum; +#X text 170 675 15 : X displacement field; +#X text 169 696 16 : Y displacement field; +#X text 169 719 17 : Z displacement field; +#X text 200 736 X and Y displacement field. displace the masse if it's +in the interactor field; +#X msg 72 202 setFXY 0 0 0; +#X connect 8 0 21 0; +#X connect 9 0 21 0; +#X connect 10 0 21 0; +#X connect 11 0 21 0; +#X connect 12 0 21 0; +#X connect 13 0 21 0; +#X connect 14 0 21 0; +#X connect 15 0 21 0; +#X connect 16 0 21 0; +#X connect 18 0 21 0; +#X connect 19 0 21 0; +#X connect 23 0 21 0; +#X connect 24 0 21 0; +#X connect 25 0 21 0; +#X connect 26 0 21 0; +#X connect 27 0 21 0; +#X connect 46 0 21 0; diff --git a/help/help-iCircle2D.pd b/help/help-iCircle2D.pd new file mode 100755 index 0000000..e26ede4 --- /dev/null +++ b/help/help-iCircle2D.pd @@ -0,0 +1,83 @@ +#N canvas 352 49 574 849 10; +#X text 156 130 1 : name; +#X obj 12 785 iCircle2D; +#X text 151 193 2 : center circle X; +#X text 153 219 3 : center circle Y; +#X text 260 23 Circlular interaction; +#X text 154 52 This object sould be used for the simulation of interaction +between a collection of masse and a circle; +#X text 152 281 5 : Maximum Radius; +#X text 151 258 4 : Minimum Radius; +#X text 150 341 6 : constante Normal Force; +#X text 149 374 7 : constante tengential Force; +#X text 150 412 8 : normal rigidity; +#X text 150 430 9 : tengential rigidity; +#X text 143 492 10 : normal force proportional to 1/R; +#X text 141 512 11 : tengential force proportional to 1/R; +#X text 144 558 12 : normal damping; +#X text 142 580 13 : tengential damping; +#X text 144 614 14 : Normal displacement; +#X text 143 633 15 : Tengential displacement; +#X text 143 670 16 : link damping.; +#X text 143 731 18 : normal constant displacement; +#X text 142 753 19 : tangential constant displacement; +#X obj 28 808 pmpd.iCircle2D; +#X text 98 97 message to change parametter / default value / creation +arg number / description; +#X text 177 148 this is the name of the mass interacting with this +object. you can also conect the output of this object to a mass \, +to allow an interaction with this mass.; +#X msg 80 194 setX 0; +#X msg 80 219 setY 0; +#X msg 80 257 setRmin 0; +#X msg 81 281 setRmax 1; +#X text 177 236 center of the circle defining the interactor; +#X text 176 300 minimal and maximal radius of the circle. If the mass +is outside or inside this circles \, it will not interact with this +link.; +#X text 175 358 constant force normal to the circle.; +#X text 176 391 add a constant force tangential to the circle.; +#X msg 78 373 setFT 0; +#X msg 79 339 setFN 0; +#X text 175 447 normal and tangential rigidity of the circle. Forces +are proportional to the distance between the masse and the maximum +diametter of the circle.; +#X text 175 528 normal and tangential forces proportional to the 1/distance +between the masse and the center of the circle.; +#X text 174 596 normal and tangential (to the circle) damping to the +masse.; +#X text 174 649 normal and tangential displacement field.; +#X text 143 695 17 : Gravitation; +#X text 172 714 Gravitation : this is a normal force proportional to +1/R*R.; +#X msg 78 694 setG; +#X text 173 770 displace the masse if it's inside the interactor; +#X msg 78 731 setdN; +#X msg 78 750 setdT; +#X msg 79 412 setKN; +#X msg 78 431 setKT; +#X msg 78 492 setRN; +#X msg 78 514 setRT; +#X msg 80 558 setDN; +#X msg 80 582 setDT; +#X msg 80 615 setdN; +#X msg 79 636 setdT; +#X msg 78 670 setD; +#X connect 24 0 1 0; +#X connect 25 0 1 0; +#X connect 26 0 1 0; +#X connect 27 0 1 0; +#X connect 32 0 1 0; +#X connect 33 0 1 0; +#X connect 40 0 1 0; +#X connect 42 0 1 0; +#X connect 43 0 1 0; +#X connect 44 0 1 0; +#X connect 45 0 1 0; +#X connect 46 0 1 0; +#X connect 47 0 1 0; +#X connect 48 0 1 0; +#X connect 49 0 1 0; +#X connect 50 0 1 0; +#X connect 51 0 1 0; +#X connect 52 0 1 0; diff --git a/help/help-iCircle3D.pd b/help/help-iCircle3D.pd new file mode 100755 index 0000000..1d93cea --- /dev/null +++ b/help/help-iCircle3D.pd @@ -0,0 +1,70 @@ +#N canvas 277 111 566 710 10; +#X text 177 107 1 : name; +#X text 285 12 Circlular interaction; +#X text 179 41 This object sould be used for the simulation of interaction +between a collection of masse and a circle; +#X text 123 74 message to change parametter / default value / creation +arg number / description; +#X text 198 125 this is the name of the mass interacting with this +object. you can also conect the output of this object to a mass \, +to allow an interaction with this mass.; +#X msg 104 332 setRmin 0; +#X msg 105 355 setRmax 1; +#X text 200 374 minimal and maximal radius of the circle. If the mass +is outside or inside this circles \, it will not interact with this +link.; +#X text 199 432 constant force normal to the circle.; +#X msg 103 413 setFN 0; +#X obj 20 632 iCircle3D; +#X obj 37 655 pmpd.iCircle3D; +#X text 176 170 2 : X coordonate of the orientation vector of the circle +; +#X text 175 195 3 : Y coordonate of the orientation vector of the circle +; +#X text 209 237 normal vector of the circle; +#X msg 108 255 setX 0; +#X msg 107 280 setY 0; +#X msg 107 303 setZ 0; +#X text 175 255 5 : center circle X; +#X text 175 279 6 : center circle Y; +#X text 174 304 7 : center circle Z; +#X msg 105 171 setVX 0; +#X msg 105 196 setVY 0; +#X msg 107 218 setVZ 0; +#X text 199 318 center of the circle; +#X text 176 332 8 : Minimum Radius; +#X text 176 355 9 : Maximum Radius; +#X text 171 415 10 : constante Normal Force; +#X text 170 448 11 : normal rigidity; +#X text 176 219 4 : Z coordonate of the orientation vector of the circle +; +#X text 201 466 Force is proportional to the distance between the masse +and the circle plane.; +#X msg 104 448 setKN 0; +#X text 168 493 12 : damping; +#X text 199 509 normal (to the circle plane) damping to the masses. +; +#X msg 104 493 setD 0; +#X text 170 560 14 : Normal constant displacement; +#X text 171 589 15 : displace the masse proportionaly to it's depth +of the mass in the interactor; +#X msg 103 558 setdN 0; +#X msg 104 589 setdKN 0; +#X text 170 532 13 : maximum profound of the circle interaction; +#X text 168 642 this object is like iPlane3D \, but it's action is +more limited in space.; +#X msg 104 532 setPmax 10000; +#X connect 5 0 10 0; +#X connect 6 0 10 0; +#X connect 9 0 10 0; +#X connect 15 0 10 0; +#X connect 16 0 10 0; +#X connect 17 0 10 0; +#X connect 21 0 10 0; +#X connect 22 0 10 0; +#X connect 23 0 10 0; +#X connect 31 0 10 0; +#X connect 34 0 10 0; +#X connect 37 0 10 0; +#X connect 38 0 10 0; +#X connect 41 0 10 0; diff --git a/help/help-iCylinder3D.pd b/help/help-iCylinder3D.pd new file mode 100755 index 0000000..ce643a3 --- /dev/null +++ b/help/help-iCylinder3D.pd @@ -0,0 +1,90 @@ +#N canvas 338 52 610 896 10; +#X text 276 10 Cylinder interaction; +#X text 166 610 15 : minimum height of the cylinder interaction; +#X text 168 641 16 : minimum height of the cylinder interaction; +#X text 167 670 17 : tengential constant force; +#X text 167 695 18 : tangential rigidity; +#X text 168 727 19 : normal constant displacement; +#X text 167 757 20 : tangential constant displacement; +#X text 166 786 21 : normal displacement proportional to 1/R; +#X text 166 812 22 : tangential displacement proportional to 1/R; +#X text 175 118 1 : name; +#X text 121 76 message to change parametter / default value / creation +arg number / description; +#X text 196 136 this is the name of the mass interacting with this +object. you can also conect the output of this object to a mass \, +to allow an interaction with this mass.; +#X msg 81 343 setRmin 0; +#X msg 82 366 setRmax 1; +#X text 198 385 minimal and maximal radius of the circle. If the mass +is outside or inside this circles \, it will not interact with this +link.; +#X msg 80 424 setFN 0; +#X text 174 181 2 : X coordonate of the orientation vector of the circle +; +#X text 173 206 3 : Y coordonate of the orientation vector of the circle +; +#X text 207 248 normal vector of the circle; +#X msg 85 266 setX 0; +#X msg 84 291 setY 0; +#X msg 84 314 setZ 0; +#X msg 82 182 setVX 0; +#X msg 83 207 setVY 0; +#X msg 84 229 setVZ 0; +#X text 197 329 center of the circle; +#X text 174 343 8 : Minimum Radius; +#X text 174 366 9 : Maximum Radius; +#X text 169 426 10 : constante Normal Force; +#X text 168 459 11 : normal rigidity; +#X text 174 230 4 : Z coordonate of the orientation vector of the circle +; +#X msg 81 459 setKN 0; +#X text 166 504 12 : damping; +#X msg 81 504 setD 0; +#X msg 78 731 setdN 0; +#X obj 9 866 iCylinder3D; +#X obj 30 840 pmpd.iCylinder3D; +#X text 177 39 This object sould be used for the simulation of interaction +between a collection of masse and a cylinder; +#X text 173 266 5 : center X; +#X text 173 290 6 : center Y; +#X text 172 315 7 : center Z; +#X text 197 443 constant force normal to the cylinder.; +#X text 199 477 Force is proportional to the distance between the masse +and the cylindre center.; +#X text 197 520 normal (to the cylinder surface) damping to the masses. +; +#X text 166 536 13 : Normal force proportional to 1/distance to the +center of the cylinder; +#X msg 78 610 setPmin -10000; +#X msg 80 639 setPmax 10000; +#X msg 78 756 setdT 0; +#X text 166 574 14 : Normal force proportional to 1/square(distance) +to the center of the cylinder; +#X msg 80 670 setFN 0; +#X msg 81 705 setKN 0; +#X msg 82 575 setG 0; +#X msg 83 538 setRN 0; +#X msg 77 782 setdKN 0; +#X msg 77 807 setdKT 0; +#X connect 12 0 35 0; +#X connect 13 0 35 0; +#X connect 15 0 35 0; +#X connect 19 0 35 0; +#X connect 20 0 35 0; +#X connect 21 0 35 0; +#X connect 22 0 35 0; +#X connect 23 0 35 0; +#X connect 24 0 35 0; +#X connect 31 0 35 0; +#X connect 33 0 35 0; +#X connect 34 0 35 0; +#X connect 45 0 35 0; +#X connect 46 0 35 0; +#X connect 47 0 35 0; +#X connect 49 0 35 0; +#X connect 50 0 35 0; +#X connect 51 0 35 0; +#X connect 52 0 35 0; +#X connect 53 0 35 0; +#X connect 54 0 35 0; diff --git a/help/help-iLine2D.pd b/help/help-iLine2D.pd new file mode 100755 index 0000000..3c112ec --- /dev/null +++ b/help/help-iLine2D.pd @@ -0,0 +1,58 @@ +#N canvas 508 171 589 636 10; +#X text 163 39 This object sould be used for the simulation of interaction +between a collection of masse and a line.; +#X text 175 273 6 : maximum depth (1); +#X text 266 11 interaction with a line; +#X text 169 513 12 : Normal displacement; +#X text 169 544 13 : tengential displacement; +#X text 177 107 1 : name; +#X text 123 74 message to change parametter / default value / creation +arg number / description; +#X text 198 125 this is the name of the mass interacting with this +object. you can also conect the output of this object to a mass \, +to allow an interaction with this mass.; +#X msg 108 303 setFN 0; +#X msg 110 383 setKN 0; +#X msg 108 512 setdN 0; +#X obj 17 577 iLine2D; +#X obj 34 600 pmpd.iLine2D; +#X msg 106 194 setY1 0; +#X msg 107 240 setY2 0; +#X msg 105 169 setX1 -1; +#X msg 106 217 setX2 1; +#X text 176 169 2 : X coordonate of the the 1st point of the line; +#X text 176 193 3 : Y coordonate of the the 1st point of the line; +#X text 176 216 4 : X coordonate of the the 2nd point of the line; +#X text 176 240 5 : Y coordonate of the the 2nd point of the line; +#X msg 107 273 setPmax 1; +#X text 201 257 X and Y position of the 2 points defining the line. +; +#X text 199 288 maximum depth of the interaction line.; +#X text 175 305 7 : Normal constant force; +#X text 175 325 8 : tengential constant force; +#X text 174 383 9 : normal rigidity; +#X text 168 445 10 : Normal damping; +#X text 168 471 11 : Tengential damping; +#X text 199 347 normal and tangential (to the line) constant forces +apply to the masse when it is in interaction with this object.; +#X msg 109 327 setFT 0; +#X msg 109 445 setDN 0; +#X text 199 397 normal rigidity. Forces are proportional to the depth +between the masse and the line. The force is aply only to one side +of the line.; +#X text 199 489 normal and tangential damping for the masse.; +#X msg 109 472 setDT 0; +#X msg 107 543 setdT 0; +#X text 198 564 displace the mass when it is in the interactor field +; +#X connect 8 0 11 0; +#X connect 9 0 11 0; +#X connect 10 0 11 0; +#X connect 13 0 11 0; +#X connect 14 0 11 0; +#X connect 15 0 11 0; +#X connect 16 0 11 0; +#X connect 21 0 11 0; +#X connect 31 0 11 0; +#X connect 34 0 11 0; +#X connect 35 0 11 0; diff --git a/help/help-iPlane3D.pd b/help/help-iPlane3D.pd new file mode 100755 index 0000000..96c3911 --- /dev/null +++ b/help/help-iPlane3D.pd @@ -0,0 +1,55 @@ +#N canvas 4 8 610 587 10; +#X text 174 327 8 : constante Normal Force; +#X text 175 353 9 : normal rigidity; +#X text 166 405 10 : normal damping; +#X text 161 463 12 : normal displacement; +#X text 174 258 5 : X point of the plane; +#X text 173 281 6 : Y point of the plane; +#X text 173 304 7 : Z point of the plane; +#X text 162 491 13 : dormal displacement (proportional to the pronfondary +of the point); +#X text 175 107 1 : name; +#X text 121 74 message to change parametter / default value / creation +arg number / description; +#X text 196 125 this is the name of the mass interacting with this +object. you can also conect the output of this object to a mass \, +to allow an interaction with this mass.; +#X msg 95 327 setFN 0; +#X text 207 237 normal vector of the circle; +#X msg 96 255 setX 0; +#X msg 95 280 setY 0; +#X msg 95 303 setZ 0; +#X msg 93 171 setVX 0; +#X msg 93 196 setVY 0; +#X msg 95 218 setVZ 0; +#X text 196 376 Force is proportional to the distance between the masse +and the circle plane.; +#X msg 95 354 setKN 0; +#X msg 96 400 setD 0; +#X msg 95 433 setPmax 10000; +#X msg 94 462 setdN 0; +#X msg 95 493 setdKN 0; +#X text 283 12 Plane interaction; +#X obj 21 521 iPlane3D; +#X obj 38 544 pmpd.iPlane3D; +#X text 177 41 This object sould be used for the simulation of interaction +between a collection of masse and a plane; +#X text 174 170 2 : X coordonate of the orientation vector of the plane +; +#X text 173 195 3 : Y coordonate of the orientation vector of the plane +; +#X text 174 219 4 : Z coordonate of the orientation vector of the plane +; +#X text 162 433 11 : maximum profound of the circle interaction; +#X connect 11 0 26 0; +#X connect 13 0 26 0; +#X connect 14 0 26 0; +#X connect 15 0 26 0; +#X connect 16 0 26 0; +#X connect 17 0 26 0; +#X connect 18 0 26 0; +#X connect 20 0 26 0; +#X connect 21 0 26 0; +#X connect 22 0 26 0; +#X connect 23 0 26 0; +#X connect 24 0 26 0; diff --git a/help/help-iSeg2D.pd b/help/help-iSeg2D.pd new file mode 100755 index 0000000..4025c36 --- /dev/null +++ b/help/help-iSeg2D.pd @@ -0,0 +1,64 @@ +#N canvas 378 178 579 646 10; +#X text 175 273 6 : maximum depth (1); +#X text 169 513 12 : Normal displacement; +#X text 169 544 13 : tengential displacement; +#X text 177 107 1 : name; +#X text 123 74 message to change parametter / default value / creation +arg number / description; +#X text 198 125 this is the name of the mass interacting with this +object. you can also conect the output of this object to a mass \, +to allow an interaction with this mass.; +#X msg 108 303 setFN 0; +#X msg 110 383 setKN 0; +#X msg 108 512 setdN 0; +#X msg 106 194 setY1 0; +#X msg 107 240 setY2 0; +#X msg 105 169 setX1 -1; +#X msg 106 217 setX2 1; +#X msg 107 273 setPmax 1; +#X text 175 305 7 : Normal constant force; +#X text 175 325 8 : tengential constant force; +#X text 174 383 9 : normal rigidity; +#X text 168 445 10 : Normal damping; +#X text 168 471 11 : Tengential damping; +#X msg 109 327 setFT 0; +#X msg 109 445 setDN 0; +#X text 199 397 normal rigidity. Forces are proportional to the depth +between the masse and the line. The force is aply only to one side +of the line.; +#X text 199 489 normal and tangential damping for the masse.; +#X msg 109 472 setDT 0; +#X msg 107 543 setdT 0; +#X text 198 564 displace the mass when it is in the interactor field +; +#X text 266 11 interaction with a segment; +#X text 163 39 This object sould be used for the simulation of interaction +between a collection of masse and a segment.; +#X text 135 596 this object is like iLine2D \, but the action is more +limited in space; +#X obj 17 577 iSeg2D; +#X obj 34 600 pmpd.iSeg2D; +#X text 177 169 2 : X coordonate of the the 1st point of the segment +; +#X text 176 193 3 : Y coordonate of the the 1st point of the segment +; +#X text 176 216 4 : X coordonate of the the 2nd point of the segment +; +#X text 176 240 5 : Y coordonate of the the 2nd point of the segment +; +#X text 201 257 X and Y position of the 2 points defining the segment. +; +#X text 199 288 maximum depth of the interaction segment.; +#X text 199 347 normal and tangential (to the segment) constant forces +apply to the masse when it is in interaction with this object.; +#X connect 6 0 29 0; +#X connect 7 0 29 0; +#X connect 8 0 29 0; +#X connect 9 0 29 0; +#X connect 10 0 29 0; +#X connect 11 0 29 0; +#X connect 12 0 29 0; +#X connect 13 0 29 0; +#X connect 20 0 29 0; +#X connect 23 0 29 0; +#X connect 24 0 29 0; diff --git a/help/help-iSphere3D.pd b/help/help-iSphere3D.pd new file mode 100755 index 0000000..2299db4 --- /dev/null +++ b/help/help-iSphere3D.pd @@ -0,0 +1,67 @@ +#N canvas 37 20 614 708 10; +#X text 247 6 Spherical interaction; +#X text 181 182 2 : X coordonate of the center of the sphere; +#X text 170 555 13 : constant displacement normal to the circle. (0) +; +#X text 171 580 14 : normal displacement proportional to 1/distance +between the masse and the sphere.; +#X text 172 517 12 : normal force proportional to 1/sqare(distance) +between the masse and the sphere.; +#X text 169 615 15 : normal displacement proportional to 1/sqare(distance) +between the masse and the sphere.; +#X text 171 486 11 : normal constant displacement; +#X text 175 118 1 : name; +#X text 121 76 message to change parametter / default value / creation +arg number / description; +#X text 196 136 this is the name of the mass interacting with this +object. you can also conect the output of this object to a mass \, +to allow an interaction with this mass.; +#X msg 80 257 setRmin 0; +#X msg 81 280 setRmax 1; +#X msg 78 340 setFN 0; +#X msg 79 378 setKN 0; +#X msg 79 485 setdN 0; +#X msg 79 579 setdRN 0; +#X msg 78 518 setG 0; +#X obj 17 659 iSphere3D; +#X obj 78 659 pmpd.iSphere3D; +#X text 177 39 This object sould be used for the simulation of interaction +between a collection of masse and a Sphere; +#X msg 80 182 setX 0; +#X msg 79 207 setY 0; +#X msg 79 230 setZ 0; +#X text 179 208 3 : Y coordonate of the center of the sphere; +#X text 178 233 4 : Z coordonate of the center of the sphere; +#X text 177 258 5 : Minimum Radius; +#X text 177 279 6 : Maximum Radius; +#X text 203 297 minimal and maximal radius of the sphere. If the mass +is outside or inside this sphere \, it will not interact with this +link.; +#X text 204 356 constant force normal to the sphere.; +#X text 204 396 Force is proportional to the distance between the masse +and the sphere center.; +#X text 175 338 7 : constante Normal Force; +#X text 175 377 8 : normal rigidity; +#X text 178 423 9 : normal forces proportional to 1/distance between +the masse and the sphere.; +#X text 173 456 10 : damping; +#X msg 78 457 setDN 0; +#X text 204 471 normal (to the sphere surface) damping to the masses. +; +#X msg 79 553 setdKN 0; +#X msg 78 620 setdGN 0; +#X msg 79 425 setFRN; +#X connect 10 0 17 0; +#X connect 11 0 17 0; +#X connect 12 0 17 0; +#X connect 13 0 17 0; +#X connect 14 0 17 0; +#X connect 15 0 17 0; +#X connect 16 0 17 0; +#X connect 20 0 17 0; +#X connect 21 0 17 0; +#X connect 22 0 17 0; +#X connect 34 0 17 0; +#X connect 36 0 17 0; +#X connect 37 0 17 0; +#X connect 38 0 17 0; diff --git a/help/help-lia.pd b/help/help-lia.pd new file mode 100755 index 0000000..6e606e3 --- /dev/null +++ b/help/help-lia.pd @@ -0,0 +1,114 @@ +#N canvas 331 134 656 710 10; +#X obj 129 501 lia; +#N canvas 85 7 622 478 physical 0; +#X text 23 268 Generated force is the sum of 3 differents forces : +; +#X text 102 142 eL[t] = L[t] - L[0]; +#X text 78 166 -> Elongation-Speed of a link :; +#X text 101 184 speedOf(eL[t]) = eL[t] - eL[t-1]; +#X text 78 106 -> Elongation of a link (eL) is equal to the length +of the link minus its initial length :; +#X text 78 46 -> Length of a link (L) is equal to the difference between +positions of Masses (M1 \, M2) :; +#X text 102 79 L[t] = positionOf(M1[t]) - positionOf(M2[t]); +#X text 78 206 -> Speed of a mass :; +#X text 77 346 -> Damping of a link (proportional to) :; +#X text 77 385 -> Damping of a mass is proportional to :; +#X text 102 224 speedOf(M[t]) = positionOf(M[t-1]) - positionOf(M[t]) +; +#X text 77 306 -> Rigidity of a link (proportional to) :; +#X text 100 403 Fdm :: D2 * speedOf(M[t]); +#X text 100 364 Fdl :: D * speedOf(eL[t]); +#X text 100 324 Frl :: K * eL[t]; +#X text 24 8 Notation (at time t) :; +#X restore 239 679 pd physical equations; +#X text 217 593 value range :; +#X text 260 13 link between 2 masses; +#X text 88 562 1 : force to apply to mass 1 (float); +#X text 89 530 2 : force to apply to mass 2 (float); +#X text 257 381 if the size of the link is < Lmin then force of the +link will be null; +#X text 263 432 if the size of the link is > Lmax then force of the +link will be null; +#X text 242 622 K \, D \, D2 are positive. Negative values make strange +(non physical) things. High values can cause numerical instability. +; +#X obj 25 501 link; +#X obj 65 501 pmpd.link; +#X text 127 471 2 : position of mass 2 (float); +#X floatatom 25 562 5 0 0 0 - - -; +#X floatatom 44 529 5 0 0 0 - - -; +#X text 225 68 1 : name; +#X floatatom 93 471 5 0 0 0 - - -; +#X msg 105 125 setL 0; +#X msg 105 154 setK 0; +#X msg 105 184 setD 0; +#X msg 104 214 setD2 0; +#X text 226 122 2 : Lenght; +#X text 250 139 change Length of the link; +#X text 226 153 3 : rigidity; +#X text 249 168 change rigidity; +#X text 230 238 change position of mass 1; +#X msg 106 265 bang; +#X text 228 258 compute and output forces \, according to the last +masses positions; +#X msg 107 291 reset; +#X msg 109 316 resetF; +#X msg 109 338 resetL; +#X msg 110 366 setLmin 0; +#X text 229 185 4 : Damping of the link deformation; +#X text 231 214 5 : Damping of the masses speed; +#X obj 105 240 0; +#X text 227 288 reset position of masses and set speed of the link +to zero; +#X text 230 314 reset damping and inertial force of the link.; +#X text 228 339 set the length of the liaison to it's curent lengh +; +#X text 234 363 set the minimum size of the link; +#X text 233 416 set the maximum size of the link; +#X msg 110 416 setLmax 10000; +#X text 250 84 you can use it in pd to send messages / bang / etc to +the lia. this is for simplifying connection.; +#N canvas 292 12 556 402 Lmin 0; +#X text 23 14 Lmin and Lmax are useful for non-linear links; +#X text 24 42 If the length of the link is < Lmin then force of the +link will be null; +#X text 24 86 If the length of the link is > Lmax then force of the +link will be null; +#X text 13 137 Case Lmin = 0 and Lmax = 10 :; +#X text 38 163 At L = 0 \, links can break (a bit like a magnet.); +#X text 38 183 At L = 10 \, this is a repulsive-only link useful for +interaction between two structures.; +#X text 12 237 Case Lmin = 10 and Lmax = very positive :; +#X text 38 262 At L = 10 \, this is an attractive link only; +#X text 13 304 note : D2 is damping associated with the mass but not +the link. So it's not affected by Lmin and Lmax; +#X restore 477 456 pd Lmin Lmax exemple; +#N canvas 0 0 231 186 name 0; +#X obj 23 6 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 -1 +; +#X obj 23 27 s lia_foo; +#X obj 116 102 lia lia_foo; +#X obj 19 125 print lia1; +#X obj 116 126 print lia2; +#X obj 19 101 lia lia_foo; +#X connect 0 0 1 0; +#X connect 2 0 4 0; +#X connect 5 0 3 0; +#X restore 496 117 pd name example; +#X text 138 33 link : get position of masses \, output forces to apply +; +#X connect 9 0 12 0; +#X connect 9 1 13 0; +#X connect 15 0 9 1; +#X connect 16 0 9 0; +#X connect 17 0 9 0; +#X connect 18 0 9 0; +#X connect 19 0 9 0; +#X connect 25 0 9 0; +#X connect 27 0 9 0; +#X connect 28 0 9 0; +#X connect 29 0 9 0; +#X connect 30 0 9 0; +#X connect 33 0 9 0; +#X connect 39 0 9 0; diff --git a/help/help-lia2D.pd b/help/help-lia2D.pd new file mode 100755 index 0000000..63619d4 --- /dev/null +++ b/help/help-lia2D.pd @@ -0,0 +1,68 @@ +#N canvas 0 0 673 682 10; +#X text 250 618 forces depend of the physicals properies of the liaison +; +#X text 226 36 link2D : get position of masses \, output forces; +#X obj 78 536 pmpd.link2D; +#X obj 154 536 lia2D; +#X text 260 13 link between 2 masses; +#X text 224 593 1 : force to apply to mass 1 (float); +#X text 224 566 2 : force to apply to mass 2 (float); +#X text 251 389 if the size of the link is < Lmin then force of the +link will be null; +#X text 257 440 if the size of the link is > Lmax then force of the +link will be null; +#X text 225 68 1 : name; +#X msg 105 125 setL 0; +#X msg 105 154 setK 0; +#X msg 105 184 setD 0; +#X msg 104 214 setD2 0; +#X text 226 122 2 : Lenght; +#X text 250 139 change Length of the link; +#X text 226 153 3 : rigidity; +#X text 249 168 change rigidity; +#X text 230 238 change position of mass 1; +#X msg 104 270 bang; +#X text 229 266 compute and output forces \, according to the last +masses positions; +#X msg 106 300 reset; +#X msg 105 326 resetF; +#X msg 105 350 resetL; +#X msg 104 374 setLmin 0; +#X text 229 185 4 : Damping of the link deformation; +#X text 231 214 5 : Damping of the masses speed; +#X text 226 297 reset position of masses and set speed of the link +to zero; +#X text 226 324 reset damping and inertial force of the link.; +#X text 224 351 set the length of the liaison to it's curent lengh +; +#X text 228 371 set the minimum size of the link; +#X text 227 424 set the maximum size of the link; +#X msg 104 424 setLmax 10000; +#X text 250 84 you can use it in pd to send messages / bang / etc to +the lia. this is for simplifying connection.; +#X obj 33 536 link2D; +#X msg 103 238 position2D $f1 $f2; +#X msg 102 508 position2D $f1 $f2; +#X text 224 508 position of mass 2; +#X obj 64 563 unpack s f f; +#X obj 33 591 unpack s f f; +#X text 130 635 this object is a 3D version of link. more exemple can +be find in the link help; +#X msg 104 475 setM 1; +#X text 227 472 change mucle force : a muscle can change the link size +(link size = muscle * lenght); +#X connect 10 0 34 0; +#X connect 11 0 34 0; +#X connect 12 0 34 0; +#X connect 13 0 34 0; +#X connect 19 0 34 0; +#X connect 21 0 34 0; +#X connect 22 0 34 0; +#X connect 23 0 34 0; +#X connect 24 0 34 0; +#X connect 32 0 34 0; +#X connect 34 0 39 0; +#X connect 34 1 38 0; +#X connect 35 0 34 0; +#X connect 36 0 34 1; +#X connect 41 0 34 0; diff --git a/help/help-lia3D.pd b/help/help-lia3D.pd new file mode 100755 index 0000000..13b9f4b --- /dev/null +++ b/help/help-lia3D.pd @@ -0,0 +1,68 @@ +#N canvas 186 56 629 692 10; +#X obj 156 538 lia3D; +#X text 230 37 lia3D : get position of masses \, output force; +#X text 133 637 this object is a 3D version of link. more exemple can +be find in the link help; +#X obj 80 538 pmpd.link3D; +#X msg 67 511 position3D $f1 $f2 $f3; +#X text 253 620 forces depend of the physicals properies of the liaison +; +#X text 260 13 link between 2 masses; +#X text 227 595 1 : force to apply to mass 1 (float); +#X text 227 568 2 : force to apply to mass 2 (float); +#X text 251 389 if the size of the link is < Lmin then force of the +link will be null; +#X text 257 440 if the size of the link is > Lmax then force of the +link will be null; +#X text 225 68 1 : name; +#X msg 105 125 setL 0; +#X msg 105 154 setK 0; +#X msg 105 184 setD 0; +#X msg 104 214 setD2 0; +#X text 226 122 2 : Lenght; +#X text 250 139 change Length of the link; +#X text 226 153 3 : rigidity; +#X text 249 168 change rigidity; +#X text 230 238 change position of mass 1; +#X msg 104 270 bang; +#X text 229 266 compute and output forces \, according to the last +masses positions; +#X msg 106 300 reset; +#X msg 105 326 resetF; +#X msg 105 350 resetL; +#X msg 104 374 setLmin 0; +#X text 229 185 4 : Damping of the link deformation; +#X text 231 214 5 : Damping of the masses speed; +#X text 226 297 reset position of masses and set speed of the link +to zero; +#X text 226 324 reset damping and inertial force of the link.; +#X text 224 351 set the length of the liaison to it's curent lengh +; +#X text 228 371 set the minimum size of the link; +#X text 227 424 set the maximum size of the link; +#X msg 104 424 setLmax 10000; +#X text 250 84 you can use it in pd to send messages / bang / etc to +the lia. this is for simplifying connection.; +#X text 227 510 position of mass 2; +#X obj 36 538 link3D; +#X msg 58 239 position3D $f1 $f2 $f3; +#X obj 67 565 unpack s f f f; +#X obj 36 593 unpack s f f f; +#X msg 104 475 setM 1; +#X text 227 472 change mucle force : a muscle can change the link size +(link size = muscle * lenght); +#X connect 4 0 37 1; +#X connect 12 0 37 0; +#X connect 13 0 37 0; +#X connect 14 0 37 0; +#X connect 15 0 37 0; +#X connect 21 0 37 0; +#X connect 23 0 37 0; +#X connect 24 0 37 0; +#X connect 25 0 37 0; +#X connect 26 0 37 0; +#X connect 34 0 37 0; +#X connect 37 0 40 0; +#X connect 37 1 39 0; +#X connect 38 0 37 0; +#X connect 41 0 37 0; diff --git a/help/help-masse.pd b/help/help-masse.pd new file mode 100755 index 0000000..0636432 --- /dev/null +++ b/help/help-masse.pd @@ -0,0 +1,55 @@ +#N canvas 10 17 695 631 10; +#X obj 141 520 masse; +#X obj 74 520 pmpd.mass; +#X text 317 6 masse; +#X text 153 80 M is positive. negative value give non physical things. +; +#X text 152 37 the somme of the forces apply to a masse modifie its +velocity (depending of it's weight). the position his change according +to the velocity and the weight of the masse; +#X text 259 169 2 : M = weith of the masse; +#X text 304 321 if the position of the masse is < Xmin then position +will be Xmin; +#X msg 123 448 resetF; +#X text 258 452 reset the total forces applied to the masse; +#X msg 124 417 reset; +#X text 258 413 reset position (to it's initial value) and forces to +zero. send it's position to it's outlet.; +#X text 281 224 change position of the masse \, and reset memory (for +history).; +#X text 283 188 change weith of the masse; +#X text 302 307 set the minimum and maximum position of the masse; +#X msg 124 356 bang; +#X msg 122 483 loadbang; +#X text 251 485 output curent position; +#X text 262 353 compute position and output it; +#X text 260 387 add force to this mass; +#X msg 120 173 setM 1; +#X text 261 117 1 : name; +#X text 282 135 this is the name of the mass. you can set value to +this name instead of making a pd connection.; +#X text 156 23 mass : get liaison forces and output position; +#X msg 120 283 setXmin -10000 \, setXmax 10000; +#X msg 121 209 setX 0; +#X text 259 208 3 : position of the masse; +#X obj 36 520 mass; +#X floatatom 36 589 5 0 0 0 - - -; +#X floatatom 45 572 5 0 0 0 - - -; +#X floatatom 55 554 5 0 0 0 - - -; +#X text 97 553 X velocity of the masse; +#X text 95 572 X force apply to the masse; +#X text 95 590 X positin of the masse; +#X text 260 308 Xmin; +#X text 260 324 Xmax; +#X obj 124 386 0; +#X connect 7 0 26 0; +#X connect 9 0 26 0; +#X connect 14 0 26 0; +#X connect 15 0 26 0; +#X connect 19 0 26 0; +#X connect 23 0 26 0; +#X connect 24 0 26 0; +#X connect 26 0 27 0; +#X connect 26 1 28 0; +#X connect 26 2 29 0; +#X connect 35 0 26 0; diff --git a/help/help-masse2D.pd b/help/help-masse2D.pd new file mode 100755 index 0000000..83d3bf4 --- /dev/null +++ b/help/help-masse2D.pd @@ -0,0 +1,77 @@ +#N canvas 311 -11 712 738 10; +#X obj 73 625 pmpd.mass2D; +#X text 317 6 masse; +#X text 152 81 M is positive. negative value give non physical things. +; +#X text 152 37 the somme of the forces apply to a masse modifie its +velocity (depending of it's weight). the position his change according +to the velocity and the weight of the masse; +#X text 259 149 2 : M = weith of the masse; +#X text 259 181 3 : X = initial position of the masse; +#X text 259 202 4 : Y = initial position of the masse; +#X text 342 305 if the position of the masse is < Xmin then position +will be Xmin; +#X msg 115 519 resetF; +#X text 246 523 reset the total forces applied to the masse; +#X msg 116 496 reset; +#X text 246 492 reset position (to it's initial value) and forces to +zero. send it's position to it's outlet.; +#X text 283 220 change position of the masse \, and reset memory (for +history).; +#X text 282 162 change weith of the masse; +#X text 340 289 set the minimum and maximum position of the masse; +#X text 283 375 when the masses are at Xmin \, Xmax \, Ymon \, Ymax +\, Zmin or Zmax \, the mouvement is possible only if force apply is +superior to the threshold; +#X text 283 362 change the threshold value; +#X msg 116 450 bang; +#X msg 115 541 off; +#X msg 116 564 on; +#X msg 115 588 loadbang; +#X text 244 590 output curent position; +#X text 246 545 stop mass mouvement; +#X text 245 567 restart mass movement; +#X text 252 447 compute position and output it; +#X text 250 474 add force to this mass; +#X msg 116 472 force3D $f1 $f2 $f3; +#X msg 120 153 setM 1; +#X msg 119 344 setT 0; +#X obj 29 706 unpack s f f f; +#X text 261 97 1 : name; +#X text 282 115 this is the name of the mass. you can set value to +this name instead of making a pd connection.; +#X text 129 707 X Y Z positin of the masse; +#X obj 44 682 unpack s f f f; +#X obj 60 657 unpack s f f f; +#X text 144 683 X Y Z & total force apply to the masse; +#X text 159 659 X Y Z & total velocity of the masse; +#X obj 29 625 mass2D; +#X obj 149 625 masse2D; +#X msg 120 256 setXmin -10000 \, setXmax 10000 \, setYmin -10000 \, +setYmax 10000; +#X text 260 277 5 : Xmin; +#X text 260 293 6 : Xmax; +#X text 260 309 7 : Ymin; +#X text 260 325 8 : Ymax; +#X text 259 343 9 : Threshold; +#X text 156 23 mass2D : get liaison forces and output position; +#X msg 121 182 setX 0 \, setY 0; +#X msg 121 206 setXY 0 0 0; +#X msg 114 427 setD 0; +#X text 256 423 10 : set velocity damping of the mass; +#X connect 8 0 37 0; +#X connect 10 0 37 0; +#X connect 17 0 37 0; +#X connect 18 0 37 0; +#X connect 19 0 37 0; +#X connect 20 0 37 0; +#X connect 26 0 37 0; +#X connect 27 0 37 0; +#X connect 28 0 37 0; +#X connect 37 0 29 0; +#X connect 37 1 33 0; +#X connect 37 2 34 0; +#X connect 39 0 37 0; +#X connect 46 0 37 0; +#X connect 47 0 37 0; +#X connect 48 0 37 0; diff --git a/help/help-masse3D.pd b/help/help-masse3D.pd new file mode 100755 index 0000000..d2d506a --- /dev/null +++ b/help/help-masse3D.pd @@ -0,0 +1,80 @@ +#N canvas 125 5 709 792 10; +#X text 317 6 masse; +#X text 152 81 M is positive. negative value give non physical things. +; +#X text 152 37 the somme of the forces apply to a masse modifie its +velocity (depending of it's weight). the position his change according +to the velocity and the weight of the masse; +#X text 259 150 2 : M = weith of the masse; +#X text 259 189 3 : X = initial position of the masse; +#X text 259 210 4 : Y = initial position of the masse; +#X text 324 327 if the position of the masse is < Xmin then position +will be Xmin; +#X obj 79 679 masse3D; +#X text 259 226 5 : Z = initial position of the masse; +#X text 259 303 6 : Xmin; +#X text 259 319 7 : Xmax; +#X text 259 335 8 : Ymin; +#X text 259 351 9 : Ymax; +#X text 252 367 10 : Zmin; +#X text 252 383 11 : Zmax; +#X text 252 398 12 : Threshold; +#X msg 119 565 resetF; +#X text 250 569 reset the total forces applied to the masse; +#X msg 120 538 reset; +#X text 248 534 reset position (to it's initial value) and forces to +zero. send it's position to it's outlet.; +#X text 285 241 change position of the masse \, and reset memory (for +history).; +#X text 283 169 change weith of the masse; +#X text 323 310 set the minimum and maximum position of the masse; +#X text 302 413 when the masses are at Xmin \, Xmax \, Ymon \, Ymax +\, Zmin or Zmax \, the mouvement is possible only if force apply is +superior to the threshold; +#X msg 119 489 bang; +#X msg 119 588 off; +#X msg 120 610 on; +#X msg 119 635 loadbang; +#X text 248 637 output curent position; +#X text 250 592 stop mass mouvement; +#X text 249 613 restart mass movement; +#X text 250 486 compute position and output it; +#X text 247 515 add force to this mass; +#X text 156 23 mass3D : get liaison forces and output position; +#X obj 135 680 pmpd.mass3D; +#X obj 31 678 mass3D; +#X msg 120 514 force3D $f1 $f2 $f3; +#X msg 120 154 setM 1; +#X msg 121 190 setX 0 \, setY 0 \, setZ 0; +#X msg 117 270 setXmin -10000 \, setXmax 10000 \, setYmin -10000 \, +setYmax 10000 \, setZmin -10000 \, setZmax 10000; +#X msg 119 397 setT 0; +#X obj 31 759 unpack s f f f; +#X text 261 98 1 : name; +#X text 282 116 this is the name of the mass. you can set value to +this name instead of making a pd connection.; +#X text 131 760 X Y Z positin of the masse; +#X obj 46 735 unpack s f f f; +#X obj 62 710 unpack s f f f; +#X text 146 736 X Y Z & total force apply to the masse; +#X text 161 712 X Y Z & total velocity of the masse; +#X msg 121 214 setXYZ 0 0 0; +#X msg 119 462 setD 0; +#X text 252 460 13 : Damp : change the velocyty damping of the mass +; +#X connect 16 0 35 0; +#X connect 18 0 35 0; +#X connect 24 0 35 0; +#X connect 25 0 35 0; +#X connect 26 0 35 0; +#X connect 27 0 35 0; +#X connect 35 0 41 0; +#X connect 35 1 45 0; +#X connect 35 2 46 0; +#X connect 36 0 35 0; +#X connect 37 0 35 0; +#X connect 38 0 35 0; +#X connect 39 0 35 0; +#X connect 40 0 35 0; +#X connect 49 0 35 0; +#X connect 50 0 35 0; diff --git a/help/help-pmpd.pd b/help/help-pmpd.pd new file mode 100755 index 0000000..e805fb0 --- /dev/null +++ b/help/help-pmpd.pd @@ -0,0 +1,259 @@ +#N canvas 517 121 498 357 12; +#X text 52 14 physical modeling for pure data using a collection of +physical ojects.; +#N canvas 0 0 623 384 read 0; +#X text 123 207 cyrille.henry@la-kitchen.fr; +#X text 412 312 ch20031213; +#X text 30 25 The aim of this collection of objects is to create physical +behavior with pure data. It's not audio synthesis. But it can be used +for the creation of parameters that can be used for driving an audio +or video synthesis.; +#X text 30 101 Most of the examples use GEM \, to allow visualization +of the "physical" geometry \, but you don't need it to use this collection. +; +#X text 30 161 any comments \, criticism \, suggestions \, help would +be highly apreciated :; +#X text 28 240 informations can be find :; +#X text 122 263 http://drpichon.free.fr/pmpd/; +#X restore 38 87 pd read me first; +#N canvas 0 0 663 567 basics 0; +#X text 34 30 Object in this collection can be mass \, link and interactor +\, in 1D \, 2D or 3D.; +#X text 47 69 Masses (mass \, mass2D \, mass3D) are ponctual. They've +got a weight \, and know their position. They can move when they receive +a force \, acording to physical rules.; +#X text 47 126 Link (link \, link2D \, link3D) are the basic interaction +beetween 2 masses. It is a visco-elastic link. The link object receive +the position of 2 masses \, compute the force beetween the 2 masses +and output a force for each mass.; +#X text 47 202 Interactors are a kind of link \, but influence a group +of masses at once. They can be used for global interaction. We will +look further into it later.; +#X text 32 272 This collection of objects can be interconnected for +the creation of "physical" structures. Such structures can then move +\, and distord themselves \, according to forces applied to them.; +#X text 29 350 The resulting movements are very natural \, due to the +physical equations used to define the objects.; +#X text 30 418 all objects can be created using pmpd.name \, instead +of name in order to avoid name conflict between libraries.; +#X text 29 466 ex :; +#X text 219 466 are the same objects.; +#X obj 183 466 lia; +#X obj 65 466 pmpd.link; +#X obj 145 466 link; +#X restore 38 115 pd basics; +#N canvas 434 60 645 737 global_description 0; +#X obj 34 169 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 +-1; +#X obj 34 268 print; +#X obj 34 217 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 +-1; +#X text 57 165 1; +#X text 58 216 2; +#X text 36 452 Here is the basic connection beetween 2 masses :; +#X obj 40 591 lia; +#X text 36 529 You can also create things like this :; +#X text 32 23 For patching simplification \, objects in this collection +only have "cold" inlets. The computation speed depends on an external +metronome. This metronome should bang alternatively all links in the +model and then masses of the model.; +#X text 33 103 mass and link have a name corresponding to their class +name. They will receive everything sent to this name.; +#X text 159 236 clicking on bang 1 or 2 is equivalent; +#X text 32 304 As you sould send a bang alternatively to links and +masses \, you sould give diferent names to the links group and masses +group.; +#X text 36 361 Masses output their position when you bang them. This +position depends on the forces applied to the mass.; +#X text 36 401 Links output a force according to the position of the +masses when you bang them. This force sould be applied to the same +mass.; +#X text 40 626 The masse1 will never receive forces \, so it will never +move. It is useful for creating a structure attached to a fixed point. +; +#X obj 40 558 mass masse1; +#X obj 76 591 mass masse2; +#X obj 110 489 masse; +#X obj 156 489 lia; +#X obj 195 489 masse; +#X obj 34 188 s foo1; +#X obj 34 237 masse2D foo1; +#X connect 0 0 20 0; +#X connect 2 0 21 0; +#X connect 6 1 16 0; +#X connect 15 0 6 0; +#X connect 16 0 6 1; +#X connect 17 0 18 0; +#X connect 18 0 17 0; +#X connect 18 1 19 0; +#X connect 19 0 18 1; +#X connect 21 0 1 0; +#X restore 38 144 pd global_description; +#N canvas 0 0 762 661 test 0; +#X msg 108 98 1; +#X msg 74 98 0; +#X msg 41 98 -1; +#X msg 141 98 2; +#X obj 15 16 loadbang; +#X floatatom 41 169 5 0 0 0 - - -; +#X msg 106 390 1; +#X msg 72 390 0; +#X msg 39 390 -1; +#X msg 139 390 2; +#X floatatom 39 461 5 0 0 0 - - -; +#X floatatom 37 325 5 0 0 0 - - -; +#X msg 106 508 1; +#X msg 72 508 0; +#X msg 39 508 -1; +#X msg 139 508 2; +#X floatatom 39 579 5 0 0 0 - - -; +#X text 247 61 A force to a masse make it to move at a constant speed. +You can accelerate it or decelerate it using message box. a nul force +as no effect.; +#X floatatom 172 267 5 0 0 0 - - -; +#X msg 104 264 1; +#X msg 70 264 0; +#X msg 37 264 -1; +#X msg 137 264 2; +#X text 247 405 Viscosity link : the force is proportinal to the deformation +speed of the link; +#X text 249 265 Rigidity link : the force is proportional to the elongation +of the link. (the right inlet is not used \, so the like take is defauld +value : 0.) Lengh of the link is null.; +#X text 238 529 Visco-elasic link : the effect is the somme of the +2 previus link.; +#X obj 15 69 s foo2; +#X obj 41 142 mass foo2 10 0 0; +#X obj 37 298 link foo2 0 0.1 0; +#X obj 39 434 link foo2 0 0 0.1; +#X obj 39 552 link foo2 0 0.1 0.1; +#X obj 15 43 metro 300; +#X connect 0 0 27 0; +#X connect 1 0 27 0; +#X connect 2 0 27 0; +#X connect 3 0 27 0; +#X connect 4 0 31 0; +#X connect 6 0 29 0; +#X connect 7 0 29 0; +#X connect 8 0 29 0; +#X connect 9 0 29 0; +#X connect 12 0 30 0; +#X connect 13 0 30 0; +#X connect 14 0 30 0; +#X connect 15 0 30 0; +#X connect 18 0 28 0; +#X connect 19 0 28 0; +#X connect 20 0 28 0; +#X connect 21 0 28 0; +#X connect 22 0 28 0; +#X connect 27 0 5 0; +#X connect 28 0 11 0; +#X connect 29 0 10 0; +#X connect 30 0 16 0; +#X connect 31 0 26 0; +#X restore 40 265 pd test; +#N canvas 394 231 879 595 simple_exemple 0; +#X obj 356 237 vsl 15 128 0 127 0 0 empty empty empty 0 -8 0 8 -262144 +-1 -1 0 0; +#X obj 74 98 hradio 15 1 0 5 empty empty empty 0 -6 0 8 -262144 -1 +-1 0; +#N canvas 477 25 445 299 preset 0; +#X msg 36 193 setK 0.05 \, setD 0 \, setD2 30; +#X msg 55 166 setK 1 \, setD 0 \, setD2 30; +#X msg 75 138 setK 1 \, setD 0 \, setD2 200; +#X obj 36 16 inlet; +#X obj 115 254 outlet; +#X msg 95 108 setK 300 \, setD 300 \, setD2 5; +#X obj 36 43 sel 2 1 0 3 4; +#X msg 115 78 setK 3000 \, setD 1000 \, setD2 5000; +#X connect 0 0 4 0; +#X connect 1 0 4 0; +#X connect 2 0 4 0; +#X connect 3 0 6 0; +#X connect 5 0 4 0; +#X connect 6 0 0 0; +#X connect 6 1 1 0; +#X connect 6 2 2 0; +#X connect 6 3 5 0; +#X connect 6 4 7 0; +#X connect 7 0 4 0; +#X restore 74 119 pd preset; +#X obj 336 237 vsl 15 128 0 127 0 0 empty empty empty 0 -8 0 8 -262144 +-1 -1 0 0; +#X text 80 415 the masse is link to the cursor with diferents kinf +of liaison (see the preset); +#X text 71 18 comportement of a single masse link to a fixed point +with a visco elastic link.; +#X text 173 95 <- diferents comportement of the link; +#N canvas 0 0 268 186 stuff 0; +#X obj 13 20 loadbang; +#X obj 48 97 s \$0-lia; +#X obj 13 72 t b b; +#X obj 13 123 s \$0-masse; +#X obj 13 45 metro 5; +#X obj 89 20 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 +-1; +#X msg 124 92 reset; +#X msg 89 66 resetL \, resetF; +#X obj 89 40 t b b; +#X connect 0 0 4 0; +#X connect 2 0 3 0; +#X connect 2 1 1 0; +#X connect 4 0 2 0; +#X connect 5 0 8 0; +#X connect 6 0 3 0; +#X connect 7 0 1 0; +#X connect 8 0 7 0; +#X connect 8 1 6 0; +#X restore 75 65 pd stuff; +#X text 98 346 click or move the slider ->; +#X text 396 346 look at the mouvement of the masse (the right slider) +; +#X text 80 481 surch system can be usefull for replacing the line object +of pd when more natural evolution is neaded...; +#X obj 169 167 lia \$0-lia 0 1 0 200; +#X obj 356 167 masse \$0-masse 10000 0; +#X connect 1 0 2 0; +#X connect 2 0 11 0; +#X connect 3 0 11 0; +#X connect 11 1 12 0; +#X connect 12 0 0 0; +#X connect 12 0 11 1; +#X restore 40 292 pd simple_exemple; +#X text 64 180 look at mass and link help file :; +#X obj 65 198 mass; +#X obj 65 228 link; +#N canvas 108 97 450 541 list 0; +#X obj 190 135 iAmbient2D; +#X obj 305 137 iAmbient3D; +#X obj 190 166 iCircle2D; +#X obj 306 257 iCylinder3D; +#X obj 305 227 iCircle3D; +#X obj 190 196 iLine2D; +#X obj 305 197 iPlane3D; +#X obj 190 225 iSeg2D; +#X obj 305 168 iSphere3D; +#X obj 192 75 lia2D; +#X obj 306 75 lia3D; +#X obj 79 76 lia; +#X obj 79 48 mass; +#X obj 192 48 mass2D; +#X obj 306 48 mass3D; +#X text 78 25 1D; +#X text 191 27 2D; +#X text 304 28 3D; +#X text 21 46 basic; +#X text 19 136 interactors; +#X text 24 328 test; +#X obj 192 327 tLia2D; +#X obj 307 327 tLia3D; +#X obj 192 389 tCircle2D; +#X obj 192 419 tLine2D; +#X obj 192 448 tSeg2D; +#X obj 305 480 tCylinder3D; +#X obj 306 420 tPlane3D; +#X obj 306 450 tCircle3D; +#X obj 306 390 tSphere3D; +#X obj 192 358 tSquare2D; +#X obj 307 359 tCube3D; +#X restore 40 322 pd list of pmpd's object; diff --git a/help/help-tCircle2D.pd b/help/help-tCircle2D.pd new file mode 100755 index 0000000..5a0e195 --- /dev/null +++ b/help/help-tCircle2D.pd @@ -0,0 +1,40 @@ +#N canvas 830 6 548 565 10; +#X text 173 41 This object sould be used for testing the masse position. +; +#X text 303 9 test circle; +#X text 173 58 It receive masse position \, and output 0/1 according +to the position of the masse (1 if the mass is in the circle); +#X text 98 97 message to change parametter / default value / creation +arg number / description; +#X msg 66 157 setX 0; +#X msg 66 182 setY 0; +#X msg 66 220 setRmin 0; +#X msg 67 244 setRmax 1; +#X text 163 199 center of the circle defining the interactor; +#X text 165 266 minimal and maximal radius of the circle. If the mass +is outside or inside this circles \, it will not interact with this +link.; +#X obj 105 408 pmpd.tCircle2D; +#X obj 32 408 tCircle2D; +#X floatatom 32 486 5 0 0 0 - - -; +#X text 169 485 0/1 according to the position of the masse; +#X msg 68 321 position2D 0 0; +#X floatatom 56 464 5 0 0 0 - - -; +#X floatatom 81 441 5 0 0 0 - - -; +#X text 167 320 position of the tested mass; +#X text 168 463 distance of the mass from the center of the circle +; +#X text 168 439 speed of the mass regarding the center of the circle +; +#X text 137 156 1 : center circle X; +#X text 138 182 2 : center circle Y; +#X text 137 221 3 : Minimum Radius; +#X text 138 244 4 : Maximum Radius; +#X connect 4 0 11 0; +#X connect 5 0 11 0; +#X connect 6 0 11 0; +#X connect 7 0 11 0; +#X connect 11 0 12 0; +#X connect 11 1 15 0; +#X connect 11 2 16 0; +#X connect 14 0 11 0; diff --git a/help/help-tCircle3D.pd b/help/help-tCircle3D.pd new file mode 100755 index 0000000..60040a4 --- /dev/null +++ b/help/help-tCircle3D.pd @@ -0,0 +1,59 @@ +#N canvas 181 15 585 661 10; +#X text 254 13 Circlular test; +#X text 97 490 this object is like tPlane3D \, but it's action is limited +in space (circular).; +#X text 143 147 1 : X coordonate of the orientation vector of the circle +; +#X text 143 173 2 : Y coordonate of the orientation vector of the circle +; +#X text 144 198 3 : Z coordonate of the orientation vector of the circle +; +#X text 144 226 4 : center circle X; +#X text 143 252 5 : center circle Y; +#X text 142 275 6 : center circle Z; +#X text 140 414 9 : maximum profound of the test; +#X text 140 45 This object sould be used for testing the masse position. +; +#X text 140 62 It receive masse position \, and output 0/1 according +to the position of the masse (1 if the mass is in the circle); +#X text 65 101 message to change parametter / default value / creation +arg number / description; +#X msg 50 325 setRmin 0; +#X msg 51 349 setRmax 1; +#X text 164 304 center of the circle defining the interactor; +#X text 167 367 minimal and maximal radius of the circle. If the mass +is outside or inside this circles \, it will not interact with this +link.; +#X floatatom 12 619 5 0 0 0 - - -; +#X text 149 618 0/1 according to the position of the masse; +#X floatatom 36 597 5 0 0 0 - - -; +#X floatatom 61 574 5 0 0 0 - - -; +#X text 147 453 position of the tested mass; +#X text 148 596 distance of the mass from the center of the circle +; +#X text 148 572 speed of the mass regarding the center of the circle +; +#X obj 12 541 tCircle3D; +#X obj 85 541 pmpd.tCircle3D; +#X msg 50 149 setVX 0; +#X msg 50 174 setVY 0; +#X msg 50 199 setVZ 0; +#X msg 51 228 setX 0; +#X msg 51 252 setY 0; +#X msg 51 277 setZ 0; +#X msg 48 415 setPmax 10000; +#X text 138 326 7 : Minimum Radius; +#X text 139 349 8 : Maximum Radius; +#X msg 48 454 position3D 0 0 0; +#X connect 12 0 23 0; +#X connect 13 0 23 0; +#X connect 23 0 16 0; +#X connect 23 1 18 0; +#X connect 23 2 19 0; +#X connect 25 0 23 0; +#X connect 26 0 23 0; +#X connect 28 0 23 0; +#X connect 29 0 23 0; +#X connect 30 0 23 0; +#X connect 31 0 23 0; +#X connect 34 0 23 0; diff --git a/help/help-tCube3D.pd b/help/help-tCube3D.pd new file mode 100755 index 0000000..2021608 --- /dev/null +++ b/help/help-tCube3D.pd @@ -0,0 +1,37 @@ +#N canvas 14 12 620 496 10; +#X text 137 42 This object sould be used for testing the masse position. +; +#X text 137 59 It receive masse position \, and output 0/1 according +to the position of the masse (1 if the mass is in the square); +#X text 296 15 test cube; +#X text 214 299 if a mass is outside of this rectangle \, the mass +will not interact with this object.; +#X text 216 284 minimum and maximum position of the interactor.; +#X text 77 112 message to change parametter / default value / creation +arg number / description; +#X obj 13 399 tCube3D; +#X obj 76 399 pmpd.tCube3D; +#X msg 83 156 setXmin -1; +#X msg 83 178 setXmax 1; +#X msg 83 200 setYmin -1; +#X msg 83 223 setYmax 1; +#X msg 83 246 setZmin -1; +#X msg 83 268 setZmax 1; +#X floatatom 13 433 5 0 0 0 - - -; +#X text 172 431 0/1 according to the position of the masse; +#X text 192 357 position of the tested mass; +#X msg 84 357 position3D 0 0 0; +#X text 186 157 1 : X minimum; +#X text 186 178 2 : X maximum; +#X text 185 201 3 : Y minimum; +#X text 185 222 4 : Y maximum; +#X text 186 248 5 : Z minimum; +#X text 185 268 6 : Z maximum; +#X connect 6 0 14 0; +#X connect 8 0 6 0; +#X connect 9 0 6 0; +#X connect 10 0 6 0; +#X connect 11 0 6 0; +#X connect 12 0 6 0; +#X connect 13 0 6 0; +#X connect 17 0 6 0; diff --git a/help/help-tCylinder3D.pd b/help/help-tCylinder3D.pd new file mode 100755 index 0000000..4f45a9e --- /dev/null +++ b/help/help-tCylinder3D.pd @@ -0,0 +1,58 @@ +#N canvas 8 15 584 655 10; +#X text 266 11 Cylinder test; +#X text 168 39 This object sould be used for testing the relative position +of a masse depending on a cylinder; +#X text 166 583 0/1 according to the position of the masse; +#X text 166 562 distance from the center of the cylinder; +#X text 167 541 speed from the center of the cylinder; +#X text 104 81 message to change parametter / default value / creation +arg number / description; +#X msg 88 289 setRmin 0; +#X msg 89 312 setRmax 1; +#X text 205 331 minimal and maximal radius of the circle. If the mass +is outside or inside this circles \, it will not interact with this +link.; +#X text 214 194 normal vector of the circle; +#X msg 92 212 setX 0; +#X msg 91 237 setY 0; +#X msg 91 260 setZ 0; +#X msg 89 128 setVX 0; +#X msg 90 153 setVY 0; +#X msg 91 175 setVZ 0; +#X text 204 275 center of the circle; +#X msg 88 380 setPmin -10000; +#X msg 90 409 setPmax 10000; +#X obj 13 517 tCylinder3D; +#X obj 91 517 pmpd.tCylinder3D; +#X text 181 127 1 : X coordonate of the orientation vector of the circle +; +#X text 180 152 2 : Y coordonate of the orientation vector of the circle +; +#X text 181 176 3 : Z coordonate of the orientation vector of the circle +; +#X text 180 212 4 : center X; +#X text 180 236 5 : center Y; +#X text 179 261 6 : center Z; +#X text 181 289 7 : Minimum Radius; +#X text 181 312 8 : Maximum Radius; +#X text 182 382 9 : minimum height of the cylinder interaction; +#X text 178 411 10 : maximum height of the cylinder interaction; +#X floatatom 13 584 5 0 0 0 - - -; +#X floatatom 43 563 5 0 0 0 - - -; +#X floatatom 74 543 5 0 0 0 - - -; +#X text 188 464 position of the tested mass; +#X msg 78 464 position3D 0 0 0; +#X connect 6 0 19 0; +#X connect 7 0 19 0; +#X connect 10 0 19 0; +#X connect 11 0 19 0; +#X connect 12 0 19 0; +#X connect 13 0 19 0; +#X connect 14 0 19 0; +#X connect 15 0 19 0; +#X connect 17 0 19 0; +#X connect 18 0 19 0; +#X connect 19 0 31 0; +#X connect 19 1 32 0; +#X connect 19 2 33 0; +#X connect 35 0 19 0; diff --git a/help/help-tLia2D.pd b/help/help-tLia2D.pd new file mode 100755 index 0000000..57bdacc --- /dev/null +++ b/help/help-tLia2D.pd @@ -0,0 +1,31 @@ +#N canvas 712 340 590 388 10; +#X obj 152 220 tLia2D; +#X text 181 337 1 : distance between the 2 masses; +#X text 181 309 2 : elongation speed of the link; +#X text 181 281 3 : orientation of the link; +#X text 182 257 4 : position of the center of the link; +#X text 181 39 link2D : get position of masses \, output forces; +#X text 216 12 link between 2 masses; +#X text 181 67 1 : name; +#X text 185 162 change position of mass 1; +#X msg 57 131 bang; +#X text 182 127 compute and output forces \, according to the last +masses positions; +#X text 206 83 you can use it in pd to send messages / bang / etc to +the lia. this is for simplifying connection.; +#X msg 58 162 position2D $f1 $f2; +#X msg 62 194 position2D $f1 $f2; +#X text 184 194 position of mass 2; +#X obj 25 220 tLink2D; +#X obj 72 220 pmpd.tLink2D; +#X floatatom 25 339 5 0 0 0 - - -; +#X floatatom 37 311 5 0 0 0 - - -; +#X floatatom 49 284 5 0 0 0 - - -; +#X obj 62 258 unpack s f f; +#X connect 9 0 15 0; +#X connect 12 0 15 0; +#X connect 13 0 15 1; +#X connect 15 0 17 0; +#X connect 15 1 18 0; +#X connect 15 2 19 0; +#X connect 15 3 20 0; diff --git a/help/help-tLia3D.pd b/help/help-tLia3D.pd new file mode 100755 index 0000000..c5f0599 --- /dev/null +++ b/help/help-tLia3D.pd @@ -0,0 +1,31 @@ +#N canvas 626 360 644 394 10; +#X obj 156 231 tLia3D; +#X text 228 31 output informations about a tested link; +#X text 224 332 distance between the 2 masses; +#X text 224 308 elongation speed of the link; +#X text 228 255 position of the center of the link; +#X text 225 282 orientation of the link; +#X msg 64 205 position3D $f1 $f2 $f3; +#X text 231 68 1 : name; +#X text 229 173 change position of mass 1; +#X msg 65 126 bang; +#X text 230 123 compute and output forces \, according to the last +masses positions; +#X text 256 84 you can use it in pd to send messages / bang / etc to +the lia. this is for simplifying connection.; +#X text 229 204 position of mass 2; +#X msg 65 175 position3D $f1 $f2 $f3; +#X obj 64 259 unpack s f f f; +#X text 321 7 teste a link; +#X obj 27 232 tLink3D; +#X obj 76 231 pmpd.tLink3D; +#X obj 51 284 unpack s f f f; +#X floatatom 39 309 5 0 0 0 - - -; +#X floatatom 27 332 5 0 0 0 - - -; +#X connect 6 0 16 1; +#X connect 9 0 16 0; +#X connect 13 0 16 0; +#X connect 16 0 20 0; +#X connect 16 1 19 0; +#X connect 16 2 18 0; +#X connect 16 3 14 0; diff --git a/help/help-tLine2D.pd b/help/help-tLine2D.pd new file mode 100755 index 0000000..4b90e3f --- /dev/null +++ b/help/help-tLine2D.pd @@ -0,0 +1,47 @@ +#N canvas 6 5 586 578 10; +#X text 129 40 This object sould be used for testing the masse position. +; +#X text 129 56 It receive masse position \, and output 0/1 according +to the position of the masse (1 if the mass is on a side of the line) +; +#X text 175 146 1 : name; +#X text 121 113 message to change parametter / default value / creation +arg number / description; +#X text 196 164 this is the name of the mass interacting with this +object. you can also conect the output of this object to a mass \, +to allow an interaction with this mass.; +#X msg 104 233 setY1 0; +#X msg 105 279 setY2 0; +#X msg 103 208 setX1 -1; +#X msg 104 256 setX2 1; +#X text 174 208 2 : X coordonate of the the 1st point of the line; +#X text 174 232 3 : Y coordonate of the the 1st point of the line; +#X text 174 255 4 : X coordonate of the the 2nd point of the line; +#X text 174 279 5 : Y coordonate of the the 2nd point of the line; +#X msg 105 312 setPmax 1; +#X text 199 296 X and Y position of the 2 points defining the line. +; +#X text 197 327 maximum depth of the interaction line.; +#X text 269 14 test line; +#X obj 35 450 tLine2D; +#X obj 92 450 pmpd.tLine2D; +#X text 173 312 6 : maximum depth; +#X floatatom 72 481 5 0 0 0 - - -; +#X floatatom 72 481 5 0 0 0 - - -; +#X floatatom 53 505 5 0 0 0 - - -; +#X floatatom 35 529 5 0 0 0 - - -; +#X text 172 479 speed regarding the distance from the segment; +#X text 171 504 distance from the segment; +#X text 171 530 0/1 according to the position of the masse; +#X text 195 378 position of the mass (first outlet of the mass object) +; +#X msg 92 379 position2D 0 0; +#X connect 5 0 17 0; +#X connect 6 0 17 0; +#X connect 7 0 17 0; +#X connect 8 0 17 0; +#X connect 13 0 17 0; +#X connect 17 0 23 0; +#X connect 17 1 22 0; +#X connect 17 2 21 0; +#X connect 28 0 17 0; diff --git a/help/help-tPlane3D.pd b/help/help-tPlane3D.pd new file mode 100755 index 0000000..c13a7f6 --- /dev/null +++ b/help/help-tPlane3D.pd @@ -0,0 +1,41 @@ +#N canvas 141 50 610 449 10; +#X text 295 18 Plane test; +#X text 184 259 5 : X point of the plane; +#X text 183 282 6 : Y point of the plane; +#X text 183 305 7 : Z point of the plane; +#X text 185 108 1 : name; +#X text 121 74 message to change parametter / default value / creation +arg number / description; +#X text 206 126 this is the name of the mass interacting with this +object. you can also conect the output of this object to a mass \, +to allow an interaction with this mass.; +#X text 217 238 normal vector of the circle; +#X msg 96 255 setX 0; +#X msg 95 280 setY 0; +#X msg 95 303 setZ 0; +#X msg 93 171 setVX 0; +#X msg 93 196 setVY 0; +#X msg 95 218 setVZ 0; +#X msg 95 344 setPmax 10000; +#X text 177 41 This object sould be used for the simulation of interaction +between a collection of masse and a plane; +#X text 184 171 2 : X coordonate of the orientation vector of the plane +; +#X text 183 196 3 : Y coordonate of the orientation vector of the plane +; +#X text 184 220 4 : Z coordonate of the orientation vector of the plane +; +#X obj 14 415 tPlane3D; +#X obj 70 415 pmpd.tPlane3D; +#X text 199 379 position of the mass (first outlet of the mass object) +; +#X msg 94 379 position3D 0 0 0; +#X text 184 346 8 : maximum profound of the circle interaction; +#X connect 8 0 19 0; +#X connect 9 0 19 0; +#X connect 10 0 19 0; +#X connect 11 0 19 0; +#X connect 12 0 19 0; +#X connect 13 0 19 0; +#X connect 14 0 19 0; +#X connect 22 0 19 0; diff --git a/help/help-tSeg2D.pd b/help/help-tSeg2D.pd new file mode 100755 index 0000000..f8663c5 --- /dev/null +++ b/help/help-tSeg2D.pd @@ -0,0 +1,47 @@ +#N canvas 38 50 579 593 10; +#X text 270 16 test segment; +#X text 129 40 This object sould be used for testing the masse position. +; +#X text 129 56 It receive masse position \, and output 0/1 according +to the position of the masse (1 if the mass is on a side of the line) +; +#X text 175 146 1 : name; +#X text 121 113 message to change parametter / default value / creation +arg number / description; +#X text 196 164 this is the name of the mass interacting with this +object. you can also conect the output of this object to a mass \, +to allow an interaction with this mass.; +#X msg 104 233 setY1 0; +#X msg 105 279 setY2 0; +#X msg 103 208 setX1 -1; +#X msg 104 256 setX2 1; +#X text 174 208 2 : X coordonate of the the 1st point of the line; +#X text 174 232 3 : Y coordonate of the the 1st point of the line; +#X text 174 255 4 : X coordonate of the the 2nd point of the line; +#X text 174 279 5 : Y coordonate of the the 2nd point of the line; +#X msg 105 312 setPmax 1; +#X text 199 296 X and Y position of the 2 points defining the line. +; +#X text 197 327 maximum depth of the interaction line.; +#X text 173 312 6 : maximum depth; +#X floatatom 66 481 5 0 0 0 - - -; +#X floatatom 66 481 5 0 0 0 - - -; +#X floatatom 50 505 5 0 0 0 - - -; +#X floatatom 35 529 5 0 0 0 - - -; +#X text 172 479 speed regarding the distance from the segment; +#X text 171 504 distance from the segment; +#X text 171 530 0/1 according to the position of the masse; +#X text 195 378 position of the mass (first outlet of the mass object) +; +#X msg 92 379 position2D 0 0; +#X obj 35 450 tSeg2D; +#X obj 92 450 pmpd.tSeg2D; +#X connect 6 0 27 0; +#X connect 7 0 27 0; +#X connect 8 0 27 0; +#X connect 9 0 27 0; +#X connect 14 0 27 0; +#X connect 26 0 27 0; +#X connect 27 0 21 0; +#X connect 27 1 20 0; +#X connect 27 2 19 0; diff --git a/help/help-tSphere3D.pd b/help/help-tSphere3D.pd new file mode 100755 index 0000000..d5b4d6a --- /dev/null +++ b/help/help-tSphere3D.pd @@ -0,0 +1,37 @@ +#N canvas 737 247 618 430 10; +#X text 135 35 This object sould be used to test if a specific masse +is inside a sphere; +#X text 121 76 message to change parametter / default value / creation +arg number / description; +#X msg 80 207 setRmin 0; +#X msg 81 230 setRmax 1; +#X msg 80 132 setX 0; +#X msg 79 157 setY 0; +#X msg 79 180 setZ 0; +#X text 203 247 minimal and maximal radius of the sphere. If the mass +is outside or inside this sphere \, it will not interact with this +link.; +#X obj 16 302 tSphere3D; +#X obj 77 302 pmpd.tSphere3D; +#X text 248 6 Spherical test; +#X text 178 132 1 : X coordonate of the center of the sphere; +#X text 178 159 2 : Y coordonate of the center of the sphere; +#X text 178 183 3 : Z coordonate of the center of the sphere; +#X text 177 208 4 : Minimum Radius; +#X text 177 229 5 : Maximum Radius; +#X floatatom 65 338 5 0 0 0 - - -; +#X floatatom 40 360 5 0 0 0 - - -; +#X floatatom 16 384 5 0 0 0 - - -; +#X text 123 382 0/1 according to the position of the masse; +#X text 122 360 distance of the mass from the center of the circle +; +#X text 122 336 speed of the mass regarding the center of the circle +; +#X connect 2 0 8 0; +#X connect 3 0 8 0; +#X connect 4 0 8 0; +#X connect 5 0 8 0; +#X connect 6 0 8 0; +#X connect 8 0 18 0; +#X connect 8 1 17 0; +#X connect 8 2 16 0; diff --git a/help/help-tSquare2D.pd b/help/help-tSquare2D.pd new file mode 100755 index 0000000..89b1c6a --- /dev/null +++ b/help/help-tSquare2D.pd @@ -0,0 +1,29 @@ +#N canvas 111 51 545 429 10; +#X text 137 42 This object sould be used for testing the masse position. +; +#X text 137 59 It receive masse position \, and output 0/1 according +to the position of the masse (1 if the mass is in the square); +#X text 296 15 test cube; +#X text 190 241 minimum and maximum position of the interactor.; +#X text 77 112 message to change parametter / default value / creation +arg number / description; +#X msg 83 156 setXmin -1; +#X msg 83 178 setXmax 1; +#X msg 83 200 setYmin -1; +#X msg 83 223 setYmax 1; +#X floatatom 15 360 5 0 0 0 - - -; +#X text 175 362 0/1 according to the position of the masse; +#X text 194 284 position of the tested mass; +#X obj 15 326 tSquare2D; +#X obj 78 326 pmpd.tSquare2D; +#X text 186 157 1 : X minimum; +#X text 186 178 2 : X maximum; +#X text 186 200 3 : Y minimum; +#X text 185 222 4 : Y maximum; +#X msg 86 284 position2D 0 0 0; +#X connect 5 0 12 0; +#X connect 6 0 12 0; +#X connect 7 0 12 0; +#X connect 8 0 12 0; +#X connect 12 0 9 0; +#X connect 18 0 12 0; diff --git a/src/iAmbient2D.c b/src/iAmbient2D.c new file mode 100755 index 0000000..f5050ce --- /dev/null +++ b/src/iAmbient2D.c @@ -0,0 +1,200 @@ +#include "m_pd.h" +#include "math.h" + +static t_class *iAmbient2D_class; + +typedef struct _iAmbient2D { + t_object x_obj; + t_atom force[12]; + /* + force = + forceX, + forceY, + randomFX, + randomFY, + damp, + Xmin, + Xmax, + Ymin, + Ymax, + dX, + dY; + */ + + t_outlet *force_new;// outlet + t_symbol *x_sym; // send +} t_iAmbient2D; + +void iAmbient2D_forceX(t_iAmbient2D *x, t_floatarg f1) +{ + SETFLOAT(&(x->force[0]), f1); +} + +void iAmbient2D_forceY(t_iAmbient2D *x, t_floatarg f1) +{ + SETFLOAT(&(x->force[1]), f1); +} + +void iAmbient2D_force(t_iAmbient2D *x, t_floatarg f1, t_floatarg f2) +{ + SETFLOAT(&(x->force[0]), f1); + SETFLOAT(&(x->force[1]), f2 ); +} + +void iAmbient2D_rndFX(t_iAmbient2D *x, t_float X) +{ + SETFLOAT(&(x->force[2]), X); +} + +void iAmbient2D_rndFY(t_iAmbient2D *x, t_float X) +{ + SETFLOAT(&(x->force[3]), X); +} + +void iAmbient2D_rndF(t_iAmbient2D *x, t_floatarg f1, t_floatarg f2) +{ + SETFLOAT(&(x->force[2]), f1); + SETFLOAT(&(x->force[3]), f2); +} + +void iAmbient2D_damp(t_iAmbient2D *x, t_float X) +{ + SETFLOAT(&(x->force[4]), X); +} + +void iAmbient2D_Xmin(t_iAmbient2D *x, t_float Xmin) +{ + SETFLOAT(&(x->force[6]), Xmin); +} + +void iAmbient2D_Xmax(t_iAmbient2D *x, t_float Xmax) +{ + SETFLOAT(&(x->force[7]), Xmax); +} + +void iAmbient2D_Ymin(t_iAmbient2D *x, t_float Ymin) +{ + SETFLOAT(&(x->force[8]), Ymin); +} + +void iAmbient2D_Ymax(t_iAmbient2D *x, t_float Ymax) +{ + SETFLOAT(&(x->force[9]), Ymax); +} + +void iAmbient2D_dXY(t_iAmbient2D *x, t_float dX, t_float dY) +{ + SETFLOAT(&(x->force[10]), dX); + SETFLOAT(&(x->force[11]), dY); +} + +void iAmbient2D_dX(t_iAmbient2D *x, t_float dX) +{ + SETFLOAT(&(x->force[10]), dX); +} + +void iAmbient2D_dY(t_iAmbient2D *x, t_float dY) +{ + SETFLOAT(&(x->force[11]), dY); +} + +void iAmbient2D_bang(t_iAmbient2D *x) +{ + if (x->x_sym->s_thing) typedmess(x->x_sym->s_thing, gensym("interactor_ambient_2D"), 12, x->force); + + outlet_anything(x->force_new, gensym("interactor_ambient_2D"), 12, x->force); +} + +void *iAmbient2D_new(t_symbol *s, int argc, t_atom *argv) +{ + t_iAmbient2D *x = (t_iAmbient2D *)pd_new(iAmbient2D_class); + + x->x_sym = atom_getsymbolarg(0, argc, argv); + + x->force_new=outlet_new(&x->x_obj, 0); + + SETFLOAT(&(x->force[5]), 0); + + + if (argc>=12) + SETFLOAT(&(x->force[11]), atom_getfloatarg(11, argc, argv)); + else + SETFLOAT(&(x->force[11]), 0); + + if (argc>=11) + SETFLOAT(&(x->force[10]), atom_getfloatarg(10, argc, argv)); + else + SETFLOAT(&(x->force[10]), 0); + + if (argc>=10) + SETFLOAT(&(x->force[9]), atom_getfloatarg(9, argc, argv)); + else + SETFLOAT(&(x->force[9]), 100000); + + if (argc>=9) + SETFLOAT(&(x->force[8]), atom_getfloatarg(8, argc, argv)); + else + SETFLOAT(&(x->force[8]), -100000); + + if (argc>=8) + SETFLOAT(&(x->force[7]), atom_getfloatarg(7, argc, argv)); + else + SETFLOAT(&(x->force[7]), 100000); + + if (argc>=7) + SETFLOAT(&(x->force[6]), atom_getfloatarg(6, argc, argv)); + else + SETFLOAT(&(x->force[6]), -100000); + + if (argc>=6) + SETFLOAT(&(x->force[4]), atom_getfloatarg(5, argc, argv)); + else + SETFLOAT(&(x->force[4]), 0); + + if (argc>=5) + SETFLOAT(&(x->force[3]), atom_getfloatarg(4, argc, argv)); + else + SETFLOAT(&(x->force[3]), 0); + + if (argc>=4) + SETFLOAT(&(x->force[2]), atom_getfloatarg(3, argc, argv)); + else + SETFLOAT(&(x->force[2]), 0); + + if (argc>=3) + SETFLOAT(&(x->force[1]), atom_getfloatarg(2, argc, argv)); + else + SETFLOAT(&(x->force[1]), 0); + + if (argc>=2) + SETFLOAT(&(x->force[0]), atom_getfloatarg(1, argc, argv)); + else + SETFLOAT(&(x->force[0]), 0); + + return (x); +} + +void iAmbient2D_setup(void) +{ + iAmbient2D_class = class_new(gensym("iAmbient2D"), + (t_newmethod)iAmbient2D_new, + 0, sizeof(t_iAmbient2D), + CLASS_DEFAULT, A_GIMME, 0); + + class_addcreator((t_newmethod)iAmbient2D_new, gensym("pmpd.iAmbient2D"), A_GIMME, 0); + + class_addbang(iAmbient2D_class, iAmbient2D_bang); + class_addmethod(iAmbient2D_class, (t_method)iAmbient2D_force, gensym("setFXY"), A_DEFFLOAT, A_DEFFLOAT, 0); + class_addmethod(iAmbient2D_class, (t_method)iAmbient2D_forceX, gensym("setFX"), A_DEFFLOAT, 0); + class_addmethod(iAmbient2D_class, (t_method)iAmbient2D_forceY, gensym("setFY"), A_DEFFLOAT, 0); + class_addmethod(iAmbient2D_class, (t_method)iAmbient2D_Xmin, gensym("setXmin"), A_DEFFLOAT, 0); + class_addmethod(iAmbient2D_class, (t_method)iAmbient2D_Ymin, gensym("setYmin"), A_DEFFLOAT, 0); + class_addmethod(iAmbient2D_class, (t_method)iAmbient2D_Xmax, gensym("setXmax"), A_DEFFLOAT, 0); + class_addmethod(iAmbient2D_class, (t_method)iAmbient2D_Ymax, gensym("setYmax"), A_DEFFLOAT, 0); + class_addmethod(iAmbient2D_class, (t_method)iAmbient2D_rndFY, gensym("setRndFY"), A_DEFFLOAT, 0); + class_addmethod(iAmbient2D_class, (t_method)iAmbient2D_rndFX, gensym("setRndFX"), A_DEFFLOAT, 0); + class_addmethod(iAmbient2D_class, (t_method)iAmbient2D_damp, gensym("setD"), A_DEFFLOAT, 0); + class_addmethod(iAmbient2D_class, (t_method)iAmbient2D_dX, gensym("setdX"), A_DEFFLOAT, 0); + class_addmethod(iAmbient2D_class, (t_method)iAmbient2D_dY, gensym("setdY"), A_DEFFLOAT, 0); + class_addmethod(iAmbient2D_class, (t_method)iAmbient2D_dXY, gensym("setdXY"), A_DEFFLOAT, A_DEFFLOAT, 0); +} diff --git a/src/iAmbient3D.c b/src/iAmbient3D.c new file mode 100755 index 0000000..cd95088 --- /dev/null +++ b/src/iAmbient3D.c @@ -0,0 +1,259 @@ +#include "m_pd.h" +#include "math.h" + +static t_class *iAmbient3D_class; + +typedef struct _iAmbient3D { + t_object x_obj; + t_atom force[17]; +/* 1 : name of the mass (send interactors informations to this masses) + 2 : FX (constant X force apply to the masses) (0) + 3 : FY (constant Y force apply to the masses) (0) + 4 : FZ (constant Z force apply to the masses) (0) + 5 : Rnd FX (random X force apply to the masses) (0) + 6 : Rnd FY (random Y force apply to the masses) (0) + 7 : Rnd FZ (random Z force apply to the masses) (0) + 8 : Damping (velocity damping of the masses) (0) + 9 : Rien + 10 : Xmin (minimum and maximum limit of the interactors) (-10000) + 9 : Xmax (a mass interact with this object only if it is inside the interactor bounds) (10000) + 10 : Ymin (-10000) + 11 : Ymax (10000) + 12 : Zmin (-10000) + 13 : Zmax (10000) + 14 : dX (displace the mass by a constant value) (0) + 15 : dY (0) + 16 : dZ (0) +*/ + t_outlet *force_new;// outlet + t_symbol *x_sym; // send +} t_iAmbient3D; + +void iAmbient3D_forceX(t_iAmbient3D *x, t_floatarg f1) +{ + SETFLOAT(&(x->force[0]), f1); +} + +void iAmbient3D_forceY(t_iAmbient3D *x, t_floatarg f1) +{ + SETFLOAT(&(x->force[1]), f1); +} + +void iAmbient3D_forceZ(t_iAmbient3D *x, t_floatarg f1) +{ + SETFLOAT(&(x->force[2]), f1); +} + +void iAmbient3D_force(t_iAmbient3D *x, t_floatarg f1, t_floatarg f2, t_floatarg f3) +{ + SETFLOAT(&(x->force[0]), f1 ); + SETFLOAT(&(x->force[1]), f2 ); + SETFLOAT(&(x->force[2]), f3 ); +} + +void iAmbient3D_rndFX(t_iAmbient3D *x, t_float X) +{ + SETFLOAT(&(x->force[3]), X); +} + +void iAmbient3D_rndFY(t_iAmbient3D *x, t_float X) +{ + SETFLOAT(&(x->force[4]), X); +} + +void iAmbient3D_rndFZ(t_iAmbient3D *x, t_float X) +{ + SETFLOAT(&(x->force[5]), X); +} + +void iAmbient3D_rndF(t_iAmbient3D *x, t_floatarg f1, t_floatarg f2, t_floatarg f3) +{ + SETFLOAT(&(x->force[3]), f1); + SETFLOAT(&(x->force[4]), f2); + SETFLOAT(&(x->force[5]), f3); +} + +void iAmbient3D_damp(t_iAmbient3D *x, t_float X) +{ + SETFLOAT(&(x->force[6]), X); +} + + +void iAmbient3D_Xmin(t_iAmbient3D *x, t_float Xmin) +{ + SETFLOAT(&(x->force[8]), Xmin); +} + +void iAmbient3D_Xmax(t_iAmbient3D *x, t_float Xmax) +{ + SETFLOAT(&(x->force[9]), Xmax); +} + +void iAmbient3D_Ymin(t_iAmbient3D *x, t_float Ymin) +{ + SETFLOAT(&(x->force[10]), Ymin); +} + +void iAmbient3D_Ymax(t_iAmbient3D *x, t_float Ymax) +{ + SETFLOAT(&(x->force[11]), Ymax); +} + +void iAmbient3D_Zmin(t_iAmbient3D *x, t_float Zmin) +{ + SETFLOAT(&(x->force[12]), Zmin); +} + +void iAmbient3D_Zmax(t_iAmbient3D *x, t_float Zmax) +{ + SETFLOAT(&(x->force[13]), Zmax); +} + +void iAmbient3D_dXYZ(t_iAmbient3D *x, t_float dX, t_float dY, t_float dZ) +{ + SETFLOAT(&(x->force[14]), dX); + SETFLOAT(&(x->force[15]), dY); + SETFLOAT(&(x->force[16]), dZ); +} + +void iAmbient3D_dX(t_iAmbient3D *x, t_float dX) +{ + SETFLOAT(&(x->force[14]), dX); +} + +void iAmbient3D_dY(t_iAmbient3D *x, t_float dY) +{ + SETFLOAT(&(x->force[15]), dY); +} + +void iAmbient3D_dZ(t_iAmbient3D *x, t_float dZ) +{ + SETFLOAT(&(x->force[16]), dZ); +} + +void iAmbient3D_bang(t_iAmbient3D *x) +{ + if (x->x_sym->s_thing) typedmess(x->x_sym->s_thing, gensym("interactor_ambient_3D"), 17, x->force); + + outlet_anything(x->force_new, gensym("interactor_ambient_3D"), 17, x->force); +} + +void *iAmbient3D_new(t_symbol *s, int argc, t_atom *argv) +{ + t_iAmbient3D *x = (t_iAmbient3D *)pd_new(iAmbient3D_class); + + x->x_sym = atom_getsymbolarg(0, argc, argv); + + x->force_new=outlet_new(&x->x_obj, 0); + + if (argc>=16) + SETFLOAT(&(x->force[15]), atom_getfloatarg(15, argc, argv)); + else + SETFLOAT(&(x->force[15]), 0); + + if (argc>=15) + SETFLOAT(&(x->force[14]), atom_getfloatarg(14, argc, argv)); + else + SETFLOAT(&(x->force[14]), 0); + + if (argc>=14) + SETFLOAT(&(x->force[13]), atom_getfloatarg(13, argc, argv)); + else + SETFLOAT(&(x->force[13]), 10000); + + if (argc>=13) + SETFLOAT(&(x->force[12]), atom_getfloatarg(12, argc, argv)); + else + SETFLOAT(&(x->force[12]), -10000); + + if (argc>=12) + SETFLOAT(&(x->force[11]), atom_getfloatarg(11, argc, argv)); + else + SETFLOAT(&(x->force[11]), 10000); + + if (argc>=11) + SETFLOAT(&(x->force[10]), atom_getfloatarg(10, argc, argv)); + else + SETFLOAT(&(x->force[10]), -10000); + + if (argc>=10) + SETFLOAT(&(x->force[9]), atom_getfloatarg(9, argc, argv)); + else + SETFLOAT(&(x->force[9]), 10000); + + if (argc>=9) + SETFLOAT(&(x->force[8]), atom_getfloatarg(8, argc, argv)); + else + SETFLOAT(&(x->force[8]), -10000); + + SETFLOAT(&(x->force[7]), 0); + + if (argc>=8) + SETFLOAT(&(x->force[6]), atom_getfloatarg(7, argc, argv)); + else + SETFLOAT(&(x->force[6]), 0); + + if (argc>=7) + SETFLOAT(&(x->force[5]), atom_getfloatarg(6, argc, argv)); + else + SETFLOAT(&(x->force[5]), 0); + + if (argc>=6) + SETFLOAT(&(x->force[4]), atom_getfloatarg(5, argc, argv)); + else + SETFLOAT(&(x->force[4]), 0); + + if (argc>=5) + SETFLOAT(&(x->force[3]), atom_getfloatarg(4, argc, argv)); + else + SETFLOAT(&(x->force[3]), 0); + + if (argc>=4) + SETFLOAT(&(x->force[2]), atom_getfloatarg(3, argc, argv)); + else + SETFLOAT(&(x->force[2]), 0); + + if (argc>=3) + SETFLOAT(&(x->force[1]), atom_getfloatarg(2, argc, argv)); + else + SETFLOAT(&(x->force[1]), 0); + + if (argc>=2) + SETFLOAT(&(x->force[0]), atom_getfloatarg(1, argc, argv)); + else + SETFLOAT(&(x->force[0]), 0); + + return (x); +} + +void iAmbient3D_setup(void) +{ + + iAmbient3D_class = class_new(gensym("iAmbient3D"), + (t_newmethod)iAmbient3D_new, + 0, sizeof(t_iAmbient3D), + CLASS_DEFAULT, A_GIMME, 0); + + class_addcreator((t_newmethod)iAmbient3D_new, gensym("pmpd.iAmbient3D"), A_GIMME, 0); + + class_addbang(iAmbient3D_class, iAmbient3D_bang); + class_addmethod(iAmbient3D_class, (t_method)iAmbient3D_force, gensym("setFXYZ"), A_DEFFLOAT, A_DEFFLOAT, A_DEFFLOAT, 0); + class_addmethod(iAmbient3D_class, (t_method)iAmbient3D_forceX, gensym("setFX"), A_DEFFLOAT, 0); + class_addmethod(iAmbient3D_class, (t_method)iAmbient3D_forceY, gensym("setFY"), A_DEFFLOAT, 0); + class_addmethod(iAmbient3D_class, (t_method)iAmbient3D_forceZ, gensym("setFZ"), A_DEFFLOAT, 0); + class_addmethod(iAmbient3D_class, (t_method)iAmbient3D_Xmin, gensym("setXmin"), A_DEFFLOAT, 0); + class_addmethod(iAmbient3D_class, (t_method)iAmbient3D_Ymin, gensym("setYmin"), A_DEFFLOAT, 0); + class_addmethod(iAmbient3D_class, (t_method)iAmbient3D_Zmin, gensym("setZmin"), A_DEFFLOAT, 0); + class_addmethod(iAmbient3D_class, (t_method)iAmbient3D_Xmax, gensym("setXmax"), A_DEFFLOAT, 0); + class_addmethod(iAmbient3D_class, (t_method)iAmbient3D_Ymax, gensym("setYmax"), A_DEFFLOAT, 0); + class_addmethod(iAmbient3D_class, (t_method)iAmbient3D_Zmax, gensym("setZmax"), A_DEFFLOAT, 0); + class_addmethod(iAmbient3D_class, (t_method)iAmbient3D_rndFY, gensym("setRndFY"), A_DEFFLOAT, 0); + class_addmethod(iAmbient3D_class, (t_method)iAmbient3D_rndFX, gensym("setRndFX"), A_DEFFLOAT, 0); + class_addmethod(iAmbient3D_class, (t_method)iAmbient3D_rndFZ, gensym("setRndFZ"), A_DEFFLOAT, 0); + class_addmethod(iAmbient3D_class, (t_method)iAmbient3D_damp, gensym("setD"), A_DEFFLOAT, 0); + class_addmethod(iAmbient3D_class, (t_method)iAmbient3D_dXYZ, gensym("dXYZ"), A_DEFFLOAT, 0); + class_addmethod(iAmbient3D_class, (t_method)iAmbient3D_dX, gensym("setdX"), A_DEFFLOAT, 0); + class_addmethod(iAmbient3D_class, (t_method)iAmbient3D_dY, gensym("setdY"), A_DEFFLOAT, 0); + class_addmethod(iAmbient3D_class, (t_method)iAmbient3D_dZ, gensym("setdZ"), A_DEFFLOAT, 0); + +} diff --git a/src/iCircle2D.c b/src/iCircle2D.c new file mode 100755 index 0000000..869dd70 --- /dev/null +++ b/src/iCircle2D.c @@ -0,0 +1,276 @@ +#include "m_pd.h" +#include "math.h" + +static t_class *iCircle2D_class; + +typedef struct _iCircle2D { + t_object x_obj; + t_atom force[20]; + t_outlet *force_new; // outlet + t_symbol *x_sym; // send + t_float posX_old, posY_old, posX, posY; // anciennes position, pour calculer la vitesse de cette interacteur. + +} t_iCircle2D; + +void iCircle2D_bang(t_iCircle2D *x) +{ + SETFLOAT(&(x->force[14]), x->posX_old); // posX_old + SETFLOAT(&(x->force[15]), x->posY_old); // posY_old + + x->posX_old = x->posX; + x->posY_old = x->posY; + + if (x->x_sym->s_thing) typedmess(x->x_sym->s_thing, gensym("interactor_circle_2D"), 20, x->force); + + outlet_anything(x->force_new, gensym("interactor_circle_2D"), 20, x->force); +} + +void iCircle2D_setXY(t_iCircle2D *x, t_float X, t_float Y) +{ + SETFLOAT(&(x->force[0]), X); + x->posX= X; + SETFLOAT(&(x->force[1]), Y); + x->posY = Y; +} + +void iCircle2D_setX(t_iCircle2D *x, t_float X) +{ + SETFLOAT(&(x->force[0]), X); + x->posX= X; +} + +void iCircle2D_setY(t_iCircle2D *x, t_float Y) +{ + SETFLOAT(&(x->force[1]), Y); + x->posY = Y; +} + +void iCircle2D_setRmin(t_iCircle2D *x, t_float X) +{ + SETFLOAT(&(x->force[2]), X); +} + +void iCircle2D_setRmax(t_iCircle2D *x, t_float X) +{ + SETFLOAT(&(x->force[3]), X); +} + +void iCircle2D_setFN(t_iCircle2D *x, t_floatarg f1) +{ + SETFLOAT(&(x->force[4]), f1); +} + +void iCircle2D_setFT(t_iCircle2D *x, t_floatarg f1) +{ + SETFLOAT(&(x->force[5]), f1); +} + +void iCircle2D_setKN(t_iCircle2D *x, t_floatarg f1) +{ + SETFLOAT(&(x->force[6]), f1); +} + +void iCircle2D_setKT(t_iCircle2D *x, t_floatarg f1) +{ + SETFLOAT(&(x->force[7]), f1); +} + +void iCircle2D_setRN(t_iCircle2D *x, t_floatarg f1) +{ + SETFLOAT(&(x->force[8]), f1); +} + +void iCircle2D_setRT(t_iCircle2D *x, t_floatarg f1) +{ + SETFLOAT(&(x->force[9]), f1); +} + +void iCircle2D_setDN(t_iCircle2D *x, t_floatarg f1) +{ + SETFLOAT(&(x->force[10]), f1); +} + +void iCircle2D_setDT(t_iCircle2D *x, t_floatarg f1) +{ + SETFLOAT(&(x->force[11]), f1); +} + +void iCircle2D_setdRN(t_iCircle2D *x, t_floatarg f1) +{ + SETFLOAT(&(x->force[12]), f1); +} + +void iCircle2D_setdRT(t_iCircle2D *x, t_floatarg f1) +{ + SETFLOAT(&(x->force[13]), f1); +} + +void iCircle2D_setD(t_iCircle2D *x, t_floatarg f1) +{ + SETFLOAT(&(x->force[16]), f1); +} + +void iCircle2D_setG(t_iCircle2D *x, t_floatarg f1) +{ + SETFLOAT(&(x->force[17]), f1); +} + +void iCircle2D_setdN(t_iCircle2D *x, t_floatarg f1) +{ + SETFLOAT(&(x->force[18]), f1); +} + +void iCircle2D_setdT(t_iCircle2D *x, t_floatarg f1) +{ + SETFLOAT(&(x->force[19]), f1); +} + +void *iCircle2D_new(t_symbol *s, int argc, t_atom *argv) +{ + t_iCircle2D *x = (t_iCircle2D *)pd_new(iCircle2D_class); + + x->x_sym = atom_getsymbolarg(0, argc, argv); + + x->force_new=outlet_new(&x->x_obj, 0); + + if (argc>=19) + SETFLOAT(&(x->force[19]), atom_getfloatarg(18, argc, argv)); + else + SETFLOAT(&(x->force[19]), 0); + + if (argc>=18) + SETFLOAT(&(x->force[18]), atom_getfloatarg(17, argc, argv)); + else + SETFLOAT(&(x->force[18]), 0); + + if (argc>=17) + SETFLOAT(&(x->force[17]), atom_getfloatarg(16, argc, argv)); + else + SETFLOAT(&(x->force[17]), 0); + + if (argc>=16) + SETFLOAT(&(x->force[16]), atom_getfloatarg(15, argc, argv)); + else + SETFLOAT(&(x->force[16]), 0); + + if (argc>=15) + SETFLOAT(&(x->force[13]), atom_getfloatarg(14, argc, argv)); + else + SETFLOAT(&(x->force[13]), 0); + + if (argc>=14) + SETFLOAT(&(x->force[12]), atom_getfloatarg(13, argc, argv)); + else + SETFLOAT(&(x->force[12]), 0); + + if (argc>=13) + SETFLOAT(&(x->force[11]), atom_getfloatarg(12, argc, argv)); + else + SETFLOAT(&(x->force[11]), 0); + + if (argc>=12) + SETFLOAT(&(x->force[10]), atom_getfloatarg(11, argc, argv)); + else + SETFLOAT(&(x->force[10]), 0); + + if (argc>=11) + SETFLOAT(&(x->force[9]), atom_getfloatarg(10, argc, argv)); + else + SETFLOAT(&(x->force[9]), 0); + + if (argc>=10) + SETFLOAT(&(x->force[8]), atom_getfloatarg(9, argc, argv)); + else + SETFLOAT(&(x->force[8]), 0); + + if (argc>=9) + SETFLOAT(&(x->force[7]), atom_getfloatarg(8, argc, argv)); + else + SETFLOAT(&(x->force[7]), 0); + + if (argc>=8) + SETFLOAT(&(x->force[6]), atom_getfloatarg(7, argc, argv)); + else + SETFLOAT(&(x->force[6]), 0); + + if (argc>=7) + SETFLOAT(&(x->force[5]), atom_getfloatarg(6, argc, argv)); + else + SETFLOAT(&(x->force[5]), 0); + + if (argc>=6) + SETFLOAT(&(x->force[4]), atom_getfloatarg(5, argc, argv)); + else + SETFLOAT(&(x->force[4]), 0); + + if (argc>=5) + SETFLOAT(&(x->force[3]), atom_getfloatarg(4, argc, argv)); + else + SETFLOAT(&(x->force[3]), 1); + + if (argc>=4) + SETFLOAT(&(x->force[2]), atom_getfloatarg(3, argc, argv)); + else + SETFLOAT(&(x->force[2]), 0); + + if (argc>=3) + { + SETFLOAT(&(x->force[1]), atom_getfloatarg(2, argc, argv)); + SETFLOAT(&(x->force[15]), atom_getfloatarg(2, argc, argv)); + x->posY_old = atom_getfloatarg(2, argc, argv); + } + else + { + SETFLOAT(&(x->force[1]), 0); + SETFLOAT(&(x->force[15]), 0); + x->posY_old = 0; + } + + if (argc>=2) + { + SETFLOAT(&(x->force[0]), atom_getfloatarg(1, argc, argv)); + SETFLOAT(&(x->force[14]), atom_getfloatarg(1, argc, argv)); + x->posX_old = atom_getfloatarg(1, argc, argv); + } + else + { + SETFLOAT(&(x->force[0]), 0); + SETFLOAT(&(x->force[14]), 0); + x->posX_old = 0; + } + + return (x); +} + +void iCircle2D_setup(void) +{ + + iCircle2D_class = class_new(gensym("iCircle2D"), + (t_newmethod)iCircle2D_new, + 0, sizeof(t_iCircle2D), + CLASS_DEFAULT, A_GIMME, 0); + + class_addcreator((t_newmethod)iCircle2D_new, gensym("pmpd.iCircle2D"), A_GIMME, 0); + + class_addbang(iCircle2D_class, iCircle2D_bang); + class_addmethod(iCircle2D_class, (t_method)iCircle2D_setFN, gensym("setFN"), A_DEFFLOAT, 0); + class_addmethod(iCircle2D_class, (t_method)iCircle2D_setFT, gensym("setFT"), A_DEFFLOAT, 0); + class_addmethod(iCircle2D_class, (t_method)iCircle2D_setKN, gensym("setKN"), A_DEFFLOAT, 0); + class_addmethod(iCircle2D_class, (t_method)iCircle2D_setKT, gensym("setKT"), A_DEFFLOAT, 0); + class_addmethod(iCircle2D_class, (t_method)iCircle2D_setDN, gensym("setDN"), A_DEFFLOAT, 0); + class_addmethod(iCircle2D_class, (t_method)iCircle2D_setDT, gensym("setDT"), A_DEFFLOAT, 0); + class_addmethod(iCircle2D_class, (t_method)iCircle2D_setD, gensym("setD"), A_DEFFLOAT, 0); + class_addmethod(iCircle2D_class, (t_method)iCircle2D_setX, gensym("setX"), A_DEFFLOAT, 0); + class_addmethod(iCircle2D_class, (t_method)iCircle2D_setY, gensym("setY"), A_DEFFLOAT, 0); + class_addmethod(iCircle2D_class, (t_method)iCircle2D_setXY, gensym("setXY"), A_DEFFLOAT, A_DEFFLOAT, 0); + class_addmethod(iCircle2D_class, (t_method)iCircle2D_setRmin, gensym("setRmin"), A_DEFFLOAT, 0); + class_addmethod(iCircle2D_class, (t_method)iCircle2D_setRmax, gensym("setRmax"), A_DEFFLOAT, 0); + class_addmethod(iCircle2D_class, (t_method)iCircle2D_setRN, gensym("setRN"), A_DEFFLOAT, 0); + class_addmethod(iCircle2D_class, (t_method)iCircle2D_setRT, gensym("setRT"), A_DEFFLOAT, 0); + class_addmethod(iCircle2D_class, (t_method)iCircle2D_setdN, gensym("setdN"), A_DEFFLOAT, 0); + class_addmethod(iCircle2D_class, (t_method)iCircle2D_setdT, gensym("setdT"), A_DEFFLOAT, 0); + class_addmethod(iCircle2D_class, (t_method)iCircle2D_setdRN, gensym("setdRN"), A_DEFFLOAT, 0); + class_addmethod(iCircle2D_class, (t_method)iCircle2D_setdRT, gensym("setdRT"), A_DEFFLOAT, 0); + class_addmethod(iCircle2D_class, (t_method)iCircle2D_setG, gensym("setG"), A_DEFFLOAT, 0); + +} diff --git a/src/iCircle3D.c b/src/iCircle3D.c new file mode 100755 index 0000000..cfbc412 --- /dev/null +++ b/src/iCircle3D.c @@ -0,0 +1,211 @@ +#include "m_pd.h" +#include "math.h" + +static t_class *iCircle3D_class; + +typedef struct _iCircle3D { + t_object x_obj; + t_atom force[14]; + t_outlet *force_new; // outlet + t_symbol *x_sym; // send + +} t_iCircle3D; + +void iCircle3D_bang(t_iCircle3D *x) +{ + if (x->x_sym->s_thing) typedmess(x->x_sym->s_thing, gensym("interactor_circle_3D"), 14, x->force); + + outlet_anything(x->force_new, gensym("interactor_circle_3D"), 14, x->force); +} + +void iCircle3D_setXYZ(t_iCircle3D *x, t_float X, t_float Y, t_float Z) +{ + SETFLOAT(&(x->force[3]), X); + SETFLOAT(&(x->force[4]), Y); + SETFLOAT(&(x->force[5]), Z); +} +void iCircle3D_setVXYZ(t_iCircle3D *x, t_float X, t_float Y, t_float Z) +{ + SETFLOAT(&(x->force[0]), X); + SETFLOAT(&(x->force[1]), Y); + SETFLOAT(&(x->force[2]), Z); +} + +void iCircle3D_setVX(t_iCircle3D *x, t_float X) +{ + SETFLOAT(&(x->force[0]), X); +} + +void iCircle3D_setVY(t_iCircle3D *x, t_float Y) +{ + SETFLOAT(&(x->force[1]), Y); +} + +void iCircle3D_setVZ(t_iCircle3D *x, t_float Z) +{ + SETFLOAT(&(x->force[2]), Z); +} +void iCircle3D_setX(t_iCircle3D *x, t_float X) +{ + SETFLOAT(&(x->force[3]), X); +} + +void iCircle3D_setY(t_iCircle3D *x, t_float Y) +{ + SETFLOAT(&(x->force[4]), Y); +} + +void iCircle3D_setZ(t_iCircle3D *x, t_float Z) +{ + SETFLOAT(&(x->force[5]), Z); +} + +void iCircle3D_setRmin(t_iCircle3D *x, t_floatarg f1) +{ + SETFLOAT(&(x->force[6]), f1); +} + +void iCircle3D_setRmax(t_iCircle3D *x, t_floatarg f1) +{ + SETFLOAT(&(x->force[7]), f1); +} + +void iCircle3D_setFN(t_iCircle3D *x, t_floatarg f1) +{ + SETFLOAT(&(x->force[8]), f1); +} + +void iCircle3D_setKN(t_iCircle3D *x, t_floatarg f1) +{ + SETFLOAT(&(x->force[9]), f1); +} + +void iCircle3D_setD(t_iCircle3D *x, t_floatarg f1) +{ + SETFLOAT(&(x->force[10]), f1); +} + +void iCircle3D_setPmax(t_iCircle3D *x, t_float X) +{ + SETFLOAT(&(x->force[11]), X); +} + +void iCircle3D_setdN(t_iCircle3D *x, t_floatarg f1) +{ + SETFLOAT(&(x->force[12]), f1); +} + +void iCircle3D_setdKN(t_iCircle3D *x, t_float X) +{ + SETFLOAT(&(x->force[13]), X); +} + +void *iCircle3D_new(t_symbol *s, int argc, t_atom *argv) +{ + t_iCircle3D *x = (t_iCircle3D *)pd_new(iCircle3D_class); + + x->x_sym = atom_getsymbolarg(0, argc, argv); + + x->force_new=outlet_new(&x->x_obj, 0); + + + if (argc>=15) + SETFLOAT(&(x->force[13]), atom_getfloatarg(14, argc, argv)); + else + SETFLOAT(&(x->force[13]), 0); + + if (argc>=14) + SETFLOAT(&(x->force[12]), atom_getfloatarg(13, argc, argv)); + else + SETFLOAT(&(x->force[12]), 0); + + if (argc>=13) + SETFLOAT(&(x->force[11]), atom_getfloatarg(12, argc, argv)); + else + SETFLOAT(&(x->force[11]), 10000); + + if (argc>=12) + SETFLOAT(&(x->force[10]), atom_getfloatarg(11, argc, argv)); + else + SETFLOAT(&(x->force[10]), 0); + + if (argc>=11) + SETFLOAT(&(x->force[9]), atom_getfloatarg(10, argc, argv)); + else + SETFLOAT(&(x->force[9]), 0); + + if (argc>=10) + SETFLOAT(&(x->force[8]), atom_getfloatarg(9, argc, argv)); + else + SETFLOAT(&(x->force[8]), 0); + + if (argc>=9) + SETFLOAT(&(x->force[7]), atom_getfloatarg(8, argc, argv)); + else + SETFLOAT(&(x->force[7]), 1); + + if (argc>=8) + SETFLOAT(&(x->force[6]), atom_getfloatarg(7, argc, argv)); + else + SETFLOAT(&(x->force[6]), 0); + + if (argc>=7) + SETFLOAT(&(x->force[5]), atom_getfloatarg(6, argc, argv)); + else + SETFLOAT(&(x->force[5]), 0); + + if (argc>=6) + SETFLOAT(&(x->force[4]), atom_getfloatarg(5, argc, argv)); + else + SETFLOAT(&(x->force[4]), 0); + + if (argc>=5) + SETFLOAT(&(x->force[3]), atom_getfloatarg(4, argc, argv)); + else + SETFLOAT(&(x->force[3]), 0); + + if (argc>=4) + SETFLOAT(&(x->force[2]), atom_getfloatarg(3, argc, argv)); + else + SETFLOAT(&(x->force[2]), 0); + + if (argc>=3) + SETFLOAT(&(x->force[1]), atom_getfloatarg(2, argc, argv)); + else + SETFLOAT(&(x->force[1]), 0); + + if (argc>=2) + SETFLOAT(&(x->force[0]), atom_getfloatarg(1, argc, argv)); + else + SETFLOAT(&(x->force[0]), 1); + + return (x); +} + +void iCircle3D_setup(void) +{ + iCircle3D_class = class_new(gensym("iCircle3D"), + (t_newmethod)iCircle3D_new, + 0, sizeof(t_iCircle3D), + CLASS_DEFAULT, A_GIMME, 0); + + class_addcreator((t_newmethod)iCircle3D_new, gensym("pmpd.iCircle3D"), A_GIMME, 0); + + class_addbang(iCircle3D_class, iCircle3D_bang); + class_addmethod(iCircle3D_class, (t_method)iCircle3D_setVX, gensym("setVX"), A_DEFFLOAT, 0); + class_addmethod(iCircle3D_class, (t_method)iCircle3D_setVY, gensym("setVY"), A_DEFFLOAT, 0); + class_addmethod(iCircle3D_class, (t_method)iCircle3D_setVZ, gensym("setVZ"), A_DEFFLOAT, 0); + class_addmethod(iCircle3D_class, (t_method)iCircle3D_setX, gensym("setX"), A_DEFFLOAT, 0); + class_addmethod(iCircle3D_class, (t_method)iCircle3D_setY, gensym("setY"), A_DEFFLOAT, 0); + class_addmethod(iCircle3D_class, (t_method)iCircle3D_setZ, gensym("setZ"), A_DEFFLOAT, 0); + class_addmethod(iCircle3D_class, (t_method)iCircle3D_setRmin, gensym("setRmin"), A_DEFFLOAT, 0); + class_addmethod(iCircle3D_class, (t_method)iCircle3D_setRmax, gensym("setRmax"), A_DEFFLOAT, 0); + class_addmethod(iCircle3D_class, (t_method)iCircle3D_setXYZ, gensym("setXYZ"), A_DEFFLOAT, A_DEFFLOAT, A_DEFFLOAT, 0); + class_addmethod(iCircle3D_class, (t_method)iCircle3D_setVXYZ, gensym("setVXYZ"), A_DEFFLOAT, A_DEFFLOAT, A_DEFFLOAT, 0); + class_addmethod(iCircle3D_class, (t_method)iCircle3D_setPmax, gensym("setPmax"), A_DEFFLOAT, 0); + class_addmethod(iCircle3D_class, (t_method)iCircle3D_setFN, gensym("setFN"), A_DEFFLOAT, 0); + class_addmethod(iCircle3D_class, (t_method)iCircle3D_setKN, gensym("setKN"), A_DEFFLOAT, 0); + class_addmethod(iCircle3D_class, (t_method)iCircle3D_setdN, gensym("setdN"), A_DEFFLOAT, 0); + class_addmethod(iCircle3D_class, (t_method)iCircle3D_setdKN, gensym("setdKN"), A_DEFFLOAT, 0); + class_addmethod(iCircle3D_class, (t_method)iCircle3D_setD, gensym("setD"), A_DEFFLOAT, 0); +} diff --git a/src/iCylinder3D.c b/src/iCylinder3D.c new file mode 100755 index 0000000..59336bf --- /dev/null +++ b/src/iCylinder3D.c @@ -0,0 +1,292 @@ +#include "m_pd.h" +#include "math.h" + +static t_class *iCylinder3D_class; + +typedef struct _iCylinder3D { + t_object x_obj; + t_atom force[21]; + t_outlet *force_new; // outlet + t_symbol *x_sym; // send + +} t_iCylinder3D; + + + +void iCylinder3D_bang(t_iCylinder3D *x) +{ + if (x->x_sym->s_thing) typedmess(x->x_sym->s_thing, gensym("interactor_cylinder_3D"), 21, x->force); + + outlet_anything(x->force_new, gensym("interactor_cylinder_3D"), 21, x->force); +} + +void iCylinder3D_setXYZ(t_iCylinder3D *x, t_float X, t_float Y, t_float Z) +{ + SETFLOAT(&(x->force[3]), X); + SETFLOAT(&(x->force[4]), Y); + SETFLOAT(&(x->force[5]), Z); +} +void iCylinder3D_setVXYZ(t_iCylinder3D *x, t_float X, t_float Y, t_float Z) +{ + SETFLOAT(&(x->force[0]), X); + SETFLOAT(&(x->force[1]), Y); + SETFLOAT(&(x->force[2]), Z); +} + +void iCylinder3D_setVX(t_iCylinder3D *x, t_float X) +{ + SETFLOAT(&(x->force[0]), X); +} + +void iCylinder3D_setVY(t_iCylinder3D *x, t_float Y) +{ + SETFLOAT(&(x->force[1]), Y); +} + +void iCylinder3D_setVZ(t_iCylinder3D *x, t_float Z) +{ + SETFLOAT(&(x->force[2]), Z); +} +void iCylinder3D_setX(t_iCylinder3D *x, t_float X) +{ + SETFLOAT(&(x->force[3]), X); +} + +void iCylinder3D_setY(t_iCylinder3D *x, t_float Y) +{ + SETFLOAT(&(x->force[4]), Y); +} + +void iCylinder3D_setZ(t_iCylinder3D *x, t_float Z) +{ + SETFLOAT(&(x->force[5]), Z); +} + +void iCylinder3D_setRmin(t_iCylinder3D *x, t_float X) +{ + SETFLOAT(&(x->force[6]), X); +} + +void iCylinder3D_setRmax(t_iCylinder3D *x, t_float X) +{ + SETFLOAT(&(x->force[7]), X); +} + +void iCylinder3D_setFN(t_iCylinder3D *x, t_floatarg f1) +{ + SETFLOAT(&(x->force[8]), f1); +} + +void iCylinder3D_setKN(t_iCylinder3D *x, t_floatarg f1) +{ + SETFLOAT(&(x->force[9]), f1); +} + +void iCylinder3D_setD(t_iCylinder3D *x, t_floatarg f1) +{ + SETFLOAT(&(x->force[10]), f1); +} + +void iCylinder3D_setRN(t_iCylinder3D *x, t_floatarg f1) +{ + SETFLOAT(&(x->force[11]), f1); +} + +void iCylinder3D_setG(t_iCylinder3D *x, t_floatarg f1) +{ + SETFLOAT(&(x->force[12]), f1); +} + +void iCylinder3D_setPmin(t_iCylinder3D *x, t_floatarg f1) +{ + SETFLOAT(&(x->force[13]), f1); +} + +void iCylinder3D_setPmax(t_iCylinder3D *x, t_floatarg f1) +{ + SETFLOAT(&(x->force[14]), f1); +} + +void iCylinder3D_setFT(t_iCylinder3D *x, t_floatarg f1) +{ + SETFLOAT(&(x->force[15]), f1); +} + +void iCylinder3D_setKT(t_iCylinder3D *x, t_floatarg f1) +{ + SETFLOAT(&(x->force[16]), f1); +} + +void iCylinder3D_setdN(t_iCylinder3D *x, t_floatarg f1) +{ + SETFLOAT(&(x->force[17]), f1); +} + +void iCylinder3D_setdT(t_iCylinder3D *x, t_floatarg f1) +{ + SETFLOAT(&(x->force[18]), f1); +} + +void iCylinder3D_setdKN(t_iCylinder3D *x, t_floatarg f1) +{ + SETFLOAT(&(x->force[19]), f1); +} + +void iCylinder3D_setdKT(t_iCylinder3D *x, t_floatarg f1) +{ + SETFLOAT(&(x->force[20]), f1); +} + +void *iCylinder3D_new(t_symbol *s, int argc, t_atom *argv) +{ + t_iCylinder3D *x = (t_iCylinder3D *)pd_new(iCylinder3D_class); + + x->x_sym = atom_getsymbolarg(0, argc, argv); + + x->force_new=outlet_new(&x->x_obj, 0); + + + if (argc>=22) + SETFLOAT(&(x->force[20]), atom_getfloatarg(21, argc, argv)); + else + SETFLOAT(&(x->force[20]), 0); + + if (argc>=21) + SETFLOAT(&(x->force[19]), atom_getfloatarg(20, argc, argv)); + else + SETFLOAT(&(x->force[19]), 0); + + if (argc>=20) + SETFLOAT(&(x->force[18]), atom_getfloatarg(19, argc, argv)); + else + SETFLOAT(&(x->force[18]), 0); + + if (argc>=19) + SETFLOAT(&(x->force[17]), atom_getfloatarg(18, argc, argv)); + else + SETFLOAT(&(x->force[17]), 0); + + if (argc>=18) + SETFLOAT(&(x->force[16]), atom_getfloatarg(17, argc, argv)); + else + SETFLOAT(&(x->force[16]), 0); + + if (argc>=17) + SETFLOAT(&(x->force[15]), atom_getfloatarg(16, argc, argv)); + else + SETFLOAT(&(x->force[15]), 0); + + if (argc>=16) + SETFLOAT(&(x->force[14]), atom_getfloatarg(15, argc, argv)); + else + SETFLOAT(&(x->force[14]), 1000); + + if (argc>=15) + SETFLOAT(&(x->force[13]), atom_getfloatarg(14, argc, argv)); + else + SETFLOAT(&(x->force[13]), -1000); + + if (argc>=14) + SETFLOAT(&(x->force[12]), atom_getfloatarg(13, argc, argv)); + else + SETFLOAT(&(x->force[12]), 0); + + if (argc>=13) + SETFLOAT(&(x->force[11]), atom_getfloatarg(12, argc, argv)); + else + SETFLOAT(&(x->force[11]), 0); + + if (argc>=12) + SETFLOAT(&(x->force[10]), atom_getfloatarg(11, argc, argv)); + else + SETFLOAT(&(x->force[10]), 0); + + if (argc>=11) + SETFLOAT(&(x->force[9]), atom_getfloatarg(10, argc, argv)); + else + SETFLOAT(&(x->force[9]), 0); + + if (argc>=10) + SETFLOAT(&(x->force[8]), atom_getfloatarg(9, argc, argv)); + else + SETFLOAT(&(x->force[8]), 0); + + if (argc>=9) + SETFLOAT(&(x->force[7]), atom_getfloatarg(8, argc, argv)); + else + SETFLOAT(&(x->force[7]), 1); + + if (argc>=8) + SETFLOAT(&(x->force[6]), atom_getfloatarg(7, argc, argv)); + else + SETFLOAT(&(x->force[6]), 0); + + if (argc>=7) + SETFLOAT(&(x->force[5]), atom_getfloatarg(6, argc, argv)); + else + SETFLOAT(&(x->force[5]), 0); + + if (argc>=6) + SETFLOAT(&(x->force[4]), atom_getfloatarg(5, argc, argv)); + else + SETFLOAT(&(x->force[4]), 0); + + if (argc>=5) + SETFLOAT(&(x->force[3]), atom_getfloatarg(4, argc, argv)); + else + SETFLOAT(&(x->force[3]), 0); + + if (argc>=4) + SETFLOAT(&(x->force[2]), atom_getfloatarg(3, argc, argv)); + else + SETFLOAT(&(x->force[2]), 0); + + if (argc>=3) + SETFLOAT(&(x->force[1]), atom_getfloatarg(2, argc, argv)); + else + SETFLOAT(&(x->force[1]), 0); + + if (argc>=2) + SETFLOAT(&(x->force[0]), atom_getfloatarg(1, argc, argv)); + else + SETFLOAT(&(x->force[0]), 1); + + return (x); +} + +void iCylinder3D_setup(void) +{ + + iCylinder3D_class = class_new(gensym("iCylinder3D"), + (t_newmethod)iCylinder3D_new, + 0, sizeof(t_iCylinder3D), + CLASS_DEFAULT, A_GIMME, 0); + + class_addcreator((t_newmethod)iCylinder3D_new, gensym("pmpd.iCylinder3D"), A_GIMME, 0); + + class_addbang(iCylinder3D_class, iCylinder3D_bang); + class_addmethod(iCylinder3D_class, (t_method)iCylinder3D_setVX, gensym("setVX"), A_DEFFLOAT, 0); + class_addmethod(iCylinder3D_class, (t_method)iCylinder3D_setVY, gensym("setVY"), A_DEFFLOAT, 0); + class_addmethod(iCylinder3D_class, (t_method)iCylinder3D_setVZ, gensym("setVZ"), A_DEFFLOAT, 0); + class_addmethod(iCylinder3D_class, (t_method)iCylinder3D_setX, gensym("setX"), A_DEFFLOAT, 0); + class_addmethod(iCylinder3D_class, (t_method)iCylinder3D_setY, gensym("setY"), A_DEFFLOAT, 0); + class_addmethod(iCylinder3D_class, (t_method)iCylinder3D_setZ, gensym("setZ"), A_DEFFLOAT, 0); + class_addmethod(iCylinder3D_class, (t_method)iCylinder3D_setRmin, gensym("setRmin"), A_DEFFLOAT, 0); + class_addmethod(iCylinder3D_class, (t_method)iCylinder3D_setRmax, gensym("setRmax"), A_DEFFLOAT, 0); + class_addmethod(iCylinder3D_class, (t_method)iCylinder3D_setXYZ, gensym("setXYZ"), A_DEFFLOAT, A_DEFFLOAT, A_DEFFLOAT, 0); + class_addmethod(iCylinder3D_class, (t_method)iCylinder3D_setVXYZ, gensym("setVXYZ"), A_DEFFLOAT, A_DEFFLOAT, A_DEFFLOAT, 0); + class_addmethod(iCylinder3D_class, (t_method)iCylinder3D_setPmin, gensym("setPmin"), A_DEFFLOAT, 0); + class_addmethod(iCylinder3D_class, (t_method)iCylinder3D_setPmax, gensym("setPmax"), A_DEFFLOAT, 0); + class_addmethod(iCylinder3D_class, (t_method)iCylinder3D_setFN, gensym("setFN"), A_DEFFLOAT, 0); + class_addmethod(iCylinder3D_class, (t_method)iCylinder3D_setKN, gensym("setKN"), A_DEFFLOAT, 0); + class_addmethod(iCylinder3D_class, (t_method)iCylinder3D_setRN, gensym("setRN"), A_DEFFLOAT, 0); + class_addmethod(iCylinder3D_class, (t_method)iCylinder3D_setG, gensym("setG"), A_DEFFLOAT, 0); + class_addmethod(iCylinder3D_class, (t_method)iCylinder3D_setD, gensym("setD"), A_DEFFLOAT, 0); + class_addmethod(iCylinder3D_class, (t_method)iCylinder3D_setFT, gensym("setFT"), A_DEFFLOAT, 0); + class_addmethod(iCylinder3D_class, (t_method)iCylinder3D_setKT, gensym("setKT"), A_DEFFLOAT, 0); + class_addmethod(iCylinder3D_class, (t_method)iCylinder3D_setdN, gensym("setdN"), A_DEFFLOAT, 0); + class_addmethod(iCylinder3D_class, (t_method)iCylinder3D_setdT, gensym("setdT"), A_DEFFLOAT, 0); + class_addmethod(iCylinder3D_class, (t_method)iCylinder3D_setdKN, gensym("setdKN"), A_DEFFLOAT, 0); + class_addmethod(iCylinder3D_class, (t_method)iCylinder3D_setdKT, gensym("setdKT"), A_DEFFLOAT, 0); + +} diff --git a/src/iLine2D.c b/src/iLine2D.c new file mode 100755 index 0000000..d188d92 --- /dev/null +++ b/src/iLine2D.c @@ -0,0 +1,179 @@ +#include "m_pd.h" +#include "math.h" + +static t_class *iLine2D_class; + +typedef struct _iLine2D { + t_object x_obj; + t_atom force[12]; + t_outlet *force_new;// outlet + t_symbol *x_sym; // send +} t_iLine2D; + + + +void iLine2D_bang(t_iLine2D *x) +{ + if (x->x_sym->s_thing) typedmess(x->x_sym->s_thing, gensym("interactor_line_2D"), 12, x->force); + + outlet_anything(x->force_new, gensym("interactor_line_2D"), 12, x->force); +} + +void iLine2D_X1(t_iLine2D *x, t_float Xmax) +{ + SETFLOAT(&(x->force[0]), Xmax); +} + +void iLine2D_Y1(t_iLine2D *x, t_float Ymax) +{ + SETFLOAT(&(x->force[1]), Ymax); +} + +void iLine2D_X2(t_iLine2D *x, t_float X) +{ + SETFLOAT(&(x->force[2]), X); +} + +void iLine2D_Y2(t_iLine2D *x, t_float X) +{ + SETFLOAT(&(x->force[3]), X); +} + +void iLine2D_setPmax(t_iLine2D *x, t_floatarg f1) +{ + SETFLOAT(&(x->force[4]), f1); +} + +void iLine2D_setFN(t_iLine2D *x, t_floatarg f1) +{ + SETFLOAT(&(x->force[5]), f1); +} + +void iLine2D_setFT(t_iLine2D *x, t_floatarg f1) +{ + SETFLOAT(&(x->force[6]), f1); +} + +void iLine2D_setKN(t_iLine2D *x, t_floatarg f1) +{ + SETFLOAT(&(x->force[7]), f1); +} + +void iLine2D_setDN(t_iLine2D *x, t_floatarg f1) +{ + SETFLOAT(&(x->force[8]), f1); +} + +void iLine2D_setDT(t_iLine2D *x, t_floatarg f1) +{ + SETFLOAT(&(x->force[9]), f1); +} + +void iLine2D_setdN(t_iLine2D *x, t_floatarg f1) +{ + SETFLOAT(&(x->force[10]), f1); +} + +void iLine2D_setdT(t_iLine2D *x, t_floatarg f1) +{ + SETFLOAT(&(x->force[11]), f1); +} + +void *iLine2D_new(t_symbol *s, int argc, t_atom *argv) +{ + t_iLine2D *x = (t_iLine2D *)pd_new(iLine2D_class); + + x->x_sym = atom_getsymbolarg(0, argc, argv); + + x->force_new=outlet_new(&x->x_obj, 0); + + + if (argc>=13) + SETFLOAT(&(x->force[11]), atom_getfloatarg(12, argc, argv)); + else + SETFLOAT(&(x->force[11]), 0); + + if (argc>=12) + SETFLOAT(&(x->force[10]), atom_getfloatarg(11, argc, argv)); + else + SETFLOAT(&(x->force[10]), 0); + + if (argc>=11) + SETFLOAT(&(x->force[9]), atom_getfloatarg(10, argc, argv)); + else + SETFLOAT(&(x->force[9]), 0); + + if (argc>=10) + SETFLOAT(&(x->force[8]), atom_getfloatarg(9, argc, argv)); + else + SETFLOAT(&(x->force[8]), 0); + + if (argc>=9) + SETFLOAT(&(x->force[7]), atom_getfloatarg(8, argc, argv)); + else + SETFLOAT(&(x->force[7]), 0); + + if (argc>=8) + SETFLOAT(&(x->force[6]), atom_getfloatarg(7, argc, argv)); + else + SETFLOAT(&(x->force[6]), 0); + + if (argc>=7) + SETFLOAT(&(x->force[5]), atom_getfloatarg(6, argc, argv)); + else + SETFLOAT(&(x->force[5]), 0); + + if (argc>=6) + SETFLOAT(&(x->force[4]), atom_getfloatarg(5, argc, argv)); + else + SETFLOAT(&(x->force[4]), 1); + + if (argc>=5) + SETFLOAT(&(x->force[3]), atom_getfloatarg(4, argc, argv)); + else + SETFLOAT(&(x->force[3]), 0); + + if (argc>=4) + SETFLOAT(&(x->force[2]), atom_getfloatarg(3, argc, argv)); + else + SETFLOAT(&(x->force[2]), 1); + + if (argc>=3) + SETFLOAT(&(x->force[1]), atom_getfloatarg(2, argc, argv)); + else + SETFLOAT(&(x->force[1]), 0); + + if (argc>=2) + SETFLOAT(&(x->force[0]), atom_getfloatarg(1, argc, argv)); + else + SETFLOAT(&(x->force[0]), -1); + + return (x); +} + +void iLine2D_setup(void) +{ + + iLine2D_class = class_new(gensym("iLine2D"), + (t_newmethod)iLine2D_new, + 0, sizeof(t_iLine2D), + CLASS_DEFAULT, A_GIMME, 0); + + class_addcreator((t_newmethod)iLine2D_new, gensym("pmpd.iLine2D"), A_GIMME, 0); + + class_addbang(iLine2D_class, iLine2D_bang); + class_addmethod(iLine2D_class, (t_method)iLine2D_setPmax, gensym("setPmax"), A_DEFFLOAT, 0); + class_addmethod(iLine2D_class, (t_method)iLine2D_setFN, gensym("setFN"), A_DEFFLOAT, 0); + class_addmethod(iLine2D_class, (t_method)iLine2D_setFT, gensym("setFT"), A_DEFFLOAT, 0); + class_addmethod(iLine2D_class, (t_method)iLine2D_setKN, gensym("setKN"), A_DEFFLOAT, 0); + class_addmethod(iLine2D_class, (t_method)iLine2D_setDN, gensym("setDN"), A_DEFFLOAT, 0); + class_addmethod(iLine2D_class, (t_method)iLine2D_setDT, gensym("setDT"), A_DEFFLOAT, 0); + class_addmethod(iLine2D_class, (t_method)iLine2D_setdN, gensym("setdN"), A_DEFFLOAT, 0); + class_addmethod(iLine2D_class, (t_method)iLine2D_setdT, gensym("setdT"), A_DEFFLOAT, 0); + class_addmethod(iLine2D_class, (t_method)iLine2D_X1, gensym("setX1"), A_DEFFLOAT, 0); + class_addmethod(iLine2D_class, (t_method)iLine2D_Y1, gensym("setY1"), A_DEFFLOAT, 0); + class_addmethod(iLine2D_class, (t_method)iLine2D_X2, gensym("setX2"), A_DEFFLOAT, 0); + class_addmethod(iLine2D_class, (t_method)iLine2D_Y2, gensym("setY2"), A_DEFFLOAT, 0); + + +} diff --git a/src/iPlane3D.c b/src/iPlane3D.c new file mode 100755 index 0000000..f9be065 --- /dev/null +++ b/src/iPlane3D.c @@ -0,0 +1,193 @@ +#include "m_pd.h" +#include "math.h" + +static t_class *iPlane3D_class; + +typedef struct _iPlane3D { + t_object x_obj; + t_atom force[12]; + t_outlet *force_new; // outlet + t_symbol *x_sym; // send + +} t_iPlane3D; + + + +void iPlane3D_bang(t_iPlane3D *x) +{ + if (x->x_sym->s_thing) typedmess(x->x_sym->s_thing, gensym("interactor_plane_3D"), 12, x->force); + + outlet_anything(x->force_new, gensym("interactor_plane_3D"), 12, x->force); +} + +void iPlane3D_setXYZ(t_iPlane3D *x, t_float X, t_float Y, t_float Z) +{ + SETFLOAT(&(x->force[3]), X); + SETFLOAT(&(x->force[4]), Y); + SETFLOAT(&(x->force[5]), Z); +} +void iPlane3D_setVXYZ(t_iPlane3D *x, t_float X, t_float Y, t_float Z) +{ + SETFLOAT(&(x->force[0]), X); + SETFLOAT(&(x->force[1]), Y); + SETFLOAT(&(x->force[2]), Z); +} + +void iPlane3D_setVX(t_iPlane3D *x, t_float X) +{ + SETFLOAT(&(x->force[0]), X); +} + +void iPlane3D_setVY(t_iPlane3D *x, t_float Y) +{ + SETFLOAT(&(x->force[1]), Y); +} + +void iPlane3D_setVZ(t_iPlane3D *x, t_float Z) +{ + SETFLOAT(&(x->force[2]), Z); +} +void iPlane3D_setX(t_iPlane3D *x, t_float X) +{ + SETFLOAT(&(x->force[3]), X); +} + +void iPlane3D_setY(t_iPlane3D *x, t_float Y) +{ + SETFLOAT(&(x->force[4]), Y); +} + +void iPlane3D_setZ(t_iPlane3D *x, t_float Z) +{ + SETFLOAT(&(x->force[5]), Z); +} + +void iPlane3D_setFN(t_iPlane3D *x, t_floatarg f1) +{ + SETFLOAT(&(x->force[6]), f1); +} + +void iPlane3D_setKN(t_iPlane3D *x, t_floatarg f1) +{ + SETFLOAT(&(x->force[7]), f1); +} + +void iPlane3D_setD(t_iPlane3D *x, t_floatarg f1) +{ + SETFLOAT(&(x->force[8]), f1); +} + +void iPlane3D_setP(t_iPlane3D *x, t_float X) +{ + SETFLOAT(&(x->force[9]), X); +} + +void iPlane3D_setdN(t_iPlane3D *x, t_floatarg f1) +{ + SETFLOAT(&(x->force[10]), f1); +} + +void iPlane3D_setdKN(t_iPlane3D *x, t_floatarg f1) +{ + SETFLOAT(&(x->force[11]), f1); +} + +void *iPlane3D_new(t_symbol *s, int argc, t_atom *argv) +{ + t_iPlane3D *x = (t_iPlane3D *)pd_new(iPlane3D_class); + + x->x_sym = atom_getsymbolarg(0, argc, argv); + + x->force_new=outlet_new(&x->x_obj, 0); + + + if (argc>=13) + SETFLOAT(&(x->force[11]), atom_getfloatarg(12, argc, argv)); + else + SETFLOAT(&(x->force[11]), 0); + + if (argc>=12) + SETFLOAT(&(x->force[10]), atom_getfloatarg(11, argc, argv)); + else + SETFLOAT(&(x->force[10]), 0); + + if (argc>=11) + SETFLOAT(&(x->force[9]), atom_getfloatarg(10, argc, argv)); + else + SETFLOAT(&(x->force[9]), 10000); + + if (argc>=10) + SETFLOAT(&(x->force[8]), atom_getfloatarg(9, argc, argv)); + else + SETFLOAT(&(x->force[8]), 0); + + if (argc>=9) + SETFLOAT(&(x->force[7]), atom_getfloatarg(8, argc, argv)); + else + SETFLOAT(&(x->force[7]), 0); + + if (argc>=8) + SETFLOAT(&(x->force[6]), atom_getfloatarg(7, argc, argv)); + else + SETFLOAT(&(x->force[6]), 0); + + if (argc>=7) + SETFLOAT(&(x->force[5]), atom_getfloatarg(6, argc, argv)); + else + SETFLOAT(&(x->force[5]), 0); + + if (argc>=6) + SETFLOAT(&(x->force[4]), atom_getfloatarg(5, argc, argv)); + else + SETFLOAT(&(x->force[4]), 0); + + if (argc>=5) + SETFLOAT(&(x->force[3]), atom_getfloatarg(4, argc, argv)); + else + SETFLOAT(&(x->force[3]), 0); + + if (argc>=4) + SETFLOAT(&(x->force[2]), atom_getfloatarg(3, argc, argv)); + else + SETFLOAT(&(x->force[2]), 0); + + if (argc>=3) + SETFLOAT(&(x->force[1]), atom_getfloatarg(2, argc, argv)); + else + SETFLOAT(&(x->force[1]), 0); + + if (argc>=2) + SETFLOAT(&(x->force[0]), atom_getfloatarg(1, argc, argv)); + else + SETFLOAT(&(x->force[0]), 1); + + return (x); +} + +void iPlane3D_setup(void) +{ + + iPlane3D_class = class_new(gensym("iPlane3D"), + (t_newmethod)iPlane3D_new, + 0, sizeof(t_iPlane3D), + CLASS_DEFAULT, A_GIMME, 0); + + class_addcreator((t_newmethod)iPlane3D_new, gensym("pmpd.iPlane3D"), A_GIMME, 0); + + class_addbang(iPlane3D_class, iPlane3D_bang); + class_addmethod(iPlane3D_class, (t_method)iPlane3D_setVX, gensym("setVX"), A_DEFFLOAT, 0); + class_addmethod(iPlane3D_class, (t_method)iPlane3D_setVY, gensym("setVY"), A_DEFFLOAT, 0); + class_addmethod(iPlane3D_class, (t_method)iPlane3D_setVZ, gensym("setVZ"), A_DEFFLOAT, 0); + class_addmethod(iPlane3D_class, (t_method)iPlane3D_setX, gensym("setX"), A_DEFFLOAT, 0); + class_addmethod(iPlane3D_class, (t_method)iPlane3D_setY, gensym("setY"), A_DEFFLOAT, 0); + class_addmethod(iPlane3D_class, (t_method)iPlane3D_setZ, gensym("setZ"), A_DEFFLOAT, 0); + class_addmethod(iPlane3D_class, (t_method)iPlane3D_setXYZ, gensym("setXYZ"), A_DEFFLOAT, A_DEFFLOAT, A_DEFFLOAT, 0); + class_addmethod(iPlane3D_class, (t_method)iPlane3D_setVXYZ, gensym("setVXYZ"), A_DEFFLOAT, A_DEFFLOAT, A_DEFFLOAT, 0); + class_addmethod(iPlane3D_class, (t_method)iPlane3D_setP, gensym("setPmax"), A_DEFFLOAT, 0); + class_addmethod(iPlane3D_class, (t_method)iPlane3D_setFN, gensym("setFN"), A_DEFFLOAT, 0); + class_addmethod(iPlane3D_class, (t_method)iPlane3D_setKN, gensym("setKN"), A_DEFFLOAT, 0); + class_addmethod(iPlane3D_class, (t_method)iPlane3D_setdKN, gensym("setdKN"), A_DEFFLOAT, 0); + class_addmethod(iPlane3D_class, (t_method)iPlane3D_setD, gensym("setD"), A_DEFFLOAT, 0); + class_addmethod(iPlane3D_class, (t_method)iPlane3D_setdN, gensym("setdN"), A_DEFFLOAT, 0); + +} diff --git a/src/iSeg2D.c b/src/iSeg2D.c new file mode 100755 index 0000000..77c740b --- /dev/null +++ b/src/iSeg2D.c @@ -0,0 +1,175 @@ +#include "m_pd.h" +#include "math.h" + +static t_class *iSeg2D_class; + +typedef struct _iSeg2D { + t_object x_obj; + t_atom force[12]; + t_outlet *force_new;// outlet + t_symbol *x_sym; // send +} t_iSeg2D; + +void iSeg2D_bang(t_iSeg2D *x) +{ + if (x->x_sym->s_thing) typedmess(x->x_sym->s_thing, gensym("interactor_segment_2D"), 12, x->force); + + outlet_anything(x->force_new, gensym("interactor_segment_2D"), 12, x->force); +} + +void iSeg2D_X1(t_iSeg2D *x, t_float Xmax) +{ + SETFLOAT(&(x->force[0]), Xmax); +} + +void iSeg2D_Y1(t_iSeg2D *x, t_float Ymax) +{ + SETFLOAT(&(x->force[1]), Ymax); +} + +void iSeg2D_X2(t_iSeg2D *x, t_float X) +{ + SETFLOAT(&(x->force[2]), X); +} + +void iSeg2D_Y2(t_iSeg2D *x, t_float X) +{ + SETFLOAT(&(x->force[3]), X); +} + +void iSeg2D_setPmax(t_iSeg2D *x, t_floatarg f1) +{ + SETFLOAT(&(x->force[4]), f1); +} + +void iSeg2D_setFN(t_iSeg2D *x, t_floatarg f1) +{ + SETFLOAT(&(x->force[5]), f1); +} + +void iSeg2D_setFT(t_iSeg2D *x, t_floatarg f1) +{ + SETFLOAT(&(x->force[6]), f1); +} + +void iSeg2D_setKN(t_iSeg2D *x, t_floatarg f1) +{ + SETFLOAT(&(x->force[7]), f1); +} + +void iSeg2D_setDN(t_iSeg2D *x, t_floatarg f1) +{ + SETFLOAT(&(x->force[8]), f1); +} + +void iSeg2D_setDT(t_iSeg2D *x, t_floatarg f1) +{ + SETFLOAT(&(x->force[9]), f1); +} + +void iSeg2D_setdN(t_iSeg2D *x, t_floatarg f1) +{ + SETFLOAT(&(x->force[10]), f1); +} + +void iSeg2D_setdT(t_iSeg2D *x, t_floatarg f1) +{ + SETFLOAT(&(x->force[11]), f1); +} + +void *iSeg2D_new(t_symbol *s, int argc, t_atom *argv) +{ + t_iSeg2D *x = (t_iSeg2D *)pd_new(iSeg2D_class); + + x->x_sym = atom_getsymbolarg(0, argc, argv); + + x->force_new=outlet_new(&x->x_obj, 0); + + + if (argc>=13) + SETFLOAT(&(x->force[11]), atom_getfloatarg(12, argc, argv)); + else + SETFLOAT(&(x->force[11]), 0); + + if (argc>=12) + SETFLOAT(&(x->force[10]), atom_getfloatarg(11, argc, argv)); + else + SETFLOAT(&(x->force[10]), 0); + + if (argc>=11) + SETFLOAT(&(x->force[9]), atom_getfloatarg(10, argc, argv)); + else + SETFLOAT(&(x->force[9]), 0); + + if (argc>=10) + SETFLOAT(&(x->force[8]), atom_getfloatarg(9, argc, argv)); + else + SETFLOAT(&(x->force[8]), 0); + + if (argc>=9) + SETFLOAT(&(x->force[7]), atom_getfloatarg(8, argc, argv)); + else + SETFLOAT(&(x->force[7]), 0); + + if (argc>=8) + SETFLOAT(&(x->force[6]), atom_getfloatarg(7, argc, argv)); + else + SETFLOAT(&(x->force[6]), 0); + + if (argc>=7) + SETFLOAT(&(x->force[5]), atom_getfloatarg(6, argc, argv)); + else + SETFLOAT(&(x->force[5]), 0); + + if (argc>=6) + SETFLOAT(&(x->force[4]), atom_getfloatarg(5, argc, argv)); + else + SETFLOAT(&(x->force[4]), 1); + + if (argc>=5) + SETFLOAT(&(x->force[3]), atom_getfloatarg(4, argc, argv)); + else + SETFLOAT(&(x->force[3]), 0); + + if (argc>=4) + SETFLOAT(&(x->force[2]), atom_getfloatarg(3, argc, argv)); + else + SETFLOAT(&(x->force[2]), 1); + + if (argc>=3) + SETFLOAT(&(x->force[1]), atom_getfloatarg(2, argc, argv)); + else + SETFLOAT(&(x->force[1]), 0); + + if (argc>=2) + SETFLOAT(&(x->force[0]), atom_getfloatarg(1, argc, argv)); + else + SETFLOAT(&(x->force[0]), -1); + + return (x); +} + +void iSeg2D_setup(void) +{ + + iSeg2D_class = class_new(gensym("iSeg2D"), + (t_newmethod)iSeg2D_new, + 0, sizeof(t_iSeg2D), + CLASS_DEFAULT, A_GIMME, 0); + + class_addcreator((t_newmethod)iSeg2D_new, gensym("pmpd.iSeg2D"), A_GIMME, 0); + + class_addbang(iSeg2D_class, iSeg2D_bang); + class_addmethod(iSeg2D_class, (t_method)iSeg2D_setPmax, gensym("setPmax"), A_DEFFLOAT, 0); + class_addmethod(iSeg2D_class, (t_method)iSeg2D_setFN, gensym("setFN"), A_DEFFLOAT, 0); + class_addmethod(iSeg2D_class, (t_method)iSeg2D_setFT, gensym("setFT"), A_DEFFLOAT, 0); + class_addmethod(iSeg2D_class, (t_method)iSeg2D_setKN, gensym("setKN"), A_DEFFLOAT, 0); + class_addmethod(iSeg2D_class, (t_method)iSeg2D_setDN, gensym("setDN"), A_DEFFLOAT, 0); + class_addmethod(iSeg2D_class, (t_method)iSeg2D_setDT, gensym("setDT"), A_DEFFLOAT, 0); + class_addmethod(iSeg2D_class, (t_method)iSeg2D_setdN, gensym("setdN"), A_DEFFLOAT, 0); + class_addmethod(iSeg2D_class, (t_method)iSeg2D_setdT, gensym("setdT"), A_DEFFLOAT, 0); + class_addmethod(iSeg2D_class, (t_method)iSeg2D_X1, gensym("setX1"), A_DEFFLOAT, 0); + class_addmethod(iSeg2D_class, (t_method)iSeg2D_Y1, gensym("setY1"), A_DEFFLOAT, 0); + class_addmethod(iSeg2D_class, (t_method)iSeg2D_X2, gensym("setX2"), A_DEFFLOAT, 0); + class_addmethod(iSeg2D_class, (t_method)iSeg2D_Y2, gensym("setY2"), A_DEFFLOAT, 0); +} diff --git a/src/iSphere3D.c b/src/iSphere3D.c new file mode 100755 index 0000000..5b84171 --- /dev/null +++ b/src/iSphere3D.c @@ -0,0 +1,253 @@ +#include "m_pd.h" +#include "math.h" + +static t_class *iSphere3D_class; + +typedef struct _iSphere3D { + t_object x_obj; + t_atom force[17]; + // = Xcentre, Ycentre, .., Rmin, Rmax, Fnormal, K normal, F/R normal, DampNormal, dN, posX_old, posY_old, posZ_old, lia_damp, f/R2 + t_outlet *force_new; // outlet + t_symbol *x_sym; // send + t_float posX_old, posY_old, posZ_old, posX, posY, posZ; // anciennes position, pour calculer la vitesse de cette interacteur. + +} t_iSphere3D; + + + +void iSphere3D_bang(t_iSphere3D *x) +{ + + SETFLOAT(&(x->force[10]), x->posX_old); // posX_old + SETFLOAT(&(x->force[11]), x->posY_old); // posY_old + SETFLOAT(&(x->force[12]), x->posZ_old); // posZ_old + + x->posX_old = x->posX; + x->posY_old = x->posY; + x->posZ_old = x->posZ; + + if (x->x_sym->s_thing) typedmess(x->x_sym->s_thing, gensym("interactor_sphere_3D"), 17, x->force); + + outlet_anything(x->force_new, gensym("interactor_sphere_3D"), 17, x->force); +} + +void iSphere3D_setXYZ(t_iSphere3D *x, t_float X, t_float Y, t_float Z) +{ + SETFLOAT(&(x->force[0]), X); + x->posX= X; + SETFLOAT(&(x->force[1]), Y); + x->posY = Y; + SETFLOAT(&(x->force[2]), Z); + x->posZ = Z; +} + +void iSphere3D_setX(t_iSphere3D *x, t_float X) +{ + SETFLOAT(&(x->force[0]), X); + x->posX= X; +} + +void iSphere3D_setY(t_iSphere3D *x, t_float Y) +{ + SETFLOAT(&(x->force[1]), Y); + x->posY = Y; +} + +void iSphere3D_setZ(t_iSphere3D *x, t_float Z) +{ + SETFLOAT(&(x->force[2]), Z); + x->posZ = Z; +} + +void iSphere3D_setRmin(t_iSphere3D *x, t_float X) +{ + SETFLOAT(&(x->force[3]), X); +} + +void iSphere3D_setRmax(t_iSphere3D *x, t_float X) +{ + SETFLOAT(&(x->force[4]), X); +} + +void iSphere3D_setFN(t_iSphere3D *x, t_floatarg f1) +{ + SETFLOAT(&(x->force[5]), f1); +} + +void iSphere3D_setKN(t_iSphere3D *x, t_floatarg f1) +{ + SETFLOAT(&(x->force[6]), f1); +} + +void iSphere3D_setFRN(t_iSphere3D *x, t_floatarg f1) +{ + SETFLOAT(&(x->force[7]), f1); +} + + +void iSphere3D_setDN(t_iSphere3D *x, t_floatarg f1) +{ + SETFLOAT(&(x->force[8]), f1); +} + +void iSphere3D_setdN(t_iSphere3D *x, t_floatarg f1) +{ + SETFLOAT(&(x->force[9]), f1); +} + +void iSphere3D_setG(t_iSphere3D *x, t_floatarg f1) +{ + SETFLOAT(&(x->force[13]), f1); +} + +void iSphere3D_setdKN(t_iSphere3D *x, t_floatarg f1) +{ + SETFLOAT(&(x->force[14]), f1); +} + +void iSphere3D_setdRN(t_iSphere3D *x, t_floatarg f1) +{ + SETFLOAT(&(x->force[15]), f1); +} + +void iSphere3D_setdGN(t_iSphere3D *x, t_floatarg f1) +{ + SETFLOAT(&(x->force[16]), f1); +} + +void *iSphere3D_new(t_symbol *s, int argc, t_atom *argv) +{ + t_iSphere3D *x = (t_iSphere3D *)pd_new(iSphere3D_class); + + x->x_sym = atom_getsymbolarg(0, argc, argv); + + x->force_new=outlet_new(&x->x_obj, 0); + + if (argc>=15) + SETFLOAT(&(x->force[16]), atom_getfloatarg(14, argc, argv)); + else + SETFLOAT(&(x->force[16]), 0); + + if (argc>=14) + SETFLOAT(&(x->force[15]), atom_getfloatarg(13, argc, argv)); + else + SETFLOAT(&(x->force[15]), 0); + + if (argc>=13) + SETFLOAT(&(x->force[14]), atom_getfloatarg(12, argc, argv)); + else + SETFLOAT(&(x->force[14]), 0); + + if (argc>=12) + SETFLOAT(&(x->force[13]), atom_getfloatarg(11, argc, argv)); + else + SETFLOAT(&(x->force[13]), 0); + + if (argc>=11) + SETFLOAT(&(x->force[9]), atom_getfloatarg(10, argc, argv)); + else + SETFLOAT(&(x->force[9]), 0); + + if (argc>=10) + SETFLOAT(&(x->force[8]), atom_getfloatarg(9, argc, argv)); + else + SETFLOAT(&(x->force[8]), 0); + + if (argc>=9) + SETFLOAT(&(x->force[7]), atom_getfloatarg(8, argc, argv)); + else + SETFLOAT(&(x->force[7]), 0); + + if (argc>=8) + SETFLOAT(&(x->force[6]), atom_getfloatarg(7, argc, argv)); + else + SETFLOAT(&(x->force[6]), 0); + + if (argc>=7) + SETFLOAT(&(x->force[5]), atom_getfloatarg(6, argc, argv)); + else + SETFLOAT(&(x->force[5]), 0); + + if (argc>=6) + SETFLOAT(&(x->force[4]), atom_getfloatarg(5, argc, argv)); + else + SETFLOAT(&(x->force[4]), 1); + + if (argc>=5) + SETFLOAT(&(x->force[3]), atom_getfloatarg(4, argc, argv)); + else + SETFLOAT(&(x->force[3]), 0); + + if (argc>=4) + { + SETFLOAT(&(x->force[12]), atom_getfloatarg(3, argc, argv)); + SETFLOAT(&(x->force[2]), atom_getfloatarg(3, argc, argv)); + x->posZ_old = atom_getfloatarg(3, argc, argv); + } + else + { + SETFLOAT(&(x->force[12]), 0); + SETFLOAT(&(x->force[2]), 0); + x->posZ_old = 0; + } + + if (argc>=3) + { + SETFLOAT(&(x->force[11]), atom_getfloatarg(2, argc, argv)); + SETFLOAT(&(x->force[1]), atom_getfloatarg(2, argc, argv)); + x->posY_old = atom_getfloatarg(2, argc, argv); + + } + else + { + SETFLOAT(&(x->force[1]), 0); + SETFLOAT(&(x->force[11]), 0); + x->posY_old = 0; + } + + if (argc>=2) + { + SETFLOAT(&(x->force[10]), atom_getfloatarg(1, argc, argv)); + SETFLOAT(&(x->force[0]), atom_getfloatarg(1, argc, argv)); + x->posX_old = atom_getfloatarg(1, argc, argv); + } + else + { + SETFLOAT(&(x->force[10]), 0); + SETFLOAT(&(x->force[0]), 0); + x->posX_old = 0; + } + + return (x); +} + +void iSphere3D_setup(void) +{ + + iSphere3D_class = class_new(gensym("iSphere3D"), + (t_newmethod)iSphere3D_new, + 0, sizeof(t_iSphere3D), + CLASS_DEFAULT, A_GIMME, 0); + + class_addcreator((t_newmethod)iSphere3D_new, gensym("pmpd.iSphere3D"), A_GIMME, 0); + + class_addbang(iSphere3D_class, iSphere3D_bang); + class_addmethod(iSphere3D_class, (t_method)iSphere3D_setFN, gensym("setFN"), A_DEFFLOAT, 0); + class_addmethod(iSphere3D_class, (t_method)iSphere3D_setKN, gensym("setKN"), A_DEFFLOAT, 0); + class_addmethod(iSphere3D_class, (t_method)iSphere3D_setDN, gensym("setDN"), A_DEFFLOAT, 0); + class_addmethod(iSphere3D_class, (t_method)iSphere3D_setX, gensym("setX"), A_DEFFLOAT, 0); + class_addmethod(iSphere3D_class, (t_method)iSphere3D_setY, gensym("setY"), A_DEFFLOAT, 0); + class_addmethod(iSphere3D_class, (t_method)iSphere3D_setZ, gensym("setZ"), A_DEFFLOAT, 0); + class_addmethod(iSphere3D_class, (t_method)iSphere3D_setXYZ, gensym("setXYZ"), A_DEFFLOAT, A_DEFFLOAT, A_DEFFLOAT, 0); + class_addmethod(iSphere3D_class, (t_method)iSphere3D_setRmin, gensym("setRmin"), A_DEFFLOAT, 0); + class_addmethod(iSphere3D_class, (t_method)iSphere3D_setRmax, gensym("setRmax"), A_DEFFLOAT, 0); + class_addmethod(iSphere3D_class, (t_method)iSphere3D_setFRN, gensym("setFRN"), A_DEFFLOAT, 0); + class_addmethod(iSphere3D_class, (t_method)iSphere3D_setdN, gensym("setdN"), A_DEFFLOAT, 0); + class_addmethod(iSphere3D_class, (t_method)iSphere3D_setdRN, gensym("setdRN"), A_DEFFLOAT, 0); + class_addmethod(iSphere3D_class, (t_method)iSphere3D_setG, gensym("setG"), A_DEFFLOAT, 0); + class_addmethod(iSphere3D_class, (t_method)iSphere3D_setdKN, gensym("setdKN"), A_DEFFLOAT, 0); + class_addmethod(iSphere3D_class, (t_method)iSphere3D_setdGN, gensym("setdGN"), A_DEFFLOAT, 0); + +} + + diff --git a/src/lia.c b/src/lia.c new file mode 100755 index 0000000..1293cac --- /dev/null +++ b/src/lia.c @@ -0,0 +1,162 @@ +#include "m_pd.h" +#include "math.h" + +static t_class *liaKD_class; + +typedef struct _liaKD { + t_object x_obj; + t_float raideur, viscosite, D2, longueur, distance_old, position1, position2, position_old1, position_old2; + t_outlet *force1; + t_outlet *force2; + t_float Lmin, Lmax; + t_symbol *x_sym; // receive +} t_liaKD; + +void liaKD_float(t_liaKD *x, t_floatarg f1) +{ + x->position1 = f1; +} + +void liaKD_bang(t_liaKD *x) +{ + t_float force1, force2, distance; + + distance = (x->position2 - x->position1); +//distance = abs(x->position2 - x->position1); + if (distance<0) distance = -distance; + + force1 = x->raideur*(distance-(x->longueur)) + x->viscosite*(distance - x->distance_old) ; + + x->distance_old = distance; + + if (distance > x->Lmax) force1=0; + if (distance < x->Lmin) force1=0; + + if (distance != 0) + { + force1 = force1 * (x->position2 - x->position1) / distance; + } + + force2 = -force1 + (x->position_old2 - x->position2)*x->D2; + force1 += (x->position_old1 - x->position1)*x->D2; + // masse damping + + outlet_float(x->force1, force1); + outlet_float(x->force2, force2); + + + x->position_old1 = x->position1; + x->position_old2 = x->position2; + +} + +void liaKD_reset(t_liaKD *x) +{ + x->position1 = 0; + x->position2 = 0; + + x->position_old1 = 0; + x->position_old2 = 0; + + x->distance_old = x->longueur; +} + +void liaKD_resetF(t_liaKD *x) +{ + x->position_old1 = x->position1; + x->position_old2 = x->position2; + + x->distance_old = x->longueur; +} + +void liaKD_resetl(t_liaKD *x) +{ + x->longueur = (x->position1 - x->position2); +} + +void liaKD_setL(t_liaKD *x, t_float L) +{ + x->longueur = L; +} + +void liaKD_setK(t_liaKD *x, t_float K) +{ + x->raideur = K; +} + +void liaKD_setD(t_liaKD *x, t_float D) +{ + x->viscosite = D; +} + +void liaKD_setD2(t_liaKD *x, t_float D2) +{ + x->D2 = D2; +} + +void liaKD_Lmin(t_liaKD *x, t_float Lmin) +{ + x->Lmin = Lmin; +} + +void liaKD_Lmax(t_liaKD *x, t_float Lmax) +{ + x->Lmax = Lmax; +} + +static void liaKD_free(t_liaKD *x) +{ + pd_unbind(&x->x_obj.ob_pd, x->x_sym); +} + +void *liaKD_new(t_symbol *s, t_floatarg L, t_floatarg K, t_floatarg D, t_floatarg D2 ) +{ + + t_liaKD *x = (t_liaKD *)pd_new(liaKD_class); + + x->x_sym = s; + pd_bind(&x->x_obj.ob_pd, s); + + floatinlet_new(&x->x_obj, &x->position2); + + x->force1=outlet_new(&x->x_obj, 0); + x->force2=outlet_new(&x->x_obj, 0); + + x->position1 = 0; + x->position2 = 0; + + x->raideur=K; + x->viscosite=D; + x->D2=D2; + + x->Lmin= 0; + x->Lmax= 10000; + + x->longueur=L; + + return (void *)x; +} + +void lia_setup(void) +{ + liaKD_class = class_new(gensym("lia"), + (t_newmethod)liaKD_new, + (t_method)liaKD_free, + sizeof(t_liaKD), + CLASS_DEFAULT, A_DEFSYM, A_DEFFLOAT, A_DEFFLOAT, A_DEFFLOAT, A_DEFFLOAT, 0); + + class_addcreator((t_newmethod)liaKD_new, gensym("link"), A_DEFSYM, A_DEFFLOAT, A_DEFFLOAT, A_DEFFLOAT, A_DEFFLOAT, 0); + class_addcreator((t_newmethod)liaKD_new, gensym("pmpd.link"), A_DEFSYM, A_DEFFLOAT, A_DEFFLOAT, A_DEFFLOAT, A_DEFFLOAT, 0); + + class_addfloat(liaKD_class, liaKD_float); + class_addbang(liaKD_class, liaKD_bang); + class_addmethod(liaKD_class, (t_method)liaKD_reset, gensym("reset"), 0); + class_addmethod(liaKD_class, (t_method)liaKD_resetl, gensym("resetL"), 0); + class_addmethod(liaKD_class, (t_method)liaKD_resetF, gensym("resetF"), 0); + class_addmethod(liaKD_class, (t_method)liaKD_setD, gensym("setD"), A_DEFFLOAT, 0); + class_addmethod(liaKD_class, (t_method)liaKD_setD2, gensym("setD2"), A_DEFFLOAT, 0); + class_addmethod(liaKD_class, (t_method)liaKD_setK, gensym("setK"), A_DEFFLOAT, 0); + class_addmethod(liaKD_class, (t_method)liaKD_setL, gensym("setL"), A_DEFFLOAT, 0); + class_addmethod(liaKD_class, (t_method)liaKD_Lmin, gensym("setLmin"), A_DEFFLOAT, 0); + class_addmethod(liaKD_class, (t_method)liaKD_Lmax, gensym("setLmax"), A_DEFFLOAT, 0); +} diff --git a/src/lia2D.c b/src/lia2D.c new file mode 100755 index 0000000..ff5e0aa --- /dev/null +++ b/src/lia2D.c @@ -0,0 +1,213 @@ +#include "m_pd.h" +#include "math.h" + +static t_class *lia2D_class; + +typedef struct _lia2D { + t_object x_obj; + t_float raideur, viscosite, D2, longueur, distance_old; + t_float position2Dx1, position2Dx2, posx_old1, posx_old2; + t_float position2Dy1, position2Dy2, posy_old1, posy_old2; + t_float Lmin, Lmax, muscle; + t_outlet *force1; + t_outlet *force2; + t_symbol *x_sym; // receive +} t_lia2D; + +void lia2D_position2D(t_lia2D *x, t_floatarg f1, t_floatarg f2) +{ + x->position2Dx1 = f1; + x->position2Dy1 = f2; +} + +void lia2D_position2D2(t_lia2D *x, t_floatarg f1, t_floatarg f2) +{ + x->position2Dx2 = f1; + x->position2Dy2 = f2; +} + +void lia2D_bang(t_lia2D *x) +{ + t_float force, force2, forcex1, forcey1, forcex2, forcey2, distance; + t_atom force1[2]; + + distance = sqrt ( pow((x->position2Dx2-x->position2Dx1), 2) + pow((x->position2Dy2-x->position2Dy1), 2) ); + + force = ( x->raideur*(distance-(x->longueur * x->muscle)) ) + ( x->viscosite*(distance-x->distance_old) ); + + if (distance > x->Lmax) force=0; + if (distance < x->Lmin) force=0; + + if (distance != 0) + { + forcex1 = force * (x->position2Dx2 - x->position2Dx1) / distance; + forcey1 = force * (x->position2Dy2 - x->position2Dy1) / distance; + } + else + { + forcex1 = 0; + forcey1 = 0 ; + } + + forcex2 = -forcex1; + forcey2 = -forcey1; + + forcex1 += (x->posx_old1 - x->position2Dx1)*x->D2; + forcey1 += (x->posy_old1 - x->position2Dy1)*x->D2; + + forcex2 += (x->posx_old2 - x->position2Dx2)*x->D2; + forcey2 += (x->posy_old2 - x->position2Dy2)*x->D2; + + SETFLOAT(&(force1[0]), forcex2 ); + SETFLOAT(&(force1[1]), forcey2 ); + + outlet_anything(x->force2, gensym("force2D"), 2, force1); + + SETFLOAT(&(force1[0]), forcex1 ); + SETFLOAT(&(force1[1]), forcey1 ); + + outlet_anything(x->force1, gensym("force2D"), 2, force1); + + x->posx_old2 = x->position2Dx2; + x->posx_old1 = x->position2Dx1; + + x->posy_old2 = x->position2Dy2; + x->posy_old1 = x->position2Dy1; + + x->distance_old = distance; +} + +void lia2D_reset(t_lia2D *x) +{ + x->position2Dx1 = 0; + x->position2Dx2 = 0; + x->posx_old1 = 0; + x->posx_old2 = 0; + + x->position2Dy1 = 0; + x->position2Dy2 = 0; + x->posy_old1 = 0; + x->posy_old2 = 0; + + x->distance_old = x->longueur; +} + +void lia2D_resetF(t_lia2D *x) +{ + + x->posx_old1 = x->position2Dx1; + x->posx_old2 = x->position2Dx2; + + x->posy_old1 = x->position2Dy1; + x->posy_old2 = x->position2Dy2; + + x->distance_old = x->longueur; + +} + +void lia2D_resetL(t_lia2D *x) +{ + x->longueur = sqrt ( pow((x->position2Dx2-x->position2Dx1), 2) + pow((x->position2Dy2-x->position2Dy1), 2) ); +} + + +void lia2D_setK(t_lia2D *x, t_float K) +{ + x->raideur = K; +} + +void lia2D_setL(t_lia2D *x, t_float L) +{ + x->longueur = L; +} + +void lia2D_setD(t_lia2D *x, t_float D) +{ + x->viscosite = D; +} + +void lia2D_setD2(t_lia2D *x, t_float D) +{ + x->D2 = D; +} + +void lia2D_Lmin(t_lia2D *x, t_float Lmin) +{ + x->Lmin = Lmin; +} + +void lia2D_Lmax(t_lia2D *x, t_float Lmax) +{ + x->Lmax = Lmax; +} + +void lia2D_muscle(t_lia2D *x, t_float muscle) +{ + x->muscle = muscle; +} + +static void lia2D_free(t_lia2D *x) +{ + pd_unbind(&x->x_obj.ob_pd, x->x_sym); +} + +void *lia2D_new(t_symbol *s, t_floatarg l, t_floatarg K, t_floatarg D, t_floatarg D2) +{ + + t_lia2D *x = (t_lia2D *)pd_new(lia2D_class); + + x->x_sym = s; + pd_bind(&x->x_obj.ob_pd, s); + + inlet_new(&x->x_obj, &x->x_obj.ob_pd, gensym("position2D"), gensym("position2D2")); + + x->force1=outlet_new(&x->x_obj, 0); + x->force2=outlet_new(&x->x_obj, 0); + + x->position2Dx1 = 0; + x->position2Dx2 = 0; + x->position2Dy1 = 0; + x->position2Dy2 = 0; + + x->raideur=K; + x->viscosite=D; + x->longueur = l; + + x->D2=D2; + + x->Lmin= 0; + x->Lmax= 10000; + x->muscle= 1; + + x->distance_old = x->longueur; + + return (x); +} + +void lia2D_setup(void) +{ + + lia2D_class = class_new(gensym("lia2D"), + (t_newmethod)lia2D_new, + (t_method)lia2D_free, + sizeof(t_lia2D), + CLASS_DEFAULT, A_DEFSYM, A_DEFFLOAT, A_DEFFLOAT, A_DEFFLOAT, A_DEFFLOAT, 0); + + class_addcreator((t_newmethod)lia2D_new, gensym("link2D"), A_DEFSYM, A_DEFFLOAT, A_DEFFLOAT, A_DEFFLOAT, A_DEFFLOAT, 0); + class_addcreator((t_newmethod)lia2D_new, gensym("pmpd.link2D"), A_DEFSYM, A_DEFFLOAT, A_DEFFLOAT, A_DEFFLOAT, A_DEFFLOAT, 0); + + class_addbang(lia2D_class, lia2D_bang); + class_addmethod(lia2D_class, (t_method)lia2D_reset, gensym("reset"), 0); + class_addmethod(lia2D_class, (t_method)lia2D_resetL, gensym("resetL"), 0); + class_addmethod(lia2D_class, (t_method)lia2D_resetF, gensym("resetF"), 0); + class_addmethod(lia2D_class, (t_method)lia2D_setD, gensym("setD"), A_DEFFLOAT, 0); + class_addmethod(lia2D_class, (t_method)lia2D_setD2, gensym("setD2"), A_DEFFLOAT, 0); + class_addmethod(lia2D_class, (t_method)lia2D_setK, gensym("setK"), A_DEFFLOAT, 0); + class_addmethod(lia2D_class, (t_method)lia2D_setL, gensym("setL"), A_DEFFLOAT, 0); + class_addmethod(lia2D_class, (t_method)lia2D_Lmin, gensym("setLmin"), A_DEFFLOAT, 0); + class_addmethod(lia2D_class, (t_method)lia2D_Lmax, gensym("setLmax"), A_DEFFLOAT, 0); + class_addmethod(lia2D_class, (t_method)lia2D_muscle, gensym("setM"), A_DEFFLOAT, 0); + class_addmethod(lia2D_class, (t_method)lia2D_position2D, gensym("position2D"), A_DEFFLOAT, A_DEFFLOAT, 0); + class_addmethod(lia2D_class, (t_method)lia2D_position2D2, gensym("position2D2"), A_DEFFLOAT, A_DEFFLOAT, 0); + +} diff --git a/src/lia3D.c b/src/lia3D.c new file mode 100755 index 0000000..4621516 --- /dev/null +++ b/src/lia3D.c @@ -0,0 +1,238 @@ +#include "m_pd.h" +#include "math.h" + +static t_class *lia3D_class; + +typedef struct _lia3D { + t_object x_obj; + t_float raideur, viscosite, D2, longueur, distance_old; + t_float position3Dx1, position3Dx2, posx_old1, posx_old2; + t_float position3Dy1, position3Dy2, posy_old1, posy_old2; + t_float position3Dz1, position3Dz2, posz_old1, posz_old2; + t_float Lmin, Lmax, muscle; + t_outlet *force1; + t_outlet *force2; + t_symbol *x_sym; // receive +} t_lia3D; + +void lia3D_position3D(t_lia3D *x, t_floatarg f1, t_floatarg f2, t_floatarg f3) +{ + x->position3Dx1 = f1; + x->position3Dy1 = f2; + x->position3Dz1 = f3; + +} + +void lia3D_position3D2(t_lia3D *x, t_floatarg f1, t_floatarg f2, t_floatarg f3) +{ + x->position3Dx2 = f1; + x->position3Dy2 = f2; + x->position3Dz2 = f3; +} + +void lia3D_bang(t_lia3D *x) +{ + t_float force, force2, forcex1, forcey1, forcez1, forcex2, forcey2, forcez2, distance; + t_atom force1[3]; + + distance = sqrt ( pow((x->position3Dx2-x->position3Dx1), 2) + pow((x->position3Dy2-x->position3Dy1),2) + pow((x->position3Dz2-x->position3Dz1), 2) ); + + force = ( x->raideur*(distance-(x->longueur * x->muscle)) ) + ( x->viscosite*(distance-x->distance_old) ); + + if (distance > x->Lmax) force=0; + if (distance < x->Lmin) force=0; + + if (distance != 0) + { + forcex1 = force * (x->position3Dx2 - x->position3Dx1) / distance; + forcey1 = force * (x->position3Dy2 - x->position3Dy1) / distance; + forcez1 = force * (x->position3Dz2 - x->position3Dz1) / distance; + } + else + { + forcex1 = 0; + forcey1 = 0; + forcez1 = 0; + } + + forcex2 = -forcex1; + forcey2 = -forcey1; + forcez2 = -forcez1; + + forcex1 += (x->posx_old1 - x->position3Dx1)*x->D2; + forcey1 += (x->posy_old1 - x->position3Dy1)*x->D2; + forcez1 += (x->posz_old1 - x->position3Dz1)*x->D2; + + forcex2 += (x->posx_old2 - x->position3Dx2)*x->D2; + forcey2 += (x->posy_old2 - x->position3Dy2)*x->D2; + forcez2 += (x->posz_old2 - x->position3Dz2)*x->D2; + + + SETFLOAT(&(force1[0]), forcex1 ); + SETFLOAT(&(force1[1]), forcey1 ); + SETFLOAT(&(force1[2]), forcez1 ); + outlet_anything(x->force1, gensym("force3D"), 3, force1); + + SETFLOAT(&(force1[0]), forcex2 ); + SETFLOAT(&(force1[1]), forcey2 ); + SETFLOAT(&(force1[2]), forcez2 ); + + outlet_anything(x->force2, gensym("force3D"), 3, force1); + + x->posx_old2 = x->position3Dx2; + x->posx_old1 = x->position3Dx1; + + x->posy_old2 = x->position3Dy2; + x->posy_old1 = x->position3Dy1; + + x->posz_old2 = x->position3Dz2; + x->posz_old1 = x->position3Dz1; + + x->distance_old = distance; +} + +void lia3D_reset(t_lia3D *x) +{ + x->position3Dx1 = 0; + x->position3Dx2 = 0; + x->posx_old1 = 0; + x->posx_old2 = 0; + + x->position3Dy1 = 0; + x->position3Dy2 = 0; + x->posy_old1 = 0; + x->posy_old2 = 0; + + x->position3Dz1 = 0; + x->position3Dz2 = 0; + x->posz_old1 = 0; + x->posz_old2 = 0; + + x->distance_old = x->longueur; + +} + +void lia3D_resetF(t_lia3D *x) +{ + + x->posx_old1 = x->position3Dx1; + x->posx_old2 = x->position3Dx2; + + x->posy_old1 = x->position3Dy1; + x->posy_old2 = x->position3Dy2; + + x->posz_old1 = x->position3Dz1; + x->posz_old2 = x->position3Dz2; + + x->distance_old = x->longueur; + +} + +void lia3D_resetL(t_lia3D *x) +{ + x->longueur = sqrt ( pow((x->position3Dx2-x->position3Dx1), 2) + pow((x->position3Dy2-x->position3Dy1),2) + pow((x->position3Dz2-x->position3Dz1), 2) ); +} + +void lia3D_setK(t_lia3D *x, t_float K) +{ + x->raideur = K; +} + +void lia3D_setL(t_lia3D *x, t_float L) +{ + x->longueur = L; +} + +void lia3D_setD(t_lia3D *x, t_float D) +{ + x->viscosite = D; +} + +void lia3D_setD2(t_lia3D *x, t_float D2) +{ + x->D2 = D2; +} + +void lia3D_Lmin(t_lia3D *x, t_float Lmin) +{ + x->Lmin = Lmin; +} + +void lia3D_Lmax(t_lia3D *x, t_float Lmax) +{ + x->Lmax = Lmax; +} + +void lia3D_muscle(t_lia3D *x, t_float muscle) +{ + x->muscle = muscle; +} + +static void lia3D_free(t_lia3D *x) +{ + pd_unbind(&x->x_obj.ob_pd, x->x_sym); +} + +void *lia3D_new(t_symbol *s, t_floatarg l, t_floatarg K, t_floatarg D, t_floatarg D2) +{ + + t_lia3D *x = (t_lia3D *)pd_new(lia3D_class); + + x->x_sym = s; + pd_bind(&x->x_obj.ob_pd, s); + + inlet_new(&x->x_obj, &x->x_obj.ob_pd, gensym("position3D"), gensym("position3D2")); + + x->force1=outlet_new(&x->x_obj, 0); + x->force2=outlet_new(&x->x_obj, 0); + + x->position3Dx1 = 0; + x->position3Dx2 = 0; + x->position3Dy1 = 0; + x->position3Dy2 = 0; + x->position3Dz1 = 0; + x->position3Dz2 = 0; + + x->raideur = K; + x->viscosite = D; + x->longueur = l; + + x->D2 = D2; + + x->Lmin= 0; + x->Lmax= 10000; + + x->distance_old = x->longueur; + + x->muscle = 1; + + return (void *)x; +} + +void lia3D_setup(void) +{ + + lia3D_class = class_new(gensym("lia3D"), + (t_newmethod)lia3D_new, + (t_method)lia3D_free, + sizeof(t_lia3D), + CLASS_DEFAULT, A_DEFSYM, A_DEFFLOAT, A_DEFFLOAT, A_DEFFLOAT, A_DEFFLOAT, 0); + + class_addcreator((t_newmethod)lia3D_new, gensym("link3D"), A_DEFSYM, A_DEFFLOAT, A_DEFFLOAT, A_DEFFLOAT, A_DEFFLOAT, 0); + class_addcreator((t_newmethod)lia3D_new, gensym("pmpd.link3D"), A_DEFSYM, A_DEFFLOAT, A_DEFFLOAT, A_DEFFLOAT, A_DEFFLOAT, 0); + + class_addbang(lia3D_class, lia3D_bang); + class_addmethod(lia3D_class, (t_method)lia3D_reset, gensym("reset"), 0); + class_addmethod(lia3D_class, (t_method)lia3D_resetL, gensym("resetL"), 0); + class_addmethod(lia3D_class, (t_method)lia3D_resetF, gensym("resetF"), 0); + class_addmethod(lia3D_class, (t_method)lia3D_setD, gensym("setD"), A_DEFFLOAT, 0); + class_addmethod(lia3D_class, (t_method)lia3D_setD2, gensym("setD2"), A_DEFFLOAT, 0); + class_addmethod(lia3D_class, (t_method)lia3D_setK, gensym("setK"), A_DEFFLOAT, 0); + class_addmethod(lia3D_class, (t_method)lia3D_setL, gensym("setL"), A_DEFFLOAT, 0); + class_addmethod(lia3D_class, (t_method)lia3D_Lmin, gensym("setLmin"), A_DEFFLOAT, 0); + class_addmethod(lia3D_class, (t_method)lia3D_Lmax, gensym("setLmax"), A_DEFFLOAT, 0); + class_addmethod(lia3D_class, (t_method)lia3D_muscle, gensym("setM"), A_DEFFLOAT, 0); + class_addmethod(lia3D_class, (t_method)lia3D_position3D, gensym("position3D"), A_DEFFLOAT, A_DEFFLOAT, A_DEFFLOAT, 0); + class_addmethod(lia3D_class, (t_method)lia3D_position3D2, gensym("position3D2"), A_DEFFLOAT, A_DEFFLOAT, A_DEFFLOAT, 0); + +} diff --git a/src/makefile b/src/makefile new file mode 100755 index 0000000..32ef4e0 --- /dev/null +++ b/src/makefile @@ -0,0 +1,95 @@ +current: + echo make pd_linux, pd_nt, pd_darwin + +clean: ; rm -f *.pd_linux *.o + +# ----------------------- NT ----------------------- + +pd_nt: pmpd.dll + +.SUFFIXES: .dll + +PDNTCFLAGS = /W3 /WX /DNT /DPD /nologo +VC="C:\Program Files\Microsoft Visual Studio\Vc98" + +PDNTINCLUDE = /I. /I\tcl\include /I\pds\win32\pd36\src /I$(VC)\include + +PDNTLDIR = $(VC)\lib +PDNTLIB = $(PDNTLDIR)\libc.lib \ + $(PDNTLDIR)\oldnames.lib \ + $(PDNTLDIR)\kernel32.lib \ + \pds\win32\pd37\bin\pd.lib + +.c.dll: + cl $(PDNTCFLAGS) $(PDNTINCLUDE) /c $*.c + link /dll /export:$*_setup $*.obj $(PDNTLIB) + +# ----------------------- IRIX 5.x ----------------------- + +pd_irix5: foo1.pd_irix5 foo2.pd_irix5 dspobj~.pd_irix5 + +.SUFFIXES: .pd_irix5 + +SGICFLAGS5 = -o32 -DPD -DUNIX -DIRIX -O2 + + +SGIINCLUDE = -I../../src/ + +.c.pd_irix5: + cc $(SGICFLAGS5) $(SGIINCLUDE) -o $*.o -c $*.c + ld -elf -shared -rdata_shared -o $*.pd_irix5 $*.o + rm $*.o + +# ----------------------- IRIX 6.x ----------------------- + +pd_irix6: foo1.pd_irix6 foo2.pd_irix6 dspobj~.pd_irix6 + +.SUFFIXES: .pd_irix6 + +SGICFLAGS6 = -n32 -DPD -DUNIX -DIRIX -DN32 -woff 1080,1064,1185 \ + -OPT:roundoff=3 -OPT:IEEE_arithmetic=3 -OPT:cray_ivdep=true \ + -Ofast=ip32 + +.c.pd_irix6: + cc $(SGICFLAGS6) $(SGIINCLUDE) -o $*.o -c $*.c + ld -IPA -n32 -shared -rdata_shared -o $*.pd_irix6 $*.o + rm $*.o + +# ----------------------- LINUX i386 ----------------------- + +pd_linux: pmpd.pd_linux + +.SUFFIXES: .pd_linux + +LINUXCFLAGS = -DPD -O2 -funroll-loops -fomit-frame-pointer \ + -Wall -W -Wshadow -Wstrict-prototypes -Werror \ + -Wno-unused -Wno-parentheses -Wno-switch + +LINUXINCLUDE = -I../../src + +.c.pd_linux: + cc $(LINUXCFLAGS) $(LINUXINCLUDE) -o $*.o -c $*.c + ld -export_dynamic -shared -o $*.pd_linux $*.o -lc -lm + strip --strip-unneeded $*.pd_linux + rm $*.o + +# ----------------------- Mac OS X (Darwin) ----------------------- + +pd_darwin: pmpd.pd_darwin + +.SUFFIXES: .pd_darwin + +DARWINCFLAGS = -DPD -DUNIX -DMACOSX -O2 \ + -Wall -W -Wshadow -Wstrict-prototypes \ + -Wno-unused -Wno-parentheses -Wno-switch + +# where is your m_pd.h ??? +DARWININCLUDE = -I/. -I../pd/src -I../pd/obj + +.c.pd_darwin: + cc $(DARWINCFLAGS) $(DARWININCLUDE) -o $*.o -c $*.c + cc -bundle -undefined suppress -flat_namespace -o $*.pd_darwin $*.o + rm -f $*.o ../$*.pd_darwin + ln -s $*/$*.pd_darwin .. + + diff --git a/src/masse.c b/src/masse.c new file mode 100755 index 0000000..8241854 --- /dev/null +++ b/src/masse.c @@ -0,0 +1,153 @@ +#include "m_pd.h" +#include "math.h" + +static t_class *masse_class; + +typedef struct _masse { + t_object x_obj; + t_float pos_old_1, pos_old_2, Xinit; + t_float force, masse, dX; + t_float minX, maxX; + t_outlet *position_new, *vitesse_out, *force_out; + t_symbol *x_sym; // receive +} t_masse; + +extern t_float max(t_float, t_float); +extern t_float min(t_float, t_float); + + +void masse_minX(t_masse *x, t_floatarg f1) +{ + x->minX = f1; +} + +void masse_maxX(t_masse *x, t_floatarg f1) +{ + x->maxX = f1; +} + +void masse_float(t_masse *x, t_floatarg f1) +{ + x->force += f1; +} + +void masse_bang(t_masse *x) +{ + t_float pos_new; + + if (x->masse > 0) + pos_new = x->force/x->masse + 2*x->pos_old_1 - x->pos_old_2; + else pos_new = x->pos_old_1; + + pos_new = max(min(x->maxX, pos_new), x->minX); + + pos_new += x->dX; + + x->pos_old_1 += x->dX; // pour ne pas avoir d'inertie suplementaire du a ce deplacement + + outlet_float(x->vitesse_out, x->pos_old_1 - x->pos_old_2); + outlet_float(x->force_out, x->force); + outlet_float(x->position_new, pos_new); + + x->pos_old_2 = x->pos_old_1; + x->pos_old_1 = pos_new; + + x->force = 0; + x->dX = 0; + +} + +void masse_reset(t_masse *x) +{ + x->pos_old_2 = x->Xinit; + x->pos_old_1 = x->Xinit; + + x->force=0; + + outlet_float(x->position_new, x->Xinit); +} + +void masse_resetF(t_masse *x) +{ + x->force=0; +} + +void masse_dX(t_masse *x, t_float posX) +{ + x->dX += posX; +} + +void masse_setX(t_masse *x, t_float posX) +{ + x->pos_old_2 = posX; // clear hystory for stability (instability) problem + x->pos_old_1 = posX; + + x->force=0; + + outlet_float(x->position_new, posX); +} + +void masse_loadbang(t_masse *x) +{ + outlet_float(x->position_new, x->Xinit); +} + +void masse_set_masse(t_masse *x, t_float mass) +{ + x->masse=mass; +} + +static void masse_free(t_masse *x) +{ + pd_unbind(&x->x_obj.ob_pd, x->x_sym); +} + +void *masse_new(t_symbol *s, t_floatarg M, t_floatarg X) +{ + + t_masse *x = (t_masse *)pd_new(masse_class); + + x->x_sym = s; + pd_bind(&x->x_obj.ob_pd, s); + + x->position_new=outlet_new(&x->x_obj, 0); + x->force_out=outlet_new(&x->x_obj, 0); + x->vitesse_out=outlet_new(&x->x_obj, 0); + + x->Xinit=X; + + x->pos_old_1 = X; + x->pos_old_2 = X; + x->force=0; + x->masse=M; + + x->minX = -100000; + x->maxX = 100000; + + if (x->masse<=0) x->masse=1; + + return (void *)x; +} + +void masse_setup(void) +{ + + masse_class = class_new(gensym("masse"), + (t_newmethod)masse_new, + (t_method)masse_free, + sizeof(t_masse), + CLASS_DEFAULT, A_DEFSYM, A_DEFFLOAT, A_DEFFLOAT,0); + class_addcreator((t_newmethod)masse_new, gensym("mass"), A_DEFSYM, A_DEFFLOAT, A_DEFFLOAT,0); + class_addcreator((t_newmethod)masse_new, gensym("pmpd.mass"), A_DEFSYM, A_DEFFLOAT, A_DEFFLOAT,0); + class_addfloat(masse_class, masse_float); + class_addbang(masse_class, masse_bang); + class_addmethod(masse_class, (t_method)masse_set_masse, gensym("setM"), A_DEFFLOAT, 0); + class_addmethod(masse_class, (t_method)masse_setX, gensym("setX"), A_DEFFLOAT, 0); + class_addmethod(masse_class, (t_method)masse_dX, gensym("dX"), A_DEFFLOAT, 0); + class_addmethod(masse_class, (t_method)masse_reset, gensym("reset"), 0); + class_addmethod(masse_class, (t_method)masse_resetF, gensym("resetF"), 0); + class_addmethod(masse_class, (t_method)masse_minX, gensym("setXmin"), A_DEFFLOAT, 0); + class_addmethod(masse_class, (t_method)masse_maxX, gensym("setXmax"), A_DEFFLOAT, 0); + class_addmethod(masse_class, (t_method)masse_loadbang, gensym("loadbang"), 0); +} + diff --git a/src/masse2D.c b/src/masse2D.c new file mode 100755 index 0000000..067a69b --- /dev/null +++ b/src/masse2D.c @@ -0,0 +1,810 @@ +#include "m_pd.h" +#include "math.h" + +static t_class *masse2D_class; + +typedef struct _masse2D { + t_object x_obj; + t_float posX_old_1, posX_old_2, posY_old_1, posY_old_2, Xinit, Yinit; + t_float forceX, forceY, VX, VY, dX, dY, onoff; + t_float masse2D, seuil, damp; + t_float minX, maxX, minY, maxY; + t_atom pos_new[2], vitesse[3], force[3]; + t_outlet *position2D_new, *vitesse_out, *force_out; + t_symbol *x_sym; // receive + unsigned int x_state; // random + t_float x_f; // random +} t_masse2D; + +extern t_float max(t_float, t_float); +extern t_float min(t_float, t_float); + + +static int makeseed(void) +{ + static unsigned int random_nextseed = 1489853723; + random_nextseed = random_nextseed * 435898247 + 938284287; + return (random_nextseed & 0x7fffffff); +} + +static float random_bang(t_masse2D *x) +{ + int nval; + int range = 2000000; + float rnd; + unsigned int randval = x->x_state; + x->x_state = randval = randval * 472940017 + 832416023; + nval = ((double)range) * ((double)randval) + * (1./4294967296.); + if (nval >= range) nval = range-1; + + rnd=nval; + + rnd-=1000000; + rnd=rnd/1000000.; //pour mettre entre -1 et 1; + return (rnd); +} + +void masse2D_seuil(t_masse2D *x, t_floatarg f1) +{ + x->seuil = f1; +} + +void masse2D_on(t_masse2D *x) +{ + x->onoff = 1; +} + +void masse2D_off(t_masse2D *x) +{ + x->onoff = 0; +} + +void masse2D_minX(t_masse2D *x, t_floatarg f1) +{ + x->minX = f1; +} + +void masse2D_maxX(t_masse2D *x, t_floatarg f1) +{ + x->maxX = f1; +} + +void masse2D_minY(t_masse2D *x, t_floatarg f1) +{ + x->minY = f1; +} + +void masse2D_maxY(t_masse2D *x, t_floatarg f1) +{ + x->maxY = f1; +} + +void masse2D_force(t_masse2D *x, t_floatarg f1, t_floatarg f2) +{ + x->forceX = x->forceX+f1; + x->forceY = x->forceY+f2; +} + +void masse2D_displace(t_masse2D *x, t_floatarg f1, t_floatarg f2) +{ + x->dX += f1; + x->dY += f2; +} + +void masse2D_damp(t_masse2D *x, t_floatarg f1) +{ + x->damp = f1; +} + +void masse2D_dX(t_masse2D *x, t_floatarg f1) +{ + x->dX += f1; +} + +void masse2D_dY(t_masse2D *x, t_floatarg f1) +{ + x->dY += f1; +} + +void masse2D_bang(t_masse2D *x) +{ + t_float posX_new, posY_new, vX=1, vY=1; + if (x->onoff != 0) + { + + if (x->seuil > 0) + { + if (x->posY_old_1 == x->minY) // si on est en dehors de la structure -> frottement sec sur les bords + { + if (fabs(x->forceX)<=(x->seuil * -(x->forceY))) + vX = 0; // on est a l'interieur du cone de frotement, + } + + if (x->posY_old_1 == x->maxY) // si on est en dehors de la structure -> frottement sec sur les bords + { + if (fabs(x->forceX)<=(x->seuil * (x->forceY))) + vX = 0; // on est a l'interieur du cone de frotement, + } + + if (x->posX_old_1 == x->minX) // si on est en dehors de la structure -> frottement sec sur les bords + { + if (fabs(x->forceX)<=(x->seuil * -(x->forceY))) + vY = 0; // on est a l'interieur du cone de frotement, + } + + if (x->posX_old_1 == x->maxX) // si on est en dehors de la structure -> frottement sec sur les bords + { + if (fabs(x->forceX)<=(x->seuil * (x->forceY))) + vY = 0; // on est a l'interieur du cone de frotement, + } + } + + x->forceX += x->damp * ((x->posX_old_2)-(x->posX_old_1)); + x->forceY += x->damp * ((x->posY_old_2)-(x->posY_old_1)); // damping + + + if (x->masse2D != 0) + { + posX_new = x->forceX/x->masse2D + 2*x->posX_old_1 - x->posX_old_2; + posY_new = x->forceY/x->masse2D + 2*x->posY_old_1 - x->posY_old_2; + } + else + { + posX_new = x->posX_old_1; + posY_new = x->posY_old_1; + } + + if (vX==0) + posX_new = x->posX_old_1; // on n'a pas de mv qd on est a l'interieur du cone de frotement + if (vY==0) + posY_new = x->posY_old_1; + + posX_new = max(min(posX_new, x->maxX), x->minX); + posY_new = max(min(posY_new, x->maxY), x->minY); + + posX_new += x->dX; + posY_new += x->dY; + + x->posX_old_1 += x->dX; // pour eviter l'inertie + x->posY_old_1 += x->dY; + + SETFLOAT(&(x->pos_new[0]), posX_new ); + SETFLOAT(&(x->pos_new[1]), posY_new ); + + x->posX_old_2 = x->posX_old_1; + x->posX_old_1 = posX_new; + + x->posY_old_2 = x->posY_old_1; + x->posY_old_1 = posY_new; + + SETFLOAT(&(x->force[0]), x->forceX ); + SETFLOAT(&(x->force[1]), x->forceY ); + SETFLOAT(&(x->force[2]), sqrt( (x->forceX * x->forceX) + (x->forceY * x->forceY) )); + + x->forceX=0; + x->forceY=0; + + x->dX=0; + x->dY=0; + + x->VX = x->posX_old_1 - x->posX_old_2; + x->VY = x->posY_old_1 - x->posY_old_2; + + SETFLOAT(&(x->vitesse[0]), x->VX ); + SETFLOAT(&(x->vitesse[1]), x->VY ); + SETFLOAT(&(x->vitesse[2]), sqrt( (x->VX * x->VX) + (x->VY * x->VY) )); + + outlet_anything(x->vitesse_out, gensym("velocity2D"), 3, x->vitesse); + outlet_anything(x->force_out, gensym("force2D"), 3, x->force); + outlet_anything(x->position2D_new, gensym("position2D"), 2, x->pos_new); + } +} + +void masse2D_reset(t_masse2D *x) +{ + x->posX_old_2 = x->Xinit; + x->posX_old_1 = x->Xinit; + x->forceX=0; + + x->posY_old_2 = x->Yinit; + x->posY_old_1 = x->Yinit; + x->forceY=0; + + x->VX = 0; + x->VY = 0; + + x->dX=0; + x->dY=0; + + x->seuil=0; + + x->onoff = 1; + + SETFLOAT(&(x->pos_new[0]), x->Xinit ); + SETFLOAT(&(x->pos_new[1]), x->Yinit ); + + SETFLOAT(&(x->force[0]), 0 ); + SETFLOAT(&(x->force[1]), 0 ); + SETFLOAT(&(x->force[2]), 0 ); + + SETFLOAT(&(x->vitesse[0]), 0 ); + SETFLOAT(&(x->vitesse[1]), 0 ); + SETFLOAT(&(x->vitesse[2]), 0 ); + + outlet_anything(x->vitesse_out, gensym("velocity2D"), 3, x->vitesse); + outlet_anything(x->force_out, gensym("force2D"), 3, x->force); + outlet_anything(x->position2D_new, gensym("position2D"), 2, x->pos_new); +} + +void masse2D_resetf(t_masse2D *x) +{ + x->dX=0; + x->dY=0; + + x->forceX=0; + x->forceY=0; +} + +void masse2D_setXY(t_masse2D *x, t_float posX, t_float posY) +{ + x->posX_old_2 = posX; + x->posX_old_1 = posX; + x->forceX=0; + + x->posY_old_2 = posY; + x->posY_old_1 = posY; + x->forceY=0; + + SETFLOAT(&(x->pos_new[0]), posX ); + SETFLOAT(&(x->pos_new[1]), posY ); + + outlet_anything(x->position2D_new, gensym("position2D"), 2, x->pos_new); +} + +void masse2D_setX(t_masse2D *x, t_float posX) +{ + x->posX_old_2 = posX; + x->posX_old_1 = posX; + x->forceX=0; + + SETFLOAT(&(x->pos_new[0]), posX ); + + outlet_anything(x->position2D_new, gensym("position2D"), 2, x->pos_new); +} + +void masse2D_setY(t_masse2D *x, t_float posY) +{ + x->posY_old_2 = posY; + x->posY_old_1 = posY; + x->forceY=0; + + SETFLOAT(&(x->pos_new[1]), posY ); + + outlet_anything(x->position2D_new, gensym("position2D"), 2, x->pos_new); +} + +void masse2D_loadbang(t_masse2D *x) +{ + outlet_anything(x->position2D_new, gensym("position2D"), 2, x->pos_new); +} + + +void masse2D_set_masse2D(t_masse2D *x, t_float mass) +{ + x->masse2D=mass; +} + +void masse2D_inter_ambient(t_masse2D *x, t_symbol *s, int argc, t_atom *argv) +{ + if (argc == 12) + // 0 : FX + // 1 : FY + // 2 : RndX + // 3 : RndY + // 4 : D2 + // 5 : rien + // 6 : Xmin + // 7 : Xmax + // 8 : Ymin + // 9 : Ymax + // 10 : dX + // 11 : dY + { + if (x->posX_old_1 > atom_getfloatarg(6, argc, argv)) + { + if (x->posX_old_1 < atom_getfloatarg(7, argc, argv)) + { + if (x->posY_old_1 > atom_getfloatarg(8, argc, argv)) + { + if (x->posY_old_1 < atom_getfloatarg(9, argc, argv)) + { + x->forceX += atom_getfloatarg(0, argc, argv); + x->forceY += atom_getfloatarg(1, argc, argv); // constant + + x->forceX += random_bang(x)*atom_getfloatarg(2, argc, argv); + x->forceY += random_bang(x)*atom_getfloatarg(3, argc, argv); // random + + x->forceX += atom_getfloatarg(4, argc, argv) * ((x->posX_old_2)-(x->posX_old_1)); + x->forceY += atom_getfloatarg(4, argc, argv) * ((x->posY_old_2)-(x->posY_old_1)); // damping + + x->dX += atom_getfloatarg(10, argc, argv); + x->dY += atom_getfloatarg(11, argc, argv); // constant + } + } + } + } + } + else + { + error("bad ambient interraction message"); + } +} + +void masse2D_inter_seg(t_masse2D *x, t_symbol *s, int argc, t_atom *argv) +{ +t_float a1, b1, c1, a2, b2, c2, a3, b3, c3, tmp; +t_float posx1, posx2, posy1, posy2; +t_float profondeur, prof_max; + + if (argc == 12) + // 0 : posx1 + // 1 : posy1 + // 2 : posx2 + // 3 : posy2 + // 4 : profondeur max + // 5 : F CT Normal + // 6 : F CT Tengentiel + // 7 : K normal + // 8 : Damp2 normal + // 9 : Damp2 tan + // 10 : displacement Normal + // 11 : d Tan + + { + posx1 = atom_getfloatarg(0, argc, argv); + posy1 = atom_getfloatarg(1, argc, argv); + posx2 = atom_getfloatarg(2, argc, argv); + posy2 = atom_getfloatarg(3, argc, argv); + + b1 = posx2 - posx1; + a1 = -posy2 + posy1; + + if (!((a1==0) & (b1==0))) + { + + tmp = sqrt((a1*a1)+(b1*b1)); // = longueur du vecteur pour renormalisation + if (tmp !=0) + { + a1 = a1/tmp; + b1 = b1/tmp; + } + else + { + a1 = 0; + b1 = 0; + } + + c1 = a1*posx1+b1*posy1; + + profondeur = ( (a1 * x->posX_old_1) + (b1 * x->posY_old_1) ) - c1; + + if ( ( profondeur < 0) & (profondeur > - atom_getfloatarg(4, argc, argv)) ) + { + a2 = b1; + b2 = -a1; + c2 = a2*posx1+b2*posy1; + if (( (a2 * x->posX_old_1) + (b2 * x->posY_old_1) ) > c2) + { + a3 = a2; + b3 = b2; + c3 = a3*posx2+b3*posy2; + if (( (a3 * x->posX_old_1) + (b3 * x->posY_old_1) ) < c3) + { + tmp = atom_getfloatarg(5, argc, argv); // force ct normal + x->forceX += tmp * a1; + x->forceY += tmp * b1; + + tmp = atom_getfloatarg(6, argc, argv); // force ct normal + x->forceX -= tmp * b1; + x->forceY -= tmp * -a1; + + tmp = atom_getfloatarg(7, argc, argv); // force K normal + tmp *= profondeur; + x->forceX -= tmp * a1; + x->forceY -= tmp * b1; + + tmp = atom_getfloatarg(8, argc, argv); // damping2 normal + tmp *= ( x->VX * a1 + x->VY * b1 ); + x->forceX -= tmp * a1 ; + x->forceY -= tmp * b1 ; + + tmp = atom_getfloatarg(9, argc, argv); // damping2 tangentiel + tmp *= ( x->VX * b1 - x->VY * a1 ); + x->forceX -= tmp * b1 ; + x->forceY -= tmp * -a1 ; + + tmp = atom_getfloatarg(10, argc, argv); // displacement normal + x->dX += tmp * a1 ; + x->dY += tmp * b1 ; + + tmp = atom_getfloatarg(11, argc, argv); // displacement tengentiel + x->dX -= tmp * b1 ; + x->dY -= tmp * -a1 ; + } + } + } + } + } + else + { + error("bad interact_2D_segment message"); + } +} + +void masse2D_inter_line(t_masse2D *x, t_symbol *s, int argc, t_atom *argv) +{ +t_float a1, b1, c1, tmp; +t_float posx1, posx2, posy1, posy2; +t_float profondeur, prof_max; + + if (argc == 12) + // 0 : posx1 + // 1 : posy1 + // 2 : posx2 + // 3 : posy2 + // 4 : profondeur max + // 5 : F CT Normal + // 6 : F CT Tengentiel + // 7 : K normal + // 8 : Damp2 normal + // 9 : Damp2 tan + // 10 : d normal + // 11 : d tengential + { + posx1 = atom_getfloatarg(0, argc, argv); + posy1 = atom_getfloatarg(1, argc, argv); + posx2 = atom_getfloatarg(2, argc, argv); + posy2 = atom_getfloatarg(3, argc, argv); + + b1 = posx2 - posx1; + a1 = -posy2 + posy1; + + if (!((a1==0) & (b1==0))) + { + tmp = sqrt((a1*a1)+(b1*b1)); // = longueur du vecteur pour renormalisation + a1 = a1/tmp; // composante X de la normal + b1 = b1/tmp; // composante Y de la normal + c1 = a1*posx1+b1*posy1; // + + profondeur = ( (a1 * x->posX_old_1) + (b1 * x->posY_old_1) ) - c1; + if ( ( profondeur < 0) & (profondeur > - atom_getfloatarg(4, argc, argv)) ) + { + tmp = atom_getfloatarg(5, argc, argv); // force ct normal + x->forceX += tmp * a1; + x->forceY += tmp * b1; + + tmp = atom_getfloatarg(6, argc, argv); // force ct tengentiel + x->forceX -= tmp * b1; + x->forceY -= tmp * -a1; + + tmp = atom_getfloatarg(7, argc, argv); // force K normal + tmp *= profondeur ; + x->forceX -= tmp * a1; + x->forceY -= tmp * b1; + + tmp = atom_getfloatarg(8, argc, argv); // damping2 normal + tmp *= ( x->VX * a1 + x->VY * b1 ) ; + x->forceX -= tmp * a1 ; + x->forceY -= tmp * b1 ; + + tmp = atom_getfloatarg(9, argc, argv); // damping2 tangentiel + tmp *= ( x->VX * b1 - x->VY * a1 ); + x->forceX -= tmp * b1 ; + x->forceY -= tmp * -a1 ; + + tmp = atom_getfloatarg(10, argc, argv); // d normal + x->dX += tmp * a1; + x->dY += tmp * b1; + + tmp = atom_getfloatarg(11, argc, argv); // d tangentiel + x->dX -= tmp * b1; + x->dY -= tmp * -a1; + } + } + } + else + { + error("bad interact_2D_line message"); + } +} + +void masse2D_inter_circle(t_masse2D *x, t_symbol *s, int argc, t_atom *argv) +{ +t_float posx1, posy1, Nx, Ny, dx, dy, distance, Dmax, tmp; +t_float deltaX_old, deltaY_old, distance_old ; +t_float fnx=0, fny=0; +t_float ftx=0, fty=0; + + if (argc == 20) + // 0 : Xcentre + // 1 : Ycendre + // 2 : Rmin + // 3 : Rmax + // 4 : F normal + // 5 : F tangentiel + // 6 : K normal + // 7 : K tengentiel + // 8 : F normal proportionel a 1/R + // 9 : F tengentiel proportionel a 1/R + // 10 : Damp2 normal + // 11 : Damp2 tan + // 12 : deplacement N proportionel a 1/R + // 13 : deplacement tengentiel proportionel a 1/R + // 14 : position ancienne de l'interacteur en X + // 15 : position abcienne de l'interacteur en Y + // 16 : damping de liaison + // 17 : F normal proportionel a 1/R*R + // 18 : normal displacement + // 19 : tengential displacement + + { + posx1 = atom_getfloatarg(0, argc, argv); + posy1 = atom_getfloatarg(1, argc, argv); + Nx = (x->posX_old_1)-posx1; // vecteur deplacement X + Ny = (x->posY_old_1)-posy1; // vecteur deplacement Y + + distance = sqrt((Nx * Nx)+(Ny * Ny)); // distance entre le centre de l'interaction, et le pts + + Dmax= atom_getfloatarg(3, argc, argv); // distance max de l'interaction + if ( (distance > atom_getfloatarg(2, argc, argv)) & (distance < Dmax) ) + { + Nx = Nx/distance; // composante X de la normal (normalisé) + Ny = Ny/distance; // composante Y de la normal. + + tmp = atom_getfloatarg(4, argc, argv); // force constante normal +// x->forceX += tmp * Nx; +// x->forceY += tmp * Ny; + fnx +=tmp; +// fny +=tmp; + + tmp = atom_getfloatarg(5, argc, argv); // force constante tengentiel +// x->forceX += tmp * Ny; +// x->forceY += tmp * -Nx; + ftx +=tmp; +// fty +=tmp; + + tmp = atom_getfloatarg(6, argc, argv); // force variable (K) normal + tmp *= ( Dmax-distance ); +// x->forceX += tmp * Nx ; +// x->forceY += tmp * Ny ; + fnx +=tmp; +// fny +=tmp; + + tmp = atom_getfloatarg(7, argc, argv); // force variable (K) tengentiel + tmp *= ( Dmax-distance ); +// x->forceX += tmp * Ny ; +// x->forceY += tmp * -Nx ; + ftx +=tmp; +// fty +=tmp; + + tmp = atom_getfloatarg(8, argc, argv); // force normal proportionel a 1/r + if (distance != 0) + { + tmp /= distance; +// x->forceX += tmp * Nx ; +// x->forceY += tmp * Ny ; + fnx +=tmp; +// fny +=tmp; + } + + tmp = atom_getfloatarg(9, argc, argv); // force tengentiel proportionel a 1/r + if (distance != 0) + { + tmp /= distance; +// x->forceX -= tmp * Ny ; +// x->forceY -= tmp * -Nx ; + ftx -=tmp; +// fty -=tmp; + } + + tmp = atom_getfloatarg(10, argc, argv); // damping2 normal + tmp *= ( x->VX * Nx + x->VY * Ny ); +// x->forceX -= tmp * Nx ; +// x->forceY -= tmp * Ny ; + fnx -=tmp; +// fny -=tmp; + + tmp = atom_getfloatarg(11, argc, argv); // damping2 tangentiel + tmp *= ( x->VX * Ny - x->VY * Nx ); +// x->forceX -= tmp * Ny ; +// x->forceY -= tmp * -Ny ; + ftx -=tmp; +// fty -=tmp; + + tmp = atom_getfloatarg(12, argc, argv); // d normal + if (distance != 0) + { + tmp /= distance; + x->dX += tmp * Nx ; + x->dY += tmp * Ny ; + } + + tmp = atom_getfloatarg(13, argc, argv); // d tangentiel + if (distance != 0) + { + tmp /= distance; + + x->dX -= tmp * Ny ; + x->dY -= tmp * -Nx ; + } + + tmp = atom_getfloatarg(16, argc, argv); // damping de liaison + if (tmp!= 0) + { + deltaX_old = atom_getfloatarg(14, argc, argv) - x->posX_old_2; + deltaY_old = atom_getfloatarg(15, argc, argv) - x->posY_old_2; + distance_old = sqrt( (deltaX_old * deltaX_old) + (deltaY_old * deltaY_old)); + +// x->forceX -= Nx * tmp * (distance - distance_old); +// x->forceY -= Ny * tmp * (distance - distance_old); + + tmp *= (distance - distance_old); + fnx -=tmp; +// fny -=tmp; + } + + tmp = atom_getfloatarg(17, argc, argv); // force normal proportionel a 1/r2 + if (distance != 0) + { + tmp /= (distance*distance); +// x->forceX -= tmp * Nx; +// x->forceY -= tmp * Ny; + fnx +=tmp; +// fny +=tmp; + } + + tmp = atom_getfloatarg(18, argc, argv); // deplacement constante normal + x->dX += tmp * Nx; + x->dY += tmp * Ny; + + tmp = atom_getfloatarg(19, argc, argv); // deplacement constante tengentiel + x->dX -= tmp * Ny; + x->dY -= tmp * -Nx; + + x->forceX += fnx * Nx + ftx * Ny; // optimisation, but does not change anything... + x->forceY += fnx * Ny - ftx * Nx; + } + } + else + { + error("bad interact_2D_circle message"); + } +} + +void *masse2D_new(t_symbol *s, int argc, t_atom *argv) +{ + + t_masse2D *x = (t_masse2D *)pd_new(masse2D_class); + + x->x_sym = atom_getsymbolarg(0, argc, argv); + x->x_state = makeseed(); + + pd_bind(&x->x_obj.ob_pd, atom_getsymbolarg(0, argc, argv)); + + x->position2D_new=outlet_new(&x->x_obj, 0); + x->force_out=outlet_new(&x->x_obj, 0); + x->vitesse_out=outlet_new(&x->x_obj, 0); + + x->forceX=0; + x->forceY=0; + + if (argc >= 2) + x->masse2D = atom_getfloatarg(1, argc, argv) ; + else + x->masse2D = 1; + + x->onoff = 1; + + x->VX = 0; + x->VY = 0; + + x->dX=0; + x->dY=0; + + if (argc >= 3) + x->Xinit = atom_getfloatarg(2, argc, argv); + else + x->Xinit = 0 ; + + x->posX_old_1 = x->Xinit ; + x->posX_old_2 = x->Xinit; + SETFLOAT(&(x->pos_new[0]), x->Xinit); + + if (argc >= 4) + x->Yinit = atom_getfloatarg(3, argc, argv); + else + x->Yinit = 0 ; + + x->posY_old_1 = x->Yinit ; + x->posY_old_2 = x->Yinit; + SETFLOAT(&(x->pos_new[1]), x->Yinit); + + if (argc >= 5) + x->minX = atom_getfloatarg(4, argc, argv) ; + else + x->minX = -100000; + + if (argc >= 6) + x->maxX = atom_getfloatarg(5, argc, argv) ; + else + x->maxX = 100000; + + if (argc >= 7) + x->minY = atom_getfloatarg(6, argc, argv) ; + else + x->minY = -100000; + + if (argc >= 8) + x->maxY = atom_getfloatarg(7, argc, argv) ; + else + x->maxY = 100000; + + if (argc >= 9) + x->seuil = atom_getfloatarg(8, argc, argv) ; + else + x->seuil = 0; + + if (argc >= 10) + x->damp = atom_getfloatarg(9, argc, argv) ; + else + x->damp = 0; + + return (x); +} + +static void masse2D_free(t_masse2D *x) +{ + pd_unbind(&x->x_obj.ob_pd, x->x_sym); +} + +void masse2D_setup(void) +{ + + masse2D_class = class_new(gensym("masse2D"), + (t_newmethod)masse2D_new, + (t_method)masse2D_free, sizeof(t_masse2D), + CLASS_DEFAULT, A_GIMME, 0); + + class_addcreator((t_newmethod)masse2D_new, gensym("mass2D"), A_GIMME, 0); + class_addcreator((t_newmethod)masse2D_new, gensym("pmpd.mass2D"), A_GIMME, 0); + + class_addbang(masse2D_class, masse2D_bang); + + class_addmethod(masse2D_class, (t_method)masse2D_force, gensym("force2D"),A_DEFFLOAT, A_DEFFLOAT, 0); + class_addmethod(masse2D_class, (t_method)masse2D_displace, gensym("dXY"),A_DEFFLOAT, A_DEFFLOAT, 0); + class_addmethod(masse2D_class, (t_method)masse2D_dX, gensym("dX"),A_DEFFLOAT, 0); + class_addmethod(masse2D_class, (t_method)masse2D_dY, gensym("dY"),A_DEFFLOAT, 0); + + class_addmethod(masse2D_class, (t_method)masse2D_inter_ambient, gensym("interactor_ambient_2D"), A_GIMME, 0); + class_addmethod(masse2D_class, (t_method)masse2D_inter_line, gensym("interactor_line_2D"), A_GIMME, 0); + class_addmethod(masse2D_class, (t_method)masse2D_inter_seg, gensym("interactor_segment_2D"), A_GIMME, 0); + class_addmethod(masse2D_class, (t_method)masse2D_inter_circle, gensym("interactor_circle_2D"), A_GIMME, 0); + + class_addmethod(masse2D_class, (t_method)masse2D_seuil, gensym("setT"), A_DEFFLOAT, 0); + class_addmethod(masse2D_class, (t_method)masse2D_set_masse2D, gensym("setM"), A_DEFFLOAT, 0); + class_addmethod(masse2D_class, (t_method)masse2D_setX, gensym("setX"), A_DEFFLOAT, 0); + class_addmethod(masse2D_class, (t_method)masse2D_setY, gensym("setY"), A_DEFFLOAT, 0); + class_addmethod(masse2D_class, (t_method)masse2D_minX, gensym("setXmin"), A_DEFFLOAT, 0); + class_addmethod(masse2D_class, (t_method)masse2D_minY, gensym("setYmin"), A_DEFFLOAT, 0); + class_addmethod(masse2D_class, (t_method)masse2D_maxX, gensym("setXmax"), A_DEFFLOAT, 0); + class_addmethod(masse2D_class, (t_method)masse2D_maxY, gensym("setYmax"), A_DEFFLOAT, 0); + class_addmethod(masse2D_class, (t_method)masse2D_setXY, gensym("setXY"), A_DEFFLOAT, A_DEFFLOAT, 0); + class_addmethod(masse2D_class, (t_method)masse2D_damp, gensym("setD"), A_DEFFLOAT, 0); + class_addmethod(masse2D_class, (t_method)masse2D_on, gensym("on"), 0); + class_addmethod(masse2D_class, (t_method)masse2D_off, gensym("off"), 0); + class_addmethod(masse2D_class, (t_method)masse2D_reset, gensym("reset"), 0); + class_addmethod(masse2D_class, (t_method)masse2D_resetf, gensym("resetF"), 0); + class_addmethod(masse2D_class, (t_method)masse2D_loadbang, gensym("loadbang"), 0); + +} diff --git a/src/masse3D.c b/src/masse3D.c new file mode 100755 index 0000000..68dda3b --- /dev/null +++ b/src/masse3D.c @@ -0,0 +1,1093 @@ +#include "m_pd.h" +#include "math.h" + +static t_class *masse3D_class; + +extern t_float max(t_float, t_float); +extern t_float min(t_float, t_float); + + +typedef struct _masse3D { + t_object x_obj; + t_float posX_old_1, posX_old_2, posY_old_1, posY_old_2, posZ_old_1, posZ_old_2; + t_float Xinit, Yinit, Zinit, forceX, forceY, forceZ, VX, VY, VZ, dX, dY, dZ; + t_float masse3D, seuil, onoff, damp; + t_atom pos_new[3], vitesse[4], force[4]; + t_float minX, maxX, minY, maxY, minZ, maxZ; + t_outlet *position3D_new, *vitesse_out, *force_out; + t_symbol *x_sym; // receive + unsigned int x_state; // random + t_float x_f; // random +} t_masse3D; + +void masse3D_on(t_masse3D *x) +{ + x->onoff = 1; +} + +void masse3D_off(t_masse3D *x) +{ + x->onoff = 0; +} + +void masse3D_minX(t_masse3D *x, t_floatarg f1) +{ + x->minX = f1; +} + +void masse3D_maxX(t_masse3D *x, t_floatarg f1) +{ + x->maxX = f1; +} + +void masse3D_minY(t_masse3D *x, t_floatarg f1) +{ + x->minY = f1; +} + +void masse3D_maxY(t_masse3D *x, t_floatarg f1) +{ + x->maxY = f1; +} + +void masse3D_minZ(t_masse3D *x, t_floatarg f1) +{ + x->minZ = f1; +} + +void masse3D_maxZ(t_masse3D *x, t_floatarg f1) +{ + x->maxZ = f1; +} + +void masse3D_seuil(t_masse3D *x, t_floatarg f1) +{ + x->seuil = f1; +} + +void masse3D_damp(t_masse3D *x, t_floatarg f1) +{ + x->damp = f1; +} + +void masse3D_loadbang(t_masse3D *x, t_float posZ) +{ + outlet_anything(x->position3D_new, gensym("position3D"), 3, x->pos_new); +} + +void masse3D_setX(t_masse3D *x, t_float posX) +{ + + x->posX_old_2 = posX; + x->posX_old_1 = posX; + x->forceX=0; + + SETFLOAT(&(x->pos_new[0]), posX); + + outlet_anything(x->position3D_new, gensym("position3D"), 3, x->pos_new); + +} + +void masse3D_setY(t_masse3D *x, t_float posY) +{ + x->posY_old_2 = posY; + x->posY_old_1 = posY; + x->forceY=0; + + SETFLOAT(&(x->pos_new[1]), posY); + + outlet_anything(x->position3D_new, gensym("position3D"), 3, x->pos_new); + +} + +void masse3D_setZ(t_masse3D *x, t_float posZ) +{ + x->posZ_old_2 = posZ; + x->posZ_old_1 = posZ; + x->forceZ=0; + + SETFLOAT(&(x->pos_new[2]), posZ); + + outlet_anything(x->position3D_new, gensym("position3D"), 3, x->pos_new); + +} + +void masse3D_setXYZ(t_masse3D *x, t_float posX, t_float posY, t_float posZ) +{ + + x->posX_old_2 = posX; + x->posX_old_1 = posX; + x->forceX=0; + + x->posY_old_2 = posY; + x->posY_old_1 = posY; + x->forceY=0; + + x->posZ_old_2 = posZ; + x->posZ_old_1 = posZ; + x->forceZ=0; + + SETFLOAT(&(x->pos_new[0]), posX); + SETFLOAT(&(x->pos_new[1]), posY); + SETFLOAT(&(x->pos_new[2]), posZ); + + outlet_anything(x->position3D_new, gensym("position3D"), 3, x->pos_new); +} + +void masse3D_set_masse3D(t_masse3D *x, t_float mass) +{ + x->masse3D=mass; +} + + +void masse3D_force(t_masse3D *x, t_floatarg f1, t_floatarg f2, t_floatarg f3) +{ + x->forceX = x->forceX+f1; + x->forceY = x->forceY+f2; + x->forceZ = x->forceZ+f3; +} + +void masse3D_dXYZ(t_masse3D *x, t_floatarg f1, t_floatarg f2, t_floatarg f3) +{ + x->dX += f1; + x->dY += f2; + x->dZ += f3; +} + +void masse3D_dX(t_masse3D *x, t_floatarg f1 ) +{ + x->dX += f1; +} + +void masse3D_dY(t_masse3D *x, t_floatarg f1 ) +{ + x->dY += f1; +} + +void masse3D_dZ(t_masse3D *x, t_floatarg f1 ) +{ + x->dZ += f1; +} + +void masse3D_bang(t_masse3D *x) +{ + t_float posX_new, posY_new, posZ_new, vX=1, vY=1, vZ=1; + if (x->onoff != 0) + { + + if (x->seuil > 0) + { + if (x->posZ_old_1 == x->minZ) // si on est en dehors de la structure -> frottement sec sur les bords + { + if (sqrt(x->forceX*x->forceX + x->forceY*x->forceY)<=(x->seuil * -(x->forceZ))) + { + vX = 0; // on est a l'interieur du cone de frotement, + vY = 0; // on est a l'interieur du cone de frotement, + } + } + + if (x->posZ_old_1 == x->maxZ) // si on est en dehors de la structure -> frottement sec sur les bords + { + if (sqrt(x->forceX*x->forceX + x->forceY*x->forceY)<=(x->seuil * (x->forceZ))) + { + vX = 0; // on est a l'interieur du cone de frotement, + vY = 0; // on est a l'interieur du cone de frotement, + } + } + + if (x->posY_old_1 == x->minY) // si on est en dehors de la structure -> frottement sec sur les bords + { + if (sqrt(x->forceX*x->forceX + x->forceZ*x->forceZ)<=(x->seuil * -(x->forceY))) + { + vX = 0; // on est a l'interieur du cone de frotement, + vZ = 0; // on est a l'interieur du cone de frotement, + } + } + + if (x->posY_old_1 == x->maxY) // si on est en dehors de la structure -> frottement sec sur les bords + { + if (sqrt(x->forceX*x->forceX + x->forceZ*x->forceZ)<=(x->seuil * (x->forceY))) + { + vX = 0; // on est a l'interieur du cone de frotement, + vZ = 0; // on est a l'interieur du cone de frotement, + } + } + + if (x->posX_old_1 == x->minX) // si on est en dehors de la structure -> frottement sec sur les bords + { + if (sqrt(x->forceY*x->forceY + x->forceZ*x->forceZ)<=(x->seuil * -(x->forceX))) + { + vY = 0; // on est a l'interieur du cone de frotement, + vZ = 0; // on est a l'interieur du cone de frotement, + } + } + + if (x->posX_old_1 == x->maxX) // si on est en dehors de la structure -> frottement sec sur les bords + { + if (sqrt(x->forceY*x->forceY + x->forceZ*x->forceZ)<=(x->seuil * (x->forceX))) + { + vY = 0; // on est a l'interieur du cone de frotement, + vZ = 0; // on est a l'interieur du cone de frotement, + } + } + } + + x->forceX += x->damp * ((x->posX_old_2)-(x->posX_old_1)); + x->forceY += x->damp * ((x->posY_old_2)-(x->posY_old_1)); // damping + x->forceZ += x->damp * ((x->posZ_old_2)-(x->posZ_old_1)); // damping + + if (!(x->masse3D == 0)) + { + posX_new = x->forceX/x->masse3D + 2*x->posX_old_1 - x->posX_old_2; + posY_new = x->forceY/x->masse3D + 2*x->posY_old_1 - x->posY_old_2; + posZ_new = x->forceZ/x->masse3D + 2*x->posZ_old_1 - x->posZ_old_2; + } + else + { + posX_new = x->posX_old_1; + posY_new = x->posY_old_1; + posZ_new = x->posY_old_1; + } + + + if (vX==0) + posX_new = x->posX_old_1; // on n'a pas de mv qd on est a l'interieur du cone de frotement + if (vY==0) + posY_new = x->posY_old_1; + if (vZ==0) + posZ_new = x->posZ_old_1; + + posX_new = max(min(x->maxX, posX_new), x->minX); + posY_new = max(min(x->maxY, posY_new), x->minY); + posZ_new = max(min(x->maxZ, posZ_new), x->minZ); + + + posX_new += x->dX; + posY_new += x->dY; + posZ_new += x->dZ; + + x->posX_old_1 += x->dX; + x->posY_old_1 += x->dY; + x->posZ_old_1 += x->dZ; + + SETFLOAT(&(x->pos_new[0]), posX_new ); + SETFLOAT(&(x->pos_new[1]), posY_new ); + SETFLOAT(&(x->pos_new[2]), posZ_new ); + + x->posX_old_2 = x->posX_old_1; + x->posX_old_1 = posX_new; + + x->posY_old_2 = x->posY_old_1; + x->posY_old_1 = posY_new; + + x->posZ_old_2 = x->posZ_old_1; + x->posZ_old_1 = posZ_new; + + SETFLOAT(&(x->force[0]), x->forceX ); + SETFLOAT(&(x->force[1]), x->forceY ); + SETFLOAT(&(x->force[2]), x->forceZ ); + SETFLOAT(&(x->force[3]), sqrt( (x->forceX * x->forceX) + (x->forceY * x->forceY) + (x->forceZ * x->forceZ) )); + + x->forceX=0; + x->forceY=0; + x->forceZ=0; + + x->dX=0; + x->dY=0; + x->dZ=0; + + x->VX = x->posX_old_1 - x->posX_old_2; + x->VY = x->posY_old_1 - x->posY_old_2; + x->VZ = x->posZ_old_1 - x->posZ_old_2; + + SETFLOAT(&(x->vitesse[0]), x->VX ); + SETFLOAT(&(x->vitesse[1]), x->VY ); + SETFLOAT(&(x->vitesse[2]), x->VZ ); + SETFLOAT(&(x->vitesse[3]), sqrt( (x->VX * x->VX) + (x->VY * x->VY) + (x->VZ * x->VZ) )); + + outlet_anything(x->vitesse_out, gensym("velocity3D"), 4, x->vitesse); + outlet_anything(x->force_out, gensym("force3D"), 4, x->force); + outlet_anything(x->position3D_new, gensym("position3D"), 3, x->pos_new); + } +} + +void masse3D_reset(t_masse3D *x) +{ + + x->posX_old_2 = x->Xinit; + x->posX_old_1 = x->Xinit; + x->forceX=0; + + x->posY_old_2 = x->Yinit; + x->posY_old_1 = x->Yinit; + x->forceY=0; + + x->posZ_old_2 = x->Zinit; + x->posZ_old_1 = x->Zinit; + x->forceZ=0; + + x->VX = 0; + x->VY = 0; + x->VZ = 0; + + x->dX=0; + x->dY=0; + x->dZ=0; + + x->seuil=0; + + x->onoff = 1; + + SETFLOAT(&(x->pos_new[0]), x->Xinit ); + SETFLOAT(&(x->pos_new[1]), x->Yinit ); + SETFLOAT(&(x->pos_new[2]), x->Zinit ); + + SETFLOAT(&(x->force[0]), 0 ); + SETFLOAT(&(x->force[1]), 0 ); + SETFLOAT(&(x->force[2]), 0 ); + SETFLOAT(&(x->force[3]), 0 ); + + SETFLOAT(&(x->vitesse[0]), 0 ); + SETFLOAT(&(x->vitesse[1]), 0 ); + SETFLOAT(&(x->vitesse[2]), 0 ); + SETFLOAT(&(x->vitesse[3]), 0 ); + + outlet_anything(x->vitesse_out, gensym("velocity3D"), 4, x->vitesse); + outlet_anything(x->force_out, gensym("force3D"), 4, x->force); + outlet_anything(x->position3D_new, gensym("position3D"), 3, x->pos_new); + +} + + +void masse3D_resetf(t_masse3D *x) +{ + x->forceX=0; + x->forceY=0; + x->forceZ=0; + + x->dX=0; + x->dY=0; + x->dZ=0; +} + +static int makeseed3D(void) +{ + static unsigned int random_nextseed = 1489853723; + random_nextseed = random_nextseed * 435898247 + 938284287; + return (random_nextseed & 0x7fffffff); +} + +static float random_bang3D(t_masse3D *x) +{ + int nval; + int range = 2000000; + float rnd; + unsigned int randval = x->x_state; + x->x_state = randval = randval * 472940017 + 832416023; + nval = ((double)range) * ((double)randval) + * (1./4294967296.); + if (nval >= range) nval = range-1; + + rnd=nval; + + rnd-=1000000; + rnd=rnd/1000000.; //pour mettre entre -1 et 1; + return (rnd); +} + + +void masse3D_inter_ambient(t_masse3D *x, t_symbol *s, int argc, t_atom *argv) +{ + t_float tmp; + + if (argc == 17) + // 0 : FX + // 1 : FY + // 2 : FZ + // 3 : RndX + // 4 : RndY + // 5 : RndZ + // 6 : D2 + // 7 : rien + // 8 : Xmin + // 9 : Xmax + // 10 : Ymin + // 11 : Ymax + // 12 : Zmin + // 13 : Zmax + // 14 : dX + // 15 : dY + // 16 : dZ + { + if (x->posX_old_1 > atom_getfloatarg(8, argc, argv)) + { + if (x->posX_old_1 < atom_getfloatarg(9, argc, argv)) + { + if (x->posY_old_1 > atom_getfloatarg(10, argc, argv)) + { + if (x->posY_old_1 < atom_getfloatarg(11, argc, argv)) + { + if (x->posZ_old_1 > atom_getfloatarg(12, argc, argv)) + { + if (x->posZ_old_1 < atom_getfloatarg(13, argc, argv)) + { + x->forceX += atom_getfloatarg(0, argc, argv); + x->forceY += atom_getfloatarg(1, argc, argv); // constant + x->forceZ += atom_getfloatarg(2, argc, argv); // constant + + x->forceX += random_bang3D(x)*atom_getfloatarg(3, argc, argv); + x->forceY += random_bang3D(x)*atom_getfloatarg(4, argc, argv); // random + x->forceZ += random_bang3D(x)*atom_getfloatarg(5, argc, argv); // random + + tmp = atom_getfloatarg(6, argc, argv); + if (tmp != 0) + { + x->forceX += tmp * ((x->posX_old_2)-(x->posX_old_1)); + x->forceY += tmp * ((x->posY_old_2)-(x->posY_old_1)); // damping + x->forceZ += tmp * ((x->posZ_old_2)-(x->posZ_old_1)); // damping + } + + x->dX += atom_getfloatarg(14, argc, argv); + x->dY += atom_getfloatarg(15, argc, argv); // constant + x->dZ += atom_getfloatarg(16, argc, argv); // constant + } + } + } + } + } + } + } + else + { + error("bad ambient interraction message"); + } +} + +void masse3D_inter_plane(t_masse3D *x, t_symbol *s, int argc, t_atom *argv) +{ + t_float a, b, c, d, profondeur, distance, tmp, profondeur_old; + + if (argc == 12) + // 0 : Xvector + // 1 : Yvector + // 2 : Zvector + // 3 : Xcenter + // 4 : Ycenter + // 5 : Zcenter + // 6 : FNCt + // 7 : KN + // 8 : damping de liaison (profondeur) + // 9 : Profondeur maximum + // 10 : deplacement normal X + // 11 : deplacement proportionel a P + + { + +// ax+by+cz-d=0 +// a = Xvector / |V| +// b = Yvector ... +// d est tel que aXcenter +bYcenter + cYcenter = d + + a = atom_getfloatarg(0, argc, argv); + b = atom_getfloatarg(1, argc, argv); + c = atom_getfloatarg(2, argc, argv); + + tmp = sqrt (a*a + b*b + c*c); + if (tmp != 0) + { + a /= tmp; + b /= tmp; + c /= tmp; + + } + else + { + a=1; + b=0; + c=0; + } + + d = a * atom_getfloatarg(3, argc, argv) + b * atom_getfloatarg(4, argc, argv) + c * atom_getfloatarg(5, argc, argv); +//C a optimiser : envoyer directement les coef directeur et l'offset +//C a faire pour les autres obj aussi + + profondeur = a * x->posX_old_1 + b * x->posY_old_1 + c * x->posZ_old_1 - d; + + if ( (profondeur < 0) & (profondeur > -atom_getfloatarg(9, argc, argv)) ) + { + + tmp = atom_getfloatarg(6, argc, argv); // force normal constante + + x->forceX += tmp * a; + x->forceY += tmp * b; + x->forceZ += tmp * c; + + tmp = atom_getfloatarg(7, argc, argv); // force normal proportionelle a la profondeur + tmp *= profondeur; + x->forceX -= tmp * a; + x->forceY -= tmp * b; + x->forceZ -= tmp * c; + + tmp = atom_getfloatarg(8, argc, argv); // force normal proportionelle a la profondeur + + profondeur_old = a * x->posX_old_2 + b * x->posY_old_2 + c * x->posZ_old_2 - d; + tmp *= (profondeur - profondeur_old); + x->forceX -= tmp * a; + x->forceY -= tmp * b; + x->forceZ -= tmp * c; + + + tmp = atom_getfloatarg(10, argc, argv); // deplacement normal constant + + x->dX += tmp * a; + x->dY += tmp * b; + x->dZ += tmp * c; + + tmp = atom_getfloatarg(11, argc, argv); // deplacement normal proportionel + tmp *= profondeur; + + x->dX -= tmp * a; + x->dY -= tmp * b; + x->dZ -= tmp * c; + } + + } + else + { + error("bad plane interraction message"); + } +} + + +void masse3D_inter_sphere(t_masse3D *x, t_symbol *s, int argc, t_atom *argv) +{ +t_float posx1, posy1, posz1, Nx, Ny, Nz, dx, dy, dz, distance, Dmax, tmp; +t_float deltaX_old, deltaY_old, deltaZ_old, distance_old ; + + if (argc == 17) + // 0 : Xcentre + // 1 : Ycendre + // 2 : Zcentre + // 3 : Rmin + // 4 : Rmax + // 5 : F normal + // 6 : K normal + // 7 : F normal proportionel a 1/R + // 8 : Damp de liason normal + // 9 : deplacement N Ct + // 10 : position ancienne de l'interacteur en X + // 11 : position abcienne de l'interacteur en Y + // 12 : position abcienne de l'interacteur en Z + // 13 : d dormal proportionel a R + // 14 : force normal proportionel a 1/R2 + // 15 : d dormal proportionel a 1/R + // 16 : d dormal proportionel a 1/R*R + + { + posx1 = atom_getfloatarg(0, argc, argv); + posy1 = atom_getfloatarg(1, argc, argv); + posz1 = atom_getfloatarg(2, argc, argv); + Nx = (x->posX_old_1)-posx1; // vecteur deplacement X + Ny = (x->posY_old_1)-posy1; // vecteur deplacement Y + Nz = (x->posZ_old_1)-posz1; // vecteur deplacement Y + + distance = sqrt((Nx * Nx)+(Ny * Ny)+(Nz * Nz)); // distance entre le centre de l'interaction, et le pts + + Nx = Nx/distance; // composante X de la normal (normalisé) + Ny = Ny/distance; // composante Y de la normal. + Nz = Nz/distance; // composante Y de la normal. + + Dmax= atom_getfloatarg(4, argc, argv); // distance max de l'interaction + if ( (distance > atom_getfloatarg(3, argc, argv)) & (distance < Dmax) ) + { + tmp = atom_getfloatarg(5, argc, argv); // force constante normal + x->forceX += tmp * Nx; + x->forceY += tmp * Ny; + x->forceZ += tmp * Nz; + + tmp = atom_getfloatarg(6, argc, argv); // force variable (K) normal + tmp *= ( Dmax-distance ); + x->forceX += tmp * Nx ; + x->forceY += tmp * Ny ; + x->forceZ += tmp * Nz ; + + tmp = atom_getfloatarg(7, argc, argv); // force normal proportionel a 1/r + if ( (distance != 0) & (tmp != 0) ) + { + tmp /= distance; + x->forceX += tmp * Nx; + x->forceY += tmp * Ny; + x->forceZ += tmp * Nz ; + } + + tmp = atom_getfloatarg(8, argc, argv); // damping2 normal + tmp *= ( x->VX * Nx + x->VY * Ny + x->VZ * Nz ); + x->forceX -= tmp * Nx ; + x->forceY -= tmp * Ny ; + x->forceZ -= tmp * Nz ; + + tmp = atom_getfloatarg(9, argc, argv); // d normal + x->dX += tmp * Nx ; + x->dY += tmp * Ny ; + x->dZ += tmp * Nz ; + + tmp = atom_getfloatarg(13, argc, argv); // force normal proportionel a 1/r2 + if ( (distance != 0) & (tmp != 0) ) + { + tmp /= (distance * distance); + x->forceX += tmp * Nx ; + x->forceY += tmp * Ny ; + x->forceZ += tmp * Nz ; + } + + tmp = atom_getfloatarg(14, argc, argv); // deplacement variable (K) normal + tmp *= ( Dmax-distance ); + x->dX += tmp * Nx ; + x->dY += tmp * Ny ; + x->dZ += tmp * Nz ; + + tmp = atom_getfloatarg(15, argc, argv); // deplacement normal proportionel a 1/r + if ( (distance != 0) & (tmp != 0) ) + { + tmp /= distance; + x->dX += tmp * Nx ; + x->dY += tmp * Ny ; + x->dZ += tmp * Nz ; + } + + tmp = atom_getfloatarg(16, argc, argv); // deplacement normal proportionel a 1/r2 + if ( (distance != 0) & (tmp != 0) ) + { + tmp /= (distance * distance); + x->dX += tmp * Nx; + x->dY += tmp * Ny; + x->dZ += tmp * Nz; + } + + } + } + else + { + error("bad interact_3D_sphere message"); + } +} + + +void masse3D_inter_circle(t_masse3D *x, t_symbol *s, int argc, t_atom *argv) +{ + t_float a, b, c, d, profondeur, distance, tmp, profondeur_old, rayon, rayon_old; + + if (argc == 14) + // 0 : Xvector + // 1 : Yvector + // 2 : Zvector + // 3 : Xcenter + // 4 : Ycenter + // 5 : Zcenter + // 6 : Rmin + // 7 : RMax + // 8 : FNCt + // 9 : KN + // 10 : damping de liaison (profondeur) + // 11 : Profondeur maximum + // 12 : dN + // 13 : dKN + + { +// ax+by+cz-d=0 +// a = Xvector / |V| +// b = Yvector ... +// d est tel que aXcenter +bYcenter + cYcenter = d + + a = atom_getfloatarg(0, argc, argv); + b = atom_getfloatarg(1, argc, argv); + c = atom_getfloatarg(2, argc, argv); + + tmp = sqrt (a*a + b*b + c*c); + if (tmp != 0) + { + a /= tmp; + b /= tmp; + c /= tmp; + } + else + { + a=1; + b=0; + c=0; + } + + d = a * atom_getfloatarg(3, argc, argv) + b * atom_getfloatarg(4, argc, argv) + c * atom_getfloatarg(5, argc, argv); + + profondeur = a * x->posX_old_1 + b * x->posY_old_1 + c * x->posZ_old_1 - d; + + rayon = sqrt ( pow(x->posX_old_1-atom_getfloatarg(3, argc, argv), 2) +pow(x->posY_old_1-atom_getfloatarg(4, argc, argv) , 2) + pow(x->posZ_old_1 - atom_getfloatarg(5, argc, argv) , 2) - profondeur*profondeur ); + + if ( (profondeur < 0) & (profondeur > - atom_getfloatarg(11, argc, argv)) & (rayon > atom_getfloatarg(6, argc, argv)) & (rayon < atom_getfloatarg(7, argc, argv))) + { + + tmp = atom_getfloatarg(8, argc, argv); // force normal constante + + x->forceX += tmp * a; + x->forceY += tmp * b; + x->forceZ += tmp * c; + + tmp = atom_getfloatarg(9, argc, argv); // force normal proportionelle a la profondeur + tmp *= profondeur; + x->forceX -= tmp * a; + x->forceY -= tmp * b; + x->forceZ -= tmp * c; + + tmp = atom_getfloatarg(10, argc, argv); // force normal proportionelle a la profondeur + + profondeur_old = a * x->posX_old_2 + b * x->posY_old_2 + c * x->posZ_old_2 - d; + tmp *= (profondeur - profondeur_old); + + x->forceX -= tmp * a; + x->forceY -= tmp * b; + x->forceZ -= tmp * c; + + tmp = atom_getfloatarg(12, argc, argv); // deplacement normal constante + x->dX += tmp * a; + x->dY += tmp * b; + x->dZ += tmp * c; + + tmp = atom_getfloatarg(13, argc, argv); // deplacement normal proportionelle a la profondeur + tmp *= profondeur; + x->dX -= tmp * a; + x->dY -= tmp * b; + x->dZ -= tmp * c; + } + } + else + { + error("bad circle interraction message"); + } +} + + +void masse3D_inter_cylinder(t_masse3D *x, t_symbol *s, int argc, t_atom *argv) +{ + t_float a, b, c, d, profondeur, profondeur_old, distance, tmp, rayon_old, rayon; + t_float Xb, Yb, Zb, Ta, Tb, Tc, Xb_old, Yb_old, Zb_old; + + if (argc == 21) + // 0 : Xvector + // 1 : Yvector + // 2 : Zvector + // 3 : Xcenter + // 4 : Ycenter + // 5 : Zcenter + // 6 : Rmin + // 7 : Rmax + // 8 : FNCt + // 9 : KN + // 10 : damping de liaison (rayon) + // 11 : FN 1/R + // 12 : FN 1/R2 + // 13 : Pmin + // 14 : Pmax + // 15 : FTct + // 16 : KT + // 17 : dNct + // 18 : dTct + // 19 : dKN + // 20 : dKT + + { + +// ax+by+cz-d=0 +// a = Xvector / |V| +// b = Yvector ... +// d est tel que aXcenter +bYcenter + cYcenter = d + + a = atom_getfloatarg(0, argc, argv); + b = atom_getfloatarg(1, argc, argv); + c = atom_getfloatarg(2, argc, argv); + + tmp = sqrt (a*a + b*b + c*c); + if (tmp != 0) + { + a /= tmp; + b /= tmp; + c /= tmp; + } + else + { + a=1; + b=0; + c=0; + } + + d = a * atom_getfloatarg(3, argc, argv) + b * atom_getfloatarg(4, argc, argv) + c * atom_getfloatarg(5, argc, argv); + + profondeur = a * x->posX_old_1 + b * x->posY_old_1 + c * x->posZ_old_1 - d; + + Xb = x->posX_old_1 - atom_getfloatarg(3, argc, argv) - profondeur * a; + Yb = x->posY_old_1 - atom_getfloatarg(4, argc, argv) - profondeur * b; + Zb = x->posZ_old_1 - atom_getfloatarg(5, argc, argv) - profondeur * c; + + rayon = sqrt ( pow(Xb, 2) + pow(Yb, 2) + pow(Zb, 2) ); + + if (rayon != 0) + { + Xb /= rayon; // normalisation + Yb /= rayon; + Zb /= rayon; + } + else + { + Xb = 0; // normalisation + Yb = 0; + Zb = 0; + } + + + Ta = b*Zb - c*Yb; // vecteur tengentiel = vecteur vectoriel rayon + Tb = c*Xb - a*Zb; + Tc = a*Yb - b*Xb; + + if ( (profondeur < atom_getfloatarg(14, argc, argv)) & (profondeur > atom_getfloatarg(13, argc, argv)) & (rayon < atom_getfloatarg(7, argc, argv)) & (rayon > atom_getfloatarg(6, argc, argv)) ) + { + + tmp = atom_getfloatarg(8, argc, argv); // force normal constante + + x->forceX += tmp * Xb; + x->forceY += tmp * Yb; + x->forceZ += tmp * Zb; + + tmp = atom_getfloatarg(9, argc, argv); // rigidité normal proportionelle + tmp *= ( atom_getfloatarg(7, argc, argv) - rayon ) ; + x->forceX += tmp * Xb; + x->forceY += tmp * Yb; + x->forceZ += tmp * Zb; + + tmp = atom_getfloatarg(10, argc, argv); // damping normal proportionelle a la profondeur + + profondeur_old = a * x->posX_old_2 + b * x->posY_old_2 + c * x->posZ_old_2 - d; + + Xb_old = x->posX_old_2 - atom_getfloatarg(3, argc, argv) - profondeur_old * a; + Yb_old = x->posY_old_2 - atom_getfloatarg(4, argc, argv) - profondeur_old * b; + Zb_old = x->posZ_old_2 - atom_getfloatarg(5, argc, argv) - profondeur_old * c; + + rayon_old = sqrt ( pow(Xb_old, 2) + pow(Yb_old, 2) + pow(Zb_old, 2) ); + + tmp *= (rayon - rayon_old); + + x->forceX -= tmp * Xb; + x->forceY -= tmp * Yb; + x->forceZ -= tmp * Zb; + + tmp = atom_getfloatarg(11, argc, argv); // force normal proportionne a 1/R + if (rayon != 0) + { + tmp /= rayon; + x->forceX += tmp * Xb; + x->forceY += tmp * Yb; + x->forceZ += tmp * Zb; + } + + tmp = atom_getfloatarg(12, argc, argv); // force normal proportionne a 1/R*R + if (rayon != 0) + { + tmp /= (rayon*rayon); + x->forceX += tmp * Xb; + x->forceY += tmp * Yb; + x->forceZ += tmp * Zb; + } + + tmp = atom_getfloatarg(15, argc, argv); // force tengente constante + x->forceX -= tmp * Ta; + x->forceY -= tmp * Tb; + x->forceZ -= tmp * Tc; + + tmp = atom_getfloatarg(16, argc, argv); // rigidité tengentiel proportionelle + tmp *= ( atom_getfloatarg(7, argc, argv) - rayon ) ; + x->forceX += tmp * Ta; + x->forceY += tmp * Tb; + x->forceZ += tmp * Tc; + + tmp = atom_getfloatarg(17, argc, argv); // deplacement normal constante + + x->dX += tmp * Xb; + x->dY += tmp * Yb; + x->dZ += tmp * Zb; + + tmp = atom_getfloatarg(19, argc, argv); // deplacement normal proportionelle + tmp *= ( atom_getfloatarg(7, argc, argv) - rayon ) ; + x->dX += tmp * Xb; + x->dY += tmp * Yb; + x->dZ += tmp * Zb; + + tmp = atom_getfloatarg(18, argc, argv); // deplacement tengente constante + x->dX += tmp * Ta; + x->dY += tmp * Tb; + x->dZ += tmp * Tc; + + tmp = atom_getfloatarg(20, argc, argv); // deplacement tengentiel proportionelle + tmp *= ( atom_getfloatarg(7, argc, argv) - rayon ) ; + x->dX += tmp * Ta; + x->dY += tmp * Tb; + x->dZ += tmp * Tc; + } + } + else + { + error("bad cylinder interraction message"); + } +} + +void *masse3D_new(t_symbol *s, int argc, t_atom *argv) +{ + t_masse3D *x = (t_masse3D *)pd_new(masse3D_class); + + x->x_sym = atom_getsymbolarg(0, argc, argv); + x->x_state = makeseed(); + + pd_bind(&x->x_obj.ob_pd, atom_getsymbolarg(0, argc, argv)); + + x->position3D_new=outlet_new(&x->x_obj, 0); + x->force_out=outlet_new(&x->x_obj, 0); + x->vitesse_out=outlet_new(&x->x_obj, 0); + + x->forceX=0; + x->forceY=0; + x->forceZ=0; + + if (argc >= 2) + x->masse3D = atom_getfloatarg(1, argc, argv) ; + else + x->masse3D = 1; + + x->onoff = 1; + + x->VX = 0; + x->VY = 0; + x->VZ = 0; + + x->dX=0; + x->dY=0; + x->dZ=0; + + if (argc >= 3) + x->Xinit = atom_getfloatarg(2, argc, argv); + else + x->Xinit = 0 ; + + x->posX_old_1 = x->Xinit ; + x->posX_old_2 = x->Xinit; + SETFLOAT(&(x->pos_new[0]), x->Xinit); + + if (argc >= 4) + x->Yinit = atom_getfloatarg(3, argc, argv); + else + x->Yinit = 0 ; + + x->posY_old_1 = x->Yinit ; + x->posY_old_2 = x->Yinit; + SETFLOAT(&(x->pos_new[1]), x->Yinit); + + if (argc >= 5) + x->Zinit = atom_getfloatarg(4, argc, argv); + else + x->Zinit = 0 ; + + x->posZ_old_1 = x->Zinit ; + x->posZ_old_2 = x->Zinit; + SETFLOAT(&(x->pos_new[2]), x->Zinit); + + + if (argc >= 6) + x->minX = atom_getfloatarg(5, argc, argv) ; + else + x->minX = -100000; + + if (argc >= 7) + x->maxX = atom_getfloatarg(6, argc, argv) ; + else + x->maxX = 100000; + + if (argc >= 8) + x->minY = atom_getfloatarg(7, argc, argv) ; + else + x->minY = -100000; + + if (argc >= 9) + x->maxY = atom_getfloatarg(8, argc, argv) ; + else + x->maxY = 100000; + + if (argc >= 10) + x->minZ = atom_getfloatarg(9, argc, argv) ; + else + x->minZ = -100000; + + if (argc >= 11) + x->maxZ = atom_getfloatarg(10, argc, argv) ; + else + x->maxZ = 100000; + + if (argc >= 12) + x->seuil = atom_getfloatarg(11, argc, argv) ; + else + x->seuil = 0; + + if (argc >= 13) + x->damp = atom_getfloatarg(12, argc, argv) ; + else + x->damp = 0; + + return (void *)x; +} + +static void masse3D_free(t_masse3D *x) +{ + pd_unbind(&x->x_obj.ob_pd, x->x_sym); +} + + +void masse3D_setup(void) +{ + + masse3D_class = class_new(gensym("masse3D"), + (t_newmethod)masse3D_new, + (t_method)masse3D_free, + sizeof(t_masse3D), + CLASS_DEFAULT, A_GIMME, 0); + + class_addcreator((t_newmethod)masse3D_new, gensym("mass3D"), A_GIMME, 0); + class_addcreator((t_newmethod)masse3D_new, gensym("pmpd.mass3D"), A_GIMME, 0); + + class_addmethod(masse3D_class, (t_method)masse3D_force, gensym("force3D"),A_DEFFLOAT, A_DEFFLOAT, A_DEFFLOAT, 0); + class_addbang(masse3D_class, masse3D_bang); + + class_addmethod(masse3D_class, (t_method)masse3D_dX, gensym("dX"), A_DEFFLOAT, 0); + class_addmethod(masse3D_class, (t_method)masse3D_dY, gensym("dY"), A_DEFFLOAT, 0); + class_addmethod(masse3D_class, (t_method)masse3D_dZ, gensym("dZ"), A_DEFFLOAT, 0); + class_addmethod(masse3D_class, (t_method)masse3D_dXYZ, gensym("dXYZ"), A_DEFFLOAT, A_DEFFLOAT, A_DEFFLOAT, 0); + class_addmethod(masse3D_class, (t_method)masse3D_setX, gensym("setX"), A_DEFFLOAT, 0); + class_addmethod(masse3D_class, (t_method)masse3D_setY, gensym("setY"), A_DEFFLOAT, 0); + class_addmethod(masse3D_class, (t_method)masse3D_setZ, gensym("setZ"), A_DEFFLOAT, 0); + class_addmethod(masse3D_class, (t_method)masse3D_setXYZ, gensym("setXYZ"), A_DEFFLOAT, A_DEFFLOAT, A_DEFFLOAT, 0); + class_addmethod(masse3D_class, (t_method)masse3D_minX, gensym("setXmin"), A_DEFFLOAT, 0); + class_addmethod(masse3D_class, (t_method)masse3D_minY, gensym("setYmin"), A_DEFFLOAT, 0); + class_addmethod(masse3D_class, (t_method)masse3D_maxX, gensym("setXmax"), A_DEFFLOAT, 0); + class_addmethod(masse3D_class, (t_method)masse3D_maxY, gensym("setYmax"), A_DEFFLOAT, 0); + class_addmethod(masse3D_class, (t_method)masse3D_minZ, gensym("setZmin"), A_DEFFLOAT, 0); + class_addmethod(masse3D_class, (t_method)masse3D_maxZ, gensym("setZmax"), A_DEFFLOAT, 0); + class_addmethod(masse3D_class, (t_method)masse3D_set_masse3D, gensym("setM"), A_DEFFLOAT, 0); + class_addmethod(masse3D_class, (t_method)masse3D_reset, gensym("reset"), 0); + class_addmethod(masse3D_class, (t_method)masse3D_resetf, gensym("resetF"), 0); + class_addmethod(masse3D_class, (t_method)masse3D_reset, gensym("loadbang"), 0); + class_addmethod(masse3D_class, (t_method)masse3D_on, gensym("on"), 0); + class_addmethod(masse3D_class, (t_method)masse3D_off, gensym("off"), 0); + class_addmethod(masse3D_class, (t_method)masse3D_seuil, gensym("setT"), A_DEFFLOAT, 0); + class_addmethod(masse3D_class, (t_method)masse3D_damp, gensym("setD"), A_DEFFLOAT, 0); + + class_addmethod(masse3D_class, (t_method)masse3D_inter_ambient, gensym("interactor_ambient_3D"), A_GIMME, 0); + class_addmethod(masse3D_class, (t_method)masse3D_inter_sphere, gensym("interactor_sphere_3D"), A_GIMME, 0); + class_addmethod(masse3D_class, (t_method)masse3D_inter_plane, gensym("interactor_plane_3D"), A_GIMME, 0); + class_addmethod(masse3D_class, (t_method)masse3D_inter_circle, gensym("interactor_circle_3D"), A_GIMME, 0); + class_addmethod(masse3D_class, (t_method)masse3D_inter_cylinder, gensym("interactor_cylinder_3D"), A_GIMME, 0); + +} diff --git a/src/pmpd.c b/src/pmpd.c new file mode 100755 index 0000000..9d21d64 --- /dev/null +++ b/src/pmpd.c @@ -0,0 +1,146 @@ +/* +-------------------------- pmpd ---------------------------------------- + + pmpd = physical modeling for pure data + Written by Cyrille Henry (cyrille.henry@la-kitchen.fr) + + Get sources at http://drpichon.free.fr/pure-data/physical-modeling/ + + This program is free software; you can redistribute it and/or + modify it under the terms of the GNU General Public License + as published by the Free Software Foundation; either version 2 + of the License, or (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + + Based on PureData by Miller Puckette and others. + + +---------------------------------------------------------------------------- +*/ + +#ifndef VERSION +#define VERSION "0.05" +#endif + +#include "m_pd.h" + +#ifndef __DATE__ +#define __DATE__ "" +#endif + +#include "masse.c" +#include "lia.c" +#include "masse2D.c" +#include "lia2D.c" +#include "masse3D.c" +#include "lia3D.c" + +#include "iAmbient2D.c" +#include "iLine2D.c" +#include "iSeg2D.c" +#include "iCircle2D.c" + +#include "tSquare2D.c" +#include "tLine2D.c" +#include "tSeg2D.c" +#include "tCircle2D.c" +#include "tLia2D.c" + +#include "iAmbient3D.c" +#include "iSphere3D.c" +#include "iPlane3D.c" +#include "iCircle3D.c" +#include "iCylinder3D.c" + + +#include "tCube3D.c" +#include "tSphere3D.c" +#include "tPlane3D.c" +#include "tCircle3D.c" +#include "tCylinder3D.c" +#include "tLia3D.c" + +static t_class *pmpd_class; + +typedef struct _pmpd +{ + t_object x_obj; +} t_pmpd; + +t_float max(t_float x, t_float y) +{ + if (x >= y) + { + return x; + } + return y; +} + +t_float min(t_float x, t_float y) +{ + if (x <= y) + { + return x; + } + return y; +} + +void *pmpd_new(void) +{ + t_pmpd *x = (t_pmpd *)pd_new(pmpd_class); + return (void *)x; +} + +void pmpd_setup(void) +{ + pmpd_class = class_new(gensym("pmpd"), + (t_newmethod)pmpd_new, + 0, sizeof(t_pmpd),0,0); + + post(""); + post(" pmpd = Physical Modeling for Pure Data"); + post(" version "VERSION); + post(" compiled "__DATE__); + post(" Contact : cyrille.henry@la-kitchen.fr"); + post(""); + +masse_setup() ; +lia_setup() ; +masse2D_setup() ; +lia2D_setup() ; +masse3D_setup() ; +lia3D_setup() ; + +iAmbient2D_setup(); +iLine2D_setup(); +iSeg2D_setup(); +iCircle2D_setup(); + +tSquare2D_setup(); +tCircle2D_setup(); +tLine2D_setup(); +tSeg2D_setup(); +tLia2D_setup(); + +iAmbient3D_setup(); +iSphere3D_setup(); +iPlane3D_setup(); +iCircle3D_setup(); +iCylinder3D_setup(); + +tLia3D_setup(); +tCube3D_setup(); +tPlane3D_setup(); +tSphere3D_setup(); +tCylinder3D_setup(); +tCircle3D_setup(); + +} diff --git a/src/tCircle2D.c b/src/tCircle2D.c new file mode 100755 index 0000000..e4ba448 --- /dev/null +++ b/src/tCircle2D.c @@ -0,0 +1,113 @@ +#include "m_pd.h" +#include "math.h" + +static t_class *tCircle2D_class; + +typedef struct _tCircle2D { + t_object x_obj; + t_float X, Y, Rmin, Rmax, distance_old; + t_outlet *force_new, *distance, *vitesse; // outlet +} t_tCircle2D; + + +void tCircle2D_position2D(t_tCircle2D *x, t_float X, t_float Y) +{ + + t_float tmp, vitesse; + + tmp = sqrt((X-x->X)*(X-x->X) + (Y-x->Y)*(Y-x->Y)); + + vitesse = tmp - x->distance_old ; + + x->distance_old = tmp; + + outlet_float(x->vitesse, vitesse); + + outlet_float(x->distance, tmp); + + if ( (tmp < x->Rmax) & (tmp >= x->Rmin)) + { + outlet_float(x->force_new, 1); + } + else + { + outlet_float(x->force_new, 0); + } +} + +void tCircle2D_XY(t_tCircle2D *x, t_float X, t_float Y) +{ + x->X= X; + x->Y= Y; +} + +void tCircle2D_X(t_tCircle2D *x, t_float X) +{ + x->X= X; +} + +void tCircle2D_Y(t_tCircle2D *x, t_float X) +{ + x->Y= X; +} + +void tCircle2D_Rmin(t_tCircle2D *x, t_float X) +{ + x->Rmin= X; +} + +void tCircle2D_Rmax(t_tCircle2D *x, t_float X) +{ + x->Rmax= X; +} + +void *tCircle2D_new(t_symbol *s, int argc, t_atom *argv) +{ + t_tCircle2D *x = (t_tCircle2D *)pd_new(tCircle2D_class); + x->force_new=outlet_new(&x->x_obj, 0); + x->distance=outlet_new(&x->x_obj, 0); + x->vitesse=outlet_new(&x->x_obj, 0); + + x->distance_old = 0; + + if (argc>=4) + x->Rmax = atom_getfloatarg(3, argc, argv); + else + x->Rmax = 1; + + if (argc>=3) + x->Rmin = atom_getfloatarg(2, argc, argv); + else + x->Rmin = 0; + + if (argc>=2) + x->Y = atom_getfloatarg(1, argc, argv); + else + x->Y = 0; + + if (argc>=1) + x->X = atom_getfloatarg(0, argc, argv); + else + x->X = 0; + + return (x); +} + +void tCircle2D_setup(void) +{ + + tCircle2D_class = class_new(gensym("tCircle2D"), + (t_newmethod)tCircle2D_new, + 0, sizeof(t_tCircle2D), + CLASS_DEFAULT, A_GIMME, 0); + + class_addcreator((t_newmethod)tCircle2D_new, gensym("pmpd.tCircle2D"), A_GIMME, 0); + + class_addmethod(tCircle2D_class, (t_method)tCircle2D_position2D, gensym("position2D"), A_DEFFLOAT, A_DEFFLOAT, 0); + + class_addmethod(tCircle2D_class, (t_method)tCircle2D_XY, gensym("setXY"), A_DEFFLOAT, A_DEFFLOAT, 0); + class_addmethod(tCircle2D_class, (t_method)tCircle2D_X, gensym("setX"), A_DEFFLOAT, 0); + class_addmethod(tCircle2D_class, (t_method)tCircle2D_Y, gensym("setY"), A_DEFFLOAT, 0); + class_addmethod(tCircle2D_class, (t_method)tCircle2D_Rmin, gensym("setRmin"), A_DEFFLOAT, 0); + class_addmethod(tCircle2D_class, (t_method)tCircle2D_Rmax, gensym("setRmax"), A_DEFFLOAT, 0); +} diff --git a/src/tCircle3D.c b/src/tCircle3D.c new file mode 100755 index 0000000..6664d39 --- /dev/null +++ b/src/tCircle3D.c @@ -0,0 +1,195 @@ +#include "m_pd.h" +#include "math.h" + +static t_class *tCircle3D_class; + +typedef struct _tCircle3D { + t_object x_obj; + t_float X, Y, Z, VX, VY, VZ, P, Rmin, Rmax, distance_old; + t_outlet *force_new, *distance, *vitesse;// outlet +} t_tCircle3D; + +void tCircle3D_position3D(t_tCircle3D *x, t_float X, t_float Y, t_float Z) +{ +t_float d, tmp, profondeur, vitesse; + + + + tmp = sqrt (x->VX*x->VX + x->VY*x->VY + x->VZ*x->VZ); + if (tmp != 0) + { + x->VX /= tmp; + x->VY /= tmp; + x->VZ /= tmp; + } + else + { + x->VX=1; + x->VY=0; + x->VZ=0; + } + + d = x->VX * x->X + x->VY * x->Y + x->VZ * x->Z; + + profondeur = x->VX * X + x->VY * Y + x->VZ * Z - d; + + vitesse = profondeur - x->distance_old; + x->distance_old = profondeur; + + outlet_float(x->vitesse, vitesse); + + outlet_float(x->distance, profondeur); + + if ( (profondeur < 0) & (profondeur > - x->P) ) + { + outlet_float(x->force_new, 1); + } + else + { + outlet_float(x->force_new, 0); + } + +} + +void tCircle3D_setXYZ(t_tCircle3D *x, t_float X, t_float Y, t_float Z) +{ + x->X= X; + x->Y= Y; + x->Z= Z; +} +void tCircle3D_setVXYZ(t_tCircle3D *x, t_float X, t_float Y, t_float Z) +{ + x->VX= X; + x->VY= Y; + x->VZ= Z; +} + +void tCircle3D_setVX(t_tCircle3D *x, t_float X) +{ + x->VX= X; +} + +void tCircle3D_setVY(t_tCircle3D *x, t_float Y) +{ + x->VY= Y; +} + +void tCircle3D_setVZ(t_tCircle3D *x, t_float Z) +{ + x->VZ= Z; +} +void tCircle3D_setX(t_tCircle3D *x, t_float X) +{ + x->X= X; +} + +void tCircle3D_setY(t_tCircle3D *x, t_float Y) +{ + x->Y= Y; +} + +void tCircle3D_setZ(t_tCircle3D *x, t_float Z) +{ + x->Z= Z; +} + +void tCircle3D_setP(t_tCircle3D *x, t_float X) +{ + x->P= X; +} + +void tCircle3D_setRmin(t_tCircle3D *x, t_float R) +{ + x->Rmin = R; +} + +void tCircle3D_setRmax(t_tCircle3D *x, t_float R) +{ + x->Rmax = R; +} + + +void *tCircle3D_new(t_symbol *s, int argc, t_atom *argv) +{ + t_tCircle3D *x = (t_tCircle3D *)pd_new(tCircle3D_class); + + x->force_new=outlet_new(&x->x_obj, 0); + x->distance=outlet_new(&x->x_obj, 0); + x->vitesse=outlet_new(&x->x_obj, 0); + + x->distance_old = 0; + + if (argc>=9) + x->P= atom_getfloatarg(8, argc, argv); + else + x->P= 10000; + + if (argc>=8) + x->Z= atom_getfloatarg(7, argc, argv); + else + x->Rmax= 1; + + if (argc>=7) + x->P= atom_getfloatarg(6, argc, argv); + else + x->Rmin= 0; + + if (argc>=6) + x->Z= atom_getfloatarg(5, argc, argv); + else + x->Z= 0; + + if (argc>=5) + x->Y= atom_getfloatarg(4, argc, argv); + else + x->Y= 0; + + if (argc>=4) + x->X= atom_getfloatarg(3, argc, argv); + else + x->X= 0; + + if (argc>=3) + x->VZ= atom_getfloatarg(2, argc, argv); + else + x->VZ= 0; + + if (argc>=2) + x->VY= atom_getfloatarg(1, argc, argv); + else + x->VY= 0; + + if (argc>=1) + x->VX= atom_getfloatarg(0, argc, argv); + else + x->VX= 1; + + return (x); +} + +void tCircle3D_setup(void) +{ + + tCircle3D_class = class_new(gensym("tCircle3D"), + (t_newmethod)tCircle3D_new, + 0, sizeof(t_tCircle3D), + CLASS_DEFAULT, A_GIMME, 0); + + class_addcreator((t_newmethod)tCircle3D_new, gensym("pmpd.tCircle3D"), A_GIMME, 0); + + class_addmethod(tCircle3D_class, (t_method)tCircle3D_position3D, gensym("position3D"), A_DEFFLOAT, A_DEFFLOAT, A_DEFFLOAT, 0); + + class_addmethod(tCircle3D_class, (t_method)tCircle3D_setVX, gensym("setVX"), A_DEFFLOAT, 0); + class_addmethod(tCircle3D_class, (t_method)tCircle3D_setVY, gensym("setVY"), A_DEFFLOAT, 0); + class_addmethod(tCircle3D_class, (t_method)tCircle3D_setVZ, gensym("setVZ"), A_DEFFLOAT, 0); + class_addmethod(tCircle3D_class, (t_method)tCircle3D_setX, gensym("setX"), A_DEFFLOAT, 0); + class_addmethod(tCircle3D_class, (t_method)tCircle3D_setY, gensym("setY"), A_DEFFLOAT, 0); + class_addmethod(tCircle3D_class, (t_method)tCircle3D_setZ, gensym("setZ"), A_DEFFLOAT, 0); + class_addmethod(tCircle3D_class, (t_method)tCircle3D_setRmin, gensym("setRmin"), A_DEFFLOAT, 0); + class_addmethod(tCircle3D_class, (t_method)tCircle3D_setRmax, gensym("setRmax"), A_DEFFLOAT, 0); + class_addmethod(tCircle3D_class, (t_method)tCircle3D_setXYZ, gensym("setXYZ"), A_DEFFLOAT, A_DEFFLOAT, A_DEFFLOAT, 0); + class_addmethod(tCircle3D_class, (t_method)tCircle3D_setVXYZ, gensym("setVXYZ"), A_DEFFLOAT, A_DEFFLOAT, A_DEFFLOAT, 0); + class_addmethod(tCircle3D_class, (t_method)tCircle3D_setP, gensym("setPmax"), A_DEFFLOAT, 0); + + +} diff --git a/src/tCube3D.c b/src/tCube3D.c new file mode 100755 index 0000000..ce0c434 --- /dev/null +++ b/src/tCube3D.c @@ -0,0 +1,114 @@ +#include "m_pd.h" +#include "math.h" + +static t_class *tCube3D_class; + +typedef struct _tCube3D { + t_object x_obj; + t_float Xmin, Xmax, Ymin, Ymax, Zmin, Zmax; + //extrem = Xmin, Ymin, Xmax, Ymax; + t_outlet *force_new;// outlet +} t_tCube3D; + +void tCube3D_position3D(t_tCube3D *x, t_float X, t_float Y, t_float Z) +{ + + if ((X > x->Xmin) & (X < x->Xmax) & (Y > x->Ymin) & (Y < x->Ymax) & (Z > x->Zmin) & (Z < x->Zmax) ) + { + outlet_float(x->force_new, 1); + } + else + { + outlet_float(x->force_new, 0); + } +} + +void tCube3D_Xmin(t_tCube3D *x, t_float X) +{ + x->Xmin= X; +} + +void tCube3D_Xmax(t_tCube3D *x, t_float X) +{ + x->Xmax= X; +} + +void tCube3D_Ymin(t_tCube3D *x, t_float X) +{ + x->Ymin= X; +} + +void tCube3D_Ymax(t_tCube3D *x, t_float X) +{ + x->Ymax= X; +} + +void tCube3D_Zmin(t_tCube3D *x, t_float X) +{ + x->Zmin= X; +} + +void tCube3D_Zmax(t_tCube3D *x, t_float X) +{ + x->Zmax= X; +} + +void *tCube3D_new(t_symbol *s, int argc, t_atom *argv) +{ + t_tCube3D *x = (t_tCube3D *)pd_new(tCube3D_class); + x->force_new=outlet_new(&x->x_obj, 0); + + if (argc>=6) + x->Zmax = atom_getfloatarg(5, argc, argv); + else + x->Zmax = 1; + + if (argc>=5) + x->Zmin = atom_getfloatarg(4, argc, argv); + else + x->Zmin = -1; + + if (argc>=4) + x->Ymax = atom_getfloatarg(3, argc, argv); + else + x->Ymax = 1; + + if (argc>=3) + x->Ymin = atom_getfloatarg(2, argc, argv); + else + x->Ymin = -1; + + if (argc>=2) + x->Xmax = atom_getfloatarg(1, argc, argv); + else + x->Xmax = 1; + + if (argc>=1) + x->Xmin = atom_getfloatarg(0, argc, argv); + else + x->Xmin = -1; + + return (x); +} + +void tCube3D_setup(void) +{ + + tCube3D_class = class_new(gensym("tCube3D"), + (t_newmethod)tCube3D_new, + 0, sizeof(t_tCube3D), + CLASS_DEFAULT, A_GIMME, 0); + + class_addcreator((t_newmethod)tCube3D_new, gensym("pmpd.tCube3D"), A_GIMME, 0); + + class_addmethod(tCube3D_class, (t_method)tCube3D_position3D, gensym("position3D"), A_DEFFLOAT, A_DEFFLOAT, A_DEFFLOAT, 0); + + class_addmethod(tCube3D_class, (t_method)tCube3D_Xmin, gensym("setXmin"), A_DEFFLOAT, 0); + class_addmethod(tCube3D_class, (t_method)tCube3D_Ymin, gensym("setYmin"), A_DEFFLOAT, 0); + class_addmethod(tCube3D_class, (t_method)tCube3D_Ymin, gensym("setZmin"), A_DEFFLOAT, 0); + class_addmethod(tCube3D_class, (t_method)tCube3D_Xmax, gensym("setXmax"), A_DEFFLOAT, 0); + class_addmethod(tCube3D_class, (t_method)tCube3D_Ymax, gensym("setYmax"), A_DEFFLOAT, 0); + class_addmethod(tCube3D_class, (t_method)tCube3D_Ymax, gensym("setZmax"), A_DEFFLOAT, 0); + + +} diff --git a/src/tCylinder3D.c b/src/tCylinder3D.c new file mode 100755 index 0000000..1ccf832 --- /dev/null +++ b/src/tCylinder3D.c @@ -0,0 +1,218 @@ +#include "m_pd.h" +#include "math.h" + +static t_class *tCylinder3D_class; + +typedef struct _tCylinder3D { + t_object x_obj; + t_float X, Y, Z, VX, VY, VZ, Pmin, Pmax, Rmin, Rmax, position_old; + t_outlet *force_new, *profondeur, *vitesse;// outlet +} t_tCylinder3D; + +void tCylinder3D_position3D(t_tCylinder3D *x, t_float X, t_float Y, t_float Z) +{ + t_float d, tmp, profondeur, Xb, Yb, Zb, rayon, vitesse; + + tmp = sqrt (x->VX*x->VX + x->VY*x->VY + x->VZ*x->VZ); + if (tmp != 0) + { + x->VX /= tmp; + x->VY /= tmp; + x->VZ /= tmp; + } + else + { + x->VX=1; + x->VY=0; + x->VZ=0; + } + + d = x->VX * x->X + x->VY * x->Y + x->VZ * x->Z; + + profondeur = x->VX * X + x->VY * Y + x->VZ * Z - d; + + Xb = X - x->X - profondeur * x->VX; + Yb = Y - x->Y - profondeur * x->VY; + Zb = Z - x->Z - profondeur * x->VZ; + + rayon = sqrt ( pow(Xb, 2) + pow(Yb, 2) + pow(Zb, 2) ); + + if ( rayon != 0 ) + { + Xb /= rayon; // normalisation + Yb /= rayon; + Zb /= rayon; + } + + vitesse = rayon - x->position_old; + x->position_old = rayon; + + outlet_float(x->vitesse, vitesse); + + outlet_float(x->profondeur, rayon); + + if ( (profondeur < x->Pmin) & (profondeur > x->Pmax) & (rayon < x->Rmax) & (rayon > x->Rmin) ) + { + outlet_float(x->force_new, 1); + } + else + { + outlet_float(x->force_new, 0); + } +//C optimiser ca : pas faire le calcul de l'orientation du cylindre a chaques fois... + +} + +void tCylinder3D_setXYZ(t_tCylinder3D *x, t_float X, t_float Y, t_float Z) +{ + x->X= X; + x->Y= Y; + x->Z= Z; +} +void tCylinder3D_setVXYZ(t_tCylinder3D *x, t_float X, t_float Y, t_float Z) +{ + x->VX= X; + x->VY= Y; + x->VZ= Z; +} + +void tCylinder3D_setVX(t_tCylinder3D *x, t_float X) +{ + x->VX= X; +} + +void tCylinder3D_setVY(t_tCylinder3D *x, t_float Y) +{ + x->VY= Y; +} + +void tCylinder3D_setVZ(t_tCylinder3D *x, t_float Z) +{ + x->VZ= Z; +} +void tCylinder3D_setX(t_tCylinder3D *x, t_float X) +{ + x->X= X; +} + +void tCylinder3D_setY(t_tCylinder3D *x, t_float Y) +{ + x->Y= Y; +} + +void tCylinder3D_setZ(t_tCylinder3D *x, t_float Z) +{ + x->Z= Z; +} + +void tCylinder3D_setPmin(t_tCylinder3D *x, t_float X) +{ + x->Pmin= X; +} + +void tCylinder3D_setPmax(t_tCylinder3D *x, t_float X) +{ + x->Pmax= X; +} + +void tCylinder3D_setRmin(t_tCylinder3D *x, t_float R) +{ + x->Rmin = R; +} + +void tCylinder3D_setRmax(t_tCylinder3D *x, t_float R) +{ + x->Rmax = R; +} + + +void *tCylinder3D_new(t_symbol *s, int argc, t_atom *argv) +{ + t_tCylinder3D *x = (t_tCylinder3D *)pd_new(tCylinder3D_class); + + x->force_new=outlet_new(&x->x_obj, 0); + x->profondeur=outlet_new(&x->x_obj, 0); + x->vitesse=outlet_new(&x->x_obj, 0); + + x->position_old = 0; + + if (argc>=10) + x->Pmax= atom_getfloatarg(9, argc, argv); + else + x->Pmax= 1000; + + if (argc>=9) + x->Pmin= atom_getfloatarg(8, argc, argv); + else + x->Pmin= -1000; + + if (argc>=8) + x->Z= atom_getfloatarg(7, argc, argv); + else + x->Rmax= 1; + + if (argc>=7) + x->Rmin= atom_getfloatarg(6, argc, argv); + else + x->Rmin= 0; + + if (argc>=6) + x->Z= atom_getfloatarg(5, argc, argv); + else + x->Z= 0; + + if (argc>=5) + x->Y= atom_getfloatarg(4, argc, argv); + else + x->Y= 0; + + if (argc>=4) + x->X= atom_getfloatarg(3, argc, argv); + else + x->X= 0; + + if (argc>=3) + x->VZ= atom_getfloatarg(2, argc, argv); + else + x->VZ= 0; + + if (argc>=2) + x->VY= atom_getfloatarg(1, argc, argv); + else + x->VY= 0; + + if (argc>=1) + x->VX= atom_getfloatarg(0, argc, argv); + else + x->VX= 1; + + return (x); +} + +void tCylinder3D_setup(void) +{ + + tCylinder3D_class = class_new(gensym("tCylinder3D"), + (t_newmethod)tCylinder3D_new, + 0, sizeof(t_tCylinder3D), + CLASS_DEFAULT, A_GIMME, 0); + + class_addcreator((t_newmethod)tCylinder3D_new, gensym("pmpd.tCylinder3D"), A_GIMME, 0); + + class_addmethod(tCylinder3D_class, (t_method)tCylinder3D_position3D, gensym("position3D"), A_DEFFLOAT, A_DEFFLOAT, A_DEFFLOAT, 0); + + class_addmethod(tCylinder3D_class, (t_method)tCylinder3D_setVX, gensym("setVX"), A_DEFFLOAT, 0); + class_addmethod(tCylinder3D_class, (t_method)tCylinder3D_setVY, gensym("setVY"), A_DEFFLOAT, 0); + class_addmethod(tCylinder3D_class, (t_method)tCylinder3D_setVZ, gensym("setVZ"), A_DEFFLOAT, 0); + class_addmethod(tCylinder3D_class, (t_method)tCylinder3D_setX, gensym("setX"), A_DEFFLOAT, 0); + class_addmethod(tCylinder3D_class, (t_method)tCylinder3D_setY, gensym("setY"), A_DEFFLOAT, 0); + class_addmethod(tCylinder3D_class, (t_method)tCylinder3D_setZ, gensym("setZ"), A_DEFFLOAT, 0); + class_addmethod(tCylinder3D_class, (t_method)tCylinder3D_setRmin, gensym("setRmin"), A_DEFFLOAT, 0); + class_addmethod(tCylinder3D_class, (t_method)tCylinder3D_setRmax, gensym("setRmax"), A_DEFFLOAT, 0); + class_addmethod(tCylinder3D_class, (t_method)tCylinder3D_setXYZ, gensym("setXYZ"), A_DEFFLOAT, A_DEFFLOAT, A_DEFFLOAT, 0); + class_addmethod(tCylinder3D_class, (t_method)tCylinder3D_setVXYZ, gensym("setVXYZ"), A_DEFFLOAT, A_DEFFLOAT, A_DEFFLOAT, 0); + class_addmethod(tCylinder3D_class, (t_method)tCylinder3D_setPmin, gensym("setPmin"), A_DEFFLOAT, 0); + class_addmethod(tCylinder3D_class, (t_method)tCylinder3D_setPmax, gensym("setPmax"), A_DEFFLOAT, 0); + + +} diff --git a/src/tLia2D.c b/src/tLia2D.c new file mode 100755 index 0000000..968e5de --- /dev/null +++ b/src/tLia2D.c @@ -0,0 +1,157 @@ +#include "m_pd.h" +#include "math.h" + +static t_class *tLia2D_class; + +typedef struct _tLia2D { + t_object x_obj; + t_float distance_old, position2Dx1, position2Dy1, position2Dx2, position2Dy2; + t_outlet *force1; + t_outlet *force2; + t_outlet *force3; + t_outlet *force4; + t_symbol *x_sym; // receive +} t_tLia2D; + +void tLia2D_reset(t_tLia2D *x) +{ +} + +void tLia2D_resetF(t_tLia2D *x) +{ +} + +void tLia2D_resetL(t_tLia2D *x) +{ +} + +void tLia2D_setK(t_tLia2D *x, t_float K) +{ +} + +void tLia2D_setL(t_tLia2D *x, t_float L) +{ +} + +void tLia2D_setD(t_tLia2D *x, t_float D) +{ +} + +void tLia2D_setD2(t_tLia2D *x, t_float D) +{ +} + +void tLia2D_Lmin(t_tLia2D *x, t_float Lmin) +{ +} + +void tLia2D_Lmax(t_tLia2D *x, t_float Lmax) +{ +} + +void tLia2D_position2D(t_tLia2D *x, t_floatarg f1, t_floatarg f2) +{ + x->position2Dx1 = f1; + x->position2Dy1 = f2; +} + +void tLia2D_position2D2(t_tLia2D *x, t_floatarg f1, t_floatarg f2) +{ + x->position2Dx2 = f1; + x->position2Dy2 = f2; +} + +void tLia2D_bang(t_tLia2D *x) +{ + t_float vitesse, distance, orientation; + t_atom force1[2]; + + distance = sqrt ( pow((x->position2Dx2-x->position2Dx1), 2) + pow((x->position2Dy2-x->position2Dy1), 2) ); + + vitesse = x->distance_old - distance; + + SETFLOAT(&(force1[0]), (x->position2Dx2 + x->position2Dx1)/ 2); + SETFLOAT(&(force1[1]), (x->position2Dy2 + x->position2Dy1)/ 2); + + outlet_anything(x->force4, gensym("position2D"), 2, force1); + + if ((x->position2Dx2-x->position2Dx1) != 0) + { + orientation = 180/3.14159 * atan((float)(x->position2Dy2 - x->position2Dy1)/(x->position2Dx2 - x->position2Dx1)); + if ((x->position2Dx2 - x->position2Dx1)<0) + orientation +=180; + if (orientation<0) + orientation +=360; + + outlet_float(x->force3, orientation); + } + else + { + if ((x->position2Dy2 - x->position2Dy1)<0) + outlet_float(x->force3,270); + else + outlet_float(x->force3,90); + } + + outlet_float(x->force2, vitesse); + + outlet_float(x->force1, distance); + + x->distance_old = distance; + +} + + +static void tLia2D_free(t_tLia2D *x) +{ + pd_unbind(&x->x_obj.ob_pd, x->x_sym); +} + +void *tLia2D_new(t_symbol *s) +{ + t_tLia2D *x = (t_tLia2D *)pd_new(tLia2D_class); + + x->x_sym = s; + pd_bind(&x->x_obj.ob_pd, s); + + inlet_new(&x->x_obj, &x->x_obj.ob_pd, gensym("position2D"), gensym("position2D2")); + + x->force1=outlet_new(&x->x_obj, 0); + x->force2=outlet_new(&x->x_obj, 0); + x->force3=outlet_new(&x->x_obj, 0); + x->force4=outlet_new(&x->x_obj, 0); + + x->distance_old = 0; + + return (x); +} + +void tLia2D_setup(void) +{ + + tLia2D_class = class_new(gensym("tLia2D"), + (t_newmethod)tLia2D_new, + (t_method)tLia2D_free, + sizeof(t_tLia2D), + CLASS_DEFAULT, A_DEFSYM, 0); + + class_addcreator((t_newmethod)tLia2D_new, gensym("tLink2D"), A_DEFSYM, 0); + class_addcreator((t_newmethod)tLia2D_new, gensym("pmpd.tLink2D"), A_DEFSYM, 0); + + class_addbang(tLia2D_class, tLia2D_bang); + + class_addmethod(tLia2D_class, (t_method)tLia2D_position2D, gensym("position2D"), A_DEFFLOAT, A_DEFFLOAT, 0); + class_addmethod(tLia2D_class, (t_method)tLia2D_position2D2, gensym("position2D2"), A_DEFFLOAT, A_DEFFLOAT, 0); + + // only for the object not to output erreor when having the same name as the link + class_addmethod(tLia2D_class, (t_method)tLia2D_reset, gensym("reset"), 0); + class_addmethod(tLia2D_class, (t_method)tLia2D_resetL, gensym("resetL"), 0); + class_addmethod(tLia2D_class, (t_method)tLia2D_resetF, gensym("resetF"), 0); + class_addmethod(tLia2D_class, (t_method)tLia2D_setD, gensym("setD"), A_DEFFLOAT, 0); + class_addmethod(tLia2D_class, (t_method)tLia2D_setD2, gensym("setD2"), A_DEFFLOAT, 0); + class_addmethod(tLia2D_class, (t_method)tLia2D_setK, gensym("setK"), A_DEFFLOAT, 0); + class_addmethod(tLia2D_class, (t_method)tLia2D_setL, gensym("setL"), A_DEFFLOAT, 0); + class_addmethod(tLia2D_class, (t_method)tLia2D_Lmin, gensym("setLmin"), A_DEFFLOAT, 0); + class_addmethod(tLia2D_class, (t_method)tLia2D_Lmax, gensym("setLmax"), A_DEFFLOAT, 0); + +} diff --git a/src/tLia3D.c b/src/tLia3D.c new file mode 100755 index 0000000..507d113 --- /dev/null +++ b/src/tLia3D.c @@ -0,0 +1,153 @@ +#include "m_pd.h" +#include "math.h" + +static t_class *tLia3D_class; + +typedef struct _tLia3D { + t_object x_obj; + t_float distance_old, position2Dx1, position2Dy1, position2Dz1, position2Dx2, position2Dy2, position2Dz2; + t_outlet *force1; + t_outlet *force2; + t_outlet *force3; + t_outlet *force4; + t_symbol *x_sym; // receive +} t_tLia3D; + +void tLia3D_reset(t_tLia3D *x) +{ +} + +void tLia3D_resetF(t_tLia3D *x) +{ +} + +void tLia3D_resetL(t_tLia3D *x) +{ +} + + +void tLia3D_setK(t_tLia3D *x, t_float K) +{ +} + +void tLia3D_setL(t_tLia3D *x, t_float L) +{ +} + +void tLia3D_setD(t_tLia3D *x, t_float D) +{ +} + +void tLia3D_setD2(t_tLia3D *x, t_float D) +{ +} + +void tLia3D_Lmin(t_tLia3D *x, t_float Lmin) +{ +} + +void tLia3D_Lmax(t_tLia3D *x, t_float Lmax) +{ +} + + +void tLia3D_position3D(t_tLia3D *x, t_floatarg f1, t_floatarg f2, t_floatarg f3) +{ + x->position2Dx1 = f1; + x->position2Dy1 = f2; + x->position2Dz1 = f3; +} + +void tLia3D_position3D2(t_tLia3D *x, t_floatarg f1, t_floatarg f2, t_floatarg f3) +{ + x->position2Dx2 = f1; + x->position2Dy2 = f2; + x->position2Dz2 = f3; +} + +void tLia3D_bang(t_tLia3D *x) +{ + t_float vitesse, distance, orientation; + t_atom force1[3]; + + distance = sqrt ( pow((x->position2Dx2-x->position2Dx1), 2) + pow((x->position2Dy2-x->position2Dy1), 2) + pow((x->position2Dz2-x->position2Dz1), 2) ); + + vitesse = x->distance_old - distance; + + + SETFLOAT(&(force1[0]), (x->position2Dx2 + x->position2Dx1)/ 2); + SETFLOAT(&(force1[1]), (x->position2Dy2 + x->position2Dy1)/ 2); + SETFLOAT(&(force1[2]), (x->position2Dz2 + x->position2Dz1)/ 2); + + outlet_anything(x->force4, gensym("position3D"), 3, force1); + + + SETFLOAT(&(force1[0]), (x->position2Dx2 - x->position2Dx1)/ distance); + SETFLOAT(&(force1[1]), (x->position2Dy2 - x->position2Dy1)/ distance); + SETFLOAT(&(force1[2]), (x->position2Dz2 - x->position2Dz1)/ distance); + + outlet_anything(x->force3, gensym("vector3D"), 3, force1); + + outlet_float(x->force2, vitesse); + + outlet_float(x->force1, distance); + + x->distance_old = distance; + +} + + +static void tLia3D_free(t_tLia3D *x) +{ + pd_unbind(&x->x_obj.ob_pd, x->x_sym); +} + +void *tLia3D_new(t_symbol *s) +{ + + t_tLia3D *x = (t_tLia3D *)pd_new(tLia3D_class); + + x->x_sym = s; + pd_bind(&x->x_obj.ob_pd, s); + + inlet_new(&x->x_obj, &x->x_obj.ob_pd, gensym("position3D"), gensym("position3D2")); + + x->force1=outlet_new(&x->x_obj, 0); + x->force2=outlet_new(&x->x_obj, 0); + x->force3=outlet_new(&x->x_obj, 0); + x->force4=outlet_new(&x->x_obj, 0); + + x->distance_old = 0; + + return (x); +} + +void tLia3D_setup(void) +{ + + tLia3D_class = class_new(gensym("tLia3D"), + (t_newmethod)tLia3D_new, + (t_method)tLia3D_free, + sizeof(t_tLia3D), + CLASS_DEFAULT, A_DEFSYM, 0); + + class_addcreator((t_newmethod)tLia3D_new, gensym("tLink3D"), A_DEFSYM, 0); + class_addcreator((t_newmethod)tLia3D_new, gensym("pmpd.tLink3D"), A_DEFSYM, 0); + + class_addbang(tLia3D_class, tLia3D_bang); + + class_addmethod(tLia3D_class, (t_method)tLia3D_position3D, gensym("position3D"), A_DEFFLOAT, A_DEFFLOAT, A_DEFFLOAT, 0); + class_addmethod(tLia3D_class, (t_method)tLia3D_position3D2, gensym("position3D2"), A_DEFFLOAT, A_DEFFLOAT, A_DEFFLOAT, 0); + + // only for the object not to output erreor when having the same name as the link + class_addmethod(tLia3D_class, (t_method)tLia3D_reset, gensym("reset"), 0); + class_addmethod(tLia3D_class, (t_method)tLia3D_resetL, gensym("resetL"), 0); + class_addmethod(tLia3D_class, (t_method)tLia3D_resetF, gensym("resetF"), 0); + class_addmethod(tLia3D_class, (t_method)tLia3D_setD, gensym("setD"), A_DEFFLOAT, 0); + class_addmethod(tLia3D_class, (t_method)tLia3D_setD2, gensym("setD2"), A_DEFFLOAT, 0); + class_addmethod(tLia3D_class, (t_method)tLia3D_setK, gensym("setK"), A_DEFFLOAT, 0); + class_addmethod(tLia3D_class, (t_method)tLia3D_setL, gensym("setL"), A_DEFFLOAT, 0); + class_addmethod(tLia3D_class, (t_method)tLia3D_Lmin, gensym("setLmin"), A_DEFFLOAT, 0); + class_addmethod(tLia3D_class, (t_method)tLia3D_Lmax, gensym("setLmax"), A_DEFFLOAT, 0); + +} diff --git a/src/tLine2D.c b/src/tLine2D.c new file mode 100755 index 0000000..f440bfd --- /dev/null +++ b/src/tLine2D.c @@ -0,0 +1,137 @@ +#include "m_pd.h" +#include "math.h" + +static t_class *tLine2D_class; + +typedef struct _tLine2D { + t_object x_obj; + t_float X1, X2, Y1, Y2, P, P_old; + //extrem = Xmin, Ymin, Xmax, Ymax; + t_outlet *force_new;// outlet + t_outlet *profondeur;// outlet + t_outlet *vitesse;// outlet +} t_tLine2D; + +void tLine2D_position2D(t_tLine2D *x, t_float X, t_float Y) +{ + t_float a1, b1, c1, profondeur, tmp; + + b1 = x->X2 - x->X1; + a1 = -x->Y2 + x->Y1; + + if (!((a1==0) & (b1==0))) + { + tmp = sqrt((a1*a1)+(b1*b1)); // = longueur du vecteur pour renormalisation + a1 = a1/tmp; + b1 = b1/tmp; + c1 = a1*x->X1+b1*x->Y1; + + profondeur = ( (a1 * X) + (b1 * Y) ) - c1; + + tmp = profondeur - x->P_old; + + x->P_old = profondeur; + + outlet_float(x->vitesse, tmp); + + outlet_float(x->profondeur, profondeur); + + if ( ( profondeur < 0) & (profondeur > - x->P) ) + { + outlet_float(x->force_new, 1); + } + else + { + outlet_float(x->force_new, 0); + } + } + else + { + outlet_float(x->force_new, 0); + } + +} + +void tLine2D_Xmin(t_tLine2D *x, t_float X) +{ + x->X1= X; +} + +void tLine2D_Xmax(t_tLine2D *x, t_float X) +{ + x->X2= X; +} + +void tLine2D_Ymin(t_tLine2D *x, t_float X) +{ + x->Y1= X; +} + +void tLine2D_Ymax(t_tLine2D *x, t_float X) +{ + x->Y2= X; +} + +void tLine2D_P(t_tLine2D *x, t_float X) +{ + x->P= X; +} + +void *tLine2D_new(t_symbol *s, int argc, t_atom *argv) +{ + t_tLine2D *x = (t_tLine2D *)pd_new(tLine2D_class); + + x->force_new=outlet_new(&x->x_obj, 0); + x->profondeur=outlet_new(&x->x_obj, 0); + x->vitesse=outlet_new(&x->x_obj, 0); + + x->P_old=0; + + if (argc>=5) + x->P = atom_getfloatarg(4, argc, argv); + else + x->P = 1; + + if (argc>=4) + x->Y2 = atom_getfloatarg(3, argc, argv); + else + x->Y2 = 0; + + if (argc>=3) + x->X2 = atom_getfloatarg(2, argc, argv); + else + x->X2 = 1; + + if (argc>=2) + x->Y1 = atom_getfloatarg(1, argc, argv); + else + x->Y1 = 0; + + + if (argc>=1) + x->X1 = atom_getfloatarg(0, argc, argv); + else + x->X1 = -1; + + return (x); +} + +void tLine2D_setup(void) +{ + + tLine2D_class = class_new(gensym("tLine2D"), + (t_newmethod)tLine2D_new, + 0, sizeof(t_tLine2D), + CLASS_DEFAULT, A_GIMME, 0); + + class_addcreator((t_newmethod)tLine2D_new, gensym("pmpd.tLine2D"), A_GIMME, 0); + + class_addmethod(tLine2D_class, (t_method)tLine2D_position2D, gensym("position2D"), A_DEFFLOAT, A_DEFFLOAT, 0); + + class_addmethod(tLine2D_class, (t_method)tLine2D_Xmin, gensym("setX1"), A_DEFFLOAT, 0); + class_addmethod(tLine2D_class, (t_method)tLine2D_Ymin, gensym("setY1"), A_DEFFLOAT, 0); + class_addmethod(tLine2D_class, (t_method)tLine2D_Xmax, gensym("setX2"), A_DEFFLOAT, 0); + class_addmethod(tLine2D_class, (t_method)tLine2D_Ymax, gensym("setY2"), A_DEFFLOAT, 0); + class_addmethod(tLine2D_class, (t_method)tLine2D_P, gensym("setPmax"), A_DEFFLOAT, 0); + +} diff --git a/src/tPlane3D.c b/src/tPlane3D.c new file mode 100755 index 0000000..3213bea --- /dev/null +++ b/src/tPlane3D.c @@ -0,0 +1,175 @@ +#include "m_pd.h" +#include "math.h" + +static t_class *tPlane3D_class; + +typedef struct _tPlane3D { + t_object x_obj; + t_float X, Y, Z, VX, VY, VZ, P, distance_old; + t_outlet *force_new, *profondeur, *vitesse;// outlet +} t_tPlane3D; + + +void tPlane3D_position3D(t_tPlane3D *x, t_float X, t_float Y, t_float Z) +{ +t_float d, tmp, profondeur, vitesse; + + tmp = sqrt (x->VX*x->VX + x->VY*x->VY + x->VZ*x->VZ); + if (tmp != 0) + { + x->VX /= tmp; + x->VY /= tmp; + x->VZ /= tmp; + + } + else + { + x->VX=1; + x->VY=0; + x->VZ=0; + } + + d = x->VX * x->X + x->VY * x->Y + x->VZ * x->Z; + + profondeur = x->VX * X + x->VY * Y + x->VZ * Z - d; + + vitesse = profondeur - x->distance_old ; + + x->distance_old = profondeur; + + outlet_float(x->vitesse, vitesse); + + outlet_float(x->profondeur, profondeur); + + + if ( (profondeur < 0) & (profondeur > - x->P) ) + { + outlet_float(x->force_new, 1); + } + else + { + outlet_float(x->force_new, 0); + } + +} + +void tPlane3D_setXYZ(t_tPlane3D *x, t_float X, t_float Y, t_float Z) +{ + x->X= X; + x->Y= Y; + x->Z= Z; +} +void tPlane3D_setVXYZ(t_tPlane3D *x, t_float X, t_float Y, t_float Z) +{ + x->VX= X; + x->VY= Y; + x->VZ= Z; +} + +void tPlane3D_setVX(t_tPlane3D *x, t_float X) +{ + x->VX= X; +} + +void tPlane3D_setVY(t_tPlane3D *x, t_float Y) +{ + x->VY= Y; +} + +void tPlane3D_setVZ(t_tPlane3D *x, t_float Z) +{ + x->VZ= Z; +} +void tPlane3D_setX(t_tPlane3D *x, t_float X) +{ + x->X= X; +} + +void tPlane3D_setY(t_tPlane3D *x, t_float Y) +{ + x->Y= Y; +} + +void tPlane3D_setZ(t_tPlane3D *x, t_float Z) +{ + x->Z= Z; +} + +void tPlane3D_setP(t_tPlane3D *x, t_float X) +{ + x->P= X; +} + + +void *tPlane3D_new(t_symbol *s, int argc, t_atom *argv) +{ + t_tPlane3D *x = (t_tPlane3D *)pd_new(tPlane3D_class); + + x->force_new=outlet_new(&x->x_obj, 0); + x->profondeur=outlet_new(&x->x_obj, 0); + x->vitesse=outlet_new(&x->x_obj, 0); + + x->distance_old = 0; + + if (argc>=7) + x->P= atom_getfloatarg(6, argc, argv); + else + x->P= 10000; + + if (argc>=6) + x->Z= atom_getfloatarg(5, argc, argv); + else + x->Z= 0; + + if (argc>=5) + x->Y= atom_getfloatarg(4, argc, argv); + else + x->Y= 0; + + if (argc>=4) + x->X= atom_getfloatarg(3, argc, argv); + else + x->X= 0; + + if (argc>=3) + x->VZ= atom_getfloatarg(2, argc, argv); + else + x->VZ= 0; + + if (argc>=2) + x->VY= atom_getfloatarg(1, argc, argv); + else + x->VY= 0; + + if (argc>=1) + x->VX= atom_getfloatarg(0, argc, argv); + else + x->VX= 1; + + return (x); +} + +void tPlane3D_setup(void) +{ + + tPlane3D_class = class_new(gensym("tPlane3D"), + (t_newmethod)tPlane3D_new, + 0, sizeof(t_tPlane3D), + CLASS_DEFAULT, A_GIMME, 0); + + class_addcreator((t_newmethod)tPlane3D_new, gensym("pmpd.tPlane3D"), A_GIMME, 0); + + class_addmethod(tPlane3D_class, (t_method)tPlane3D_position3D, gensym("position3D"), A_DEFFLOAT, A_DEFFLOAT, A_DEFFLOAT, 0); + + class_addmethod(tPlane3D_class, (t_method)tPlane3D_setVX, gensym("setVX"), A_DEFFLOAT, 0); + class_addmethod(tPlane3D_class, (t_method)tPlane3D_setVY, gensym("setVY"), A_DEFFLOAT, 0); + class_addmethod(tPlane3D_class, (t_method)tPlane3D_setVZ, gensym("setVZ"), A_DEFFLOAT, 0); + class_addmethod(tPlane3D_class, (t_method)tPlane3D_setX, gensym("setX"), A_DEFFLOAT, 0); + class_addmethod(tPlane3D_class, (t_method)tPlane3D_setY, gensym("setY"), A_DEFFLOAT, 0); + class_addmethod(tPlane3D_class, (t_method)tPlane3D_setZ, gensym("setZ"), A_DEFFLOAT, 0); + class_addmethod(tPlane3D_class, (t_method)tPlane3D_setXYZ, gensym("setXYZ"), A_DEFFLOAT, A_DEFFLOAT, A_DEFFLOAT, 0); + class_addmethod(tPlane3D_class, (t_method)tPlane3D_setVXYZ, gensym("setVXYZ"), A_DEFFLOAT, A_DEFFLOAT, A_DEFFLOAT, 0); + class_addmethod(tPlane3D_class, (t_method)tPlane3D_setP, gensym("setPmax"), A_DEFFLOAT, 0); + + +} diff --git a/src/tSeg2D.c b/src/tSeg2D.c new file mode 100755 index 0000000..7345bd7 --- /dev/null +++ b/src/tSeg2D.c @@ -0,0 +1,139 @@ +#include "m_pd.h" +#include "math.h" + +static t_class *tSeg2D_class; + +typedef struct _tSeg2D { + t_object x_obj; + t_float X1, X2, Y1, Y2, P, P_old; + t_outlet *force_new, *profondeur, *vitesse;// outlet +} t_tSeg2D; + +void tSeg2D_position2D(t_tSeg2D *x, t_float X, t_float Y) +{ + t_float a1, b1, c1, a2, b2, c2, a3, b3, c3, profondeur, tmp; + + b1 = x->X2 - x->X1; + a1 = -x->Y2 + x->Y1; + + if (!((a1==0) & (b1==0))) + { + tmp = sqrt((a1*a1)+(b1*b1)); // = longueur du vecteur pour renormalisation + a1 = a1/tmp; + b1 = b1/tmp; + c1 = a1*x->X1+b1*x->Y1; + + profondeur = ( (a1 * X) + (b1 * Y) ) - c1; + + tmp = profondeur - x->P_old; + + x->P_old = profondeur; + + a2 = b1; + b2 = -a1; + c2 = a2*x->X1+b2*x->Y1; + + a3 = a2; + b3 = b2; + c3 = a3*x->X2+b3*x->Y2; + + outlet_float(x->vitesse, tmp); + outlet_float(x->profondeur, profondeur); + + if ( ( profondeur < 0) & (profondeur > - x->P) & (( (a2 * X) + (b2 * Y) ) > c2) & ( ((a3 * X) + (b3 * Y) ) < c3) ) + { + outlet_float(x->force_new, 1); + } + else + { + outlet_float(x->force_new, 0); + } + } + else + { + outlet_float(x->force_new, 0); + } + +} + +void tSeg2D_Xmin(t_tSeg2D *x, t_float X) +{ + x->X1= X; +} + +void tSeg2D_Xmax(t_tSeg2D *x, t_float X) +{ + x->X2= X; +} + +void tSeg2D_Ymin(t_tSeg2D *x, t_float X) +{ + x->Y1= X; +} + +void tSeg2D_Ymax(t_tSeg2D *x, t_float X) +{ + x->Y2= X; +} + +void tSeg2D_P(t_tSeg2D *x, t_float X) +{ + x->P= X; +} + +void *tSeg2D_new(t_symbol *s, int argc, t_atom *argv) +{ + t_tSeg2D *x = (t_tSeg2D *)pd_new(tSeg2D_class); + x->force_new = outlet_new(&x->x_obj, 0); + x->profondeur =outlet_new(&x->x_obj, 0); + x->vitesse = outlet_new(&x->x_obj, 0); + + x->P_old = 0; + + if (argc>=5) + x->P = atom_getfloatarg(4, argc, argv); + else + x->P = 1; + + if (argc>=4) + x->Y2 = atom_getfloatarg(3, argc, argv); + else + x->Y2 = 0; + + if (argc>=3) + x->X2 = atom_getfloatarg(2, argc, argv); + else + x->X2 = 1; + + if (argc>=2) + x->Y1 = atom_getfloatarg(1, argc, argv); + else + x->Y1 = 0; + + if (argc>=1) + x->X1 = atom_getfloatarg(0, argc, argv); + else + x->X1 = -1; + + return (x); +} + +void tSeg2D_setup(void) +{ + + tSeg2D_class = class_new(gensym("tSeg2D"), + (t_newmethod)tSeg2D_new, + 0, sizeof(t_tSeg2D), + CLASS_DEFAULT, A_GIMME, 0); + + class_addcreator((t_newmethod)tSeg2D_new, gensym("pmpd.tSeg2D"), A_GIMME, 0); + + class_addmethod(tSeg2D_class, (t_method)tSeg2D_position2D, gensym("position2D"), A_DEFFLOAT, A_DEFFLOAT, 0); + + class_addmethod(tSeg2D_class, (t_method)tSeg2D_Xmin, gensym("setX1"), A_DEFFLOAT, 0); + class_addmethod(tSeg2D_class, (t_method)tSeg2D_Ymin, gensym("setY1"), A_DEFFLOAT, 0); + class_addmethod(tSeg2D_class, (t_method)tSeg2D_Xmax, gensym("setX2"), A_DEFFLOAT, 0); + class_addmethod(tSeg2D_class, (t_method)tSeg2D_Ymax, gensym("setY2"), A_DEFFLOAT, 0); + class_addmethod(tSeg2D_class, (t_method)tSeg2D_P, gensym("setPmax"), A_DEFFLOAT, 0); + +} diff --git a/src/tSphere3D.c b/src/tSphere3D.c new file mode 100755 index 0000000..6ef9cfa --- /dev/null +++ b/src/tSphere3D.c @@ -0,0 +1,128 @@ +#include "m_pd.h" +#include "math.h" + +static t_class *tSphere3D_class; + +typedef struct _tSphere3D { + t_object x_obj; + t_float X, Y, Z, Rmin, Rmax, position_old; + t_outlet *force_new, *distance_out, *vitesse;// outlet +} t_tSphere3D; + +void tSphere3D_position3D(t_tSphere3D *x, t_float X, t_float Y, t_float Z) +{ +t_float distance, vitesse; + distance = sqrt ( (X - x->X)*(X - x->X) + (Y - x->Y)*(Y - x->Y) + (Z - x->Z)*(Z - x->Z)); + + vitesse = distance - x->position_old; + x->position_old = distance; + + outlet_float(x->vitesse, vitesse); + + outlet_float(x->distance_out, distance); + + if ( (distance < x->Rmax) & (distance > x->Rmin) ) + { + outlet_float(x->force_new, 1); + } + else + { + outlet_float(x->force_new, 0); + } + +} + +void tSphere3D_setXYZ(t_tSphere3D *x, t_float X, t_float Y, t_float Z) +{ + x->X= X; + x->Y= Y; + x->Z= Z; +} + +void tSphere3D_setX(t_tSphere3D *x, t_float X) +{ + x->X= X; +} + +void tSphere3D_setY(t_tSphere3D *x, t_float Y) +{ + x->Y= Y; +} + +void tSphere3D_setZ(t_tSphere3D *x, t_float Z) +{ + x->Z= Z; +} + +void tSphere3D_setRmax(t_tSphere3D *x, t_float X) +{ + x->Rmax= X; +} + +void tSphere3D_setRmin(t_tSphere3D *x, t_float X) +{ + x->Rmin= X; +} + + + +void *tSphere3D_new(t_symbol *s, int argc, t_atom *argv) +{ + t_tSphere3D *x = (t_tSphere3D *)pd_new(tSphere3D_class); + + x->force_new=outlet_new(&x->x_obj, 0); + x->distance_out=outlet_new(&x->x_obj, 0); + x->vitesse=outlet_new(&x->x_obj, 0); + + x->position_old = 0; + + + if (argc>=5) + x->Rmax= atom_getfloatarg(4, argc, argv); + else + x->Rmax= 1; + + if (argc>=4) + x->Rmin= atom_getfloatarg(3, argc, argv); + else + x->Rmin= 0; + + if (argc>=3) + x->Z= atom_getfloatarg(2, argc, argv); + else + x->Z= 0; + + if (argc>=2) + x->Y= atom_getfloatarg(1, argc, argv); + else + x->Y= 0; + + if (argc>=1) + x->X= atom_getfloatarg(0, argc, argv); + else + x->X= 0; + + return (x); +} + +void tSphere3D_setup(void) +{ + + tSphere3D_class = class_new(gensym("tSphere3D"), + (t_newmethod)tSphere3D_new, + 0, sizeof(t_tSphere3D), + CLASS_DEFAULT, A_GIMME, 0); + + class_addcreator((t_newmethod)tSphere3D_new, gensym("pmpd.tSphere3D"), A_GIMME, 0); + + class_addmethod(tSphere3D_class, (t_method)tSphere3D_position3D, gensym("position3D"), A_DEFFLOAT, A_DEFFLOAT, A_DEFFLOAT, 0); + + class_addmethod(tSphere3D_class, (t_method)tSphere3D_setX, gensym("setX"), A_DEFFLOAT, 0); + class_addmethod(tSphere3D_class, (t_method)tSphere3D_setY, gensym("setY"), A_DEFFLOAT, 0); + class_addmethod(tSphere3D_class, (t_method)tSphere3D_setZ, gensym("setZ"), A_DEFFLOAT, 0); + class_addmethod(tSphere3D_class, (t_method)tSphere3D_setXYZ, gensym("setXYZ"), A_DEFFLOAT, A_DEFFLOAT, A_DEFFLOAT, 0); + class_addmethod(tSphere3D_class, (t_method)tSphere3D_setRmax, gensym("setRmax"), A_DEFFLOAT, 0); + class_addmethod(tSphere3D_class, (t_method)tSphere3D_setRmin, gensym("setRmin"), A_DEFFLOAT, 0); + + +} diff --git a/src/tSquare2D.c b/src/tSquare2D.c new file mode 100755 index 0000000..4e14fa0 --- /dev/null +++ b/src/tSquare2D.c @@ -0,0 +1,92 @@ +#include "m_pd.h" +#include "math.h" + +static t_class *tSquare2D_class; + +typedef struct _tSquare2D { + t_object x_obj; + t_float Xmin, Xmax, Ymin, Ymax; + //extrem = Xmin, Ymin, Xmax, Ymax; + t_outlet *force_new;// outlet +} t_tSquare2D; + +void tSquare2D_position2D(t_tSquare2D *x, t_float X, t_float Y) +{ + + if ((X > x->Xmin) & (X < x->Xmax) & (Y > x->Ymin) & (Y < x->Ymax)) + { + outlet_float(x->force_new, 1); + } + else + { + outlet_float(x->force_new, 0); + } +} + +void tSquare2D_Xmin(t_tSquare2D *x, t_float X) +{ + x->Xmin= X; +} + +void tSquare2D_Xmax(t_tSquare2D *x, t_float X) +{ + x->Xmax= X; +} + +void tSquare2D_Ymin(t_tSquare2D *x, t_float X) +{ + x->Ymin= X; +} + +void tSquare2D_Ymax(t_tSquare2D *x, t_float X) +{ + x->Ymax= X; +} + +void *tSquare2D_new(t_symbol *s, int argc, t_atom *argv) +{ + t_tSquare2D *x = (t_tSquare2D *)pd_new(tSquare2D_class); + x->force_new=outlet_new(&x->x_obj, 0); + + if (argc>=4) + x->Ymax = atom_getfloatarg(3, argc, argv); + else + x->Ymax = 1; + + if (argc>=3) + x->Ymin = atom_getfloatarg(2, argc, argv); + else + x->Ymin = -1; + + if (argc>=2) + x->Xmax = atom_getfloatarg(1, argc, argv); + else + x->Xmax = 1; + + if (argc>=1) + x->Xmin = atom_getfloatarg(0, argc, argv); + else + x->Xmin = -1; + + return (x); +} + +void tSquare2D_setup(void) +{ + + tSquare2D_class = class_new(gensym("tSquare2D"), + (t_newmethod)tSquare2D_new, + 0, sizeof(t_tSquare2D), + CLASS_DEFAULT, A_GIMME, 0); + + class_addcreator((t_newmethod)tSquare2D_new, gensym("pmpd.tSquare2D"), A_GIMME, 0); + + class_addmethod(tSquare2D_class, (t_method)tSquare2D_position2D, gensym("position2D"), A_DEFFLOAT, A_DEFFLOAT, 0); + + class_addmethod(tSquare2D_class, (t_method)tSquare2D_Xmin, gensym("setXmin"), A_DEFFLOAT, 0); + class_addmethod(tSquare2D_class, (t_method)tSquare2D_Ymin, gensym("setYmin"), A_DEFFLOAT, 0); + class_addmethod(tSquare2D_class, (t_method)tSquare2D_Xmax, gensym("setXmax"), A_DEFFLOAT, 0); + class_addmethod(tSquare2D_class, (t_method)tSquare2D_Ymax, gensym("setYmax"), A_DEFFLOAT, 0); + + +} -- cgit v1.2.1