I had some tasks to make lots of roofs. So not doing it by hand (and not making a fully procedural way) I've come up with something like (see the hip or the video link)
But the geo is not perfect. There can be overlaps and other nasty primitives. Maybe you can advice what SoPs I can use to improve the end result?
ps. Please don't advice me to use python and Straight skeleton algorithm, because I'm not skilled yet for this.