Programmatically determine vertices of a face on a subdivided icosahedron

I’ve got a world object which is a subdivided icosahedron with a heightmap applied to it, and I’m trying to determine how to place the player on the surface of the icosahedron at a given point. I know it would be simple to just use a raycaster, but I also have a server and it needs to be able to place enemies at the appropriate height as well. When I was using a planar world I wrote a method for determining the height based on the closest vertices and it works great on the server, but determining the vertices on a subdivided icosahedron is quite a bit more complicated than on a plane and I’m not even sure where to start. Does anyone have any ideas how to go about this?

If you are using Regular Geometry, I can assist.

What do you mean with “Regular” geometry? I’m using this geometry - three.js docs. Any help would be appreciated!

How does your subdivided icosahedron with a heightmap look like? Any explanatory picture?
Providing a working example is also helpful for better understanding.