woops, mixed up h/d in cuboid
add union/cut chaining to shape
convert demo to use chained boolean ops