CaRMetal est un logiciel libre de géométrie dynamique, créé par Éric Hakenholz en 2006, à partir du moteur de C.a.R., de René Grothmann. Le logiciel est développé en langage Java. Il tire son nom de la finition « métal brossé » de l'interface Swing.

Description

Engagement direct

Basé sur l'a-modalité des boîtes de dialogue, CaRMetal est conçu pour que l'utilisateur soit le plus possible en engagement direct. Le fil à la patte en est l'aboutissement ultime, ce qui donne à CaRMetal un intérêt même pour l'enseignement de la géométrie à l'école primaire. Les élèves du collège, quant à eux, ont droit à une préhension immédiate de l'outil grâce à l'a-modalité mais aussi à des icônes idéographiques et non textuelles pour représenter les outils.

Outils

La création de macros est assez conviviale, et CaRMetal est fourni avec une bibliothèque de macros assez vaste. Outre les outils classiques de création de points, cercles, droites et polygones, on peut aussi construire des coniques, des représentations graphiques de fonctions, des lieux de points ou enveloppes de droites, et même de lignes de niveau. Le repère étant systématiquement orthonormé, la représentation graphique de certaines fonctions est parfois difficile à voir. Lorsqu'une transformation a été définie pour un point, on peut l'appliquer à un ensemble de points. Un point peut être fixé à une courbe mais aussi à l'intérieur d'un cercle ou d'un polygone.

Formats de fichier

thumb|338px|Une matrice dynamique dont les coefficients sont pilotés par les extrémités des vecteurs

CaRMetal exporte aux formats png, svg, encapsulated PostScript, pdf et html. Le format de fichier (extension « zir ») est d'ailleurs une description de la figure au format xml. Les propriétés des objets (comme leur couleur ou leur numéro de calque) peuvent être rendues dépendantes de grandeurs numériques via des expressions booléennes. Les textes, y compris le nom des objets, peuvent être écrits en LaTeX avec des expressions dynamiques. Ce sont les bibliothèques HotEqn et JLatexMath qui gèrent le LaTeX.

Géométrie dans l'espace

thumb|419px|Un dodécaèdre qui peut tourner à l'écran, avec le clic droit de la souris ; on voit également le repère de l'espace.

CaRMetal est décrit comme un logiciel « 2,5D » : en effet, s'il paraît exagéré de considérer CaRMetal comme un logiciel de géométrie dans l'espace, il s'en rapproche tout de même un peu, avec des figures en perspective cavalière, que l'on peut faire pivoter à l'écran, non par les méthodes classiques en 3D que sont les angles d'Euler et les quaternions, mais en faisant glisser un point (invisible) sur l'écran. De cette manière, les mouvements de la figure sont plus réversibles qu'avec les quaternions. En effet, la multiplication des quaternions n'est pas commutative, ce qui implique qu'en refaisant les mouvements de la souris à l'envers, on ne revient pas tout à fait à la configuration initiale (avec un logiciel comme Géoplan-GéoSpace). Le mouvement réversible de CaRMetal paraît plus facile à contrôler pour certains utilisateurs.

Particularités de CaRMetal

Dans CaRMetal, les objets peuvent être munis de magnétisme, qui leur permet d'être attirés vers des objets ou des endroits particulièrement dignes d'intérêt de la figure. Les animations peuvent être multiples (plusieurs points peuvent bouger en même temps sur des objets auxquels ils sont liés). Les animations ne sont pas bloquantes, on peut continuer la figure pendant les animations, ce qui autorise des types d'investigation spécifiques. Un outil appelé Monkey fait bouger tous les points mobiles d'une figure en suivant une marche aléatoire bornée. Il permet de vérifier la solidité de la construction (résistance au mouvement) ou encore de tester des conjectures. Son utilisation dans les exerciciels leur confère la possibilité de donner une note de qualité à la construction de l'élève. Les figures peuvent être regroupées en classeurs, où elles sont repérées par des onglets.

JavaScript

CaRMetal est aussi doté d'un langage de script : JavaScript (avec l'interpréteur rhino de la fondation Mozilla). Cette fonctionnalité qui permet de construire des objets complexes comme des fractales ou des tableaux de fils, a pour conséquence d'extraire CaRMetal du contexte de la géométrie dynamique, et d'en faire un outil d'enseignement de l'algorithmique. Deux néologismes sont apparus: Un CaRScript est un script écrit en JavaScript sous CaRMetal, et un carscripticiel est un exerciciel dont le but n'est pas une construction géométrique mais l'évaluation d'un CaRScript. Le concept d'exerciciel d'algorithmique semble inédit.

Intérêt didactique

L'anticipation des constructions

thumb|264px|Lorsqu'on construit une parallèle, avant d'être créée, elle suit la souris. Cette capacité du logiciel accompagne l'apprentissage des concepts géométriques.

Les logiciels de géométrie dynamique utilisent fortement l'engagement direct, cette impression que le logiciel interprète correctement ce que l'on veut faire (on pointe l'intersection de deux objets, le logiciel construit cette intersection). Plus généralement l'engagement direct est un comportement général du logiciel qui reconnait l'utilisateur comme sujet cognitif ayant une intention : si un élève pointe l'intersection de deux droites, c'est qu'il veut construire cette intersection. Avec l'anticipation des constructions, l'engagement direct franchit une étape supplémentaire. L'objet est préconstruit dès qu'il ne reste plus qu'un point à cliquer. Parfois, l'objet est construit et est alors déplacé avec la souris (parallèle, perpendiculaire, transformations ponctuelles). Ce déplacement participe alors à l'apprentissage de l'utilisateur par la perception qu'il donne du mouvement euclidien possible de l'objet. L'utilisateur se forge des représentations du concept qu'il manipule qui tiennent déjà compte de ces premières observations. L'anticipation des constructions permet à l'engagement direct d'aller plus loin que sans elle : il reconnait l'utilisateur aussi dans son statut d'apprenant et l'accompagne dans son apprentissage. Cet accompagnement dans l'apprentissage des concepts n'est pas le propre des classes de fin de l'école primaire ou de début de collège. Dans un autre registre, pour forger rapidement de bonnes représentations, on retrouve la même efficacité dans des micromondes non euclidiens avec des étudiants comme pour le parallélisme non arguésien du plan de Moulton ou l'orthogonalité dans cette même géométrie.

Instrumentalisation de l’anticipation

L’anticipation des constructions, s’appliquant à tout outil, y compris les macro-constructions, on peut l’utiliser pour structurer autrement des situations d’investigation. En particulier, il n’est plus nécessaire de finaliser une construction pour infirmer une conjecture, ou encore des constructions partielles – anticipées - peuvent renforcer des conjectures. Plus généralement, cette pratique, qu’il convient d’organiser dans un premier temps, favorise une réflexion métacognitive sur ce que l’on fait en analysant la rétroaction du logiciel en cours d’utilisation, pendant la manipulation directe. Là encore, selon le contexte, cela peut se faire sur des situations euclidiennes élémentaires ou dans des géométries moins standard.

Réalité mathématique augmentée

En géométrie dynamique, la manipulation directe permet, en introduction à la démarche hypothético-déductive, de revisiter la notion de propriété géométrique comme invariant, et plus spécifiquement comme le résultat d’une construction qui résiste au mouvement (l’orthocentre, l’intersection des médianes, etc.).

Malgré son efficacité, il y a une situation importante en mathématique où la manipulation directe perd de sa pertinence. C’est le cas quand, dans une figure de géométrie ou d’analyse, un point particulier, mathématiquement significatif, est a priori inaccessible à la manipulation directe. Le simple tiers d’un segment n’est généralement pas atteignable à la souris.

L’aimantation pondérée permet de placer un point sur un objet (pondération forte) tout en le faisant passer par un point particulier de cet objet, significatif pour la figure (pondération minimale qui maintient l’illusion de la continuité du mouvement). La manipulation directe ainsi pondérée, passant par un point significatif, rend le réalisme de la situation augmenté du sens mathématique contenu dans le cas particulier.

Déterminisme enrichi

Réaliser un logiciel de géométrie dynamique c’est choisir, entre autres, en permanence le déterminisme (la figure reprend la même instance quand les objets initiaux reviennent à leur position initiale) plutôt que la continuité (dont le suivi continu des intersections) tout en respectant le plus possible cette continuité qui donne du sens à l’utilisateur. On sait que les deux concepts ne sont pas totalement compatibles et ce fut un travail important des pionniers en géométrie dynamique (l’équipe de Cabri Géomètre en France et de Cinderella (logiciel) en Allemagne) de dégager ce qui était réalisable ou non dans cette antinomie et de le traduire par des algorithmes.

CaRMetal a hérité du moteur de C.a.R. de la récursivité des points et des expressions. Cette récursivité permet de s’affranchir du déterminisme de manière contrôlée, mathématiquement significative, et donc prévisible (ce qui n’est pas toujours le cas de la continuité). Par ailleurs, en y ajoutant l’aimantation, on peut maintenir le déterminisme général d’une figure tout en lui autorisant des ilots de non déterminisme qui renforcent, d’une autre façon que ci-dessus, l’efficacité – ou le sens - mathématique de la simulation ou du micromonde que l’on propose à l’investigation des élèves ou des étudiants. Ce contexte nécessite d’être préparé et s’adresse donc à des enseignants qui veulent engager une ingénierie particulière. Quelques exemples simples sont téléchargeables sur les sites utilisant le logiciel, mais il ne semble pas que de véritables projets significatifs aient été développés.

Géométrie repérée dynamique

Avec l’arrivée des scripts dans le logiciel, un nouveau champ d’investigation apparaît dans les sites d’utilisateurs. D’une manière générale, le principe est d’utiliser les aspects élémentaires de la programmation et la sortie dynamique de la figure produite par script comme processus d’intermédiation entre le numérique et l’algèbre : on perçoit du numérique (en géométrie sur quadrillage, ou en analyse dans un repère) on infère les propriétés observées de manière numérique, par une écriture algébrique qui est aussitôt testée et infirmée ou confirmée. Dans ce dernier cas on dispose d’une expression algébrique dont la validité est renforcée par l’exploration en manipulation directe : d’où l’expression de géométrie repérée dynamique (les autres pratiques de programmation étant par essence généralement statiques). Cette démarche fait le pari d’un outil intermédiaire vers l’algèbre (comme l'est aussi le tableur) tout en restant résolument du côté de l’algèbre, pas que n’a pas franchi l’usage du tableur.

La pratique est encore trop récente pour savoir si elle a véritablement l’effet qu’elle décrit.

Système de classeurs

CaRMetal possède un système d'onglet (informatique)s, permettant de regrouper plusieurs figures en un seul classeur de figures. La navigation est très analogue à celle des tableurs, en faisant défiler les onglets et en cliquant sur celui qu'on a choisi. Un seul fichier CaRMetal peut donc contenir des dizaines de figures.

Magnétisme