A propos d'ODECo

From OFSET Wiki

Jump to: navigation, search

Contents

[edit] Introduction

Il existe 2 types d'applications d'ODECo développées par Takashi YAMAMIYA[1], l'une en 3D qui fonctionne avec CROQUET et l'autre en 2D qui est intégrée au catalogue des objets après son installation. C'est cette dernière que nous allons étudier ici.

Pour la version complète de squeak 3.8, on peut l'installer à partir du menu monde à partir de squeakMap.

Pour le plugin Squeak (version Squeakland), il faut télécharger le fichier SAR, le rechercher depuis menu monde ouvrir->liste fichier et utiliser le bouton install.

En plus il faut télécharger et installer le plugin ODECo, différent pour Windows, Linux et Mac. Sous Linux, le répertoire des plugin est généralement dans /usr/lib/squeak

Dans l'ancienne version pour Squeak 3.7 distribuée sous forme d'image on avait cet écran de présentation d'ODECo .

image:ODECopage.jpeg

Cet écran contient une série de mini-écrans que l'on peut activer successivement. Ils donnent, en anglais, le nom de l'auteur, les caractéristiques de ce nouvel espace et celles des objets qu'il contient, les manœuvres à faire pour les manipuler et une série d'exemples qui sont à explorer et qui illustrent le jeu des forces en présence.

Ces projets ont été repris et placés sur le superswiki, ils sont référencés au dessous de leur description ci-dessous.

Si vous partez d'un projet vide, ouvrez le catalogue des objets soit en le tirant du tiroir Accessoires (pour Squeak plugin) ou du tiroir Multimédia pour l'mage 3.8, ou à partir du menu monde.

Sélectionner ODE. Apparaissent alors un Champ de forces (ODECo field) et une série d'objets ('Ball, Bar, Hinge) à introduire dans ce Champ et dont le poids est proportionnel à la taille. L'élément 'Hinge'(charnière) sert à fixer 1 objet sur le fond, ou 2 objets entre eux.

Accès à ODECo depuis le catalogue d'objets
Accès à ODECo depuis le catalogue d'objets

[edit] Observer ODECo

Si l'on lâche n'importe lequel de ces objets à l'intérieur du champ ODECo, il se met à chuter comme s'il était soumis à l'action de la pesanteur et à rebondir sur place jusqu'à ce qu'il ait épuisé ses réserves d'énergie. S'il y en a plusieurs, ils vont se heurter les uns les autres et heurter les limites du champ en réactivant à chaque fois leurs potentiels énergétiques réciproques jusqu'à épuisement.

Cet univers est étroitement bidimensionnel car ses objets évoluent dans un espace sans profondeur. Ils n'ont pas la possibilité, quand ils sont actifs, de se superposer en se croisant, par conséquent ils ne peuvent que se toucher et se repousser, ce qui va introduire une particularité dans leurs réactions qui sont aussi liées aux vitesses de déplacement, aux angles de réfraction lors des heurts et à leur poids modifié par la vitesse et les autres facteurs du champ.

[edit] Les caractéristiques du champ de forces

Catégorie de commandes spécifiques au champ de force ODECo
Catégorie de commandes spécifiques au champ de force ODECo

En ouvrant le visualiseur du champ, on s'aperçoit qu'il possède une catégorie de commandes supplémentaire, ODECo, qui lui permet non seulement de soumettre les objets qui y sont introduits à des effets comparables à ceux que la gravitation impose aux objets dans le monde réel (différents états de pesanteur ou d'apesanteur), mais amène ces objets eux-mêmes à se comporter comme s'ils étaient doués de qualités particulières modifiables liées à leur masse. Faire varier les paramètres chiffrés du champ permet de modifier à la fois l'environnement des objets mais aussi leurs caractéristiques propres et leur comportement.

Ce qui veut dire que quand on ajuste les différentes forces du champ, on impose à tous les objets qui le peuplent des caractéristiques identiques en dehors de la taille et du poids.

Une expérimentation préalable permet de constater que, lâchés dans le champ, tous les objets, quelle que soit leur taille (donc leur poids) et leur forme tombent à la même vitesse comme le veut la loi de la gravitation. Si la valeur numérique de la gravité atteint ou dépasse 100, les objets sont d'un poids tel qu'ils plongent au fond du champ ou peuvent même en sortir.

Quand les objets, en tombant, se heurtent ou rencontrent des plans inclinées, cela perturbe l'orientation de leur chute. Ils peuvent changer de direction en fonction de l'inclinaison du plan ou bien, selon la valeur numérique des paramètres, suivre la pente en accélérant leur vitesse.

Mais dans le cas d'objets multiples qui entrent en contact les uns avec les autres, il peut se créer des réactions réciproques très variées en raison des angles de réfraction, souvent entrecroisés, qui perturbent ou relancent l'activité de chacun des éléments.

[edit] Les objets ODECo

Commande velocity pour régler la vitesse de l'objet.
Commande velocity pour régler la vitesse de l'objet.

Les objets ODECo ont un visualiseur et sont programmables comme les objets Squeak traditionnels. Mais ils ont, dans la catégorie Base une commande supplémentaire velocity qui a plusieurs finalités :

  • Telle qu'elle est, dans le visualiseur, elle enregistre et renseigne sur l'activité motrice de l'objet en mouvement, marquant 0 quand il est à l'arrêt ou un chiffre plus ou moins élevé selon sa vitesse de déplacement.
  • Quand elle est placée dans un script, elle impose à l'objet une vitesse de déplacement indépendante, qui ralentit ou accentue son rythme normal et lui donne, de ce fait, une allure qui peut être différente de celle qui était la sienne au départ.

C'est un des moyens, proposé par Odeco, pour donner à des objets de même taille et de même forme (donc de même poids) une vitesse de déplacement, un dynamisme (et peut-être une masse) différents. Cela passe par un script.

Les objets ODECo ne sont pas les seuls à pouvoir être placés à l'intérieur du champ de forces. On peut y mettre aussi tous les objets Squeak, y compris ceux fabriqués sur l'espace dessin. Ils seront crédités automatiquement de la commande velocity.

En résumé, nous sommes en présence d'un espace de simulation qui soumet les objets à un ensemble de forces qui les amène à agir et réagir de façon interdépendante (Simulating articulated rigid body dynamics). Nous avons 2 types d'acteurs :

  • Le champ, qui sert à modifier la pesanteur et les caractéristiques des objets qui le peuplent.
  • Le ou les objets placés dans le champ, qui subissent un certain nombre de ces contraintes, mais qui ont la possibilité d'avoir des comportements indépendants en étant programmés.

Pour simuler une situation que l'on peut observer dans le monde réel, il faudra que les différents paramètres du champ soient modifiés jusqu'à ce que l'on obtienne le résultat espéré. La solution ne peut être trouvée par calcul comme la résolution d'un problème de Physique, c'est une question de mises en relation de potentialités par ajustements successifs.

C'est aussi une façon de procéder qui est d'un accès facile et ne nécessite que le sens de l'observation, un peu de raisonnement et l'envie de chercher. Elle peut être proposée à des enfants.

On peut faire fonctionner ces ensembles soit en ajustant les paramètres de la catégorie ODECo, sans passer par les scripts, soit en usant conjointement de la programmation pour obtenir des comportements plus particuliers. Mais on pourra aussi se servir de ces potentialités pour inventer des situations dynamiques inattendues ou imaginaires.

[edit] Les simulations sans programmation proposées par l'écran de présentation

La page de démonstration nous en donne plusieurs exemples.

[edit] Blocs en équilibres

L'activation du champ de forces (ON/OFF) provoque la chute des objets. Disposés un peu au hasard ils tombent, entraînés par leur propre poids. Ils se heurtent les uns aux autres et perturbent réciproquement leurs trajectoires de chute.

[edit] Dominos

L'effondrement général d'un groupe d'objets (les dominos) est provoqué par la chute de l'un d'entre eux lorsque le champ de force est activé et libère une boule dont la trajectoire est déviée par un plan incliné.

La chute de la boule jaune et sa déviation provoquent, par contre coup, l'effondrement successif d'une construction à 2 étages dont la partie supérieure est atteinte astucieusement par une tige relais.

Pas de scripts dans ces 2 exemples, et si l'on compare les chiffres des paramètres, on voit que celui du champ de gravitation est plus élevé dans la chute des dominos que dans la chute des objets. Ce qui veut dire qu'il n'y a pas de constante gravitationnelle dans l'univers d'Odeco et que celle-ci peut être adaptée selon les circonstances.

[edit] Les simulations contrôlées par la programmation

Plusieurs exemples.

Dans celui présenté ci-dessous, l'activation du champ (le bouton ON/OFF) et du script par l'intermédiaire de la réglette GO, dynamisent les boules roses. Elles entrent en contact avec la tache grise (couleur vue ), sont transportées sur la flèche verte en haut du champ et retombent avec les effets de la pesanteur. Elles font basculer la planche centrale, et entraînent les boules dans un mouvement tournant ininterrompu.

D'autres exemples sont proposés par l'écran de démonstration qui illustrent des procédés passant par la programmation (le sablier, les boules de billard).

La programmation joue le rôle d'élément déclencheur de l'action.

Nous avons aussi, en démonstration, d'autres exemples qui font appel à d'autres éléments comme la charnière qui permet d'articuler entre eux des objets divers ou qui utilisent des objets créés sur l'espace dessin. Cela élargit l'éventail des possibilités et permet de diversifier le type des situations, parmi lesquelles certaines plus imaginatives comme celle de l'aquarium….

[edit] En bref

L'examen des 3 cas présentés montre que le réglage des paramètres du champ de forces ne respecte pas de façon absolue les lois intangibles de la physique, et que, pour obtenir certains résultats, il faut souvent accentuer ou affaiblir la valeur numérique de l'un ou l'autre de ces paramètres, ou faire appel, de façon complémentaire, à la programmation.

Cela suggère également que ces moyens qui permettent d'obtenir la simulation de comportements observables dans le monde réel peuvent aussi être détournés et servir à présenter d'autres cas pouvant appartenir à d'autres domaines, celui de l'anecdotique, du narratif, de l'imaginaire. Il est même possible de traiter de situations carrément déconnectées de la réalité.

[edit] Simulations concrêtes

La première chose à faire est d'ouvrir la catégorie Odeco du visualiseur du champ de force et de tester les réactions des objets introduits dans le champ quand on fait varier les valeurs numériques des différents paramètres. Quand on en aura une idée assez précise, on pourra commencer à rechercher sur quels paramètres jouer pour obtenir des simulations de phénomènes observables dans le milieu naturel.

[edit] Projet Flottaisons

On a essayé d'adapter les paramètres du champ Odeco pour reproduire la force du courant de l'eau de la rivière et donner au bois de flottage la réactabilité qui caractérise ces objets quand ils sont emportés par une force extérieure et soumis aux chocs et contrechocs des rencontres entre eux et avec les bords de la rivière. La force de la gravité qui pousse vers le bas pouvant s'assimiler à la direction du courant.

Les bords de la rivière on été construits avec des barres Odeco dont on a changé la couleur, et une de ces barres a été placée au bas de la rivière (et rendue invisible) pour servir d'obstacle et permettre le renvoi vers le haut du bois de flottage. (vérifier que les paramètres du champ sont bien ceux indiqués ci-dessus ou les modifier pour une meilleure flottaison)

Le projet odecoFlottage, à télécharger et étudier :

[edit] Projet Tremplin

Il reprend les principes un peu modifiés de la planche basculante : une balle d'une certaine élasticité qui rebondit dans un espace encombré et rejoint un point qui provoque des changements de position.

Dans cet exemple, il s'agit de trouver les valeurs à donner aux différents paramètres du champ pour permettre à la balle rouge qui tombe en chute libre sur un plan incliné de rejoindre le tremplin , puis de programmer la rencontre avec 2 obstacles pour ramener la balle à son point de départ.

Les valeurs du champ sont données comme étant nulles et doivent être testées pour découvrir celles qui sont susceptibles de permettre à la balle de réussir la performance en activant la touche ON/OFF.

Le projet odeTremplin, à télécharger et étudier :

D'autres types de simulations dynamiques s'inspirant de la réalité sont à chercher. Cela présente une certaine difficulté parce qu'il faut que les objets ODECo et leur comportement soient fortement évocateurs des situations à simuler.

Mais on peut, d'une façon plus générale, considérer l'espace ODECo et ses objets comme étant en eux-mêmes un champ d'expérimentation. Cela donne envie d'en explorer le potentiel avec ou sans référence à une situation concrète.

[edit] Jouer avec ODECo

Cela consiste à chercher un peu dans tous les sens et sans à-proiri en mettant en scène toutes sortes de situations même déconnectées du réel.

Les objets provenant du fond Odeco ou de l'espace dessin seront utilisés ensemble ou séparément. Le champ de forces lui aussi pourra subir des modifications, changer de forme et de couleur ou être personnalisé et décoré sur l'espace dessin.

[edit] Décorer le champ ODECo

On amène le Champ de forces sur l'espace Dessin avec le bouton gris de son Halo pour en modifier l'apparence avec l'aide de la palette. Il peut se couvrir de taches, de traits, ou de dessins de toutes sortes. Ces ajouts intégrés au fond échappent à l'action des forces et de la programmation, ce sont des traces et non des objets.

Cela permet d'élargir le champ des sujets choisis et de donner une plus large part au dessin libre et à l'imagination et de placer le jeu très concret des forces dynamiques d'ODECo dans une pluralité d'environnements.

Quand on ramène le champ de forces sur l'écran Monde après l'avoir modifié sur l'espace dessin, on a un message d'erreur : Cet objet n'est pas dans la collection. PASSER OUTRE, le champ ne perd aucune de ses qualités.

[edit] Quelques recherches en liberté

[edit] Projet Brindilles

Gravité 0 et formes ODECo enchaînées avec des charnières.

Le Champ de forces a été orné de bandes de couleurs variées sur l'espace dessin et réglé avec les valeurs suivantes :

  • gravité 0
  • densité 27
  • rebondissement 75

Des formes ODECo fixées entre elles par une charnière, avec au milieu une balle rouge ODECo dont on a porté, par script, la vélocity à 200. Ces objets sont en apesanteur, mais si l'on active le script de la balle rouge, elle réveille la vélocité des brindilles et les disperse dans tous les sens.

Le projet odecoBrins, à télécharger et étudier :

[edit] Projet Vent d'automne

Gravité 4, décor et formes venus de l'espace dessin.

image:Herbages.jpeg

Faire virevolter assez vivement des feuilles mortes. Créées sur l'espace dessin, elles sont influencées par les forces du champ mais n'en respectent pas les limites et se dispersent sur tout l'écran.

Le projet odecoFeuilles, à télécharger et étudier :

[edit] Projet Sémaphore

Gravité 4, champ de forces et programmation.

Réglage du champ de forces :

  • gravité 4
  • rebondissement 100

Un objet Squeak (la tour) ne fait pas obstacle au déplacement d'un objet ODECo (la tige pivotante beige fait un tour complet sur elle-même). Mais le balancier vert (ODECo) est repoussé par les butoirs beiges. La programmation concerne uniquement le passage du rouge au vert du disque quand la tige pivotante heurte l'un ou l'autre des blocs latéraux.

Le projet odecoSignal, à télécharger et étudier :


[edit] Projet Parfum

Balles transparentes en apesanteur.

image:parfum.jpg

champ de forces de couleur noire retravaillé sur l'espace dessin. Une série de balles de teintes presque transparentes (pour une évocation des effluves du parfum), en apesanteur, sont heurtées par des balles jaunes de vélocité élevée pour les dynamiser .

Le projet odecoParfum, à télécharger et étudier :

[edit] Projet 'il neige'

Champ de forces décoré et scripts.

Régler les paramètres du Champ pour faire tomber quelques flocons de neige avec douceur :

  • gravité 15
  • softness 2

Le projet odecoNeige, à télécharger et étudier :

[edit] Les traces sur le champ de forces

Pour ceux qui s'intéressent aux jeux graphiques.

Nous savons que l'on peut créer des tracés linéaires directement sur le fond de l'écran squeak en déplaçant les objets avec la position 'Crayon baissé' et en réglant l'épaisseur et la couleur des traits. On peut faire la même chose avec des objets placés à l'intérieur d'un Champ de forces, mais comme ils vont se déplacer sous l'influence d'impulsions dynamiques et non sous celle d'ordres donnés par des scripts, les traits matérialiseront des parcours, des retours et des rebonds d'un caractère imprévisible à l'avance et aléatoire.

[edit] Projet ODECo

Les exercices ci-dessous ont utilisé la page de présentation d'Odeco pour :

1 – enregistrer simplement le jeu des déplacements provoqués par l'activation du champ de forces jusqu'à épuisement du plus petit rebond . Un script par lettre donne la largeur du trait et sa couleur.

2 - le même dispositif est jumelé ici avec un script qui ramène automatiquement chaque élément à sa place initiale après un déplacement provoqué par le champ de forces.

[edit] Projet Tourne

Les champs de forces pivotants.

Le champ Odeco a un visualiseur comme tous les objets Squeak. Il peut modifier son apparence mais aussi bouger et se déplacer. Dans ce projet nous avons 2 champs placés l'un au-dessus de l'autre et réunis par une charnière mais pivotant en sens inverse. Chacun des 2 contient un lot d'objets qui lui est soumis et ne peut s'en échapper, mais leurs forces sont réglées différemment. Le champ supérieur est transparent et contient un ensemble de balles dont certaines tracent des lignes influencées par les divers déplacements.

Le projet odecoTourne, à télécharger et étudier :


[edit] En conclusion

L'ensemble des essais qui ont été analysés et effectuées ici, montrent qu'entrer dans le monde d'Odeco est un plaisir. Mais c'est aussi uune incitation à se livrer à la recherche intellectuelle et à s'aventurer dans celui de la création.

On a la possibilité de simuler, avec des moyens spécifiques, des phénomènes qui sont soumis, dans le monde de la réalité, à des lois très rigoureuses. Ce sont des opérations qui demandent à leurs auteurs connaissances, facultés d'adaptation et le don de l'observation ainsi qu'un travail de recherche ardu pour trouver des équivalences avec des comportements régis par ailleurs par les lois de la Physique, l'ambition de l'auteur étant de relier le monde réel et celui de l'informatique.

Mais c'est aussi un monde d'accès facile et une porte ouverte sur la découverte où l'imaginaire de chacun peut s'investir.

Il peut être abordé avec des enfants dans un contexte d'apprentissage :

  • Découvrir les effets de la pesanteur sur les objets.
  • Observer les déviations de trajectoires provoquées par les plans inclinés.
  • Noter ce qui augmente ou atténue l'aptitude aux rebondissements.
  • Constater et avoir envie de provoquer des interactions entre objets en se fixant un objectif etc.

Des mises en scène simples simulées sur le champ d'Odeco peuvent aider les enfants à comprendre, de façon concrète, certaines notions de Physique un peu abstraites, mais cela peut aussi les amener, comme tout un chacun, sur les chemins de la création en organisant sur ce terrain des situations originales, ludiques ou esthétiques présentées dans des cadres personnels

Remarque: Les projets accompagnant ce chapitre fonctionnent en version 3.8 complète de squeak.

Utilisez le menu monde ouvrir->squeakmap pour charger ODECo.

Pour l'instant squeakmap provoque une erreur et ne fonctionne pas avec la version plugin, pour installer ODECo dans la version Squeakland/plugin il faut procéder comme expliqué en début d'article.

Personal tools