siddharth-maddali / HierarchicalSmooth

Implementation of the hierarchical smooth algorithm applicable to voxelated images of interface networks ( grain boundaries, soap foam, etc. )
Other
9 stars 3 forks source link

Dream3D Input/Output Process #8

Closed jonathanhestroffer closed 4 years ago

jonathanhestroffer commented 4 years ago

Hi Dr. Maddali,

I am a graduate student in the Materials Department of UCSB and I am very interested in using HierarchicalSmooth. I have some experience with Dream3D and Quick Surface Mesh function, but I am unsure about the process/pipeline needed to create the necessary input files as well as then what to do with the Smoothed Vertex List (array PS).

I appreciate any help you can provide.

Best, Jonathan

siddharth-maddali commented 4 years ago

Hi Jonathan, As of now, the only way is to dump the required arrays from the dream.3d data file to text files and feed them into the algorithm to get the output. I use HDFView for this. If you or someone you know has the expertise, a dream.3d plugin for this smoothing filter can also be created.

I'd highly recommend compiling and using the C++ library instead of Matlab and Python versions, which are older, possibly buggy and certainly didn't receive the most of my attention in the past. The Matlab/Python code runs on a typical 3D microstructure for around an hour, while the C++ code gets it done in a few seconds. You can compile the C++ code, then call it in Matlab/Octave using a wrapper function.

If you hit upon a convenient processing route for your specific data, I would greatly appreciate it if you posted it here describing what you did.

jonathanhestroffer commented 4 years ago

Hi Siddharth,

Since the time I first contacted you, I believe I have successfully exported all the necessary information from my Dream3D file and will start testing out the program. Also, after familiarizing myself with the input and output data, it has become clear that building STL files from the Smoothed Point List with a python script should be very straightforward. I appreciate your help again and I will contact you if I have any more questions.

Here is the Dream3D Pipeline I have created to get the necessary input files.

After I read in my dream3D file and perform any preprocessing steps I do:

  1. Quick Surface Mesh (creates Triangle Data Container with all relevant files)
  2. Export Triangle Geometry (Nodes and Tris)
  3. Export Ascii Data (NodeType)
  4. Export Ascii Data (Face Labels)

Best, Jonathan

siddharth-maddali commented 4 years ago

Thanks! I'd greatly appreciate it if you cite the reference in your papers that use HSmooth...

https://www.sciencedirect.com/science/article/pii/S0927025616303913