Skip to main content

Generate 3D mesh from implicit surface and an input mesh

Project description

Scaffolder

GitHub last commit

Build Status Build Status

Anaconda Last update Platform

Scaffolder Logo

Transform a 3D model from STL/PLY/OFF/OBJ to a porous model with implicit function (e.g., Schwarz P/ Gyroid).

Documentation

Binary installation

conda install -c nodtem66 scaffolder

Python supports

pip install PyScaffolder

Blender addon

  • Install the Scaffolder-blender.zip downloaded from Release
  • The plugin will appear at View > Sidebar or Press N

Screenshots

  • Blender plugin with PyScaffolder

Blender plugin

  • The figure of patterns implemented in this program

TPMS Patterns

  • The examples of generated porous scaffold

Examples porous scaffold

Dependencies

  • libigl - The computational geometry library
  • vcglib - The mesh utility library
  • sol2 - Lua script integration
  • tbb - 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
  • Generate the isosurface field in the same-size 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

FAQ

How can I find the dataset from a study of coffient and isolevel?

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

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

Citation

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}
}

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pyscaffolder-1.5.2.post2.tar.gz (5.8 kB view details)

Uploaded Source

Built Distributions

PyScaffolder-1.5.2.post2-cp312-cp312-win_amd64.whl (973.2 kB view details)

Uploaded CPython 3.12 Windows x86-64

PyScaffolder-1.5.2.post2-cp312-cp312-musllinux_1_1_x86_64.whl (1.4 MB view details)

Uploaded CPython 3.12 musllinux: musl 1.1+ x86-64

PyScaffolder-1.5.2.post2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (860.0 kB view details)

Uploaded CPython 3.12 manylinux: glibc 2.17+ x86-64

PyScaffolder-1.5.2.post2-cp312-cp312-macosx_10_9_x86_64.whl (979.7 kB view details)

Uploaded CPython 3.12 macOS 10.9+ x86-64

PyScaffolder-1.5.2.post2-cp311-cp311-win_amd64.whl (972.3 kB view details)

Uploaded CPython 3.11 Windows x86-64

PyScaffolder-1.5.2.post2-cp311-cp311-musllinux_1_1_x86_64.whl (1.4 MB view details)

Uploaded CPython 3.11 musllinux: musl 1.1+ x86-64

PyScaffolder-1.5.2.post2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (860.6 kB view details)

Uploaded CPython 3.11 manylinux: glibc 2.17+ x86-64

PyScaffolder-1.5.2.post2-cp311-cp311-macosx_10_9_x86_64.whl (978.0 kB view details)

Uploaded CPython 3.11 macOS 10.9+ x86-64

PyScaffolder-1.5.2.post2-cp310-cp310-win_amd64.whl (972.0 kB view details)

Uploaded CPython 3.10 Windows x86-64

PyScaffolder-1.5.2.post2-cp310-cp310-musllinux_1_1_x86_64.whl (1.4 MB view details)

Uploaded CPython 3.10 musllinux: musl 1.1+ x86-64

PyScaffolder-1.5.2.post2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (860.9 kB view details)

Uploaded CPython 3.10 manylinux: glibc 2.17+ x86-64

PyScaffolder-1.5.2.post2-cp310-cp310-macosx_10_9_x86_64.whl (977.9 kB view details)

Uploaded CPython 3.10 macOS 10.9+ x86-64

PyScaffolder-1.5.2.post2-cp39-cp39-win_amd64.whl (970.9 kB view details)

Uploaded CPython 3.9 Windows x86-64

PyScaffolder-1.5.2.post2-cp39-cp39-musllinux_1_1_x86_64.whl (1.4 MB view details)

Uploaded CPython 3.9 musllinux: musl 1.1+ x86-64

PyScaffolder-1.5.2.post2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (861.2 kB view details)

Uploaded CPython 3.9 manylinux: glibc 2.17+ x86-64

PyScaffolder-1.5.2.post2-cp39-cp39-macosx_10_9_x86_64.whl (978.0 kB view details)

Uploaded CPython 3.9 macOS 10.9+ x86-64

PyScaffolder-1.5.2.post2-cp38-cp38-win_amd64.whl (972.2 kB view details)

Uploaded CPython 3.8 Windows x86-64

PyScaffolder-1.5.2.post2-cp38-cp38-musllinux_1_1_x86_64.whl (1.4 MB view details)

Uploaded CPython 3.8 musllinux: musl 1.1+ x86-64

PyScaffolder-1.5.2.post2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (860.9 kB view details)

Uploaded CPython 3.8 manylinux: glibc 2.17+ x86-64

PyScaffolder-1.5.2.post2-cp38-cp38-macosx_10_9_x86_64.whl (977.9 kB view details)

Uploaded CPython 3.8 macOS 10.9+ x86-64

PyScaffolder-1.5.2.post2-cp37-cp37m-win_amd64.whl (972.8 kB view details)

Uploaded CPython 3.7m Windows x86-64

PyScaffolder-1.5.2.post2-cp37-cp37m-musllinux_1_1_x86_64.whl (1.4 MB view details)

Uploaded CPython 3.7m musllinux: musl 1.1+ x86-64

PyScaffolder-1.5.2.post2-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (864.7 kB view details)

Uploaded CPython 3.7m manylinux: glibc 2.17+ x86-64

PyScaffolder-1.5.2.post2-cp37-cp37m-macosx_10_9_x86_64.whl (977.3 kB view details)

Uploaded CPython 3.7m macOS 10.9+ x86-64

File details

Details for the file pyscaffolder-1.5.2.post2.tar.gz.

File metadata

  • Download URL: pyscaffolder-1.5.2.post2.tar.gz
  • Upload date:
  • Size: 5.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/5.0.0 CPython/3.12.3

File hashes

Hashes for pyscaffolder-1.5.2.post2.tar.gz
Algorithm Hash digest
SHA256 39b4f2d310d20aad2c78029836a3bd56e05c8359637b4771f2a1983cb371b595
MD5 a0a31b1415decc30b9b64230db81782f
BLAKE2b-256 d1d6c2ae9d818240364079bb91afe5e34848cb5cbd82d239317522d9397692a5

See more details on using hashes here.

File details

Details for the file PyScaffolder-1.5.2.post2-cp312-cp312-win_amd64.whl.

File metadata

File hashes

Hashes for PyScaffolder-1.5.2.post2-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 12fdb9e4569a1d23a049434e6d98e1b9d098444c6c4e4c16a73961d26b869ece
MD5 e52a865bba6cb8f75df658cd58c3a9a4
BLAKE2b-256 38fc2ccd6f1a74e5d980d90710379df2a66e4dc1fb9179580cc7b985f0f85c56

See more details on using hashes here.

File details

Details for the file PyScaffolder-1.5.2.post2-cp312-cp312-musllinux_1_1_x86_64.whl.

File metadata

File hashes

Hashes for PyScaffolder-1.5.2.post2-cp312-cp312-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 4d18df4963b3266ff8797a2166848288edf18f1c3237b0442cd879e016328bb7
MD5 06eb495e2ed72eebe4f152f478dbf3c8
BLAKE2b-256 5bb68b83f638cd388e992721996e47b11ec30346d435be6e18cd4186715d9aa2

See more details on using hashes here.

File details

Details for the file PyScaffolder-1.5.2.post2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for PyScaffolder-1.5.2.post2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 75286fa8f4ef7dbf5f2ee6bc48bf2290b902e8283a81929ff66806f67b09ae27
MD5 a17250cbdc81f1690e9c53a229505221
BLAKE2b-256 fde4f3c5493c73836d37e72338d3490521fe21ab8d97171ab85e5e168d8e3e05

See more details on using hashes here.

File details

Details for the file PyScaffolder-1.5.2.post2-cp312-cp312-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for PyScaffolder-1.5.2.post2-cp312-cp312-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 8e55b73ddbd8c997a317ae4661f84fc1f013bbe0b362fb27693e86da937c1c44
MD5 324b6b02dce58a64b59abace2ffa2035
BLAKE2b-256 64ad98ad4acf1daafb971514963d48fe5b97b8ee72ef9bf16c15c2dcf717150f

See more details on using hashes here.

File details

Details for the file PyScaffolder-1.5.2.post2-cp311-cp311-win_amd64.whl.

File metadata

File hashes

Hashes for PyScaffolder-1.5.2.post2-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 3176787454557f839785b1e0b5ce9110d9b1455cc49e494c85c85578356f8798
MD5 f607502063592d696edffaea635e8c4f
BLAKE2b-256 5948218dffaeb4711a1a845bc9e369cff13170d9fe8b7900592722136ad9f0b5

See more details on using hashes here.

File details

Details for the file PyScaffolder-1.5.2.post2-cp311-cp311-musllinux_1_1_x86_64.whl.

File metadata

File hashes

Hashes for PyScaffolder-1.5.2.post2-cp311-cp311-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 b24b9a7ed244c9b99124b554182cb362f485909aa3f2ae22763cc405f69b437f
MD5 bf4c459ef15c2d34f61878f1f0eef4f3
BLAKE2b-256 633246d1b25b8270716df85efec0dbdc88ff4933d23046482792a7e9551e7b68

See more details on using hashes here.

File details

Details for the file PyScaffolder-1.5.2.post2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for PyScaffolder-1.5.2.post2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 5911a59895add955ca873b30ae40433d3b2a93ee65cd13134d8a43e20165c713
MD5 8923255daba588ae7f785e8869d2e78d
BLAKE2b-256 a027fc63dc179472b9500c8102fc917a1dcf739688d120c5c6ff0020b803865c

See more details on using hashes here.

File details

Details for the file PyScaffolder-1.5.2.post2-cp311-cp311-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for PyScaffolder-1.5.2.post2-cp311-cp311-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 cc85867559061e465cf47cf60ace15ea2c01725f9edecda6d3678788085748bd
MD5 8aea5a43d8ce91448a2dd51d65f72015
BLAKE2b-256 3390b206d1df6ddee5866e0766daf6e8de0f431ac35b1d78c45c697f67339b4a

See more details on using hashes here.

File details

Details for the file PyScaffolder-1.5.2.post2-cp310-cp310-win_amd64.whl.

File metadata

File hashes

Hashes for PyScaffolder-1.5.2.post2-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 f02c24cd7fa99cab436f00b0909e5e70e3cc50c30bb91156d62b88f917fe3a65
MD5 d943b54317f54686b52958c9e18cfad3
BLAKE2b-256 58ab7fdf59ef860d69b5735e999b634af1812627c77f3cd1c92bd3938efa82e6

See more details on using hashes here.

File details

Details for the file PyScaffolder-1.5.2.post2-cp310-cp310-musllinux_1_1_x86_64.whl.

File metadata

File hashes

Hashes for PyScaffolder-1.5.2.post2-cp310-cp310-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 299df481f97c4f144ea7cb09dc5d7edf442d97d9f458da4504d85c70cc5bb98c
MD5 d4d46a5ab97967cef0e2e831b8b72e14
BLAKE2b-256 0d540ba27b47c08abc9ed50cadeaf7a942f00548c1d26ffc707a23a0db28c723

See more details on using hashes here.

File details

Details for the file PyScaffolder-1.5.2.post2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for PyScaffolder-1.5.2.post2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 27700020eff03e1d069780a9f20e7f4fb76e46e1ee8e572912bb5b4437e2506f
MD5 452c85e8b0309be8bc97a2e6f7313fc6
BLAKE2b-256 03b7031cb0e6138c5d6bcb4bb9368f255a1131badebb9bfa0eb1bb84a518c4f1

See more details on using hashes here.

File details

Details for the file PyScaffolder-1.5.2.post2-cp310-cp310-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for PyScaffolder-1.5.2.post2-cp310-cp310-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 37033f6502822d4bf5aae89bae7355cb9507926b388af6fe5e217887ac9bcb3a
MD5 935b9e9394444a5b05340c5eb8c8eb31
BLAKE2b-256 aabbbd68e7389950922d049bc18ebcab72f3e86ae6b5b4e6231caf20df4f14ef

See more details on using hashes here.

File details

Details for the file PyScaffolder-1.5.2.post2-cp39-cp39-win_amd64.whl.

File metadata

File hashes

Hashes for PyScaffolder-1.5.2.post2-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 ed4a661daa0fc2ebdaca98c3edb21dc4ada9f427a6ac0e97bfe2363baeaa8fc9
MD5 1d380dc78390d81e939bbddd56bd2012
BLAKE2b-256 d21faa379b382ae50a2787d3a7b5feaf9e6854ec644f91e849d84134a2df62b7

See more details on using hashes here.

File details

Details for the file PyScaffolder-1.5.2.post2-cp39-cp39-musllinux_1_1_x86_64.whl.

File metadata

File hashes

Hashes for PyScaffolder-1.5.2.post2-cp39-cp39-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 e518fa46b824ba264226843ab9af7ff97bbc44ad7a69decc82bf147adc4cc373
MD5 71a64c9389bfebb4ecf9a0a6812020ba
BLAKE2b-256 035bbc5526838d0b9319588af91c51467811330e86f8410fe499e9557032dfd3

See more details on using hashes here.

File details

Details for the file PyScaffolder-1.5.2.post2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for PyScaffolder-1.5.2.post2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 d3ea61493873231c5359a9eba5dbae7f6544103fa11ddb69ca7cec3ad46897db
MD5 025e3121ba5fe4a62d7ae1ba845eafcb
BLAKE2b-256 74484145f7cd8b053bf5ed24b946ea9bc97f213f6873a068517193b3f0e92955

See more details on using hashes here.

File details

Details for the file PyScaffolder-1.5.2.post2-cp39-cp39-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for PyScaffolder-1.5.2.post2-cp39-cp39-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 5b8c48f04dfaa5611eb4754ea8ad4594a1741a38f9636cf2a5cc85e606f889fb
MD5 fda0ec7f7b622f753ae646fbf2bee21c
BLAKE2b-256 a8cd7f3149e4d8322ec242b60a36aa249116e6c9c7e6faa38694cd8944f744cb

See more details on using hashes here.

File details

Details for the file PyScaffolder-1.5.2.post2-cp38-cp38-win_amd64.whl.

File metadata

File hashes

Hashes for PyScaffolder-1.5.2.post2-cp38-cp38-win_amd64.whl
Algorithm Hash digest
SHA256 9976bd7fabca95b6effe7766d3004e02a7755c18b3f8b0739a0e634df6800dd0
MD5 97a6cca3db1d29ccf78626b9ea12405d
BLAKE2b-256 db769de3792b739a755ff94c7376d90ec436cec6cf7e0955ef998bfbdf859b53

See more details on using hashes here.

File details

Details for the file PyScaffolder-1.5.2.post2-cp38-cp38-musllinux_1_1_x86_64.whl.

File metadata

File hashes

Hashes for PyScaffolder-1.5.2.post2-cp38-cp38-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 a35c7f60385ce9a71a236c2364f2393ea0de35b5772b20cdde736e59d4f8b17d
MD5 aa24b142ee8ff285cf5e9fa926a813a6
BLAKE2b-256 7ae7f238ea23cee05102ed3a9f4012a84c3563f8bf3e80eb4d2b83236e8f2918

See more details on using hashes here.

File details

Details for the file PyScaffolder-1.5.2.post2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for PyScaffolder-1.5.2.post2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 cd071fa3c0a4ffcee6dc46f6887f67dddc5c76d714e25dfa6d87767bc3ae300a
MD5 3f44f1a7602a7c5f29a52aadad171904
BLAKE2b-256 d218ef3885b895745da5ac70be64bfa2fc691b4de51084091057371abcade8bd

See more details on using hashes here.

File details

Details for the file PyScaffolder-1.5.2.post2-cp38-cp38-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for PyScaffolder-1.5.2.post2-cp38-cp38-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 253d55000b6040216da73ee55c1c3b9c4deaabccaf4aedb1fcc64244383a837c
MD5 611f9003a9a01c34cce541015bd84a1d
BLAKE2b-256 722c8470652d4642701f207855da02316025f4de13d85872e06a4e8f93441471

See more details on using hashes here.

File details

Details for the file PyScaffolder-1.5.2.post2-cp37-cp37m-win_amd64.whl.

File metadata

File hashes

Hashes for PyScaffolder-1.5.2.post2-cp37-cp37m-win_amd64.whl
Algorithm Hash digest
SHA256 0baa5bb50051764b2c531d1cb37c005f6410a98ee8ce40a894ee94fa750fabb0
MD5 7eb0bc9f723c39f580b23f22c170fafd
BLAKE2b-256 7a543f9468a49b445f98e6290d21b64cf6b074e632df0e7fac887893f75cc394

See more details on using hashes here.

File details

Details for the file PyScaffolder-1.5.2.post2-cp37-cp37m-musllinux_1_1_x86_64.whl.

File metadata

File hashes

Hashes for PyScaffolder-1.5.2.post2-cp37-cp37m-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 735d566faa80a3a2daa352ae830740bb98c3d5a2ef7eea507f141eb5e815b228
MD5 aabfec39f6810afd6c89a2b67b5ca521
BLAKE2b-256 5e1a5bd1c440fe11a6b0ee7c92bb5a82ad6bc0072169d81e4fa2f1d4e61cddb4

See more details on using hashes here.

File details

Details for the file PyScaffolder-1.5.2.post2-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for PyScaffolder-1.5.2.post2-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 665a8e2fc67bd5f4e79d4d16a3132db9222e9de3a98ee683204b1f4d448c0a19
MD5 50fdc6e42ae5f9652a7a7758f3159209
BLAKE2b-256 e3d565150a050c061d7ef673a3b2b7a17b7a6e92a4e639be5ed0fe4cf2759b09

See more details on using hashes here.

File details

Details for the file PyScaffolder-1.5.2.post2-cp37-cp37m-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for PyScaffolder-1.5.2.post2-cp37-cp37m-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 8b83e23b4279a068eb276ad1aebff47e2d68d05a5c2c867f7ddf06b8fe884002
MD5 141076d301c471b6eb7db32bfa7475a9
BLAKE2b-256 f6369098df0ae7688c5d3e5720ef76fb69b4d9f3c90ce9b71df30e83fb9eb967

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page