1. A computer-implemented method of generating a 3D model of an object, comprising: organizing, in a memory device, storage of data associated with a three-dimensional volume associated with the model, the volume comprising a plurality of voxels; receiving a depth image from a substantially static depth camera, the depth image comprising a depth value at each image element relating to a distance from the depth camera to a scene comprising the object; selecting and removing one or more image elements determined to relate to an unwanted portion of the scene to leave a wanted portion of the depth image comprising the object; tracking the position and orientation of at least a portion of the object in the wanted portion of the depth image by computing registration parameters, the registration parameters being parameters of a transformation for aligning the wanted portion of the depth image and a preceding depth image; and integrating the wanted portion of the depth image into the volume by, for each voxel: using the position and orientation to determine a corresponding location in the depth image for the voxel, determining a factor relating to the distance between each voxel and the depth value at the corresponding location, and updating a stored value at the voxel using the factor, wherein determining the factor comprises calculating a signed distance function between the associated voxel and a point in the scene at the corresponding location.