what is the best way to determine if a mesh is closed or open?

Although this might not be the answer you are looking for, the best way is to use some software that has a robust implementation of such feature.

thanks. do you happen to know any such software i can use?

A bit of a wild guess and creativity rush - but wouldn’t checking if every vertex is connected to exactly 3 other vertices (or a multiply of 3) ensure that the mesh is closed / watertight? (It doesn’t ensure that the mesh is non-concave, like bowls of something - but that a bit of a different challenge.)

why 3? 3js sphere geometry has them connected to 6, and even more at the poles. and well, it could be any other number, like 5.

Yes, 5 means one of the edges does not create a triangle, doesn’t it ?