Dear Daisuke,
thank you for your question. We would propose the following workflow to estimate the shell thickness:
Assume you have core-shell particles of a base material (MaterialID 01) and a shell material (MaterialID 02). Then we propose the following workflow:
- Reassign the base material to a liquid material. The example structure may now look as in the following picture.

- Use "Analyze -> Grain Find -> Estimate Grain Diamters" to estimate the coating thickness.
- “Estimate Grain Diameters” uses internally the Euclidian Distance Map, a watershed algorithm is used to transfer the values of voxels with small components to neighboring voxels with large components
- We have a technical paper available that describes the background of the “Estimate Grain Diameters” algorithm: https://www.math2market.de/fileadmin/Showroom/Technical-Reports/M2M-2021-01_TechReport_Math2Market.pdf
- In the example, I used the options “Chosen Material IDs: 2” (coating’s material ID) and “Remove Grain Fragments at Domain Boundary” (if you leave this checked you will get low coating thickness at the domain boundaries in the result

Finally, you can interpretate the grain diameters as the shell thickness. It can be visualized by the volume field "Diameter".
Note: You could use a similar workflow with Analyse -> MatDict -> Material Characterization -> Solid Size Distribution (Granulometry) in the step 2 from above.
- Please note the instruction for Granulometry in the MatDict UserGuide (page 20 and following).
- Especially the bin size must be selected small enough depending on the expected minimum coating thicknesses.
- Different visualization options are described, probably the best for your problem is the volume fraction visualization.
This approach will also fit spheres in the coating material, however corners are a differently treated as in the "Estimate Grain Diameter" approach from above, because smaller spheres are not merged with neighboring large spheres.
I hope my answer helped you.
Best regards, Roman