Yeah, I’ve found that two element vectors are also occasionally useful, but beyond that there really isn’t more I need from a math library. It isn’t clear to me what use games or 3D graphics has for the abstractions in nalgebra or to a lesser degree cgmath. I rarely find myself abstracting over scalar type, and I’m practically never in situations where my code can be generic over dimension: 2D and 3D end up being quite different, and any time I’m using 4D vectors they’re in homogeneous coordinates which makes them different as well. Abstracting over whether something is a vector or a matrix, or using any sort of dynamically sized matrices just doesn’t really come up at all.
Even having a separate notion of a Point type always seems to be more hassle than it is worth. Mathematically points and vectors aren’t the same thing, but any time I try encoding a position as a point sooner or later I invariably run into some reason I need it as a vector. For instance converting to a global coordinate system when given a point and the origin of the local coordinate system that point is in, it is necessary to add the two points, even though this is one of the main operations that points are meant not to have.
More broadly, I’m not really sure what problem we’re trying to solve here. It would be good to have someone to merge any bug fixes/documentation tweaks that come up, but in general the current cgmath crate works quite well as it is, and it isn’t like math is going to be changing any time soon. Better interoperability would be nice, but even just exposing some zero-overhead conversion functions between different libraries’ types would probably be fine.