Dynamic deform one mesh over top of another?

I’ve been searching for an answer and not finding anything. So if any of you could at minimum point me in the right direction I’d be very grateful.
I’m working on a game that has a globe with mountain ranges etc. So even in flat areas, it’s not really “flat” so much as it is “very gradual curve.” And over mountains it’s not very gradual at all.

I have several models for farms or ranches that are wide but mostly flat (a barn or water tower or fence, not much else). Is there a way that they could “deform” to fit the globe? It’s an economy management game, so farms will not always spawn in the same place or be of the same type, so I can’t just pre-load a pre-deformed farm for every possible location without making literally thousands (more likely tens of thousands) of models in Blender. Basically I’d like to have them “hug” to the terrain, like it were a carpet going over top of the globe mesh. I made the models in Blender, so if there’s something I need to do with the models I can try that.

These are the kinds of mountains I want the farms to deform over.

We’re a very small team and all of us have no idea how to do this or even sure we know what this would be called in order to properly google for a solution. Any help would be great!

Alright, so this sounds like a fun problem. There’s two ideas I’m having, and I’ll go over the easier one first.

Unity has built in physics for cloth materials to deform over objects in realtime, however I have 0 experience with this, and it might only apply to flat 2d planes. However the base of your farm is a flat 2d plane! Might be worth looking in to.

Alternatively, you can code it yourself! Not realtime, but do you really need it to be realtime? Have each individual objects y tranform (or relative y tranform since its a sphere) set on the ground, but keep all of their x and z distances from each other the same. This thread might have some useful information on that.