As a pet project, I'm trying to build a small app that visualizes 4D polytopes. I want to use the Wythoff Construction method, where the shape is generated kaleidoscopically by the interaction of 4 mirrors using a single movable generator vertex.
I know how to create a reflection matrix from a hypersurface normal, what I am looking for is an simple way to generate all possible matrices generated by the interreflections of the set of mirrors.
The brute force method would be something like:
1: Create the initial set of mirrors and their matrices 2: Reflect each matrix in each of the other mirrors, add to temp list 3: Remove duplicates from temp list 4: Add temp list to master list and remove duplicates 5: Reflect each matrix in temp list through each mirror except its generating mirror and add to new temp list 6: Repeat from step 3 with new temp list, continue until no non-duplicates found
This method will work but will involve a huge amount of redundant computation generating, checking, and discarding duplicates, especially in symmetry groups like the 120-cell / 600-cell which contain thousands of permutations. Does anybody know of a more elegant method of creating the full set?