cleaver software mailing list

Text archives Help


Re: [Cleaver] Using Cleaver2 to mesh cardiac models


Chronological Thread 
  • From: Petar Petrov <pip010@gmail.com>
  • To: brock@cardiosolv.com
  • Cc: cleaver@sci.utah.edu
  • Subject: Re: [Cleaver] Using Cleaver2 to mesh cardiac models
  • Date: Thu, 9 Feb 2017 21:08:24 +0100



On Thu, Feb 9, 2017 at 7:19 PM, <brock@cardiosolv.com> wrote:
Hi, I've recently discovered Cleaver2 after a commercial software package we used to use has become unavailable. I'm excited to try it as it looks quite promising.

I've made a few attempts to mesh a test model (human heart) but have run into a few problems.

Firstly, as has been noted in some prior messages on this list, the software takes an enormous amount of RAM. I've ordered a new motherboard and CPU with a larger capacity for RAM and will have that set up tomorrow.
at this stage, plan for a 32G RAM at-least.
another option is to lower the resolution of the input volume and fiddle with with the -c -x -g parameters

Secondly, there seem to be some bugs and/or inconsistent behavior in the version on GitHub. I'm working on tracking these problems down but I'm hoping someone else may have already seen them and fixed them. One problem is that the selection of adaptive/constant in the gui seems to have no effect -- meshes are always created adaptively. Currently I'm trying to track down where this happens in the gui code.
I also found the gui flaky, but the cli-cleaver to be quite stable on the other hand. Also gui will consume some RAM too.
 
Another problem is that the cleaver-cli ignores the -c argument for resolution, because of inconsistent use of command-line option variables in the code. I was able to fix this by simply replacing a couple of instances around line 225 where it says "scaling" with "scale". However, the cli mesher still seems to completely ignore the provided segmentation and create a very blocky and irregularly-shaped mesh with few tetrahedra.
 I only found scale but not scaling! Is this the repo you are fetching from : https://github.com/SCIInstitute/Cleaver2
AFAIK the -c param works.

I'd like to help resolve these problems but I figured I should check in on the state of the project first. Is it possible that some of this has been fixed and just not pushed to GitHub?
I was in contact with the main author, about a week ago, he seems to have pretty good idea how to approach the memory issue. Design wise that is. The idea is to only partially load the 8tree while serialize the rest, so we trade RAM vs CPU-IO.

I've also run some valgrind on the cli-cleaver and it seems it leeks but the majority of consumption is still due to big 8tree. Planning myself to start rewriting the most critical naked pointers to c++11 smart pointers. Also I've managed to break the creation of the sizing field and the building of the background mesh from the final meshing, which helped me gain a gbyte or more of less RAM.

About the blocky mesh:
this is the effect if you use binary segmentation, using the -s param, and providing single file. Much better result is achieved by providing gradient fields (range -1 -1). The recommended way is to use stage1 and stage2 of the BioMesh3D pipeline packaged with scirun4. The you provide the inout as *files_per_segment.nrrd to cli-cleaver

I might try to document how I am currently using it, since it was hinted from me on this very mailing list but nowhere to be found in doc. I think!



 

Thanks,
  --Brock


Np,
Petar



Archive powered by MHonArc 2.6.18.

Top of page