diff options
-rw-r--r-- | .gitignore | 1 | ||||
-rw-r--r-- | python-pyscaffolder.spec | 353 | ||||
-rw-r--r-- | sources | 1 |
3 files changed, 355 insertions, 0 deletions
@@ -0,0 +1 @@ +/PyScaffolder-1.5.2.post1.tar.gz diff --git a/python-pyscaffolder.spec b/python-pyscaffolder.spec new file mode 100644 index 0000000..b474ddd --- /dev/null +++ b/python-pyscaffolder.spec @@ -0,0 +1,353 @@ +%global _empty_manifest_terminate_build 0 +Name: python-PyScaffolder +Version: 1.5.2.post1 +Release: 1 +Summary: Generate 3D mesh from implicit surface and an input mesh +License: MIT License +URL: https://github.com/nodtem66/Scaffolder +Source0: https://mirrors.nju.edu.cn/pypi/web/packages/9b/42/13febeb309d5476e02cfdd65b46e27463eb97b57f0a9acf82329caeafc1a/PyScaffolder-1.5.2.post1.tar.gz + + +%description +# Scaffolder + [?branchName=master)](https://dev.azure.com/n66/PublicCI/_build/latest?definitionId=8&branchName=master) + +[](https://anaconda.org/nodtem66/scaffolder)   + + + +Transform a 3D model from STL/PLY/OFF/OBJ to a porous model with implicit function (e.g., Schwarz P/ Gyroid). + +[Documentation](https://nodtem66.github.io/Scaffolder) + +## Binary installation +* Download from [Github Releases page](https://github.com/nodtem66/Scaffolder/releases) or +* Install from Anaconda +```bash +conda install -c nodtem66 scaffolder +``` + +## Python supports +```bash +pip install PyScaffolder +``` + +## Blender addon +- Install the `Scaffolder-blender.zip` downloaded from [Release](https://github.com/nodtem66/Scaffolder/releases/tag/v1.5.1) +- The plugin will appear at `View > Sidebar` or `Press N` + +## Screenshots + +- **Blender plugin with PyScaffolder** + + + +- **The figure of patterns implemented in this program** + + + + +- **The examples of generated porous scaffold** + + + +## Dependencies +- [libigl](https://libigl.github.io/) - The computational geometry library +- [vcglib](https://github.com/cnr-isti-vclab/vcglib) - The mesh utility library +- [sol2](https://github.com/ThePhD/sol2) - Lua script integration +- [tbb](https://github.com/oneapi-src/oneTBB) - Threading library + +## How it works +- Read STL file and finding the boundary box +- Generate the grid and calculate the winding number with STL mesh +- Use winding number to determine the condition for [implicit isosurface function](https://wewanttolearn.wordpress.com/2019/02/03/triply-periodic-minimal-surfaces/) +- Generate the isosurface field in the same-size grid +- Perform [Dual marching cube](https://github.com/dominikwodniok/dualmc) 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 + +## FAQ + +### How can I find the dataset from a study of coffient and isolevel? +The raw dataset is available at [Mendeley Data](https://data.mendeley.com/datasets/sbxr7xxvnd/2). +The program that used to generate that data was released at [Github repository](https://github.com/nodtem66/Scaffolder). You can also find the interactive visualization at [Google Colab](https://colab.research.google.com/github/nodtem66/Scaffolder/blob/master/data/data_visualization.ipynb) + +### Where is the implicit functions were defined in the C++ sourcecode? +https://github.com/nodtem66/Scaffolder/blob/master/include/implicit_function.h + +### Can you suggest alternative softwares like this program? +- Rhino (Grasshopper) +- nTopology +- Hyperganic + +## References +- [Minimal surface Blog](https://minimalsurfaces.blog/) +- Dual marching cube - [dualmc](https://github.com/dominikwodniok/dualmc) +- Command line parser - [cxxopts](https://github.com/jarro2783/cxxopts) +- Progress bar - [ProgressBar](https://github.com/prakhar1989/progress-cpp) + +## Citation +[Computational method and program for generating a porous scaffold based on implicit surfaces](https://doi.org/10.1016/j.cmpb.2021.106088) +```bibtex +@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} +} +``` + + +%package -n python3-PyScaffolder +Summary: Generate 3D mesh from implicit surface and an input mesh +Provides: python-PyScaffolder +BuildRequires: python3-devel +BuildRequires: python3-setuptools +BuildRequires: python3-pip +BuildRequires: python3-cffi +BuildRequires: gcc +BuildRequires: gdb +%description -n python3-PyScaffolder +# Scaffolder + [?branchName=master)](https://dev.azure.com/n66/PublicCI/_build/latest?definitionId=8&branchName=master) + +[](https://anaconda.org/nodtem66/scaffolder)   + + + +Transform a 3D model from STL/PLY/OFF/OBJ to a porous model with implicit function (e.g., Schwarz P/ Gyroid). + +[Documentation](https://nodtem66.github.io/Scaffolder) + +## Binary installation +* Download from [Github Releases page](https://github.com/nodtem66/Scaffolder/releases) or +* Install from Anaconda +```bash +conda install -c nodtem66 scaffolder +``` + +## Python supports +```bash +pip install PyScaffolder +``` + +## Blender addon +- Install the `Scaffolder-blender.zip` downloaded from [Release](https://github.com/nodtem66/Scaffolder/releases/tag/v1.5.1) +- The plugin will appear at `View > Sidebar` or `Press N` + +## Screenshots + +- **Blender plugin with PyScaffolder** + + + +- **The figure of patterns implemented in this program** + + + + +- **The examples of generated porous scaffold** + + + +## Dependencies +- [libigl](https://libigl.github.io/) - The computational geometry library +- [vcglib](https://github.com/cnr-isti-vclab/vcglib) - The mesh utility library +- [sol2](https://github.com/ThePhD/sol2) - Lua script integration +- [tbb](https://github.com/oneapi-src/oneTBB) - Threading library + +## How it works +- Read STL file and finding the boundary box +- Generate the grid and calculate the winding number with STL mesh +- Use winding number to determine the condition for [implicit isosurface function](https://wewanttolearn.wordpress.com/2019/02/03/triply-periodic-minimal-surfaces/) +- Generate the isosurface field in the same-size grid +- Perform [Dual marching cube](https://github.com/dominikwodniok/dualmc) 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 + +## FAQ + +### How can I find the dataset from a study of coffient and isolevel? +The raw dataset is available at [Mendeley Data](https://data.mendeley.com/datasets/sbxr7xxvnd/2). +The program that used to generate that data was released at [Github repository](https://github.com/nodtem66/Scaffolder). You can also find the interactive visualization at [Google Colab](https://colab.research.google.com/github/nodtem66/Scaffolder/blob/master/data/data_visualization.ipynb) + +### Where is the implicit functions were defined in the C++ sourcecode? +https://github.com/nodtem66/Scaffolder/blob/master/include/implicit_function.h + +### Can you suggest alternative softwares like this program? +- Rhino (Grasshopper) +- nTopology +- Hyperganic + +## References +- [Minimal surface Blog](https://minimalsurfaces.blog/) +- Dual marching cube - [dualmc](https://github.com/dominikwodniok/dualmc) +- Command line parser - [cxxopts](https://github.com/jarro2783/cxxopts) +- Progress bar - [ProgressBar](https://github.com/prakhar1989/progress-cpp) + +## Citation +[Computational method and program for generating a porous scaffold based on implicit surfaces](https://doi.org/10.1016/j.cmpb.2021.106088) +```bibtex +@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} +} +``` + + +%package help +Summary: Development documents and examples for PyScaffolder +Provides: python3-PyScaffolder-doc +%description help +# Scaffolder + [?branchName=master)](https://dev.azure.com/n66/PublicCI/_build/latest?definitionId=8&branchName=master) + +[](https://anaconda.org/nodtem66/scaffolder)   + + + +Transform a 3D model from STL/PLY/OFF/OBJ to a porous model with implicit function (e.g., Schwarz P/ Gyroid). + +[Documentation](https://nodtem66.github.io/Scaffolder) + +## Binary installation +* Download from [Github Releases page](https://github.com/nodtem66/Scaffolder/releases) or +* Install from Anaconda +```bash +conda install -c nodtem66 scaffolder +``` + +## Python supports +```bash +pip install PyScaffolder +``` + +## Blender addon +- Install the `Scaffolder-blender.zip` downloaded from [Release](https://github.com/nodtem66/Scaffolder/releases/tag/v1.5.1) +- The plugin will appear at `View > Sidebar` or `Press N` + +## Screenshots + +- **Blender plugin with PyScaffolder** + + + +- **The figure of patterns implemented in this program** + + + + +- **The examples of generated porous scaffold** + + + +## Dependencies +- [libigl](https://libigl.github.io/) - The computational geometry library +- [vcglib](https://github.com/cnr-isti-vclab/vcglib) - The mesh utility library +- [sol2](https://github.com/ThePhD/sol2) - Lua script integration +- [tbb](https://github.com/oneapi-src/oneTBB) - Threading library + +## How it works +- Read STL file and finding the boundary box +- Generate the grid and calculate the winding number with STL mesh +- Use winding number to determine the condition for [implicit isosurface function](https://wewanttolearn.wordpress.com/2019/02/03/triply-periodic-minimal-surfaces/) +- Generate the isosurface field in the same-size grid +- Perform [Dual marching cube](https://github.com/dominikwodniok/dualmc) 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 + +## FAQ + +### How can I find the dataset from a study of coffient and isolevel? +The raw dataset is available at [Mendeley Data](https://data.mendeley.com/datasets/sbxr7xxvnd/2). +The program that used to generate that data was released at [Github repository](https://github.com/nodtem66/Scaffolder). You can also find the interactive visualization at [Google Colab](https://colab.research.google.com/github/nodtem66/Scaffolder/blob/master/data/data_visualization.ipynb) + +### Where is the implicit functions were defined in the C++ sourcecode? +https://github.com/nodtem66/Scaffolder/blob/master/include/implicit_function.h + +### Can you suggest alternative softwares like this program? +- Rhino (Grasshopper) +- nTopology +- Hyperganic + +## References +- [Minimal surface Blog](https://minimalsurfaces.blog/) +- Dual marching cube - [dualmc](https://github.com/dominikwodniok/dualmc) +- Command line parser - [cxxopts](https://github.com/jarro2783/cxxopts) +- Progress bar - [ProgressBar](https://github.com/prakhar1989/progress-cpp) + +## Citation +[Computational method and program for generating a porous scaffold based on implicit surfaces](https://doi.org/10.1016/j.cmpb.2021.106088) +```bibtex +@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} +} +``` + + +%prep +%autosetup -n PyScaffolder-1.5.2.post1 + +%build +%py3_build + +%install +%py3_install +install -d -m755 %{buildroot}/%{_pkgdocdir} +if [ -d doc ]; then cp -arf doc %{buildroot}/%{_pkgdocdir}; fi +if [ -d docs ]; then cp -arf docs %{buildroot}/%{_pkgdocdir}; fi +if [ -d example ]; then cp -arf example %{buildroot}/%{_pkgdocdir}; fi +if [ -d examples ]; then cp -arf examples %{buildroot}/%{_pkgdocdir}; fi +pushd %{buildroot} +if [ -d usr/lib ]; then + find usr/lib -type f -printf "/%h/%f\n" >> filelist.lst +fi +if [ -d usr/lib64 ]; then + find usr/lib64 -type f -printf "/%h/%f\n" >> filelist.lst +fi +if [ -d usr/bin ]; then + find usr/bin -type f -printf "/%h/%f\n" >> filelist.lst +fi +if [ -d usr/sbin ]; then + find usr/sbin -type f -printf "/%h/%f\n" >> filelist.lst +fi +touch doclist.lst +if [ -d usr/share/man ]; then + find usr/share/man -type f -printf "/%h/%f.gz\n" >> doclist.lst +fi +popd +mv %{buildroot}/filelist.lst . +mv %{buildroot}/doclist.lst . + +%files -n python3-PyScaffolder -f filelist.lst +%dir %{python3_sitearch}/* + +%files help -f doclist.lst +%{_docdir}/* + +%changelog +* Wed May 31 2023 Python_Bot <Python_Bot@openeuler.org> - 1.5.2.post1-1 +- Package Spec generated @@ -0,0 +1 @@ +a58886cd9555bc78551af4c3efc0f369 PyScaffolder-1.5.2.post1.tar.gz |