Quite a few ways - you can for example use MeshStandardMaterial.emissiveMap, or just MeshBasicMaterial.map?
Some points of the surface will have corresponding intensity values, how do I interpolate based on these intensity values?
So the heatmap is defined by distance from arbitrary points (and their assigned intensity) on the surface? How many of those points?