ParallelQSlim: Simplifying Complex 3D Scanned Meshes

By on November 13th, 2020 in Software

Tags: , , , , , ,

ParallelQSlim: Simplifying Complex 3D Scanned Meshes
ParallelQSim part-way through a mesh simplification [Source: GitHub]

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:

  • Geometry
  • 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.

ParallelQSim mesh simplification animation [Source: GitHub]

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.

Via GitHub

By Kerry Stevenson

Kerry Stevenson, aka "General Fabb" has written over 8,000 stories on 3D printing at Fabbaloo since he launched the venture in 2007, with an intention to promote and grow the incredible technology of 3D printing across the world. So far, it seems to be working!

Leave a comment

Your email address will not be published. Required fields are marked *