Transform a 3D model from STL/PLY/OFF/OBJ to a porous model with implicit function (e.g., Schwarz P/ Gyroid).
| Documentation | Command line options | Python API | Example: TPMS with Python |
|---|
- Download from Github Releases page
- Binary bundle consists of
- Main program:
Scaffolder - Pore analysis program:
Scaffold.SliceTest - Python library:
PyScaffold*.pyd
- Main program:
Note
If you need only python library, you can install it from pip (see below).
pip install PyScaffolderNote
v1.5.4 support only Python >=3.11 on Windows (ARM64), Linux (x86_64/aarch64), and MacOS (arm64/x86_64)
To build the binary executables, make sure you have installed the following softwares:
- Visual Studio >=2022 (Windows)
- GNU and Cmake (linux)
sudo apt install cmake sudo apt install build-essential libgomp -y
- Apple clang (MacOS)
brew install libomp
- Download or clone the source code from github
- Change current directory to the source code folder
- Create
buildfolder using CMAKE
cmake -E make_directory ./build
cmake -B ./build -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=<path to install>
cmake --build ./build --config Release
cmake --install ./build- Install the
Scaffolder-blender.zipdownloaded from Release - The plugin will appear at
View > SidebarorPress N - Screenshots: Blender plugin with PyScaffolder
- The figure of patterns implemented in this program
- The examples of generated porous scaffold
- libigl - The computational geometry library
- vcglib - The mesh utility library
- sol2 - Lua script integration
- tbb - Threading library (Migrated to OpenMP since v1.5.4)
The source code of Scaffolder is licensed under the MIT License. However, the pre-compiled binaries and wheels distributed on PyPI statically link vcglib and libigl, which are licensed under the GNU General Public License v3.0 (GPL-3.0). Consequently, the distributed PyPI wheels and pre-compiled binaries are subject to the terms of the GPL-3.0.
- Read STL file and find the boundary box of STL mesh
- Generate the grid and calculate the winding number with STL mesh
- Use winding number to determine the condition for implicit isosurface function
- Generate the isosurface field in the grid
- Perform Dual marching cube to construct the manifold
- Clean up the duplicated vertices or faces, and abandon the group of connected faces having the diameter below the setting
- Export to the target 3D format
The raw dataset is available at Mendeley Data. The program that used to generate that data was released at Github repository. You can also find the interactive visualization at Google Colab
https://github.com/nodtem66/Scaffolder/blob/master/include/implicit_function.h
- F13LD Fully Implicit Engine for Lattice Design
- Cesogen (There you can find a curated list of the other software)
- TPMS2STEP
- LattGen
- Rhino (Grasshopper) (Commerical software)
- nTopology (Commerical software)
- Hyperganic (Commerical software)
- Minimal surface Blog
- Dual marching cube - dualmc
- Command line parser - cxxopts
- Progress bar - ProgressBar
Computational method and program for generating a porous scaffold based on implicit surfaces
@article{IAMSAMANG2021106088,
title = {Computational method and program for generating a porous scaffold based on implicit surfaces},
journal = {Computer Methods and Programs in Biomedicine},
volume = {205},
pages = {106088},
year = {2021},
issn = {0169-2607},
doi = {https://doi.org/10.1016/j.cmpb.2021.106088},
url = {https://www.sciencedirect.com/science/article/pii/S0169260721001632},
author = {Jirawat Iamsamang and Phornphop Naiyanetr},
keywords = {Triply periodic minimal surface (TPMS), Implicit surface, Porous scaffold, Pore size, Porosity}
}


