* Download * Math * Docs * Images * Exhibition * Changelog *


The FroZenLight application connects line arts, mathematics (geometry, chaos, ...) and cryptography. Circular mirrors that are arranged in a grid-like manner reflect a light ray according to the reflection law of geometric optics. While random positions of the light source produce chaotic reflection patterns

it is possible to position the light source so that symmetric reflection patterns are created:

Here the light ray enters the light source (triangle) at the same height that the starting ray had and cycles around many times. The simple circle lattice model is very chaotic: The uncertainty of the height of the initial ray increases quickly with every further reflection calculation. Therefore arbitrary precision mathematics is needed to completely determine the reflection patterns. The reflection path for example shown in the topmost image (10x10 circle lattice) has 78 reflection points and is determined by the following parameters:

  height = 0.701183431952662721893491124260355029585798816568047337278106508875739645
  angle  = 0.021*pi
  radius = 0.07

The number of decimal places of the height (72) lies close to the number of reflection points (78). This means an average error increment of about 1 order per reflection point. This butterfly effect can directly be observed by starting the rotation animation and comparing the angular velocities of the subsequent reflections of the initial light ray. A formula for error propagation can be found in exercise 3.

FroZenLight also supports the creation of crypto light patterns which consists of a sequence of simple reflection patterns. The right image is an example of such a crypto pattern. With the help of a Symbol Map this pattern can be translated back into text which in this case yields a famous cite from Newton's Principia Mathematica. Which one?
Such crypto patterns as well as the symmetric reflection patterns shown above can be created easily with the help of the Pattern Manager (see docs). After the calculate button of the manager has been hit these patterns are calculated with an fast algorithm that has been thoroughly optimized for this purpose.
Patterns become visible only if the light source position, the rotation angle and the radius are known accurately (850 decimal places for the pattern quoting Newton). The radius value might therefore be used as a cryptographic key. Note that by just changing the radius it is possible to reach all crypto patterns having the same number of characters.


FroZenLight is free software (GPLv3 & FDL licensed) programmed in java 6. To start the application doubleclick on the downloaded *.jar file or right click on it and select open with java/jre.

Desktop (Linux/Apple/...)|Android >= 4
frozenlight-1.2.2.jar Java Executable|frozenlight-0.1.1.apk App
frozenlight-1.2.1.jar |frozenlight-0.1.0.apk
frozenlight-1.2.0.jar |frozenlight-0.1.1.tar.gzJava Sources
frozenlight-1.1.1.jar |frozenlight-0.1.0.tar.gz
frozenlight-1.2.2.tar.gz Java Sources |miniguide.pdfApp Guide
frozenlight-1.2.1.tar.gz |
frozenlight-1.2.0.tar.gz |
frozenlight-1.1.1.tar.gz |

To compile the java sources the arbitrary precision arithmetic library apfloat.jar needs to be in the lib folder.

The application also animates the transition from one light pattern to another by moving the light source within the circle lattice. This minimalistic animation art can be started through the application menu or with the following java web start links (no installation):

Launch Animation (Black) * Launch Animation (Red)

The latest version can also be downloaded from Older files can be found at sourceforge. This site is maintained by Zoltan Palmer. For bug reports, questions or suggestions contact me at

Last edited: 09.04.2016