this isn't really answering your question,
however with opencascade working in webassembly here, perhaps also cadquery and/or build123d can do something like that
however with opencascade working in webassembly here, perhaps also cadquery and/or build123d can do something like that