Public Lab Research note

Using free SFM tools for automatic volume calculation

by patcoyle | April 07, 2014 22:13 | 671 views | 4 comments | #10279 | 671 views | 4 comments | #10279 07 Apr 22:13

Read more:

What I want to do

Describe a workflow using free Surface From Motion (SFM) and 3D model mesh tools for automatic calculation of volume of features based on aerial and ground photos.

My attempt and results

This workflow example used other free 3D model mesh tools (Meshmixer and Blender ) and Meshlab's automatic volume measurement capabilities. Volume is automatically calculated for an earth mound feature in a SFM model from aerial mapping piles augmented by ground-based photos.

I used Autodesk's 123DCatch web tool make a 3D model from 70 images (max number allowed).

This is only an example workflow and is surely not the most elegant approach.

In prior observations I described the motivation and used the scaled measurements from the model to do manual area and volume calculations offline. I was also able to prepare an example closed base cube shell model which used Meshlab's automatic volume measurement capabilities feature to get meaningful results.

Based on suggestions from Matteo Dellepiane, author of Mr P.’s YouTube tutorials for MeshLab, and comments from Mathew Lippincott and others, I found one way to obtain a closed surface, in order to use the automatic volume calculation in MeshLab. While both suggested using Blender, I primarily relied on the Meshmixer tool for the ability to select and “crop” to a subsection of the model and automatically “close” it. I also used Blender capabilities to “close” the bottom of the earth mound feature. However, I struggled with the powerful and elegant toolset and interface for Blender and resorted to the Meshmixer tool to select and “crop” to a subsection of the model. (Meshmixer is another tool from Autodesk and one common use is for "fixing" models for 3D printing - where "closing" the base is a common requirement to make the make the model "watertight" for 3D printing). Both of these closed surfaces gave comparable volumes from MeshLab. The Blender model had been simplified to have fewer edges to select, so some variation is understandable.

Screenshots illustrate steps in the Meshmixer process:

Entire SFM model with Blender filled base of mound showing need to be "fixed", make it watertight for 3D printing (or volume calculation):


Selected subsection of model with mound:


Inverted selection of model with mound:


"Cropped" selection of model with mound:


Selected subsection of model with mound showing after "fix all":


Auto calculated volumes (see EXCEL file for details and notes):


For selected mound-only solid from Meshmixer: MeshLab calculated volume: 73,666 cu ft vs hand estimated 197,699; only 37.3% - a Big difference, need to check prior results.



For Blender smoothed, filled, then cropped in Meshmixer: MeshLab calculated volume: 83,869 cu ft vs hand estimated 197,699; only 42.4%- again a Big difference, need to check prior results.

However the MeshLab calculated volumes are close and given the Blender model had been simplified to have fewer edges to select, some variation is understandable.

Questions and next steps

I'd like to continue to explore Meshlab's automatic volume measurement capabilities. These initial results from an actual SFM model from aerial mapping of mounds are encouraging. Others are likely more familiar with using the capabilities of Blender and other tools. It is also worth noting there are a number of other mesh editing and viewing packages that are free or open source.

Why I'm interested

The capability to use the free and open-sourced cloud-based tools to autostitch images into maps and use their 3D models for area and volume calculations is powerful.


You can also measure volume in meshmixer - run the 'Stability' tool under the Analysis tab, and the volume and surface area will be shown in a pop-up.

One issue you might have is that it looks like there are some artifacts in your meshes, this could affect any attempts to make measurements from the mesh. You might consider running the 'Make Solid' command, it will have some slight resampling artifacts, but produce a clean mesh that will produce results that are more trust-worthy.

If you have ideas for other types of measurements that might be useful to do in this context, I would be interested to hear about them. If you are doing lots of the types of operations you describe above, I could also suggest some workflow improvements.

Reply to this comment...

Thanks meshmixer, this is a technique we would like to use in cases where automatic volume calculations are useful. So we'd very much like to learn how to improve the workflow. Clearly I am a novice. My email is if we can follow up offpage.

Reply to this comment...

I have been trying to figure out a way of measuring the volume of an "open" model that I generated in Meshlab so reading this post was very helpful. I'm a biologist and this technique would be super useful with my current project.

However, it would be great if you could please explain how you "used Blender capabilities to “close” the bottom of the earth mound feature" as this is the part I have been struggling the most with? Thank you in advance :)

Is this a question? Click here to post it to the Questions page.

Reply to this comment...

Jenny, sorry if my note isn't clear. I used Meshmixer to “close” the bottom of the earth mound feature. The screenshots and captions illustrate the steps in the Meshmixer process. I expect Blender has these kinds of capabilities, but I found the learning curve steep and used Meshmixer instead. If, after looking over the screenshots and captions, want to go over it. Let me know. My email is if want to follow up offpage.

Reply to this comment...

Login to comment.

Public Lab is open for anyone and will always be free. By signing up you'll join a diverse group of community researchers and tap into a lot of grassroots expertise.

Sign up