Grid3D is the volume implementation of Grid. It uses an ArrayList of Grid2D to represent the volume. This is directly compatible with ImageJ and Grid2D and Grid3D can be wrapped to ImageJ containers without having to copy the memory. It also interoperates with OpenCL, as memory transfers can use pointer arithmetic to remap the ArrayList to linear memory in OpenCL. As all other Grids Grid3D offers a copy constructor to copy data.