Skip to main content

Library for geometric robustness

Project description

codecov PyPI version npm version twitter

Users

OpenSCAD, IFCjs, Grid.Space, and OCADml have all integrated our Manifold geometry kernel! Why? Because its reliability is guaranteed and it's 1,000 times faster than other libraries. See our usage and performance discussions for all the latest and to add your own projects & analyses.

ManifoldCAD.org

If you like OpenSCAD / JSCAD, you might also like ManifoldCAD - our own solid modelling web app. Our WASM is not multithreaded yet, but it's still quite fast and a good way to test out our Manifold library.

A metallic Menger sponge

Note for Firefox users

If you find the editor is stuck on Loading..., setting dom.workers.modules.enabled: true in your about:config, as mentioned in the discussion of the issue#328 of this repository may solve the problem.

Manifold

API Documentation | Algorithm Documentation | Blog Posts | Web Examples

Manifold is a geometry library dedicated to creating and operating on manifold triangle meshes. A manifold mesh is a mesh that represents a solid object, and so is very important in manufacturing, CAD, structural analysis, etc. Further information can be found on the wiki.

This is a modern C++ library that Github's CI verifies builds and runs on a variety of platforms. Additionally, we build bindings for JavaScript (manifold-3d on npm), Python (manifold3d), and C to make this library more portable and easy to use.

System Dependencies (note that we will automatically download the dependency if there is no such package on the system):

  • GLM: A compact header-only vector library.
  • Thrust: NVIDIA's parallel algorithms library (basically a superset of C++17 std::parallel_algorithms)
  • tbb: Intel's thread building blocks library. (only when MANIFOLD_PAR=TBB is enabled)
  • gtest: Google test library (only when test is enabled, i.e. MANIFOLD_TEST=ON)

Other dependencies:

What's here

This library is fast with guaranteed manifold output. As such you need manifold meshes as input, which this library can create using constructors inspired by the OpenSCAD API, as well as more advanced features like smoothing and signed-distance function (SDF) level sets. You can also pass in your own mesh data, but you'll get an error status if the imported mesh isn't manifold. Various automated repair tools exist online for fixing non manifold models, usually for 3D printing.

The most significant contribution here is a guaranteed-manifold mesh Boolean algorithm, which I believe is the first of its kind. If you know of another, please open a discussion - a mesh Boolean algorithm robust to edge cases has been an open problem for many years. Likewise, if the Boolean here ever fails you, please submit an issue! This Boolean forms the basis of a CAD kernel, as it allows simple shapes to be combined into more complex ones.

To aid in speed, this library makes extensive use of parallelization, generally through Nvidia's Thrust library. You can switch between the TBB, and serial C++ backends by setting a CMake flag. Not everything is so parallelizable, for instance a polygon triangulation algorithm is included which is serial. Even if compiled with parallel backend, the code will still fall back to the serial version of the algorithms if the problem size is small. The WASM build is serial-only for now, but still fast.

Note: OMP and CUDA backends are now removed

Look in the samples directory for examples of how to use this library to make interesting 3D models. You may notice that some of these examples bare a certain resemblance to my OpenSCAD designs on Thingiverse, which is no accident. Much as I love OpenSCAD, my library is dramatically faster and the code is more flexible.

Building

Only CMake, a C++ compiler, and Python are required to be installed and set up to build this library (it has been tested with GCC, LLVM, MSVC). However, a variety of optional dependencies can bring in more functionality, see below.

Build and test (Ubuntu or similar):

git clone --recurse-submodules https://github.com/elalish/manifold.git
cd manifold
mkdir build
cd build
cmake -DCMAKE_BUILD_TYPE=Release -DBUILD_SHARED_LIBS=ON .. && make
test/manifold_test

CMake flags (usage e.g. -DMANIFOLD_DEBUG=ON):

  • MANIFOLD_JSBIND=[OFF, <ON>]: Build js binding when using emscripten.
  • MANIFOLD_CBIND=[<OFF>, ON]: Build C FFI binding.
  • MANIFOLD_PYBIND=[OFF, <ON>]: Build python binding.
  • MANIFOLD_PAR=[<NONE>, TBB]: Provides multi-thread parallelization, requires libtbb-dev if TBB backend is selected.
  • MANIFOLD_EXPORT=[<OFF>, ON]: Enables GLB export of 3D models from the tests, requires libassimp-dev.
  • MANIFOLD_DEBUG=[<OFF>, ON]: Enables internal assertions and exceptions.
  • MANIFOLD_TEST=[OFF, <ON>]: Build unittests.
  • TRACY_ENABLE=[<OFF>, ON]: Enable integration with tracy profiler. See profiling section below.
  • BUILD_TEST_CGAL=[<OFF>, ON]: Builds a CGAL-based performance comparison, requires libcgal-dev.

Offline building:

  • FETCHCONTENT_SOURCE_DIR_GLM: path to glm source.
  • FETCHCONTENT_SOURCE_DIR_GOOGLETEST: path to googletest source.
  • FETCHCONTENT_SOURCE_DIR_THRUST: path to NVIDIA thrust source.

The build instructions used by our CI are in manifold.yml, which is a good source to check if something goes wrong and for instructions specific to other platforms, like Windows.

WASM

Note that we have only tested emscripten version 3.1.45. It is known that 3.1.48 has some issues compiling manifold.

To build the JS WASM library, first install NodeJS and set up emscripten:

(on Mac):

brew install nodejs
brew install emscripten

(on Linux):

sudo apt install nodejs
git clone https://github.com/emscripten-core/emsdk.git
cd emsdk
./emsdk install latest
./emsdk activate latest
source ./emsdk/emsdk_env.sh

Then build:

cd manifold
mkdir buildWASM
cd buildWASM
emcmake cmake -DCMAKE_BUILD_TYPE=Release .. && emmake make
node test/manifold_test.js

Python

The CMake script will build the python binding manifold3d automatically. To use the extension, please add $BUILD_DIR/bindings/python to your PYTHONPATH, where $BUILD_DIR is the build directory for CMake. Examples using the python binding can be found in bindings/python/examples. To see exported samples, run:

sudo apt install pkg-config libpython3-dev python3 python3-distutils python3-pip
pip install trimesh
python3 run_all.py -e

Run the following code in the interpreter for python binding documentation:

>>> import manifold3d
>>> help(manifold3d)

For more detailed documentation, please refer to the C++ API.

Contributing

Contributions are welcome! A lower barrier contribution is to simply make a PR that adds a test, especially if it repros an issue you've found. Simply name it prepended with DISABLED_, so that it passes the CI. That will be a very strong signal to me to fix your issue. However, if you know how to fix it yourself, then including the fix in your PR would be much appreciated!

Profiling

There is now basic support for the Tracy profiler for our tests. To enable tracing, compile with -DTRACY_ENABLE=on cmake option, and run the test with Tracy server running.

About the author

This library was started by Emmett Lalish. I am currently a Google employee and this is my 20% project, not an official Google project. At my day job I'm the maintainer of <model-viewer>. I was the first employee at a 3D video startup, Omnivor, and before that I worked on 3D printing at Microsoft, including 3D Builder. Originally an aerospace engineer, I started at a small DARPA contractor doing seedling projects, one of which became Sea Hunter. I earned my doctorate from the University of Washington in control theory and published some papers.

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

manifold3d-2.2.2.tar.gz (377.7 kB view details)

Uploaded Source

Built Distributions

manifold3d-2.2.2-cp312-cp312-win_amd64.whl (824.1 kB view details)

Uploaded CPython 3.12Windows x86-64

manifold3d-2.2.2-cp312-cp312-manylinux_2_28_x86_64.manylinux_2_27_x86_64.whl (1.1 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

manifold3d-2.2.2-cp312-cp312-macosx_11_0_arm64.whl (624.8 kB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

manifold3d-2.2.2-cp312-cp312-macosx_10_14_x86_64.whl (745.0 kB view details)

Uploaded CPython 3.12macOS 10.14+ x86-64

manifold3d-2.2.2-cp311-cp311-win_amd64.whl (825.0 kB view details)

Uploaded CPython 3.11Windows x86-64

manifold3d-2.2.2-cp311-cp311-manylinux_2_28_x86_64.manylinux_2_27_x86_64.whl (1.1 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

manifold3d-2.2.2-cp311-cp311-macosx_11_0_arm64.whl (625.4 kB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

manifold3d-2.2.2-cp311-cp311-macosx_10_14_x86_64.whl (744.9 kB view details)

Uploaded CPython 3.11macOS 10.14+ x86-64

manifold3d-2.2.2-cp310-cp310-win_amd64.whl (825.2 kB view details)

Uploaded CPython 3.10Windows x86-64

manifold3d-2.2.2-cp310-cp310-manylinux_2_28_x86_64.manylinux_2_27_x86_64.whl (1.1 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

manifold3d-2.2.2-cp310-cp310-macosx_11_0_arm64.whl (625.7 kB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

manifold3d-2.2.2-cp310-cp310-macosx_10_14_x86_64.whl (745.3 kB view details)

Uploaded CPython 3.10macOS 10.14+ x86-64

manifold3d-2.2.2-cp39-cp39-win_amd64.whl (825.9 kB view details)

Uploaded CPython 3.9Windows x86-64

manifold3d-2.2.2-cp39-cp39-manylinux_2_28_x86_64.manylinux_2_27_x86_64.whl (1.1 MB view details)

Uploaded CPython 3.9manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

manifold3d-2.2.2-cp39-cp39-macosx_11_0_arm64.whl (625.9 kB view details)

Uploaded CPython 3.9macOS 11.0+ ARM64

manifold3d-2.2.2-cp39-cp39-macosx_10_14_x86_64.whl (745.5 kB view details)

Uploaded CPython 3.9macOS 10.14+ x86-64

manifold3d-2.2.2-cp38-cp38-win_amd64.whl (846.3 kB view details)

Uploaded CPython 3.8Windows x86-64

manifold3d-2.2.2-cp38-cp38-manylinux_2_28_x86_64.manylinux_2_27_x86_64.whl (1.1 MB view details)

Uploaded CPython 3.8manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

manifold3d-2.2.2-cp38-cp38-macosx_11_0_arm64.whl (625.5 kB view details)

Uploaded CPython 3.8macOS 11.0+ ARM64

manifold3d-2.2.2-cp38-cp38-macosx_10_14_x86_64.whl (745.0 kB view details)

Uploaded CPython 3.8macOS 10.14+ x86-64

File details

Details for the file manifold3d-2.2.2.tar.gz.

File metadata

  • Download URL: manifold3d-2.2.2.tar.gz
  • Upload date:
  • Size: 377.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/4.0.2 CPython/3.11.6

File hashes

Hashes for manifold3d-2.2.2.tar.gz
Algorithm Hash digest
SHA256 13fbd00ed8944849a1509aa6f037bce4e68953203e9a2c805cfce780ccee938c
MD5 9bdfa6b8c3c207a160e447c4660679a0
BLAKE2b-256 b552928f0a14790572a9409884f293408b78d7d208359e9fe2220b2258e93457

See more details on using hashes here.

File details

Details for the file manifold3d-2.2.2-cp312-cp312-win_amd64.whl.

File metadata

  • Download URL: manifold3d-2.2.2-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 824.1 kB
  • Tags: CPython 3.12, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/4.0.2 CPython/3.11.6

File hashes

Hashes for manifold3d-2.2.2-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 a4e2ddc6f5351667400125ed33d73bc99ef6821e3fb5f33a25e946732158e524
MD5 203625d73cfa3044cbd8e0893e8e5faa
BLAKE2b-256 bfc344505752bb498da15d2785eeb6b47b9f8a0eaca248cd16d2e84c39e6e2fc

See more details on using hashes here.

File details

Details for the file manifold3d-2.2.2-cp312-cp312-manylinux_2_28_x86_64.manylinux_2_27_x86_64.whl.

File metadata

File hashes

Hashes for manifold3d-2.2.2-cp312-cp312-manylinux_2_28_x86_64.manylinux_2_27_x86_64.whl
Algorithm Hash digest
SHA256 aa38f115c669f02c52c1ca759296e0153e2a2c2614d37f66e449ed2e4e144691
MD5 5a2fb65203dfd31cbfe86cbd901012da
BLAKE2b-256 566efcbda02252f82d4568f2cf43babb68eca5964769a498991a2e3d3551e1a8

See more details on using hashes here.

File details

Details for the file manifold3d-2.2.2-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for manifold3d-2.2.2-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 a3a3eb56e1a3076956dac7544aada2f73cb9028d4c68ee4fc778f18e83c63d50
MD5 9bf2595fb465922f0ec77c53fa907a10
BLAKE2b-256 c5b3990fb380172b34aea655bae9b7bdc0de15d4b4e2f151bd4d6174723c79ca

See more details on using hashes here.

File details

Details for the file manifold3d-2.2.2-cp312-cp312-macosx_10_14_x86_64.whl.

File metadata

File hashes

Hashes for manifold3d-2.2.2-cp312-cp312-macosx_10_14_x86_64.whl
Algorithm Hash digest
SHA256 2f1973659ef9b0037c2543bef9645ad5b00b2e41ac68db433dce49c77f146a23
MD5 22d259f338286d234fd16052ffe44c06
BLAKE2b-256 d47d3923f4c1bc5bf70d5a683dcdec46e49febd51dbdd16f332e5790f57fb96c

See more details on using hashes here.

File details

Details for the file manifold3d-2.2.2-cp311-cp311-win_amd64.whl.

File metadata

  • Download URL: manifold3d-2.2.2-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 825.0 kB
  • Tags: CPython 3.11, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/4.0.2 CPython/3.11.6

File hashes

Hashes for manifold3d-2.2.2-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 48bea6edb879c99112181faaffc7ea8b3a1e7dcfd9211d9d5f8e9bd75baa5893
MD5 93925f87063f608240c10b3fa2e1567c
BLAKE2b-256 2a02375baf535a5ba0b26fdee4b9b2994cf82e2f0e54b428bf898fc4a147b482

See more details on using hashes here.

File details

Details for the file manifold3d-2.2.2-cp311-cp311-manylinux_2_28_x86_64.manylinux_2_27_x86_64.whl.

File metadata

File hashes

Hashes for manifold3d-2.2.2-cp311-cp311-manylinux_2_28_x86_64.manylinux_2_27_x86_64.whl
Algorithm Hash digest
SHA256 1698d26c9883f6d5131aea6336fd8a663b85bad2282c54a251deeafeb5774274
MD5 73455e1c9049bad65d0de2b2fcb40319
BLAKE2b-256 ce20ee639666eab8dfbbf416358c53be4797b43dca64ab1ab33a088192c2a81c

See more details on using hashes here.

File details

Details for the file manifold3d-2.2.2-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for manifold3d-2.2.2-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 2dd9f354c4ae88f3082eaf476610c5eda27e5054ec2a96b28a7eb47d20adee2a
MD5 22a3300217e7864c5133d89e95664810
BLAKE2b-256 8f42c23cf52b4692b2e95541f9c1372df457c971b6aa9bddfa9ed20d7e014783

See more details on using hashes here.

File details

Details for the file manifold3d-2.2.2-cp311-cp311-macosx_10_14_x86_64.whl.

File metadata

File hashes

Hashes for manifold3d-2.2.2-cp311-cp311-macosx_10_14_x86_64.whl
Algorithm Hash digest
SHA256 785af42b3fef64b7b003da76a2289cfc83822044f3afbb503e61d217aaf941fe
MD5 cebe6f0483689ffd643185dd88828498
BLAKE2b-256 4aba029613411fb16c3b20e0d0df7fa75d26f0df069f1a8f1e67203533baca62

See more details on using hashes here.

File details

Details for the file manifold3d-2.2.2-cp310-cp310-win_amd64.whl.

File metadata

  • Download URL: manifold3d-2.2.2-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 825.2 kB
  • Tags: CPython 3.10, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/4.0.2 CPython/3.11.6

File hashes

Hashes for manifold3d-2.2.2-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 2e11194720f217faa73381f3dabb76065632ed3e6b5ca23ab9fb0823b5ec950c
MD5 90b2c5a46cc7040ee471f8cdfe8a2f9d
BLAKE2b-256 587b285523ecd5778490441b88f5d2658deb9403d0c8cf6ade0c6b59af8d8097

See more details on using hashes here.

File details

Details for the file manifold3d-2.2.2-cp310-cp310-manylinux_2_28_x86_64.manylinux_2_27_x86_64.whl.

File metadata

File hashes

Hashes for manifold3d-2.2.2-cp310-cp310-manylinux_2_28_x86_64.manylinux_2_27_x86_64.whl
Algorithm Hash digest
SHA256 f82707134c0321bad5b1587641e08b9e9912c56c1756cd1f49db28af0f91d6ee
MD5 65140a1736293b8c966e98e9596d8439
BLAKE2b-256 8cbf800b776d2329077986166127b9245a34d68f507020b7ace63dc1647f5e7c

See more details on using hashes here.

File details

Details for the file manifold3d-2.2.2-cp310-cp310-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for manifold3d-2.2.2-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 7d9a54cbe3a124676882ccfe240ee9fcf4ef20905df679613276c28ec044a7ed
MD5 36160acbdf4d79a83a4ad9c49b5f5fe6
BLAKE2b-256 2e193867016ed2f92edf01e26dc572942113b224939a32726377f1df5d4436e6

See more details on using hashes here.

File details

Details for the file manifold3d-2.2.2-cp310-cp310-macosx_10_14_x86_64.whl.

File metadata

File hashes

Hashes for manifold3d-2.2.2-cp310-cp310-macosx_10_14_x86_64.whl
Algorithm Hash digest
SHA256 cc4d6c3380557031f46d8fa92071025965aeaba5f858bf935799937821a6d302
MD5 a3227d8eb975e3e2f62cde32fb807ea5
BLAKE2b-256 601a95dfd2d33c5b623ba44bcce18e30ac1ffbdd4d2088f766554166f97d51f0

See more details on using hashes here.

File details

Details for the file manifold3d-2.2.2-cp39-cp39-win_amd64.whl.

File metadata

  • Download URL: manifold3d-2.2.2-cp39-cp39-win_amd64.whl
  • Upload date:
  • Size: 825.9 kB
  • Tags: CPython 3.9, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/4.0.2 CPython/3.11.6

File hashes

Hashes for manifold3d-2.2.2-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 531e41340586c3218311b790b66694d1f488b03057fc66641e7d36bb7e3c9fae
MD5 f64292dae27ec8ea3b713f647b34f788
BLAKE2b-256 67fad2568c9e658a6c6e3619045898b9f2673388643644dcec08d4ff04cc6c79

See more details on using hashes here.

File details

Details for the file manifold3d-2.2.2-cp39-cp39-manylinux_2_28_x86_64.manylinux_2_27_x86_64.whl.

File metadata

File hashes

Hashes for manifold3d-2.2.2-cp39-cp39-manylinux_2_28_x86_64.manylinux_2_27_x86_64.whl
Algorithm Hash digest
SHA256 59fddb53bf05f89da40d7434a7c9d4b3c028f10f08155d987b218d3ad5512613
MD5 5377c73ec84868bc32fec49123a806a9
BLAKE2b-256 4fcf61fc38f6a74076b8b79c63138f1e92237944969387855212212147a8b4b0

See more details on using hashes here.

File details

Details for the file manifold3d-2.2.2-cp39-cp39-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for manifold3d-2.2.2-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 1fce01e06f9154c56527f19c56ab68b3a0c2f24de9ae4d2a65f49c89592cbdc7
MD5 7736ee7eeb9fa1290e4cd2cc08519d30
BLAKE2b-256 01b5fbebef2d3ea35c2ca5e0e07130cb75396eb1f519970e73844f9beea665cf

See more details on using hashes here.

File details

Details for the file manifold3d-2.2.2-cp39-cp39-macosx_10_14_x86_64.whl.

File metadata

File hashes

Hashes for manifold3d-2.2.2-cp39-cp39-macosx_10_14_x86_64.whl
Algorithm Hash digest
SHA256 35ffd609bc7de718c276ab7b7da860d7cb18e3cbdaf3365c6a643b7acb036b12
MD5 12288725b8c4ee70a0a998c0bc3bab47
BLAKE2b-256 68240d95967c20e7f303846a8cfff6764c9fa5d233bcf89f301a283c5e716aa4

See more details on using hashes here.

File details

Details for the file manifold3d-2.2.2-cp38-cp38-win_amd64.whl.

File metadata

  • Download URL: manifold3d-2.2.2-cp38-cp38-win_amd64.whl
  • Upload date:
  • Size: 846.3 kB
  • Tags: CPython 3.8, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/4.0.2 CPython/3.11.6

File hashes

Hashes for manifold3d-2.2.2-cp38-cp38-win_amd64.whl
Algorithm Hash digest
SHA256 02db8d8f55286c0d54f0e6a62fb9e09c80a721bc8d653070c7be5185bd2bbd47
MD5 e16b992a6d9352f71ef128192bf4f8ce
BLAKE2b-256 e2829d64c96d2f7c28bba10bf67c765d242f15cfca1d488776d0312c136f5ac8

See more details on using hashes here.

File details

Details for the file manifold3d-2.2.2-cp38-cp38-manylinux_2_28_x86_64.manylinux_2_27_x86_64.whl.

File metadata

File hashes

Hashes for manifold3d-2.2.2-cp38-cp38-manylinux_2_28_x86_64.manylinux_2_27_x86_64.whl
Algorithm Hash digest
SHA256 06aee9202484c5e9a89687d6fb140ece36544dbd48b1f6814343b9e4a3ccbbbf
MD5 98897114ced81d6f95e5ba4da1a3630d
BLAKE2b-256 42cdb61c75ffa12d565dd75b292974b0e90551879f65733ab26b4b2e66af54c8

See more details on using hashes here.

File details

Details for the file manifold3d-2.2.2-cp38-cp38-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for manifold3d-2.2.2-cp38-cp38-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 be36a12dfab79df1c5395cfbd2f88937ce2bf5ab9b722654d80ce13bb878f0fd
MD5 0b29e0575745738a3d4dafba928c33e1
BLAKE2b-256 ea032865aa4ebbd49b82eb1f7cb66f5eae17664b9fabd71699b248b14959060b

See more details on using hashes here.

File details

Details for the file manifold3d-2.2.2-cp38-cp38-macosx_10_14_x86_64.whl.

File metadata

File hashes

Hashes for manifold3d-2.2.2-cp38-cp38-macosx_10_14_x86_64.whl
Algorithm Hash digest
SHA256 2236991ab0391a065fbace6993df55834b8ec8922b4e098d93b13788d5288561
MD5 bdb74e27381d9947cd1f82d0c8fc7dbd
BLAKE2b-256 0c5b9c37a82bbc1bcdf31e7804cc87bc574b5503930f82eef657f5b62f9cae06

See more details on using hashes here.

Supported by

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