Looks pretty easy to code in user space to me.
Catmull Clark is certainly something that can be implemented, but the sort
of thing that I had in mind would apparently be called an "interpolating
scheme" rather than an "approximating scheme". (And Catmull-Clark is
an "approximating scheme".)
https://en.wikipedia.org/wiki/Subdivision_surface
Interpolating schemes have the property that subdivision leaves the vertices
in the mesh in place, which is a desired property when people trying to
generate a surface that matches a set of control points.
Wikipedia lists butterfly, modified butterfly, and Kobbelt as interpolating
schemes. I found a paper on the butterfly method, but it's not as accessible
as the Catmull-Clark wikipedia page.
http://www.math.tau.ac.il/~niradyn/papers/butterfly.pdf
Apparently the butterfly method only works for "nice" meshes, but that can
probably be managed by picking a suitable set of control points from the
sample.