            subdivide(topLeft, bottomLeft, topRight, bottomRight) {
                const top = new CubicBezierPatch(); const bottom = new CubicBezierPatch();
                this.subdivideVertical(top, bottom);
                top.subdivideHorizontal(topLeft, topRight);
                bottom.subdivideHorizontal(bottomLeft, bottomRight);
            }
        }

        // --- Bézier Curve and Surface Evaluation (Global) ---
        function evaluateCubicBezierCurve(p0, p1, p2, p3, t) { 
            const