The 120 rotation matrix can be approximated by the following rational matrix:
which differs from the real matrix only by 1% error. The three kinds of lizards are mapped to each other by this matrix.
The tiling period of these lizards is (512, 512*7/8), and each lizard has 64*64*64 *7/8 colors, taken from 64x64x64 cube in the RGB space, excluding colors whose RGB value is all even.
The lizard template shape is further divided into polygons by Voronoi decomposition.
Then distribution of 64x64x64x7/8 colors in the template is optimized to minimize neighbor pixel color L2 distances.
Here pairs of pixels which belong to different polygons have opposite contribution to the total score and they try to be different colors.
We now have 4x4x4 lizards of different colors (4=256/64). 4x4x4 color box can be grouped into 4 hexagons of 37 pieces + 19 pieces + 7 pieces + 1 piece.
Only 37 pieces hexagons are used to draw lizards. The colors in the eyes and back stripes are changed by R-G-B permutation.
The rest lizard is decomposed into small hexagons of 16x16x16x7/8 colors and periodicity (64, 64x7/8).
They are sorted by their hue and placed according to it. The larger the hue is, the further it is placed from the center.
Finally, the 128x128x128 colors which are excluded from the lizards and hexagons are distributed in the interim region according to their hue.