Antish is based upon Anty-Particles described in the July 1994 issue of Scientific American, Mathematical Recreations section. That article described Langton's Ants. Langton's Ants can be generalized in several ways. Antish generalizes them by providing a freer range of angles through which an ant turns.
The current version of the app uses floating point math rather than integer math in calculation of the ants' trajectories. Ants can be randomized or set up manually by the user.
When the app starts out, several ants are given random configurations and dispatched randomly on the screen then activated immediately. The details of one of the ants is displayed at the top of the screen.
The format of the details follows:
Size v1 Moves v2 (v3,v4) v5 L:v6 D:v7 L.D.T.v8.v9.v10
where the variable values are:
v1: the size of the ant, in points - the ant is drawn on screen as a bunch of line segments. The value of v1 is the thickness of these segments.
v2 is the number of moves the ant has moved since the current set of ants was configured (this number is not reset when the refresh button is tapped)
v3: distance, in points, from the left side of the screen
v4: distance, in points, from the bottom of the status line
v5: this is a string describing the color of the ant
v6: this is the number of degrees to turn when the ant steps on a dark color
v7: this is the number of degrees to turn when the ant steps on a light color
v8: this is the lightness of the light color to be left behind
v9: this is the lightness of the dark color to be left behind
v10: this is the lightness of the target color to be left behind
- Tap anywhere below the status line to switch which ant's details display on the status line.
- Tap the status line to reconfigure that ant. A new ant of the same size will be selected randomly. The color will change, but the location will continue where it left off. The previous ant's trail remains on screen.
- Swipe left, right, up, or down (or longpress) to restart with a new selection of random ants.
- Tap the gear icon at upper, left to activate or deactivate the settings screen.
- If the settings screen is showing, it can be dragged anywhere on the screen.
The settings screen contains a small number of items that can be used to control an ant or a new set of ants. These are described here.
- Light [-|+] - tap the + or - button to change the angle the ant should go when it steps on a light spot. The arrow to the right indicates the corresponding direction relative to the ant's current direction (up, relative to the settings screen)
- Dark [-|+] - tap the + or - button to change the angle the ant should go when it steps on a dark spot. The arrow to the right indicates the corresponding direction relative to the ant's current direction (up, relative to the settings screen)
- Size [-|+] - tap the + or - button to change the size of the ant. The change happens immediately.
- #Ants [-|+] tap the + or - button to adjust the number of ants. This is a maximum number. The next time a swipe or long press restarts the animation, a new set of ants is created. The number of ants will be a random number from 1 to whatever is in this setting.
- Target - the target switch turns on a mode where the ant recognizes its own path. When it steps on a spot that's colored its own hue (no matter the lightness), the ant adjusts its normal angle. The angle will be somewhere between the normal angle and straight ahead. How close to straight ahead depends upon how close the lightness is to the target lightness. The color left behind by the ant will be adjusted slightly toward its target color. The result is that spots repeatedly stepped on by the ant will get ever closer to its target color. It will move straight ahead through this color, thus wasting less time in the middle of territory it has created and more time at the periphery.
- Refresh - the refresh button causes the screen to be cleared, the direction changed 0 degrees, and, if there is only one ant, the ant centered on screen. Everything else remains the same.
- [Kill Ant] - the kill ant button kills the current ant (the one displayed on the status line). Its trail remains, but it no longer does anything.