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.

Manifold Frontend Sandboxes

ManifoldCAD.org

If you like OpenSCAD / JSCAD, you might also like ManifoldCAD - our own solid modelling web app where you script in JS/TS. This uses our npm package, manifold-3d, built via WASM. It's not quite as fast as our raw C++, but it's hard to beat for interoperability.

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 issue#328 may solve the problem.

Python Colab Example

If you prefer Python to JS/TS, make your own copy of the example notebook above. It demonstrates interop between our manifold3d PyPI library and the popular trimesh library, including showing the interactive model right in the notebook and saving 3D model output.

A metallic Menger sponge

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

Java / Clojure

Unofficial java bindings are currently maintained in a fork.

There is also a Clojure library.

Windows Shenanigans

Windows users should build with -DBUILD_SHARED_LIBS=OFF, as enabling shared libraries in general makes things very complicated.

The DLL file for manifoldc (C FFI bindings) when built with msvc is in ${CMAKE_BINARY_DIR}/bin/${BUILD_TYPE}/manifoldc.dll. For example, for the following command, the path relative to the project root directory is build/bin/Release/manifoldc.dll.

cmake . -DCMAKE_BUILD_TYPE=Release -DBUILD_SHARED_LIBS=OFF -DMANIFOLD_DEBUG=ON -DMANIFOLD_PAR=${{matrix.parallel_backend}} -A x64 -B build

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!

Formatting

There is a formatting script format.sh that automatically formats everything. It requires clang-format 11 and black formatter for python.

If you have clang-format installed but without clang-11, you can specify the clang-format executable by setting the CLANG_FORMAT environment variable.

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. To enable memory profiling in addition to tracing, compile with -DTRACY_MEMORY_USAGE=ON in addition to -DTRACY_ENABLE=ON.

Fuzzing Support

We use https://github.com/google/fuzztest for fuzzing the triangulator.

To enable fuzzing, make sure that you are using clang compiler (-DCMAKE_CXX_COMPILER=clang -DCMAKE_C_COMPILER=clang), running Linux, and enable fuzzing support by setting -DMANIFOLD_FUZZ=ON.

To run the fuzzer and minimize testcase, do

../minimizer.sh ./test/polygon_fuzz --fuzz=PolygonFuzz.TriangulationNoCrash

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

Uploaded Source

Built Distributions

manifold3d-2.5.0-cp312-cp312-win_amd64.whl (946.5 kB view details)

Uploaded CPython 3.12Windows x86-64

manifold3d-2.5.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (1.2 MB view details)

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

manifold3d-2.5.0-cp312-cp312-macosx_11_0_arm64.whl (707.6 kB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

manifold3d-2.5.0-cp312-cp312-macosx_10_14_x86_64.whl (810.4 kB view details)

Uploaded CPython 3.12macOS 10.14+ x86-64

manifold3d-2.5.0-cp311-cp311-win_amd64.whl (946.8 kB view details)

Uploaded CPython 3.11Windows x86-64

manifold3d-2.5.0-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (1.2 MB view details)

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

manifold3d-2.5.0-cp311-cp311-macosx_11_0_arm64.whl (708.2 kB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

manifold3d-2.5.0-cp311-cp311-macosx_10_14_x86_64.whl (810.6 kB view details)

Uploaded CPython 3.11macOS 10.14+ x86-64

manifold3d-2.5.0-cp310-cp310-win_amd64.whl (947.0 kB view details)

Uploaded CPython 3.10Windows x86-64

manifold3d-2.5.0-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (1.2 MB view details)

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

manifold3d-2.5.0-cp310-cp310-macosx_11_0_arm64.whl (708.4 kB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

manifold3d-2.5.0-cp310-cp310-macosx_10_14_x86_64.whl (810.8 kB view details)

Uploaded CPython 3.10macOS 10.14+ x86-64

manifold3d-2.5.0-cp39-cp39-win_amd64.whl (947.6 kB view details)

Uploaded CPython 3.9Windows x86-64

manifold3d-2.5.0-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (1.2 MB view details)

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

manifold3d-2.5.0-cp39-cp39-macosx_11_0_arm64.whl (708.9 kB view details)

Uploaded CPython 3.9macOS 11.0+ ARM64

manifold3d-2.5.0-cp39-cp39-macosx_10_14_x86_64.whl (810.9 kB view details)

Uploaded CPython 3.9macOS 10.14+ x86-64

manifold3d-2.5.0-cp38-cp38-win_amd64.whl (972.5 kB view details)

Uploaded CPython 3.8Windows x86-64

manifold3d-2.5.0-cp38-cp38-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (1.2 MB view details)

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

manifold3d-2.5.0-cp38-cp38-macosx_11_0_arm64.whl (708.4 kB view details)

Uploaded CPython 3.8macOS 11.0+ ARM64

manifold3d-2.5.0-cp38-cp38-macosx_10_14_x86_64.whl (832.0 kB view details)

Uploaded CPython 3.8macOS 10.14+ x86-64

File details

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

File metadata

  • Download URL: manifold3d-2.5.0.tar.gz
  • Upload date:
  • Size: 417.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/5.0.0 CPython/3.12.4

File hashes

Hashes for manifold3d-2.5.0.tar.gz
Algorithm Hash digest
SHA256 e7224bae3136dc3c9abad6f1725543200fd7918e80c5b3af441c83d30ef461d0
MD5 9b2dadbbcd918fc17b7c26e2283f92bb
BLAKE2b-256 b7c36234a3694c7c0ef671b4b00d30be6096689fc42f39a462687cc395e85bb7

See more details on using hashes here.

File details

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

File metadata

  • Download URL: manifold3d-2.5.0-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 946.5 kB
  • Tags: CPython 3.12, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/5.0.0 CPython/3.12.4

File hashes

Hashes for manifold3d-2.5.0-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 a61883eaf88adab81c8809066cb57d8a00d362ec7e8a8ad47f2444e6d36018af
MD5 464a404b872cc0a7263e90c5a043ee75
BLAKE2b-256 96074417e67e62a6c9394c2192b3e36498a5e837c0d828acb55afa190b909679

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for manifold3d-2.5.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 e31a3e8e9603a58eab235e022e9a0bb110aaf5884de13a0c0faabc35a6c893dc
MD5 80d4c06428822983be28c3174ce72f9e
BLAKE2b-256 9b02c211be6c4978f851c4cf9f11331a6d3ef2a052bc101968ad6a2fd24f4f36

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for manifold3d-2.5.0-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 2e91e2b7d3a946bb5b13471c0da07db358c299e9c8b25f96d3955e7fd9cc8df2
MD5 059977d6b05a2297806ba492712b88dd
BLAKE2b-256 848aefb5647a951f56625a7a768e16059afc23e751f8684dcc3ebca6bcde8ceb

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for manifold3d-2.5.0-cp312-cp312-macosx_10_14_x86_64.whl
Algorithm Hash digest
SHA256 1032f2f5f765f7b5cf774104be88a23ccf48e0d28a89896e1dbdb539bb909eb4
MD5 7d0ef611e20248b6fdcdae29d0e1b0ab
BLAKE2b-256 ba4484703a48782e0ff64fce8882e68ed61e863b3774d626a149d9958729037c

See more details on using hashes here.

File details

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

File metadata

  • Download URL: manifold3d-2.5.0-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 946.8 kB
  • Tags: CPython 3.11, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/5.0.0 CPython/3.12.4

File hashes

Hashes for manifold3d-2.5.0-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 dd6809b2f43cafd61d0c626325d57cfc2e739f2569495c3afe8803c5181c0372
MD5 ba09fcff928eab814806e3c60591754c
BLAKE2b-256 eacb9bf2d0e73d44845b88bd863e8e6e6be2b5858a3d5453fe111799df60109d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for manifold3d-2.5.0-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 589e416bd218f666c8bb0b113ed1302bd269f25a275e106baf19fa023f1bf518
MD5 a3e740f888dc597705b982b0f346de13
BLAKE2b-256 7209d774cc434b120b21507683f4964e8a9b0bea7e72746fb64b887271af5e30

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for manifold3d-2.5.0-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 bc4b5cad0d8a32ea2fbdff3646688378eb74b878d974ef74ecdc9c08aee8affa
MD5 3a2d4456d91ec826a80aff767fe8270e
BLAKE2b-256 12b939279fcd76c62b431e686981ed6c9ca36a662be01128195b8696ff998af0

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for manifold3d-2.5.0-cp311-cp311-macosx_10_14_x86_64.whl
Algorithm Hash digest
SHA256 98ee10cf5fff56b894451f8cd3086d763b5bc9732399782e4ad950d823fe5346
MD5 1b92708ec370f8d12e7f226e7e4af442
BLAKE2b-256 3b0de153a0dc288ab7fb2415f15765e2161ba2ade3aab4880a89c4eea7a02e92

See more details on using hashes here.

File details

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

File metadata

  • Download URL: manifold3d-2.5.0-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 947.0 kB
  • Tags: CPython 3.10, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/5.0.0 CPython/3.12.4

File hashes

Hashes for manifold3d-2.5.0-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 bf4f8e7b10bbef4c27b6b09c9b266ba92c9f8ac4f0e6c885f109b4dde34d2c20
MD5 c2dd20bba6a6e4780cff34f6dd1b2da8
BLAKE2b-256 613852d41cb8d8c97d686630e7ec31ae05213cdc4e7abfdb5cb0cf4087e83f5c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for manifold3d-2.5.0-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 39ebfede769a236164618b9e6197ccdc9e24a2f3bcbf0024e094d7b11d3e62aa
MD5 75a058e371cebd6b08ccaa7c9c77ccce
BLAKE2b-256 3b1a81928c2b6135a3a30ba404fa3300d2bf671beb0fa3dfa94b78c50c04e30a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for manifold3d-2.5.0-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 b6c399b020e0e01d0b6098be037a30df0673a98ed86669f90b403d11ac9a6630
MD5 db97e5600ded101376adb77a0fba20ee
BLAKE2b-256 50c683934a7f8b5a75c1db90c7ef513f2a68863be1a1145c2ca9b07319c2cc45

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for manifold3d-2.5.0-cp310-cp310-macosx_10_14_x86_64.whl
Algorithm Hash digest
SHA256 e19dceeb0914ae6697a409c3af5963f0dd5bc06f275b22e6affdd78320a29753
MD5 9ae37d815b6380ae063f24e14d7fb3f6
BLAKE2b-256 5ca8799b3b9e0c448c8a82f162f467aa3e88031d99b292ea7be0061b47220ac4

See more details on using hashes here.

File details

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

File metadata

  • Download URL: manifold3d-2.5.0-cp39-cp39-win_amd64.whl
  • Upload date:
  • Size: 947.6 kB
  • Tags: CPython 3.9, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/5.0.0 CPython/3.12.4

File hashes

Hashes for manifold3d-2.5.0-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 c6569f0ab765fd288d05f7387032aa3e34d68e7f980a3ac02703c4d9d1c4a877
MD5 69a3f941d2d2bb7d7f166bd57a7eba36
BLAKE2b-256 042de3cda2870206d76be6150104dc00465851cea96efa3eb530aef3f5e719b6

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for manifold3d-2.5.0-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 dd80e82bbf21d9e6df37f5bf2028d065db3f3a62341ea55993f267b453bfb8c0
MD5 99233e8849af3842327c393363500f73
BLAKE2b-256 02af33d16362bdf8666506d9b9b47dfd5142cb2de796227acbd95a0b692cb236

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for manifold3d-2.5.0-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 5e26d7c9624b2e945059e4086a64ac0868ef18be83a34695068378fc43a0906a
MD5 e84b97255a919e0bf1b8b1977e87af6b
BLAKE2b-256 8116c0892dfb9cdc06f2d81796ecc529d8b92c1a925d0132f57537d1d0f5de47

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for manifold3d-2.5.0-cp39-cp39-macosx_10_14_x86_64.whl
Algorithm Hash digest
SHA256 f4064bf8d38a1214b7293c857604115cf85315766ffafceb62136f918198408e
MD5 da0505fc35bcc6dc79a8e30c5037628e
BLAKE2b-256 baada85163fe75600f3caf5e2994a361f511e6d1deadb34e2eeeac9c7bfb6719

See more details on using hashes here.

File details

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

File metadata

  • Download URL: manifold3d-2.5.0-cp38-cp38-win_amd64.whl
  • Upload date:
  • Size: 972.5 kB
  • Tags: CPython 3.8, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/5.0.0 CPython/3.12.4

File hashes

Hashes for manifold3d-2.5.0-cp38-cp38-win_amd64.whl
Algorithm Hash digest
SHA256 d622c7355d2d43bc6ce193afad6af7bda17de32d3012c127c8d073c921ad2cf5
MD5 50c189b07dc57edfb49a56705a044c41
BLAKE2b-256 ed5525fb45a82ddefd46301f2e2a4431226f6f6ec472e7e8c621a26d5a829fa2

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for manifold3d-2.5.0-cp38-cp38-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 9ab322b486ca940c0d66ef1749c01a012b31052960d680b555f5b6483fc2f181
MD5 7f9ad42ffe340b00e26da48c8d7c4dc7
BLAKE2b-256 7ba58b8bfa72ea6bff14ab1856329245a0bd5767405857934278bcc93c4eb6b4

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for manifold3d-2.5.0-cp38-cp38-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 a90f427aa02210862f5daf785f67c3a37f1bb3add7ba672fbb2bf6388b09fbe8
MD5 f5f046848fb6f13b3a589474f8dc3232
BLAKE2b-256 1e468eb2010c7b4c5039eff0fc7194c8b8461c60c2bbeafe3d52b057805948f6

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for manifold3d-2.5.0-cp38-cp38-macosx_10_14_x86_64.whl
Algorithm Hash digest
SHA256 ad88d3c62e7672771b15fb6c10e79ac5ac987418283cffa10b7465444cf3060a
MD5 b4851595205d0952f310df8e0c8f9f94
BLAKE2b-256 bfff6a8503d69a513906d90d29c56865ae00ed9666f3321014ea95866a388d27

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