i_overlay 4.5.1

Boolean Operations for 2D Polygons: Supports intersection, union, difference, xor, and self-intersections for all polygon varieties.
Documentation
{
  "clipPaths": [
    [
      [
        2,
        -3
      ],
      [
        2,
        5
      ],
      [
        -1,
        -2
      ],
      [
        -1,
        -3
      ]
    ]
  ],
  "fillRule": 1,
  "xor": [
    [
      [
        [
          [
            -2,
            0
          ],
          [
            1,
            0
          ],
          [
            1,
            3
          ],
          [
            2,
            5
          ],
          [
            2,
            -3
          ],
          [
            -1,
            -3
          ],
          [
            -1,
            -2
          ]
        ]
      ]
    ]
  ],
  "clip": [
    [
      [
        [
          [
            -2,
            0
          ],
          [
            1,
            -1
          ],
          [
            1,
            3
          ],
          [
            2,
            5
          ],
          [
            2,
            -3
          ],
          [
            -1,
            -3
          ],
          [
            -1,
            -2
          ]
        ]
      ]
    ]
  ],
  "difference": [
    [
      [
        [
          [
            -2,
            0
          ],
          [
            1,
            0
          ],
          [
            1,
            -1
          ]
        ]
      ]
    ]
  ],
  "inverseDifference": [
    [
      [
        [
          [
            -2,
            0
          ],
          [
            1,
            -1
          ],
          [
            1,
            3
          ],
          [
            2,
            5
          ],
          [
            2,
            -3
          ],
          [
            -1,
            -3
          ],
          [
            -1,
            -2
          ]
        ]
      ]
    ]
  ],
  "intersect": [
    [
    ]
  ],
  "subject": [
    [
      [
        [
          [
            -2,
            0
          ],
          [
            1,
            0
          ],
          [
            1,
            -1
          ]
        ]
      ]
    ]
  ],
  "subjPaths": [
    [
      [
        1,
        -1
      ],
      [
        -2,
        0
      ],
      [
        1,
        0
      ],
      [
        1,
        5
      ],
      [
        0,
        -2
      ]
    ]
  ],
  "union": [
    [
      [
        [
          [
            -2,
            0
          ],
          [
            1,
            0
          ],
          [
            1,
            3
          ],
          [
            2,
            5
          ],
          [
            2,
            -3
          ],
          [
            -1,
            -3
          ],
          [
            -1,
            -2
          ]
        ]
      ]
    ]
  ]
}