ACML version 2104081850 (april 2021)

Source archive (Zipped TAR file): acml-2104081850.tgz
Linux binary file (architecture x86_64): acml-2104081850.Linux.x86_64.bin

5 reasons NOT TO download the binary version

  1. your OS is not Linux
  2. architecture/library dependencies problems
  3. some features require an OCaml compiler on your system in the exactly same version as the one used to generate the binary
  4. source archive is a lighter download
  5. who knows, I might become root on your machine...

Recent changes


Built-in families


Built-in objects


Built-in plugins


LaTeX/TikZ output (after each new object creation)
It adds a snapshot/modif that display a window containing source code to copy and paste in a LaTeX source file inside a TikZ figure environment.
The LaTeX code produces a representation of the universe in grayscale.
***CAUTION WITH LARGE UNIVERSES*** each cell of the universe produces a line of LaTeX code!

SVG configuration/region saver (after each new object creation)
It adds actions to save a configuration or a region as a SVG file.

Periodic initial configurations (after each new object creation)
Sets a periodic initial configuration depending on the parameter 'pattern'.

Grouping (after each new object creation)
It adds a grouping view in which cells are displayed by group: a single color is given to each group depending on its content.
The plugin adds parameters for controlling the size of groups.

PNG configuration/region saver (after each new object creation)
It adds actions to save a configuration or a region as a PNG image or OCaml array source code.

Many colors (after each new object creation)
It adds various colormaps.

Timer (after each new object creation)
Add a measurement of the steps and cell update speeds. It is not very useful outside batch mode.

Boundary conditions (after each new object creation)
It adds actions that modify boundaries of the configuration at each step.

Useful defaults (after each new object creation)
It adds some usefull actions/views/initial configurations.


ZIP archive reader (on hook regexp '.*\.[zZ][iI][pP]$')
Opens a ZIP archive and recursively opens everything inside.

Quick rule definition (on hook regexp '\(fun +[^ ]+ *->.*\)\|\(fun +[^ ]+ *[^ ]+ *->.*\)')
Wait an OCaml function definition as input and consider it as the local rule of a new family.
The function must have one or two arguments and depending on their name, different rule kind will be used (cf. API documentation):
"fun cell ->..." will trigger a set_rule_fun,
"fun any_ident howamny ->..." will trigger a set_multiset_rule_fun,
"fun any_ident any_ident ->..." will trigger a set_multiset_rule, and
"fun any_ident ->..." will trigger a set_rule.

Moreover, the function definition has the following variables defined in its scope and can use them:
"a" is the current ACML object,
"d" gives the dimension,
"n" the number of states,
"r" the radius and
"neighb" the name of the neighbourhood type.

As an example, the following definition gives the Game of Life (if correct dimension, state, radius, etc are chosen):
"fun c howmany -> if (c=0 && howmany 1 = 3) || (c=1 && (howmany 1 = 3 or howmany 1 = 4)) then 1 else 0"


Quick configuration definition (on hook regexp 'conf\([^:]*\):\(.*\)')
Wait for some piece of OCaml code describing what to put at position (x,y) in the initial configuration. Then register this as an generic initial configuration, which will be available in any new object. The piece of code can (should) use x and y, but there are other bound variable available: w (the width of the current universe), h (the height), n (the number of states of the current CA), r (its radius) and d (the dimension).

Technically it must be used like this:
confNAME:PIECE_OF_CODE
where NAME is an optional name and PIECE_OF_CODE is the OCaml code mentionned above. For instance the following shortcut defines a periodic configuration of period the sequence of all states (in 2D, the configuration is diagonally periodic):
confPeriod all state:(x+y) mod n


Misc file formats (on hook regexp '\(.*\.icons$\)\|\(.*\.colors$\)\|\(.*\.[tT][xX][tT]$\)')
Adds minimal support for some file formats

Mirek's Cellebration names (on hook regexp '.*')
Recognize some CA names from the MCell online database.

RLE loader (on hook regexp '\(region:\)?.*[rR][lL][eE]$')
Loads an RLE file as a configuration and eventually changes the rule as specified in the file.
If the prefix "region:" is added to the filename, neither the configuration nor the rule is changed, but an action is added that can put the configuration content of the file wherever the user asks using the mouse.

PNG/JPEG conf. loader (on hook regexp '\(.*\.[pP][nN][gG]$\)\|\(.*\.[jJ][pP][gG]$\)\|\(.*\.[jJ][pP][eE][gG]$\)')



Built-in shortcuts


Library dependencies of the binary