Compute the air zone or negative mesh

oh but then you need the volume? then it’s vtkBooleanOperationPolyDataFilter

from vedo import *
msh = merge(Sphere(r=0.5), Sphere(r=0.5).x(1).scale(0.8))
box = TessellatedBox().scale(0.2).pos(-0.5,-1)
bmm = box.clone().triangulate().boolean('-', msh).computeNormals()
show([[msh, box], [bmm, f"vol: {bmm.volume()}"]], N=2, axes=1)