CaRMetal
   HOME

TheInfoList



OR:

CaRMetal is an interactive geometry program which inherited the C.a.R. engine. The software has been created by Eric Hakenholz, in
Java Java (; id, Jawa, ; jv, ꦗꦮ; su, ) is one of the Greater Sunda Islands in Indonesia. It is bordered by the Indian Ocean to the south and the Java Sea to the north. With a population of 151.6 million people, Java is the world's List ...
. CaRMetal is free, under
GNU GPL The GNU General Public License (GNU GPL or simply GPL) is a series of widely used free software licenses that guarantee end users the four freedoms to run, study, share, and modify the software. The license was the first copyleft for general us ...
license. It keeps an amount of functionality of C.a.R. but uses a different graphical interface which purportedly eliminates some intermediate dialogs and provides direct access to numerous effects. Constructions are done using a main palette, which contains some useful construction shortcuts in addition to the standard compass and ruler tools. These include perpendicular bisector, circle through three points, circumcircular arc through three points, and conic section through five points. Also interesting are the loci, functions, parametric curves, and implicit plots. Element thickness, color, label, and other attributes (including the so-called
magnetic Magnetism is the class of physical attributes that are mediated by a magnetic field, which refers to the capacity to induce attractive and repulsive phenomena in other entities. Electric currents and the magnetic moments of elementary particle ...
property) can be set using a separate panel. CaRMetal also supports a configurable restricted construction palette and has assignment capabilities, which use an apparently unique feature called ''Monkey''. CaRMetal has a scripting language (
JavaScript JavaScript (), often abbreviated as JS, is a programming language that is one of the core technologies of the World Wide Web, alongside HTML and CSS. As of 2022, 98% of Website, websites use JavaScript on the Client (computing), client side ...
) which allows the user to build rather complex figures like
fractal In mathematics, a fractal is a geometric shape containing detailed structure at arbitrarily small scales, usually having a fractal dimension strictly exceeding the topological dimension. Many fractals appear similar at various scales, as illu ...
s. CaRMetal has several locales including French, English, Spanish, German, Italian, Dutch, Portuguese and Arabic.


Didactic interest


Anticipation

When one chooses a tool like the parallel to a line through a point, or a circle, the intended object appears in yellow color and follows the mouse movements. This allows the user to make conjectures even before the construction is finished. This constant interaction between the pupil and the object of experimentation is in phase with modern theories about
didactics A didactic method ( el, διδάσκειν ''didáskein'', "to teach") is a teaching method that follows a consistent scientific approach or educational style to present information to students. The didactic method of instruction is often contra ...
and, in this view, CaRMetal is intended to be used by
student A student is a person enrolled in a school or other educational institution. In the United Kingdom and most commonwealth countries, a "student" attends a secondary school or higher (e.g., college or university); those in primary or elementar ...
s.


Amodality

The windows which show the history, the tools palette, the properties of the selected object are around the figure and never above it. These windows are not
modal window In user interface design for computer applications, a modal window is a graphical control element subordinate to an application's main window. A modal window creates a mode that disables the main window but keeps it visible, with the modal window ...
s in the sense that they never hide the construction. For example, whenever the user wants to change the color of a polygon, he sees the new color immediately.


Transformations

When a transformation (for example a macro) has been defined, such that it transforms points into points, this transformation can also be applied to curves. Once again, this allows the learning subject to see the properties of the transformation at a glance, even before the transformation has actually been applied.


Assignments

The workbooks (see below) can be exported as
html The HyperText Markup Language or HTML is the standard markup language for documents designed to be displayed in a web browser. It can be assisted by technologies such as Cascading Style Sheets (CSS) and scripting languages such as JavaScri ...
files, with a restricted tools palette (for example, leaving only the intersection and circle tools lets the pupil make compass-only construction). To create an assignment, the teacher chooses the initial objects, the objects to be created by the pupil, and writes a text explaining what is to be done. Since 2010, when the pupil has finished the construction and wants to test it, random variations are tested (with a tool called ''Monkey'') and a quality note is attributed to the pupil (actually, a percentage of the good constructions amongst the variations).


Macros

The macros can be organized in a hierarchy of folders, which make it easy to transform CaRMetal into a tool allowing to explore non-euclidean geometries.


Special features


Workbooks

Since 2010, CaRMetal uses a folder system allowing one to put several figures in one folder, called "workbook". It is easy to navigate between the sheets of a workbook, to duplicate a sheet (or figure), to merge several workbooks into one. CaRMetal allows one to include picture files and JavaScript files into a figure. The file extension of a figure is ''zir'' like in C.a.R. (by the way, there is much compatibility between both software) and the file structure is a meta-description of the figure in the
XML Extensible Markup Language (XML) is a markup language and file format for storing, transmitting, and reconstructing arbitrary data. It defines a set of rules for encoding documents in a format that is both human-readable and machine-readable. T ...
language. But a workbook is saved as a zipped folder containing all the ''zir'' figures, plus the included pictures (
GIF The Graphics Interchange Format (GIF; or , see pronunciation) is a bitmap image format that was developed by a team at the online services provider CompuServe led by American computer scientist Steve Wilhite and released on 15 June 1987. ...
,
JPEG JPEG ( ) is a commonly used method of lossy compression for digital images, particularly for those images produced by digital photography. The degree of compression can be adjusted, allowing a selectable tradeoff between storage size and imag ...
or PNG) and a ''preferences'' file.


Numeric display

It is possible to convert any numerical measure of the figure into text, for display purposes. For example, if a segment called 's1' is 4.5 unit long, writing "The length of the segment is %s1%" creates a character string which displays as ''The length of the segment is 4.5''. This character string can be included into the figure but also set as the ''alias'' of an object (for example ''s1'') or the name of an expression. Of course when one of the extremities of the segment is moved with the mouse, the text is edited in real time. This is called a dynamic text. CaRMetal uses ''HotEqn'' and ''JLatexMath'' which are
LaTeX Latex is an emulsion (stable dispersion) of polymer microparticles in water. Latexes are found in nature, but synthetic latexes are common as well. In nature, latex is found as a milky fluid found in 10% of all flowering plants (angiosperms ...
parsers, and it is possible to write LaTeX formulae inside text objects. For example, if ''poly1'' is a square, and one wishes to find a circle which area is the same as the square's one, one can build a text expression like this: "The radius of the circle would be $\sqrt\simeq %sqrt(poly1/pi)%$" This can give a text such as this: \mbox\sqrt\simeq 1.13 The strength of this feature comes from the fact that it is possible to mix up dynamic texts with LaTeX formulae, getting ''dynamic LaTeX''(when the size of the square changes, the display changes too)!


3D

CaRMetal allows the user to set some properties of the objects, like their color or the fact that they are visible or not, as conditional. Also each object can have a layer number. An important application of these features was the ''2.5D'' mode of CaRMetal, emulating 3D geometry. Since the version 4.0 CaRMetal has a real 3D mode which comes up with a
regular tetrahedron In geometry, a tetrahedron (plural: tetrahedra or tetrahedrons), also known as a triangular pyramid, is a polyhedron composed of four triangular faces, six straight edges, and four vertex corners. The tetrahedron is the simplest of all the o ...
, a
cube In geometry, a cube is a three-dimensional solid object bounded by six square faces, facets or sides, with three meeting at each vertex. Viewed from a corner it is a hexagon and its net is usually depicted as a cross. The cube is the only r ...
, a
diamond Diamond is a Allotropes of carbon, solid form of the element carbon with its atoms arranged in a crystal structure called diamond cubic. Another solid form of carbon known as graphite is the Chemical stability, chemically stable form of car ...
and a
regular dodecahedron A regular dodecahedron or pentagonal dodecahedron is a dodecahedron that is regular, which is composed of 12 regular pentagonal faces, three meeting at each vertex. It is one of the five Platonic solids. It has 12 faces, 20 vertices, 30 edges ...
. It is also possible to bind a point to the inside of a (3D) circle or polygon. This feature, inherited from C.a.R., is based on
barycentric coordinates In mathematics, an affine space is a geometric structure that generalizes some of the properties of Euclidean spaces in such a way that these are independent of the concepts of distance and measure of angles, keeping only the properties related ...
. Since the 4.1 version CaRMetal permits some turtle graphics (programmed in JavaScript) either in 2D or in 3D.


Magnetism

A point can be made
magnetic Magnetism is the class of physical attributes that are mediated by a magnetic field, which refers to the capacity to induce attractive and repulsive phenomena in other entities. Electric currents and the magnetic moments of elementary particle ...
with a distance and a list of objects it is attracted to whenever the point is sufficiently near one or several of these objects (sufficiently near means that the distance between them is less than the minimal distance which is a property of the point, and is measured in
pixel In digital imaging, a pixel (abbreviated px), pel, or picture element is the smallest addressable element in a raster image, or the smallest point in an all points addressable display device. In most digital display devices, pixels are the smal ...
units). For example, when a point is attracted to a finite set of points, which themselves are fixed, it can explore a
finite geometry Finite is the opposite of infinite. It may refer to: * Finite number (disambiguation) * Finite set, a set whose cardinality (number of elements) is some natural number * Finite verb, a verb form that has a subject, usually being inflected or marked ...
.


Network

Since 2013 there is the possibility to run one CaRMetal figure as server (typically, the teacher's one) and several as clients. Therefore, it is possible * to send one's figure to the server * for the server, to send a correct figure to a student who lost his, or cannot create it in the requested times * to collect data, geometrical or not, within one single figure (the server's one) * to manipulate the same figure at the same time, for several people who ''share'' their work * to send and receive JavaScript programs (see below) * to chat within a shared figure...


JavaScript inside CaRMetal

The script tool mixes up
algorithm In mathematics and computer science, an algorithm () is a finite sequence of rigorous instructions, typically used to solve a class of specific Computational problem, problems or to perform a computation. Algorithms are used as specificat ...
ics and
geometry Geometry (; ) is, with arithmetic, one of the oldest branches of mathematics. It is concerned with properties of space such as the distance, shape, size, and relative position of figures. A mathematician who works in the field of geometry is c ...
. Such scripting tools exist also in DrGeo, Kig and
Cinderella (software) Cinderella is a proprietary interactive geometry software, written in Java programming language. History Cinderella was initially developed by Jürgen Richter-Gebert and Henry Crapo and was used to input incidence theorems and conjectures for au ...
. To run a script, one clicks over the icon representing a
traffic light Traffic lights, traffic signals, or stoplights – known also as robots in South Africa are signalling devices positioned at intersection (road), road intersections, pedestrian crossings, and other locations in order to control flows of traf ...
. A script can be attached to one or several points, so that any movement of one of these points runs the script. This allows some kind of
inverse kinematics In computer animation and robotics, inverse kinematics is the mathematical process of calculating the variable joint parameters needed to place the end of a kinematic chain, such as a robot manipulator or animation character's skeleton, in a g ...
much like with GeoLicia.


Variables

To create a geometric object in
JavaScript JavaScript (), often abbreviated as JS, is a programming language that is one of the core technologies of the World Wide Web, alongside HTML and CSS. As of 2022, 98% of Website, websites use JavaScript on the Client (computing), client side ...
it suffices to click on an icon representing the object. The JavaScript instruction appears in the editor, with predefined parameters. The user has then only to edit these, and does not have to use
mnemotechnics The art of memory (Latin: ''ars memoriae'') is any of a number of loosely associated mnemonic principles and techniques used to organize memory impressions, improve recall, and assist in the combination and 'invention' of ideas. An alternative ...
. But when a geometric object is created, the variable which called the routine is really a
character string In computer programming, a string is traditionally a sequence of characters, either as a literal constant or as some kind of variable. The latter may allow its elements to be mutated and the length changed, or it may be fixed (after creation). ...
, containing the name of the object. For example, a=Point(2,3); creates a point, usually called ''P1'' and the variable ''a'' contains the string "P1". This allows to refer to the point by its name. The coordinates of the point are initialized but the point can still move with the use of the mouse. It is also possible to create a point in
procedural programming Procedural programming is a programming paradigm, derived from imperative programming, based on the concept of the ''procedure call''. Procedures (a type of routine or subroutine) simply contain a series of computational steps to be carried ...
with Point("A",2,3); In this case, the name of the point is "A" (unless there be already an object called "A"), and no variable is set to the name "A".


Input-Output

To output a variable, there are four ways: # Create an expression inside the figure (or display with a graphic mean such as an histogram); # ''Print'' which opens a new window and prints the content of the variable in it; # ''Println'' which also goes to the line; # ''Alert'' which opens an alert window, which closes as soon as the user clicked on ''OK''. To input a variable, there is # ''Input'' (you bet!) which opens an input window (with a text) and waits for the click on ''OK'' # ''InteractiveInput'' which lets the user choose an object in the figure This
paradigm In science and philosophy, a paradigm () is a distinct set of concepts or thought patterns, including theories, research methods, postulates, and standards for what constitute legitimate contributions to a field. Etymology ''Paradigm'' comes f ...
considers the variables of the program not necessarily as numeric or string variables but can act on graphic objects too. This is a common feature with Kig (but in this case, the language is Python (language)) and DrGeo (in this case, with Scheme (language)).


Strings

It is also possible to set the coordinates of a point as
character string In computer programming, a string is traditionally a sequence of characters, either as a literal constant or as some kind of variable. The latter may allow its elements to be mutated and the length changed, or it may be fixed (after creation). ...
s written in the language of CaRMetal. For example, to have a point ''B'' which follows ''A'' except that B's coordinates are integer (to model a
gaussian integer In number theory, a Gaussian integer is a complex number whose real and imaginary parts are both integers. The Gaussian integers, with ordinary addition and multiplication of complex numbers, form an integral domain, usually written as \mathbf /ma ...
) one can write a=Point("2.72","3.14"); b=Point("round(x_a)","round(y_a)");


Loops

As an example, the Sierpinski triangle can be built up as an
iterated function system In mathematics, iterated function systems (IFSs) are a method of constructing fractals; the resulting fractals are often self-similar. IFS fractals are more related to set theory than fractal geometry. They were introduced in 1981. IFS fractals, ...
with this recursive script, which is rather short because of the already available graphic instructions such as ''MidPoint'': a=Point(-4,-2); b=Point(4,-2); c=Point(0,4); m=Point(Math.random(),Math.random()); SetHide(m,true); for(n=0;n<2000;n++) After the cloud of points has been built up (and even while the script is still running!) one can make ''A'', ''B'' and ''C'' move with the mouse (or automatically with the ''Monkey''): The triangle is ''dynamic''!


JavaScript objects

CaRMetal can also use the JavaScript objects like # arrays, useful to make
statistics Statistics (from German language, German: ''wikt:Statistik#German, Statistik'', "description of a State (polity), state, a country") is the discipline that concerns the collection, organization, analysis, interpretation, and presentation of ...
on geometric figures; # date object, useful to measure time; # String and
RegExp A regular expression (shortened as regex or regexp; sometimes referred to as rational expression) is a sequence of characters that specifies a search pattern in text. Usually such patterns are used by string-searching algorithms for "find" or ...
objects, which make it easy to implement
L-system An L-system or Lindenmayer system is a parallel rewriting system and a type of formal grammar. An L-system consists of an alphabet of symbols that can be used to make strings, a collection of production rules that expand each symbol into some ...
s; # General JavaScript objects can be used to create new geometric objects like
complex numbers In mathematics, a complex number is an element of a number system that extends the real numbers with a specific element denoted , called the imaginary unit and satisfying the equation i^= -1; every complex number can be expressed in the form a ...
,
matrices Matrix most commonly refers to: * ''The Matrix'' (franchise), an American media franchise ** ''The Matrix'', a 1999 science-fiction action film ** "The Matrix", a fictional setting, a virtual reality environment, within ''The Matrix'' (franchis ...
etc. This
object-oriented programming Object-oriented programming (OOP) is a programming paradigm based on the concept of "objects", which can contain data and code. The data is in the form of fields (often known as attributes or ''properties''), and the code is in the form of pr ...
works much like Kig's
Python Python may refer to: Snakes * Pythonidae, a family of nonvenomous snakes found in Africa, Asia, and Australia ** ''Python'' (genus), a genus of Pythonidae found in Africa and Asia * Python (mythology), a mythical serpent Computing * Python (pro ...
scripts, but as of today no one seems to have publish anything using that.


See also

* C.a.R. *
Compass-and-straightedge construction In geometry, straightedge-and-compass construction – also known as ruler-and-compass construction, Euclidean construction, or classical construction – is the construction of lengths, angles, and other geometric figures using only an ideali ...
*
Interactive geometry software Interactive geometry software (IGS) or dynamic geometry environments (DGEs) are computer programs which allow one to create and then manipulate geometric constructions, primarily in plane geometry. In most IGS, one starts construction by putting a ...


References

{{reflist * Vers des spécifications formelles : Fondements Mathématiques et Informatiques pour la Géométrie Dynamique, Bernard Genevès (PhD
''PDF''
*Busser Alain. TP sous JavaScript avec CaRMetal. Bulletin de l’APMEP, 487 (2010), p. 191-199. *Busser Alain. Un an d’algorithmique avec CaRMetal en Seconde. MathémaTICE, 21 (2010) (online article

*Martin Yves. Algorithmique et intégration des outils. Repères IREM, 79 (2010), p. 5-22. *Martin Yves. Géométrie repérée dynamique : une autre voie vers l’algébrisation ? MathémaTICE, 20 (2010) (available online

*Martin Yves. Quand la géométrie dynamique rencontre la programmation. In Actes du colloque « Les mathématiciens et l’enseignement de leur discipline en France » ( Centre International de Rencontres Mathématiques, CIRM, Marseille/Luminy, 15-19 mars 2010) (video online

*Martin Yves. CaRMetal, une géométrie dynamique enrichie. Expressions, 35 (2010), p. 165-27
''PDF''


External links



(through version 3.8.2, but with more English explanation, much of which appears to remain valid)
videos showing a truncated icosahedron's net, unfolded and dynamically constructed with JavaScript under CaRMetal
Free educational software Free interactive geometry software Java platform software