i_overlay 6.0.0

Boolean Operations for 2D Polygons: Supports intersection, union, difference, xor, and self-intersections for all polygon varieties.
Documentation
{
  "fillRule": 0,
  "body": [
    [
      [
        -2000,
        -2000
      ],
      [
        -2000,
        2000
      ],
      [
        2000,
        2000
      ],
      [
        2000,
        -2000
      ]
    ],
    [
      [
        -1000,
        -1000
      ],
      [
        1000,
        -1000
      ],
      [
        1000,
        1000
      ],
      [
        -1000,
        1000
      ]
    ]
  ],
  "string": [
    [
      [
        -1000,
        2500
      ],
      [
        -1000,
        -2500
      ],
      [
        0,
        -2500
      ],
      [
        0,
        2500
      ],
      [
        1000,
        2500
      ],
      [
        1000,
        -2500
      ]
    ],
    [
      [
        -2500,
        1000
      ],
      [
        2500,
        1000
      ],
      [
        2500,
        0
      ],
      [
        -2500,
        0
      ],
      [
        -2500,
        -1000
      ],
      [
        2500,
        -1000
      ]
    ]
  ],
  "slice": [
    [[[[-1000, -2000], [-1000, -1000], [-2000, -1000], [-2000, -2000]]], [[[-1000, -1000], [-1000, 0], [-2000, 0], [-2000, -1000]]], [[[-1000, 0], [-1000, 1000], [-2000, 1000], [-2000, 0]]], [[[-1000, 1000], [-1000, 2000], [-2000, 2000], [-2000, 1000]]], [[[0, -2000], [0, -1000], [-1000, -1000], [-1000, -2000]]], [[[0, 1000], [0, 2000], [-1000, 2000], [-1000, 1000]]], [[[1000, -2000], [1000, -1000], [0, -1000], [0, -2000]]], [[[1000, 1000], [1000, 2000], [0, 2000], [0, 1000]]], [[[2000, -2000], [2000, -1000], [1000, -1000], [1000, -2000]]], [[[2000, -1000], [2000, 0], [1000, 0], [1000, -1000]]], [[[2000, 0], [2000, 1000], [1000, 1000], [1000, 0]]], [[[2000, 1000], [2000, 2000], [1000, 2000], [1000, 1000]]]]
  ],
  "clip_direct": [
    [[[-2000, -1000], [-1000, -1000], [-1000, -2000]], [[-1000, 0], [-2000, 0]], [[-2000, 1000], [-1000, 1000]], [[-1000, 2000], [-1000, 1000]], [[0, -2000], [0, -1000]], [[0, 1000], [0, 2000]], [[1000, -1000], [1000, -2000]], [[1000, -1000], [2000, -1000]], [[2000, 0], [1000, 0]], [[1000, 2000], [1000, 1000]], [[1000, 1000], [2000, 1000]]]
  ],
  "clip_invert": [
    [[[-2000, 0], [-2500, 0], [-2500, -1000]], [[-2500, -1000], [-2000, -1000]], [[-2500, 1000], [-2000, 1000]], [[-1000, -2000], [-1000, -2500]], [[-1000, -2500], [0, -2500], [0, -2000]], [[-1000, 1000], [-1000, 0], [-1000, -1000]], [[-1000, -1000], [0, -1000], [0, 0], [0, 1000], [1000, 1000], [1000, 0], [0, 0], [-1000, 0]], [[-1000, 1000], [0, 1000]], [[-1000, 2500], [-1000, 2000]], [[0, -1000], [1000, -1000]], [[0, 2000], [0, 2500], [1000, 2500], [1000, 2000]], [[1000, -2000], [1000, -2500]], [[1000, 0], [1000, -1000]], [[2000, -1000], [2500, -1000]], [[2000, 1000], [2500, 1000], [2500, 0], [2000, 0]]]
  ]
}