My current research project involves studying billiards orbits in four-dimensional polytopes. One sets into motion a point-mass, starting on one of the facets of the polytope, which follows a straight trajectory within the polytope except on collision with a wall, when it is subjected to an elastic response (i.e., its velocity vector is reflected in the affine hyperplane containing the facet it has collided with).
I want to put together a program to simulate these billiards orbits in the regular four-dimenisional polytopes. My hope is to use the program to try to find omnihedral orbits (orbits that touch each facet at least once) in the regular 4D polytopes. And my first step is to find a nice polytopes library that will provide the foundations for this. Given such a library I think this should be pretty easy and straightforward to program.
Any suggestions? I'm not worried about rendering anything since it's in four dimensions. And I'm open to a wide variety of languages--whichever one has the most useful libraries for this task.