Sparkling gems and new releases from the world of Free and Open Source Software
3D Data Processing
CloudCompare 2.7
We've recently become slightly obsessed with photogrammetry. This is the magical process that turns dozens or hundreds of flat ordinary photos taken of a singular object or location and turns them into fully fleshed-out 3D models. And it really works. Clever algorithms detect the same three-dimensional positions in your photos, and use maps of these positions to work out the relative three dimensional positions of other points within the scene, often generating millions of these points of reference. You then take this "point cloud" and triangulate them into polygons before eventually using more clever algorithms to cut and translate textures out of the original photos and map them onto the polygons, creating the 3D model. You can then use these models within software like Blender, or even in cutting edge technologies like virtual reality, to visit and walk around geographical locations. Rather than sending someone a postcard, you can now send them a fully immersive three-dimensional model of your environment.
CloudCompare is a fundamental part of this process. The tool takes these clouds of point data and turns them into polygons. These clouds of points can come from anywhere – a laser scanner, your own mouse, or photogrammetry software (we'd recommend VisualSFM, for this, or the Python Photogrammetry Toolbox). But doing something meaningful with this point data is a tough job. An image we were working with recently had 17 million of these points, generated from 700 photographs, which we turned into an OBJ file for Blender with 4 million triangles. CloudCompare accomplished this using half of our 32GB of RAM, which is something paid-for competitors can't do with the same data set (we tried). You have complete freedom over the end model, and most common export formats are supported. Our 3D surfaces were generated using one of the plugins bundled with CloudCompare, but other plugins can be used to create point data from an Xbox Kinect device, detect shapes, and change the OpenGL rendering shaders. New plugins can render animations, perform boolean operations on meshes, and extract the bare earth from LIDAR point clouds. Perfect if you're flying drone cameras above ancient monuments. CloudCompare can do other things with the points too, such as map their density, produce statistics, and change their projections – functions that belie its roots as a change-detecting scientific tool developed by Telecom ParisTech and the R&D division of EDF.
With a few exceptions, notably Blender, 3D software is expensive. That CloudCompare is open source and yet so comprehensively powerful, to the extent that its developers could easily charge serious money for a license, is remarkable. The project does accept donations, but we're seriously impressed that you can build software like this yourself. It may be a little on the niche side, but having such an efficient and powerful tool at our fingertips is exactly why we like Linux so much and, of course, open source. Grab yourself a camera and start scanning your environment!
Project Website
Music Player
Buy this article as PDF
(incl. VAT)