i would leave the center or starting point at (0, 0) and shift the origin with translate(canvas/2, canvas/2). If cell at (n, n) is positive add (n, n), (-n, n), (n, -n), (-n, -n) to the list or dict of active cells. hmmhmh not sure if that makes sense. for x in range(cell_amount): for y in range(cell_amount): if (x, y): #check if cell is active here grid[( x, y)] == 1 grid[(-x, y)] == 1 grid[( x, -y)] == 1 grid[(-x, -y)] == 1 hope that makes sense. good luck!