A system (100, 200) comprising: a housing including an image sensor (120, 220) directed in a first direction and a distance sensor (110, 210) directed in a second direction, wherein during movement of the housing through an environment the image sensor is configured to generate an image sequence and the distance sensor is configured to generate a set of distance values, wherein the second direction is angularly offset from the first direction; a control unit including a processor and a memory storing instructions, wherein the processor is configured to execute the instructions to: generate, based on the image sequence, a first 3D model of the environment; generate a first set of revolved 3D models by revolving the first 3D model relative to the image sensor to a first plurality of positions within a predetermined angular range; compare the set of distance values to the revolved 3D models to identify a revolved model that matches the set of distance values; determine, based on the matched at least one of the first set of revolved 3D models, the angular offset between the second direction and the first direction; and generate, based on the first 3D model, the set of distance values, and the angular offset, a 3D reconstruction of the environment, the 3D reconstruction including information indicative of a scale of the environment. a housing including an image sensor (120, 220) directed in a first direction and a distance sensor (110, 210) directed in a second direction, wherein during movement of the housing through an environment the image sensor is configured to generate an image sequence and the distance sensor is configured to generate a set of distance values, wherein the second direction is angularly offset from the first direction; a control unit including a processor and a memory storing instructions, wherein the processor is configured to execute the instructions to: generate, based on the image sequence, a first 3D model of the environment; generate a first set of revolved 3D models by revolving the first 3D model relative to the image sensor to a first plurality of positions within a predetermined angular range; compare the set of distance values to the revolved 3D models to identify a revolved model that matches the set of distance values; determine, based on the matched at least one of the first set of revolved 3D models, the angular offset between the second direction and the first direction; and generate, based on the first 3D model, the set of distance values, and the angular offset, a 3D reconstruction of the environment, the 3D reconstruction including information indicative of a scale of the environment. generate, based on the image sequence, a first 3D model of the environment; generate a first set of revolved 3D models by revolving the first 3D model relative to the image sensor to a first plurality of positions within a predetermined angular range; compare the set of distance values to the revolved 3D models to identify a revolved model that matches the set of distance values; determine, based on the matched at least one of the first set of revolved 3D models, the angular offset between the second direction and the first direction; and generate, based on the first 3D model, the set of distance values, and the angular offset, a 3D reconstruction of the environment, the 3D reconstruction including information indicative of a scale of the environment.