Hi, been lurking for a while. Thought I'd give something back that you might find mildly amusing if not useful.
Subdivision surfaces implementation (the Butterfly scheme) that can handle any mesh with triangular faces you throw at it (open as well as closed). Simple to use as well:
TriMesh mesh = {some trimesh};
Subdivision subdivision = new SubdivisionButterfly(mesh.getBatch(0)); // prepare for subdivision
subdivision.subdivide(); // subdivide
subdivision.apply(); // Applies the new subdivided buffers to the batch
subdivision.computeNormals(); // calculate new normals
Star:


Pyramids:


Disc:


It interpolates any buffer you'd like it to (that would probably mostly be vertex buffer, color buffer and texture buffers, but I guess you could feed it an alphamap as well)
Get it here:
http://bokbloggen.com/stuff/subdivision.zipThe test program subdivides every time you press 'Z', a couple of different shapes are provided. Press 'T' as usual to take a look at the magic in wireframe mode.
Take a look at the code and feel free to suggest improvements. Mostly looking for a better way to make it fit with the structure of jME (extending TriangleBatch, perhaps?). I haven't worked too much with jME yet, so I feel like this might not be the best way.
Papers I used during development are stated in the source, interesting stuff but highly confusing