What do you mean by CGAL requiring clean CSG topology? It’s not even a CSG kernel and it supports polygon soups out of the box