Create arches to form dome on ring shape
How to create a dome procedurally.

Add a Plane, go to edit mode, select all, right click &gt; Merge &gt; By distance (in order to get a single vertex at the origin of the world)
Add a displace modifier, set the direction to Z and midlevel to 0



Add a screw modifier, set to X, angle 90°. Now you have an half-arc going from Z = 1 to Z = 0



Add another screw primitive. Now you have a half UV sphere primitive



Duplicate the dome and remove both screw modifiers, and set the displacement axis to X. Now add a screw modifier and don't change anything. right Click in the &quot;Strength&quot; field of the dome's displacement modifier and choose &quot;copy as new driver&quot;.
Paste the driver in the &quot;Z&quot; location of the wall object with right click &gt; Paste driver. Now go to the &quot;Angle&quot; field of the dome's first screw modifier and copy as a new driver too. Right click again in the &quot;Z&quot; location driver and choose &quot;Edit driver&quot;. Click on &quot;paste driver variables&quot; icon on the top right of the displayed variables. Change the driver settings from &quot;Averaged value&quot; to &quot;Scripted expression&quot; and type : strength* sin(pi/2-angle). That should make sure the walls are always leveled with the bottom of the dome.

Now for the circumference, do the exact same process but with the &quot;Strength&quot; field of the wall's displacement modifier and change the expression to strength*cos(pi/2 - angle)

Add a boolean modifier to the dome set to &quot;Union&quot; and a &quot;weld&quot; modifier. Hide the wall object.
Add a solidify modifier to the dome object for thickness.
Result :

You can go wild editing every field in the modifiers and create your custom drivers !