1. A computer-implemented method for generating a representation of an outer layer of a three-dimensional object, the method comprising: receiving, at a processing device, a data structure defining a three-dimensional object represented by a plurality of triangles, each triangle being defined by three vertices; determining, at the processing device, a three-dimensional bounding box having dimensions sufficient to encapsulate the object, the bounding box being comprised of a plurality of voxels; determining, at the processing device, an intersecting set of voxels from the plurality of voxels, wherein each member of the intersecting set of voxels is intersected by at least one triangle of the plurality of triangles; determining, at the processing device, an outer set of voxels from the intersecting set of voxels, wherein each member of the outer set of voxels shares a face with a voxel that is not a member of the intersecting set of voxels; and determining, at the processing device, an outer layer set of triangles from the plurality of triangles to obtain a modified data structure, the outer layer set of triangles being comprised of triangles having at least one vertex which intersect the outer set of voxels, wherein the data structure and the modified data structure are of a same type.