diff --git a/src/matlab/+D3d/+Polygon/Make.m b/src/matlab/+D3d/+Polygon/Make.m
index b25a70a6d5849fa96e6baab2d498e41f76c28c27..ab48fe6a635d8647d356ba01e9f51e8a3fccca15 100644
--- a/src/matlab/+D3d/+Polygon/Make.m
+++ b/src/matlab/+D3d/+Polygon/Make.m
@@ -25,6 +25,19 @@ if (~exist('quiet','var') || isempty(quiet))
     quiet = false;
 end
 
+if (size(pixelList_xy,2)==3)
+    is3D = true;
+else
+    % this is done because the view must be a 3D kymograph
+    frames = vertcat(...
+        repmat(frame-0.5,size(pixelList_xy,1),1),...
+        repmat(frame+0.5,size(pixelList_xy,1),1));
+    pixelList_xy = repmat(pixelList_xy,2,1);
+    pixelList_xy = horzcat(pixelList_xy,frames);
+    frame = 1;
+    is3D = false;
+end
+
 %reductions = [1,1,1];
 
 polygon = D3d.Polygon.MakeEmptyStruct();
@@ -65,6 +78,12 @@ end
 
 % center the vert in the middle of the voxel
 verts_xy = v_xy + 0.5;
+if (~is3D)
+    minVal = min(verts_xy(:,3));
+    minMask = verts_xy(:,3)==minVal;
+    verts_xy(minMask,3) = verts_xy(minMask,3) + 0.45;
+    verts_xy(~minMask,3) = verts_xy(~minMask,3) - 0.45;
+end
 
 com = rp.Centroid + startPadded -1;