A new open source tool could greatly aid the simplification of basic 3D scans.
If you’ve ever used 3D scanning on objects of any size, you’ll be familiar with the relative crudeness of the result. Typically the surfaces you’d expect to curve naturally or remain flat tend to be rather bumpy, particularly when you zoom in on the scan’s resulting mesh.
This is due to a limitation in all 3D scanners. Each device has a maximum resolution, or to put it another way, for each voxel it detects, the placement in 3D space is subject to a slight error.
Most of the time this is perfectly fine, as the scan might be used for reverse engineering. In that process, a CAD model is built “over top” of the scan. The scan is essentially a “guide”, which is thrown away after the CAD model is completed. In that scenario, the surface quality of the 3D scan is less relevant.
However, there are other scanning scenarios in which the surface quality is important. One could be scanning organic objects where there is no intention of reverse engineering and the scan will literally be converted into the final 3D model. Another could be scanning larger objects like furniture or whole rooms.
I’ve experience this effect myself many times: scanning a wall produces not a flat 3D model, but one with gazillions of tiny elements representing not so much the flat wall but rather the fine-scale fuzziness of the 3D scanner itself.
This is actually more than just annoying, as the mumbly wall mesh occupies a massive amount of data, making the mesh difficult to process. And that processing is effectively wasted as the wall was really flat, and should have been represented by a few dozen triangles instead of a few million.
But that was the way, and we all accepted and dealt with it.
Now there’s another option: ParallelQSlim!
This open source software tool hopes to reduce or possibly eliminate the issue. The tool is billed as a “Shape aware parallel mesh simplification algorithm”, and the specific shape it focuses on is flat surfaces.
Basically when provided with a mesh, it will seek out planar surfaces and reduce each of them to a proper flat surface. This, of course, requires vastly fewer polygons to represent in the mesh and thus the mesh becomes simplified.
ParallelQSlim implements the Quadric-Based Polygonal Surface Simplification algorithm, first described by Michael Garland at CMU in 1999.
The system is able to “polish” flat surfaces based on three different metrics:
- Color + Geometry
- Normals + Color + Geoemtry
This should provide sufficient flexibility for most planar flattening operations.
Here’s a short animation of how it reduces the mesh complexity in a 3D scan of a room. Watch the walls and other flat surfaces carefully as they gradually evolve into the type of mesh they really should be. Also note the incredible complexity of the original mesh.
At this time the open source tool is distributed as source code that can be compiled on a variety of platforms. It operates in command-line mode, and there is no graphical interface, so it’s not for everyone.
While some will find ParallelQSim of immediate use, I am hoping that those who produce 3D scan processing software can somehow integrate this functionality into their systems. If they did, there would a massive simplification in the work undertaken when post-processing 3D scans.