Hello,
My name is Robert Drynkin and I am first-year student of Applied Mathematics and Computer Science in HSE and Mathematics in IUM. I have never contributed to open source projects, but I was really exited by your project, and I want to use it and make it better. I have found that geometry module is small, and I want to rewrite it, make it more abstract.
You can have a look at the table explaining my idea and, if you have any questions, continue reading. I would like to start from creating N-dimensional projective space with homogeneous coordinates in N+1 dimensional vector space. Inside this space we can find N-dimensional Euclidian space like affine map. After that we can implement homograhies and, as a particular case, affine transformations. Of course, we want to have a usual plane with classic objects, and we, motivated by this aim, start to write bilinear forms -> quadratic forms -> quadrics -> conics and it is enough to calculate circles, ellipses, parabolas, hyperbolas and lines on the projective plane and at the same time all conics for projective space. Of course, if we have projective space, we should have duality space. No less interesting object is projective line, and the fact that on any smooth conic we can introduce homogeneous coordinates (and all consequences from this fact, although I have no ideas so far how to effectively implement it). In our construction we can easily add a polyhedron to our Euqlidian space, like a convex cone in enclosing space.
In conclusion, we should add visualization module (there we face some questions about dimensions of spaces). Also, there is a question about which field we are working in (I don't want to limit it with R, at least because it is not algebraically closed). It is the first idea, of course there are much interesting things to add.
Also, me and my friend(
loo...@gmail.com) from MIPT have some ideas about non-rigid body physics project.