Section 1034: History: the json file was created a while ago with an older version of ImageEditor and with an unmasked image of section 1034. See image dirty_background.png along the junction of the moved piece (Polygon 4, layer 4). Image: - pm1034o.png : this is the new masked section for input. Project files: - pm1034o.json : created from unmasked image (dirty background). Layers contains RGB+A. - new1034o.json : loaded pm1034o.json and saved with binarymask=true (file size is much smaller!!!) - test1034o.json : edited (vim) pm1034o.json and deleted all layers and transformations. Kept only the polygons. -rw-r--r--. 1 clepage clepage 96325 Jun 2 10:04 new1034o.json -rw-r--r--. 1 clepage clepage 2856912 Jun 2 09:53 pm1034o.json -rw-r--r--. 1 clepage clepage 15513 Jun 2 09:52 test1034o.json The problem is that the binary mask (alpha channel) obtained from the project file is not re-intersected with the current image being loaded, so the background remains dirty and appears as black spots on the repaired image. The same behavior is observed when loading new1034o.json with binarymask=true. When loading test1034o.json and recreating the layers from the same polygons and new image, a clean alpha channel is created and the border at the junction of the moved layer is clean. See clean_background.png. You can reproduce by creating the layer for polygon=4 and translating the broken piece. All the information needed to have a clean background is in the original json file. Either the layer can be regenerated on the fly from the polygon based on the new image OR the alpha channel from the layer stored in the json file can be intersected with the loaded image using the standard thresholding procedure to detect background. Last image is cut_voxels.png. Look at the crosshair cursor. There are complete image voxels and there are incomplete image voxels. These incomplete voxels don't make sense to me. How are you obtaining these subvoxels? The voxels are being displayed in "fast" mode.