Both the C++ (Ant.h) and JavaScript (Ant.js) version share the same implementation concept. There's support for 8 possible operations, which are:
Defines a state machine, can later be used when defining a ant with -a. Can be chained using ; Example: -m LRRRRRLLR;RLLLLLRRL: Creates two state machines with index 0 and 1
Example: -a P(500,500)D(0,-1)M(RL): Creates a single ant with the state machine RL -a P(500,500)D(0,-1)M(0)S(10)F(W);P(500,500)D(0,1)M(1): Creates two ants using state machine 0 and 1, ant 0 wraps and has a step size of 10
Defines how many iterations should be evaluated, by default it will run until all ants run out of bounds or (if wrap is enabled) will run indefinitely. Alternatively t can be added before the number to make it time based. Example: -i i50b: Run for 50 billion iterations -i t100s: Run a maximum of 100 seconds
Defines how many threads should be used, for now this argument only changes the amount of threads used when encoding images, eventually multithreading for the ants will also be added.