Just want to throw in http://glmatrix.net. It supports vectors and matrices, Node and the browser and is crazy fast. (No affiliation!)
I'm afraid you have to calculate the intersections yourself though. I know there is a Processing(.org) plugin that does that kind of thing (might be called "intersection") and Processing can export to JS. I hope this helps at least a little bit.