Skip to main content

Library for geometric robustness

Project description

codecov 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.

For example, here is a log-log plot of Manifold's performance vs. earlier OpenSCAD geometry backends:

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

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.0.tar.gz (374.9 kB view details)

Uploaded Source

Built Distributions

manifold3d-2.2.0-cp312-cp312-win_amd64.whl (799.2 kB view details)

Uploaded CPython 3.12Windows x86-64

manifold3d-2.2.0-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.0-cp312-cp312-macosx_11_0_arm64.whl (604.8 kB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

manifold3d-2.2.0-cp312-cp312-macosx_10_14_x86_64.whl (724.1 kB view details)

Uploaded CPython 3.12macOS 10.14+ x86-64

manifold3d-2.2.0-cp311-cp311-win_amd64.whl (799.9 kB view details)

Uploaded CPython 3.11Windows x86-64

manifold3d-2.2.0-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.0-cp311-cp311-macosx_11_0_arm64.whl (605.4 kB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

manifold3d-2.2.0-cp311-cp311-macosx_10_14_x86_64.whl (724.3 kB view details)

Uploaded CPython 3.11macOS 10.14+ x86-64

manifold3d-2.2.0-cp310-cp310-win_amd64.whl (800.0 kB view details)

Uploaded CPython 3.10Windows x86-64

manifold3d-2.2.0-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.0-cp310-cp310-macosx_11_0_arm64.whl (605.8 kB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

manifold3d-2.2.0-cp310-cp310-macosx_10_14_x86_64.whl (724.4 kB view details)

Uploaded CPython 3.10macOS 10.14+ x86-64

manifold3d-2.2.0-cp39-cp39-win_amd64.whl (800.7 kB view details)

Uploaded CPython 3.9Windows x86-64

manifold3d-2.2.0-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.0-cp39-cp39-macosx_11_0_arm64.whl (606.0 kB view details)

Uploaded CPython 3.9macOS 11.0+ ARM64

manifold3d-2.2.0-cp39-cp39-macosx_10_14_x86_64.whl (724.6 kB view details)

Uploaded CPython 3.9macOS 10.14+ x86-64

manifold3d-2.2.0-cp38-cp38-win_amd64.whl (821.1 kB view details)

Uploaded CPython 3.8Windows x86-64

manifold3d-2.2.0-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.0-cp38-cp38-macosx_11_0_arm64.whl (605.4 kB view details)

Uploaded CPython 3.8macOS 11.0+ ARM64

manifold3d-2.2.0-cp38-cp38-macosx_10_14_x86_64.whl (724.3 kB view details)

Uploaded CPython 3.8macOS 10.14+ x86-64

File details

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

File metadata

  • Download URL: manifold3d-2.2.0.tar.gz
  • Upload date:
  • Size: 374.9 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.0.tar.gz
Algorithm Hash digest
SHA256 90df7a1508bc55d9beb5e5b6bf266fa90abd40f124311adffc382c66ca9e6117
MD5 a7f4a481d93e8e78969efaae42eed5ab
BLAKE2b-256 6c043a29591ce6d7cc574b157244462a3a9f5ee980e8231005d37323b43b1b5c

See more details on using hashes here.

File details

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

File metadata

  • Download URL: manifold3d-2.2.0-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 799.2 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.0-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 ac465399d76c263f358acf4148bf373cf95391fc814020897c9510bc32659c09
MD5 029b0099dd9c57e2550996455a400359
BLAKE2b-256 777c758b62dcfb3bdadda55a509ce675a51b436494d1bbb73ff9ab802a4e3624

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for manifold3d-2.2.0-cp312-cp312-manylinux_2_28_x86_64.manylinux_2_27_x86_64.whl
Algorithm Hash digest
SHA256 ad26320916e06660626c9bc37e31764ceb67b44f70a1a8bf2f70fab47a72e38b
MD5 f438d9cf865414dd4bbfe2f144799191
BLAKE2b-256 c47781e5c6b148e362965649f3704cc9c455bf2c328aa773bd285ed09ed65f1b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for manifold3d-2.2.0-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 a0e06646dc75bedd43bf3d5f0d34bc3b870e1d51941a2797c0323969ca980735
MD5 53ff2ff12b92b01ade6a75fef11d04b8
BLAKE2b-256 c11571379aaf8a2e08c38ecddc953be0c70d7dbdd8b26ff83419235eec974122

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for manifold3d-2.2.0-cp312-cp312-macosx_10_14_x86_64.whl
Algorithm Hash digest
SHA256 c580459d5d3690b8efc2948b61c5c41f45ba7b5c58d47729b89af634630222bd
MD5 06ca5a64f7f7035c23e58cb6a8f9fcef
BLAKE2b-256 a6e96ee73296dd9d186e4d73c58cdbb070504b2df3171d8ebb8935ecd501b8e4

See more details on using hashes here.

File details

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

File metadata

  • Download URL: manifold3d-2.2.0-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 799.9 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.0-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 8756eb9465a5b16e92f44df76065016b58cdc0f4324794143a3a0f661c1d9a96
MD5 a4cc648d39b9addcec3d7c81947c0bf7
BLAKE2b-256 5a206cf057c7bedca12749e9790e20659145d6fbe48f2eba895d34d630c353ce

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for manifold3d-2.2.0-cp311-cp311-manylinux_2_28_x86_64.manylinux_2_27_x86_64.whl
Algorithm Hash digest
SHA256 14e15f726e72a2ddaaade8f0d59c1cecfd59ca7ac1bdfe463de9142102b6b851
MD5 0f5a2800a2ed5e366d92aee3b7ec93f7
BLAKE2b-256 4a6aa9208f3ce3b92a5d96ba3265e9b699dcf15ea0c819330350666e3e852b83

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for manifold3d-2.2.0-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 63170ad0d69f70f858bc8614c30ccb4117a4503498a47c87e6bbbf28ac56347d
MD5 eda244d4aa7e96fdec0e8d583530d5c8
BLAKE2b-256 17d6133d3d0d610f2b283d18db71b4cf60471f95037998cc87af64def1be75e1

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for manifold3d-2.2.0-cp311-cp311-macosx_10_14_x86_64.whl
Algorithm Hash digest
SHA256 de0da0749c8b1b09d698ee60cf01c8f4a1f8212a69bd89a50fb341ae7e686c25
MD5 bae68bf891a0073802c4a089d5115051
BLAKE2b-256 3d63a1e9618309e2d448bfac5695d12794b9870d748247171b041aeff05bf3d1

See more details on using hashes here.

File details

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

File metadata

  • Download URL: manifold3d-2.2.0-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 800.0 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.0-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 8b0afc2654b6e3483133f4e203f85395d2a2766dc81c825bbb86d2c617421df9
MD5 35cf9b6c593b38910ee287bb7038b599
BLAKE2b-256 9065320a292b0f81fad9abf269c1c06727a3e12e6200cdc938e30309cf7f647b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for manifold3d-2.2.0-cp310-cp310-manylinux_2_28_x86_64.manylinux_2_27_x86_64.whl
Algorithm Hash digest
SHA256 9b27c0d358e7ca8e2f09c32d4313ce657e067521f570acf76e697b98ee80322a
MD5 57a488c4c5684742f813ebc578aec320
BLAKE2b-256 43d82e728e73230502feeaa85b4053d3447a2c1c69c9fedbef3a8224fd3d3f14

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for manifold3d-2.2.0-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 671e9f77aa1f37edfdbcd4fcf1e1dbf0d1502dcbe4bcea6fe5ebc7aa536ed6fc
MD5 721d10ded220e0ab46d7684f06012d4e
BLAKE2b-256 0e8b222bf824b2e9a6986b1a9797d422d62b65821256fc171204b0cbc1b1f047

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for manifold3d-2.2.0-cp310-cp310-macosx_10_14_x86_64.whl
Algorithm Hash digest
SHA256 40c9d592ca8015513be69c56194e16d67b1bf65f9c95377ae2ad76efc51e9964
MD5 794f118b21daf2c3efc6e74893c157fb
BLAKE2b-256 2aed5086d86d6a8316d652c269d803b75e5233ea48bec3a44cfe1b27d993a6b1

See more details on using hashes here.

File details

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

File metadata

  • Download URL: manifold3d-2.2.0-cp39-cp39-win_amd64.whl
  • Upload date:
  • Size: 800.7 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.0-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 7bb2b8f6363b60568c2ae721b5ed014c969e6ae21ae2b23f8fda16ff600cb927
MD5 82d88f0a5d0cbcee583547f724bc3573
BLAKE2b-256 9b3adf16bcbfe93343cfaf08d58a0c2010c01e713ed4fe8c3493a4a344f54cbb

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for manifold3d-2.2.0-cp39-cp39-manylinux_2_28_x86_64.manylinux_2_27_x86_64.whl
Algorithm Hash digest
SHA256 3e378a3756416da8c187d3d2dcb19dc35795ad497f79c0d7af37d634c72c7ee3
MD5 2d90dd29403fca2d7236e944f7f65ffd
BLAKE2b-256 a4513252f7bf3acceee746af5e819bf64dbd0fb9d7a2ab4436ed0fe2f786c010

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for manifold3d-2.2.0-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 93143783d20b3f0cd5e1b4f5b515490ba16df6fa658d39b2ef44a0b7c7973f2e
MD5 44f39b0a98976d0eafc8d5003b735946
BLAKE2b-256 91c4e8327aa6e9b8d16e4cd5cc548e74f5a6f535c6a575d0a51ea0382a302c37

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for manifold3d-2.2.0-cp39-cp39-macosx_10_14_x86_64.whl
Algorithm Hash digest
SHA256 2e60e364b7d2e7523510c495ad8cc2d827b1ad109671dfdf5151ce496a96cbf7
MD5 8990dd52014aa143f617a5819574eae1
BLAKE2b-256 184d9fc51bd63d659206de29d8808f49b32b0bedc988bfecc82fbb7a6c028a6e

See more details on using hashes here.

File details

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

File metadata

  • Download URL: manifold3d-2.2.0-cp38-cp38-win_amd64.whl
  • Upload date:
  • Size: 821.1 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.0-cp38-cp38-win_amd64.whl
Algorithm Hash digest
SHA256 dceb38d079b944fcef43be73c1947c6df4ff4d07466d62fdd631e152fc57c148
MD5 1ef5a7d84602ba91bc8dc7c90e233b2e
BLAKE2b-256 57e0004c9d6f87ddcd98e24dc3e85681ee376bed95c81a709d835d1328983936

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for manifold3d-2.2.0-cp38-cp38-manylinux_2_28_x86_64.manylinux_2_27_x86_64.whl
Algorithm Hash digest
SHA256 c9e84034d1ed3e1668f2ecb6231d3e73052950c7150929719c369931195ff4fb
MD5 bd6f9e7536647ef7d9517696ef04d374
BLAKE2b-256 be5d790e4c16fc917a40016331b812ae0c22e779e86e5610a6f003347462d461

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for manifold3d-2.2.0-cp38-cp38-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 797d8f8646c760a7438b2e9e03036a9b425379efe353475d0c6e865d839d7efc
MD5 02c142d0e82c0226a5531fa6afb77bf7
BLAKE2b-256 c2783350b2db65a61901a37b24711f75666fbbcf10f10da36c03694d50679577

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for manifold3d-2.2.0-cp38-cp38-macosx_10_14_x86_64.whl
Algorithm Hash digest
SHA256 80da1dd61ae23ed67a56b706d148f8845d4865c1c647f22681fe4b4d2a481d71
MD5 0c9d64a26b58596fdcc857b2a3d578a1
BLAKE2b-256 bae49652426523541e9aae8bdc5ac1d5ed0a1cf2165d6c4bdcd5dc35e1e34ff3

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