The Computer Vision and Geometry Lab of the Swiss Federal Institute of Technology (ETH Zurich, Switzerland) have developed a smartphone app that is able to create accurate 3D models in real time using a smartphone.
Current 3D scanners require complicated hardware to capture a 3D model of a real object which is a prohibitive cost to most 3D printer owners. This new app utilizes a smartphone’s camera and internal positioning sensors to create a 3D model.
Instead of taking a normal photograph, the user moves the phone around the object to be scanned and after a few motions, a 3D model appears on the phone’s screen. To provide extra detail or scope of the model the user keeps moving the phone and additional images are recorded automatically.
One advantage to this solution is that all calculations are performed directly on the phone, using it’s GPU, and the user gets immediate feedback. This means that the user can see how the scan is progressing and can select additional viewpoints to cover missing parts of the 3D model.
“This is an important advantage compared to solutions that batch process all the images in the cloud at a later time”, explains Marc Pollefeys, professor at the Institute for Visual Computing.
Having a solution on a mobile phone allows anyone to make 3D scans of objects on-the-fly anywhere. The approach works in a wide variety of settings, including low-light conditions such as inside a museum or outdoors.
Using this app 3D printer owners can easily scan all sorts of objects using their phone and then work on them later to optimize them for 3D printing.
A couple of years ago only the fastest desktop computers would be able to run scanning software of this kind due to the hugely complicated number crunching required. But as Smartphones have become quite powerful computers in the last couple of years they are now able to run the software, due to powerful graphics co-processors (GPUs). Because of the complexity of the calculations needed to reconstruct hundreds of thousands of points, the GPU of the phone is used to enable a faster reconstruction and increase interactivity for the user.