Tbh as long as you can split a Bezier into two, the booleans are just a matter of adding points at intersections, then tracing around the shape, switching shape being traced at intersections, and deciding the new tracing direction depending on the operation. They still have some issues I need to fix! As for the corner rounding, it was a pain because at first I had it based on an input of the arc circle's radius, but I had to modify to instead be based on an input of the arc circle distance from the corner (for finer control). Then finally after implementing it, I realised what actually needs to be controlled is the distance at which the arc circle meets the edges, not the distance to the centre of the circle. Got there in the end. I learned everything on the job, when I started even the concept of checking for mouse hover on all the nodes of a polygon overwhelmed me.