GitHub is home to over 40 million developers working together to host and review code, manage projects, and build software together. Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community. Already on GitHub? Sign in to your account. This is the same issue as issuebut with additional evidence and explanation.

I apologize for reopening the same issue, however I feel it was closed a bit too hastily the first time, and no one seems interested in responding to comments on a closed issue. The previous filter does not produce as fine of a result, however it is still quite useful, as it has proved to be much more robust for some meshes, and is much simpler to use only 4 parameters instead of My specific request is either to bring back the previous filter in addition to the newer oneor explain how to obtain the same results with the newer filter if even possible.

Issue was closed with the comment "As explained in the help of the screened poisson filter, you can obtain the old behaviour by setting zero in the Interpolation weight parameter", however as will be shown below, this does not appear to be correct. The first mesh considered is a random spherical point cloud generated using the filters "Points on a Sphere" and "Compute normals for point sets", and is attached.

Per the instructions, the Interpolation Weight in the new filter is set to 0 to try to obtain the same results as the old filter. The Octree Depth and Reconstruction Depth are both set to 8, and the rest of the parameters are left as the defaults, as it is not clear what to set them to so as to make the filters as similar to each other as possible.

As can be seen, the results are nowhere near equivalent for this mesh. The newer filter produces a much denser and smoother mesh, however it also has two holes.

The older filter produces a coarser mesh, but at least it is watertight. For a perhaps more realistic example, we will consider bunny10k. The same parameters will be used as in the previous example. The first thing noticed is that the newer filter fails to execute, however the older filter executed fine. This is what is meant in part by the statement that the newer filter is not as robust as the older. After checking the "Pre-Clean" option the newer filter executes, with the results shown below.

While the newer filter does produce a nice mesh, it is certainly not equivalent to the results of the previous filter, as it contains nearly twice as many vertices. I believe that both filters still have valid use cases, and so implore you to please consider adding the "Surface Reconstruction: Poisson" filter back into the next version of MeshLab. I agree that the old filter is more robust and I happen to have the exact same problems you mentioned.

Non solid meshes and alot of error messages for not so perfect meshes can be solved with additonal filters, but on the older poisson you don't have to. Preclean on the newer won't help either. Skip to content.By using our site, you acknowledge that you have read and understand our Cookie PolicyPrivacy Policyand our Terms of Service.

### Unexpected Error

Computer Graphics Stack Exchange is a question and answer site for computer graphics researchers and programmers. It only takes a minute to sign up. I have a mesh and in the region around each triangle, I want to compute an estimate of the principal curvature directions. I have never done this sort of thing before and Wikipedia does not help a lot.

## Using free SFM tools for automatic volume calculation

Can you describe or point me to a simple algorithm that can help me compute this estimate? When I needed an estimate of mesh curvature for a skin shader, the algorithm I ended up settling on was this:.

First, I computed a scalar curvature for each edge in the mesh. This calculates the difference in normals, projected along the edge, as a fraction of the length of the edge. See below for how I came up with this formula. Then, for each vertex I looked at the curvatures of all the edges touching it.

In my case, I just wanted a scalar estimate of "average curvature", so I ended up taking the geometric mean of the absolute values of all the edge curvatures at each vertex. For your case, you might find the minimum and maximum curvatures, and take those edges to be the principal curvature directions maybe orthonormalizing them with the vertex normal.

That's a bit rough, but it might give you a good enough result for what you want to do. But in general, the vertex positions won't be relative to the circle's center. The result is exact only for circles and spheres. However, we can extend it to make it a bit more "tolerant", and use it on arbitrary 3D meshes, and it seems to work reasonably well.

This allows for these two vectors not being exactly parallel as they are in the circle case ; we'll just project away any component that's not parallel.

By the way, a nice side benefit of using the signed projection the dot product is that the formula then gives a signed curvature: positive for convex, and negative for concave surfaces. Another approach I can imagine using, but haven't tried, would be to estimate the second fundamental form of the surface at each vertex.

This could be done by setting up a tangent basis at the vertex, then converting all neighboring vertices into that tangent space, and using least-squares to find the best-fit 2FF matrix.GitHub is home to over 40 million developers working together to host and review code, manage projects, and build software together. Skip to content. Permalink Dismiss Join GitHub today GitHub is home to over 40 million developers working together to host and review code, manage projects, and build software together.

Sign up. Branch: master. Find file Copy path. Cannot retrieve contributors at this time. Raw Blame History. AvgAngleD. MinAngleD. MaxAngleD. StandardDeviationAngleD. Percentile 0.

AvgRatioD. MinRatioD. DimXm. DimYm. CnteDist. SumeDist. CenterOfMass [ 0 ], I. CenterOfMass [ 1 ], I. MinDD.

**MeshLab Basics: Scale to real measures**

AvgDD. Add m. BinLowerBound iH.An accurate simulation requires physically plausible inertial parameters: the mass, center of mass location, and the moment of inertia matrix of all links.

This tutorial will guide you through the process of obtaining and setting these parameters if you have 3D models of the links.

Assuming homogeneous bodies uniform mass densityit is shown how to obtain inertial data using the free software MeshLab. If you wish to skip the setup and only compute the volume, center of mass, or inertia properties of your model, or quickly clean the model, you can use Mesh Cleanera tool which runs MeshLab internally for this purpose. You can also use the commercial product SolidWorks to compute these information.

For a guide on using SolidWorks, please refer to this question on answers. The mass is most easily measured by weighing an object. It is a scalar with default units in Gazebo of kilograms kg. The center of mass is the point where the sum of weighted mass moments is zero. For a uniform body, this is equivalent to the geometric centroid. This parameter is a Vector3 with units of position [length]. The moments of inertia represent the spatial distribution of mass in a rigid body.

The moments of inertia can be expressed as the components of a symmetric positive-definite 3x3 matrix, with 3 diagonal elements, and 3 unique off-diagonal elements. Each inertia matrix is defined relative to a coordinate frame or set of axes.

Diagonalizing the matrix yields its principal moments of inertia the eigenvalues and the orientation of its principal axes the eigenvectors. The moments of inertia are proportional to mass but vary in a non-linear manner with respect to size. Additionally, there are constraints on the relative values of the principal moments that typically make it much more difficult to estimate moments of inertia than mass or center of mass location.

This difficulty motivates the use of software tools for computing moment of inertia. If you're curious about the math behind the inertia matrix, or just want an easy way to calculate the tensor for simple shapes, this wikipedia entry is a great resource.

Download MeshLab from the official website and install it on your computer. The installation should be straightforward. Open the mesh file in MeshLab. For this example, a sphere. A panel opens in the right part of the window which is split in half - we're interested in the lower part containing text output. Next, command MeshLab to compute the inertial parameters. The lower part of the Layers dialog should now show some info about the inertial measures.

The sphere gives the following output:. The bounding box of the sphere is a cube with side length 2. A sphere of radius 1.

It is not exact since it is a triangular approximation. The computed inertia tensor appears diagonal for the given precision with principal moments ranging from [1.GitHub is home to over 40 million developers working together to host and review code, manage projects, and build software together. If nothing happens, download GitHub Desktop and try again. If nothing happens, download Xcode and try again. If nothing happens, download the GitHub extension for Visual Studio and try again.

MeshLab is an open source, portable, and extensible system for the processing and editing of unstructured large 3D triangular meshes. It is aimed to help the processing of the typical not-so-small unstructured models arising in 3D scanning, providing a set of tools for editing, cleaning, healing, inspecting, rendering and converting this kind of meshes.

These tools include MeshLab proper, a versatile program with a graphical user interface, and meshlabservera program that can perform mesh processing tasks in batch mode, without a GUI.

VCG can be used as a stand-alone large-scale automated mesh processing pipeline, while MeshLab makes it easy to experiment with its algorithms interactively. You can find the last MeshLab release in the Releases Tab for your favourite platform.

Github Actions is scheduled to relase a new beta version of MeshLab the first day of every month. You can also test a built version of MeshLab generated by the last commit pushed in this repository, by downloading the artifacts of the last Github Actions workflow. We provide a set of scripts that build and deploy MeshLab automatically.

All the scripts can be found in the install folder. For specific build instructions see the src folder. Meshlab: an open-source mesh processing tool. Cignoni, M. Callieri, M. Corsini, M. Dellepiane, F. Ganovelli, G. For documented and repeatable bugs, feature requests, etc. For general questions use StackOverflow. Skip to content.

Dismiss Join GitHub today GitHub is home to over 40 million developers working together to host and review code, manage projects, and build software together.

Sign up. Branch: master. Find file. Sign in Sign up. Go back. Launching Xcode If nothing happens, download Xcode and try again. Latest commit. Latest commit eac4 Apr 14, MeshLab This is the official repository for the source and the binaries of MeshLab.

Build instructions We provide a set of scripts that build and deploy MeshLab automatically. Structure of the Repository The MeshLab repository is organized as follows: distrib : this folder contains a set of prebuilt libraries, shaders and plugins that will be used by MeshLab once it is compiled. Binaries and plugins will be placed in this folder after MeshLab is built, or a copy of this folder will be placed in the chosen shadow build directory.

For more details, check the readme here ; docs : doxygen scripts for generating MeshLab documentation. For more details, check the readme here ; install : in this folder there are a set of platform-dependent script to build and deploy MeshLab.

For more details, check the readme here ; sample : a set of files meshes, images used for tests; src : this folder contains all the source code of MeshLab, its plugins and the external libraries that it requires.

For more details, check the readme here ; vcglib : submodule of VCGLib.By signing up, you agree to the Code of Conductwhich applies to all online and in-person spaces managed by the Public Lab community and non-profit. You also agree to our Privacy Policy. As an open source community, we believe in open licensing of content so that other members of the community can leverage your work legally -- with attribution, of course.

This has the added benefit that others must share their improvements in turn with you. 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. 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 DCatch web tool make a 3D model from 70 images max number allowed. 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. 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. Entire SFM model with Blender filled base of mound showing need to be "fixed", make it watertight for 3D printing or volume calculation :. For selected mound-only solid from Meshmixer: MeshLab calculated volume: 73, cu ft vs hand estimated ,; only For Blender smoothed, filled, then cropped in Meshmixer: MeshLab calculated volume: 83, cu ft vs hand estimated ,; only 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.

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. 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 Log in to 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 pat coyles.By using our site, you acknowledge that you have read and understand our Cookie PolicyPrivacy Policyand our Terms of Service.

The dark mode beta is finally here. Change your preferences any time. Stack Overflow for Teams is a private, secure spot for you and your coworkers to find and share information. I work with wounds and I wanted to see for my PhD if I can, with a 3D scan, measure the area, volume and depth of a wound.

Can you guide me if in the meshlab it can be done? I know that in Artec Studio it can be done but due to access difficulty I can not use it. I expect the shapes are not simple, so what I'd suggest is to first delete the surface that is not part of the wound. If the containment is not satisfactory you'll have to go further and delete the faces you don't want from the hull, flatten all layers, and then fill holes to create a closer fit.

To measure depth you can use the measure tape tool in the tool bar. Learn more. Meshlab volume and area measurements of a mesh Ask Question. Asked 1 year, 11 months ago. Active 11 months ago. Viewed 1k times. I need help because I do not know where to start. I'm not a programmer I work with wounds and I wanted to see for my PhD if I can, with a 3D scan, measure the area, volume and depth of a wound.

I get a mesh with the topography of the wound. Thank you very much to all. Juan Juan 11 3 3 bronze badges. Active Oldest Votes. James James 82 1 1 silver badge 11 11 bronze badges. Sign up or log in Sign up using Google. Sign up using Facebook.

Sign up using Email and Password. Post as a guest Name. Email Required, but never shown. The Overflow Blog. Socializing with co-workers while social distancing. Podcast Programming tutorials can be a real drag. Featured on Meta. Community and Moderator guidelines for escalating issues via new response…. Feedback on Q2 Community Roadmap.

Dark Mode Beta - help us root out low-contrast and un-converted bits. Technical site integration observational experiment live on Stack Overflow.

## COMMENTS