Apparatus (310, 430) for generating a model of a three-dimensional space comprising: an image acquisition interface (330, 505) configured to obtain image data (220, 220-A, 220-B, 320, 1140) provided by a capture device (120, 120-A, 120-B, 210, 210-A, 210-B, 420), said image data (220, 220-A, 220-B, 320, 1140) representing an observation of the three-dimensional space in which there is relative movement between the three-dimensional space and the capture device (120, 120-A, 120-B, 210, 210-A, 210-B, 420) over time; and a model engine configured to process the image data (220, 220-A, 220-B, 320, 1140) obtained by the image acquisition interface (330, 505) and to compute a three-dimensional model (350, 450, 530, 750) of the three-dimensional space, wherein the model engine comprises: a model segmenter (360, 535) configured to segment the three-dimensional model into at least active portions and inactive portions based on at least one model property, wherein the model engine is configured to use active portions of the three-dimensional model (350, 450, 530, 750) to update said three-dimensional model (350, 450, 530, 750) over time; and characterized by a registration engine (370, 560, 710) configured to align active portions of the three-dimensional model (350, 450, 530, 750) with inactive portions of the three-dimensional model (350, 450, 530, 750) over time. an image acquisition interface (330, 505) configured to obtain image data (220, 220-A, 220-B, 320, 1140) provided by a capture device (120, 120-A, 120-B, 210, 210-A, 210-B, 420), said image data (220, 220-A, 220-B, 320, 1140) representing an observation of the three-dimensional space in which there is relative movement between the three-dimensional space and the capture device (120, 120-A, 120-B, 210, 210-A, 210-B, 420) over time; and a model engine configured to process the image data (220, 220-A, 220-B, 320, 1140) obtained by the image acquisition interface (330, 505) and to compute a three-dimensional model (350, 450, 530, 750) of the three-dimensional space, wherein the model engine comprises: a model segmenter (360, 535) configured to segment the three-dimensional model into at least active portions and inactive portions based on at least one model property, wherein the model engine is configured to use active portions of the three-dimensional model (350, 450, 530, 750) to update said three-dimensional model (350, 450, 530, 750) over time; and characterized by a registration engine (370, 560, 710) configured to align active portions of the three-dimensional model (350, 450, 530, 750) with inactive portions of the three-dimensional model (350, 450, 530, 750) over time. a model segmenter (360, 535) configured to segment the three-dimensional model into at least active portions and inactive portions based on at least one model property, wherein the model engine is configured to use active portions of the three-dimensional model (350, 450, 530, 750) to update said three-dimensional model (350, 450, 530, 750) over time; and characterized by a registration engine (370, 560, 710) configured to align active portions of the three-dimensional model (350, 450, 530, 750) with inactive portions of the three-dimensional model (350, 450, 530, 750) over time.