Point Cloud Mesher WOF – Executable and Library

The WOF Point Cloud Mesher is a multithreaded surface reconstruction and 3D meshing software: Firstly there is an executable for getting started quickly. Secondly you also can use WOF as a C++ library for Windows and Linux and the basic functionality is:

  • 3D Point Cloud to Triangle Mesh
  • Triangle Mesh to Quality Point Cloud
  • Triangle Mesh to Triangle Mesh

The C++ API is documented here. But let’s start to play with the executable:

3D Points to Triangle Mesh

The WOF mesher takes 3D points as input and it constructs a triangle mesh. To achieve this WOF needs to estimate the density of the point cloud. Alternatively the user can specify this density like in the below example commands:

stibbons@hex:~$ wof.exe –reconstruct cloud.bin -o mesh.list -a 1.1
stibbons@hex:~$ wof.exe –reconstruct cloud.bin -o mesh.list -b 100
stibbons@hex:~$ wof.exe –reconstruct cloud.ply -o mesh.ply -f 3.0
stibbons@hex:~$ wof.exe –reconstruct cloud.xyz -o mesh.stl
  1. The first line assumes that the user has knowledge about the clouds’ density. Therefore he specifies the spacing distance manually using “-a 1.1”.
  2. In the second line the user tells WOF to assume a resolution of 100, i.e., there are about 100 points in the direction of the largest range of the bounding box.
  3. The third command line tells WOF to estimate the input density automatically: But afterwards WOF shall multiply the determined value by factor 3.0 (“-f 3.0”) to account for non-uniform density i.e., to avoid holes OR to create a less complex mesh.
  4. The fourth command line does not specify -a, -b or -f. In this case WOF assumes -f 2.0 which is a reasonable factor to account for a non-homogeneous input density.
3D Point Cloud of a guitar
(*) Input Cloud, 562267 Points
Triangle mesh reconstructed from a point cloud
Reconstructed Triangle Mesh, 222908 triangles

Supported point file formats are .xyz which is a simple ASCII format with 3 coordinates per line, .ply in ASCII and binary form and .bin which is a raw binary format. Moreover, triangle meshes can be .ply files or ASCII-.stl (no binary .stl yet) and WOF can write .list files for the Geomview viewer.

Triangle Mesh to Quality Point Cloud

This is the opposite computation: A triangle mesh exists and you create a quality point cloud that respects significant edges of the geometry.

stibbons@hex:~$ wof.exe -t Music_Art.stl -o cloud.ply -a .2
stibbons@hex:~$ wof.exe -t Music_Art.stl -o cloud.ply -b 200

The first above command uses the spacing distance “-a 0.2” while the second one specifies the resolution “-b 200”: WOF creates 432.673 points with “-a 0.2”. In contrast, when you choose half the distance (“-a 0.1”) then 4 times more points fit onto the surface (1.74 mio) and with a quarter (“-a 0.05”) you would get 16 times more (6.97 mio) points. Consequently you must choose the spacing distance carefully to avoid huge outputs!

3D Triangle Mesh
Input Triangle Mesh (*)
3D mesh, converted to a high quality point cloud
Point Cloud created by WOF

Use the WOF executable for getting started quickly and keep in mind that anything you can do with the executable is also possible with the C++ library.

Credits: Music Art and Telecaster by Nemanja Petkov licensed under the Creative Commons Attribution ShareAlike International.

Leave a Reply

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