The string is intended to be a hex hash but I'm writing it so it can be anything.
If it is a hex hash, it's converted to raw. If not a hex hash, md5 of it is taken and converted to raw.
ripemd160 is taken of raw and tiger128 is taken of ripemd160 to give the identicon parameters.
The purpose of this gymnastics is to make it very difficult to figure out what the original string used to generate the identicon was.
Anyway right now working on the Geometry variant - which will have 16 shapes on the produced SVG (four different circles plus ???)
After the geometry, I will need to make one for frogs and toads, and one for monsters.
I'm creating a privacy aware alternative to Gravatar.