I also think it is a very hard problem. In addition, if the mesh is made from disjoint objects, what will volume mean ?
But thus not the right forum: would be better in an AR section.
A 4 year old implementation, if it is just the algorithm, should not be a big problem. But integrating everything and testing your code to deliver in 2 weeks will be a challenge!
With regard to your question about disjoint objects, I have groups of objects I'm scanning which are all of a small size, and I have a separate list of SCNVector3 for each object. I'm getting the volume for each object individually.
My solution as of now is to use an AWSLambda - I send up a JSON array of my 3D points, calculate the volume in 3-4 lines of python code, then return an Int. I'm mostly happy with this solution - it's very performant for the number of 3D points I'm doing, and setting up AWS in the app wasn't too much of a headache.