Hello, Can anyone help me to overcome this issue, I can post the full code if required Kind regards Stewart. ObjectGrid2D is shown correctly within the GUI. I use the same code for a horizontal rectangle and a vertical rectangle with the following differences: Grid Width and Grid Height are reversed. Random start X and start Y Here is the neighbourhood function I use and the function to get the next cell. hop = dist. mySpace.getMooreNeighbors(myX, myY, hop, Grid2D.BOUNDED, false, result, xNeighbors, yNeighbors); nextX = mySpace.tx(xNeighbors.get(i)); nextY = mySpace.tx(yNeighbors.get(i)); if (mySpace.field[nextX][nextY]== null) { mySpace.field[nextX][nextY] = child; child.myX = nextX; child.myY = nextY; theAgents.add(child); counter++; break; } } myX = nextX; myY = nextY; } Horizontal works correctly at all times and Vertical always gives an incorrect Y position at the start. Also Y coordinate does not go beyond the X coordinate size. Thus we see a square area occupied equivalent of X squared. Regardless of the grid sizes the same behaviour is observed. In addition when I use the same code for the von Neumann Neighbourhood the same errors are observed. "mySpace.getVonNeumannNeighbors(myX, myY, hop, Grid2D.BOUNDED, false, result, xNeighbors, yNeighbors);" This is the output obtained for the Moore neighbourhood: Horizontal rectangle. Initiate and one step. GridWidth = 10, GridHeight = 5. Start X = 3, Start Y = 3. x = 2 : y = 2 x = 2 : y = 3 x = 2 : y = 4 x = 3 : y = 2 x = 4 : y = 4 x = 3 : y = 4 x = 4 : y = 2 x = 4 : y = 3 nextX = 2 : NextY = : 2 Vertical rectangle. Initiate and one step. GridWidth = 5, GridHeight = 10. Start X = 2, Start Y = 8 x = 1 : y = 7 x = 1 : y = 8 x = 1 : y = 9 x = 2 : y = 7 x = 3 : y = 9 x = 2 : y = 9 x = 3 : y = 7 x = 3 : y = 8 nextX = 1 : NextY = 2 Vertical rectangle. Second step. This is correct. Start X = 1, Start Y = 2 x = 0 : y = 1 x = 0 : y = 2 x = 0 : y = 3 x = 1 : y = 1 x = 2 : y = 3 x = 1 : y = 3 x = 2 : y = 1 x = 2 : y = 2 nextX = 0 : NextY = 1