The manipulation of the grid surface is scripted using Grasshopper Python component: generation of grid vertices >> randomizing of vertices & generating faces >> by attractor points dispatching of surface >> subdivision & extrusion of surfaces
the process:

1st step: The vertices of grid is elevated randomly

2nd step: 3 attractor points are identified, and the grid surface is dispatched

3rd step: One of the zones determined by the attractor points is repetitively subdivided and extruded

4th step: The other zone is subdivided also
–References:
http://atlv.org/education/ghpython/
,
https://www.youtube.com/channel/UCDO9fd5s0V88MrkCw43uJ2A/playlists?disable_polymer=1