Skip to main content

pycork provides a fully compiled interface to the cork boolean library

Project description

https://github.com/drlukeparry/pycork/actions/workflows/pythonpublish.yml/badge.svg https://badge.fury.io/py/pycork.svg https://static.pepy.tech/personalized-badge/pycork?period=total&units=international_system&left_color=black&right_color=orange&left_text=Downloads

Pycork is a Python library offering the functionality of the Cork boolean CSG library in a compiler friendly form suitable across all platforms. The library includes the dependencies for the Multi-Precision Integer and Rationals (MPIR) 3.0 built-in used by the Cork libary. The package aims to provide a simpler route for compiling the package for individuals and in addition, generating python bindings for use across other projects. Refactoring has been authored to tidy up the existing codebase so that it can be built across multiple platforms, in particular Windows, using the CMake build-system. At this stage, no further optimisations or improvements will be made specifically to the cork library, inclusive of its algorithms.

The python bindings are simple and offer access to the core functionality offered by the Cork library to perform boolean operations on watertight meshes. Additionally, it removes the awkward step of generatig .off files that are used in the command-line interface of the Cork library. The user may pass triangular meshes (vertices, tri-faces indices) as numpy arrays to each function.

For further information, see the latest release notes.

Installation

Installation is currently supported on Windows. No special requiremnets are necessary for using pycork, except having the numpy library available. It is recommend to also install the trimesh library to provide an interface to processing meshes as input for pycork.

conda install -c numpy
pip install trimesh

Installation of pycork can then be performed using pre-built python packages using the PyPi repository.

pip install pycork

Alternatively, pycork may be compiled directly from source. Currently the prerequisites are the a compliant c++ build environment, include CMake build system. Currently the package has been tested on Windows 10, using VS2019.

git clone https://github.com/drlukeparry/pycork.git && cd ./pycork
git submodule update --init --recursive

python setup.py install

Usage

The Cork CSG library, by design, has a simple interface for is functionality. Further detailed description of the function is therefore not necessary.

import numpy as np
import trimesh

import pycork

# Note any manifold, watertight mesh can be used in conjuction with the Trimesh library
meshA = trimesh.load_mesh('meshA.off')
meshB = trimesh.load_mesh('meshB.off')

# Extra list of vertices and triangular faces from the meshes
vertsA = meshA.vertices
trisA = meshA.faces

vertsB = meshB.vertices
trisB = meshB.faces

pycork.isSolid(vertsA, trisA)
pycork.isSolid(vertsB, trisB)

#Perform the boolean opertions directly with Cork library
vertsC, trisC = pycork.union(vertsA, trisA,
                             vertsB, trisB)

vertsD, trisD = pycork.intersection(vertsA, trisA,
                                    vertsB, trisB)


meshC = trimesh.Trimesh(vertices=vertsC, faces=trisC, process=True)

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

pycork-0.1.0.tar.gz (3.4 MB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

pycork-0.1.0-cp39-cp39-win_amd64.whl (173.3 kB view details)

Uploaded CPython 3.9Windows x86-64

pycork-0.1.0-cp38-cp38-win_amd64.whl (174.0 kB view details)

Uploaded CPython 3.8Windows x86-64

pycork-0.1.0-cp37-cp37m-win_amd64.whl (174.2 kB view details)

Uploaded CPython 3.7mWindows x86-64

pycork-0.1.0-cp36-cp36m-win_amd64.whl (174.2 kB view details)

Uploaded CPython 3.6mWindows x86-64

pycork-0.1.0-cp35-cp35m-win_amd64.whl (174.1 kB view details)

Uploaded CPython 3.5mWindows x86-64

File details

Details for the file pycork-0.1.0.tar.gz.

File metadata

  • Download URL: pycork-0.1.0.tar.gz
  • Upload date:
  • Size: 3.4 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.4.2 requests/2.22.0 setuptools/45.2.0 requests-toolbelt/0.8.0 tqdm/4.30.0 CPython/3.8.10

File hashes

Hashes for pycork-0.1.0.tar.gz
Algorithm Hash digest
SHA256 05677aa5918fe657caf36318da97b04815cfdcc94f6681516c71d771f1573817
MD5 630d0abf537a26955683a518cc426e27
BLAKE2b-256 208dcc3d5a7ba1d522ba48b0207c9245a3872514fa49598a769346321c0c9289

See more details on using hashes here.

File details

Details for the file pycork-0.1.0-cp39-cp39-win_amd64.whl.

File metadata

  • Download URL: pycork-0.1.0-cp39-cp39-win_amd64.whl
  • Upload date:
  • Size: 173.3 kB
  • Tags: CPython 3.9, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.7.1 importlib_metadata/4.10.0 pkginfo/1.8.2 requests/2.27.1 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.9

File hashes

Hashes for pycork-0.1.0-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 81fac34e34c13ef9a9536507feb91abf999b13b14549d39c121076ae8cc55e1d
MD5 ad1adf8ed6bbd84f8991b8e346c1eb38
BLAKE2b-256 186f0ce3af95608d6978c3cf5bd6335d1714a2404eab16481504a92b9d096332

See more details on using hashes here.

File details

Details for the file pycork-0.1.0-cp38-cp38-win_amd64.whl.

File metadata

  • Download URL: pycork-0.1.0-cp38-cp38-win_amd64.whl
  • Upload date:
  • Size: 174.0 kB
  • Tags: CPython 3.8, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.7.1 importlib_metadata/4.10.0 pkginfo/1.8.2 requests/2.27.1 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.8.10

File hashes

Hashes for pycork-0.1.0-cp38-cp38-win_amd64.whl
Algorithm Hash digest
SHA256 279187cedcf335b2c4ecf1d619014e5f15fb95bfa2ea7c2e802265c9bdda6ddc
MD5 bb8af82553deb2abca4c9fce3e9c83be
BLAKE2b-256 c9d0ed7129e0ce0d091c7b1ad4e323fc4c4dc51ac3df62914cbf59ace53988f7

See more details on using hashes here.

File details

Details for the file pycork-0.1.0-cp37-cp37m-win_amd64.whl.

File metadata

  • Download URL: pycork-0.1.0-cp37-cp37m-win_amd64.whl
  • Upload date:
  • Size: 174.2 kB
  • Tags: CPython 3.7m, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.7.1 importlib_metadata/4.10.0 pkginfo/1.8.2 requests/2.27.1 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.7.9

File hashes

Hashes for pycork-0.1.0-cp37-cp37m-win_amd64.whl
Algorithm Hash digest
SHA256 1752534774d2c1b883449cdcf8784cb574a51559add1157e066e02b4c001618f
MD5 92ed00b85561fad5cf487348e40918c9
BLAKE2b-256 610ff325352cfdcfdecba527244f4112e102b1dbe2d0ac1caf4377aead2c4e34

See more details on using hashes here.

File details

Details for the file pycork-0.1.0-cp36-cp36m-win_amd64.whl.

File metadata

  • Download URL: pycork-0.1.0-cp36-cp36m-win_amd64.whl
  • Upload date:
  • Size: 174.2 kB
  • Tags: CPython 3.6m, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.7.1 importlib_metadata/4.8.3 pkginfo/1.8.2 requests/2.27.1 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.6.8

File hashes

Hashes for pycork-0.1.0-cp36-cp36m-win_amd64.whl
Algorithm Hash digest
SHA256 d449f456b68c9be5d49f330613839e23e33961c3a9bd1f14e0430089a63fdade
MD5 f5681db50e04d793d3197535b48d5f67
BLAKE2b-256 ea4111175981f508865f8b669c909fa072b8f7cbf8f6c729f73640569a08d982

See more details on using hashes here.

File details

Details for the file pycork-0.1.0-cp35-cp35m-win_amd64.whl.

File metadata

  • Download URL: pycork-0.1.0-cp35-cp35m-win_amd64.whl
  • Upload date:
  • Size: 174.1 kB
  • Tags: CPython 3.5m, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.15.0 pkginfo/1.8.2 requests/2.25.1 setuptools/28.8.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.5.4

File hashes

Hashes for pycork-0.1.0-cp35-cp35m-win_amd64.whl
Algorithm Hash digest
SHA256 d3f9f0c442720647d2310edd8708dc888afa700df50759c8e6d5580aededb5a2
MD5 53617fcc3cd0772f44fca55b599c43d8
BLAKE2b-256 6423f4c5cc6c247fba5477209b0979aaed22dcb58eec0998a57b5456fb2fa993

See more details on using hashes here.

Supported by

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