We’re not going to give away our mesher for SubD that gets you a tight limit surface mesh, but we do give away what might be considered good enough. There are two OpenNURBS functions that you can use to get a mesh.
bool ON_SubD::GlobalSubdivide(unsigned int count);
ON_Mesh* ON_SubD::GetControlNetMesh(ON_Mesh* mesh, ON_SubDGetControlNetMeshPriority priority) const;
You can subdivide an ON_SubD instance to a desired level and get the control net mesh for visualization.
This is available in OpenNURBS today. I’m working on adding this to our new rhino3dm.net, rhino3dm.py, and rhino3dm.js libraries right now.