Operaciones booleanas 3D con tres CSG

Siguiendo el ejemplo aquí:

http://learningthreejs.com/blog/2011/12/10/constructive-solid-geometry-with-csg-js/

Y usando Three.js conhttps://github.com/chandlerprall/ThreeCSG, Estoy tratando de hacer operaciones booleanas 3D en nodos del modelo. Por ejemplo, si tengo una pared con una ventana, quiero hacerinvert() en eso para obtener solo la ventana.

Tengo una función que devuelve todos los vértices de los polígonos de un nodo, aquí hay un ejemplo de vértices de un objeto sin agujeroshttps://pastebin.com/8dhYzPwE.

Estoy usando ThreeCSG así:

    const geometryThree = new THREE.Geometry();

    geometryThree.vertices.push(
        ...vertices
    );

    const geometryCsg = new ThreeBSP(geometryThree);

Pero eso es en lo que me estoy metiendogeometryCsg:

"{
    "matrix": {
        "elements": {
            "0": 1,
            "1": 0,
            "2": 0,
            "3": 0,
            "4": 0,
            "5": 1,
            "6": 0,
            "7": 0,
            "8": 0,
            "9": 0,
            "10": 1,
            "11": 0,
            "12": 0,
            "13": 0,
            "14": 0,
            "15": 1
        }
    },
    "tree": {
        "polygons": []
    }
}"

Creo que es porqueelgeometry.faces.length es 0.

¿Cómo puedo hacer que la matriz de vértices sea adecuada?Three.Geometry tal que las caras no estén vacías?Geometry.elementsNeedsUpdate no funciona ...

¿Hay algún ejemplo que use polígonos de una forma como una matriz de Vector3s y los transforme en csg?