Skip to main content

A set of reusable functions to integrate Incremental Potential Contact (IPC) into a simulation.

Project description

IPC Toolkit

PyPI PyPI - Downloads GitHub Repo stars codecov License

Description

IPC Toolkit is a set of reusable functions to integrate Incremental Potential Contact (IPC) into a simulation.

Features

  • IPC barrier function and its derivatives and adaptive barrier stiffness algorithm
  • Broad-phase and narrow-phase continuous collision detection (CCD)
  • Distance computation and derivatives between edges in 2D and triangles in 3D
  • Distance barrier potential and its derivatives
  • Smooth and lagged dissipative friction potential and its derivatives

Limitations

This is not a full simulation library. As such it does not include any physics or solvers. For a full simulation implementation, we recommend PolyFEM (a finite element library) or Rigid IPC (rigid-body dynamics) both of which utilize the IPC Toolkit.

Installation

To install the latest release, you can use pip:

pip install ipctk

If you wish to install the current development code, you can compile the library from scratch. Either clone the repo manually or use git+ with pip:

pip install git+https://github.com/ipc-sim/ipc-toolkit

Help/Documentation

  • A tutorial on how to use the toolkit can be found here.
  • A function reference can be found here.

Contributing

This project is open to contributors! Contributions can come in the form of feature requests, bug fixes, documentation, tutorials, and the like. We highly recommend filing an Issue first before submitting a Pull Request.

Simply fork this repository and make a Pull Request! We would appreciate:

  • Implementation of new features
  • Bug Reports
  • Documentation
  • Testing

Citation

If you use the IPC Toolkit in your project, please consider citing our work:

@software{ipc_toolkit,
  author = {Zachary Ferguson and others},
  title = {{IPC Toolkit}},
  url = {https://github.com/ipc-sim/ipc-toolkit},
  year = {2020},
}

Additionally, you can cite the original IPC paper:

@article{Li2020IPC,
    author = {Minchen Li and Zachary Ferguson and Teseo Schneider and Timothy Langlois and
        Denis Zorin and Daniele Panozzo and Chenfanfu Jiang and Danny M. Kaufman},
    title = {Incremental Potential Contact: Intersection- and Inversion-free Large Deformation Dynamics},
    journal = {ACM Trans. Graph. (SIGGRAPH)},
    year = {2020},
    volume = {39},
    number = {4},
    articleno = {49}
}

License

MIT License © 2020, the IPC-Sim organization (See LICENSE.txt for details)

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

ipctk-1.2.0.tar.gz (164.7 kB view details)

Uploaded Source

Built Distributions

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

ipctk-1.2.0-cp312-cp312-win_amd64.whl (1.2 MB view details)

Uploaded CPython 3.12Windows x86-64

ipctk-1.2.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.7 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ x86-64

ipctk-1.2.0-cp312-cp312-macosx_11_0_arm64.whl (1.3 MB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

ipctk-1.2.0-cp312-cp312-macosx_10_14_x86_64.whl (1.5 MB view details)

Uploaded CPython 3.12macOS 10.14+ x86-64

ipctk-1.2.0-cp311-cp311-win_amd64.whl (1.2 MB view details)

Uploaded CPython 3.11Windows x86-64

ipctk-1.2.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.7 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ x86-64

ipctk-1.2.0-cp311-cp311-macosx_11_0_arm64.whl (1.3 MB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

ipctk-1.2.0-cp311-cp311-macosx_10_14_x86_64.whl (1.5 MB view details)

Uploaded CPython 3.11macOS 10.14+ x86-64

ipctk-1.2.0-cp310-cp310-win_amd64.whl (1.2 MB view details)

Uploaded CPython 3.10Windows x86-64

ipctk-1.2.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.7 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ x86-64

ipctk-1.2.0-cp310-cp310-macosx_11_0_arm64.whl (1.3 MB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

ipctk-1.2.0-cp310-cp310-macosx_10_14_x86_64.whl (1.5 MB view details)

Uploaded CPython 3.10macOS 10.14+ x86-64

ipctk-1.2.0-cp39-cp39-win_amd64.whl (1.2 MB view details)

Uploaded CPython 3.9Windows x86-64

ipctk-1.2.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.7 MB view details)

Uploaded CPython 3.9manylinux: glibc 2.17+ x86-64

ipctk-1.2.0-cp39-cp39-macosx_11_0_arm64.whl (1.3 MB view details)

Uploaded CPython 3.9macOS 11.0+ ARM64

ipctk-1.2.0-cp39-cp39-macosx_10_14_x86_64.whl (1.5 MB view details)

Uploaded CPython 3.9macOS 10.14+ x86-64

ipctk-1.2.0-cp38-cp38-win_amd64.whl (1.2 MB view details)

Uploaded CPython 3.8Windows x86-64

ipctk-1.2.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.7 MB view details)

Uploaded CPython 3.8manylinux: glibc 2.17+ x86-64

ipctk-1.2.0-cp38-cp38-macosx_11_0_arm64.whl (1.3 MB view details)

Uploaded CPython 3.8macOS 11.0+ ARM64

ipctk-1.2.0-cp38-cp38-macosx_10_14_x86_64.whl (1.5 MB view details)

Uploaded CPython 3.8macOS 10.14+ x86-64

File details

Details for the file ipctk-1.2.0.tar.gz.

File metadata

  • Download URL: ipctk-1.2.0.tar.gz
  • Upload date:
  • Size: 164.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.11.7

File hashes

Hashes for ipctk-1.2.0.tar.gz
Algorithm Hash digest
SHA256 c1759a234153b730a7819165f0f9d85502bf41b088ff87b4ebba5dbebd546435
MD5 aa8f4c5b05499f293629be8e086ca182
BLAKE2b-256 edc4ad08544bef004ef70c5545a5cee6087975f493bf5b714a4d81e7b2f63d16

See more details on using hashes here.

File details

Details for the file ipctk-1.2.0-cp312-cp312-win_amd64.whl.

File metadata

  • Download URL: ipctk-1.2.0-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 1.2 MB
  • Tags: CPython 3.12, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.11.7

File hashes

Hashes for ipctk-1.2.0-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 cae9b6a0f66ae2b8ae329ccedd422b35061d511c925c516c69be1e3eaa3a2511
MD5 f357af0a48c66eb0e76c7fda3753d2f4
BLAKE2b-256 fefbb545c300dc9ebc8307d8f886fedf9281156874ce6dce8c1fceaa92ab4540

See more details on using hashes here.

File details

Details for the file ipctk-1.2.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for ipctk-1.2.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 27ce525b4d198212bafa979b9229c4c9a99e2f48b6960a9bde60509af2895339
MD5 41e7bc18f519725b4216cd4b24742237
BLAKE2b-256 6334c54dcb89df82e097082749494509a641d499a9591bce3c97f829a28c1805

See more details on using hashes here.

File details

Details for the file ipctk-1.2.0-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for ipctk-1.2.0-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 4d180e459deb836fc5c55a182af1430d1a86b21a4287f5297ecd4d23a0f3149b
MD5 009886a36a3780ef6ea1d4e301b47e08
BLAKE2b-256 8f36fd3f96ebe4efe0d5a234fe2fc84bbfc037c0906e539ea7a8b83d32e03eea

See more details on using hashes here.

File details

Details for the file ipctk-1.2.0-cp312-cp312-macosx_10_14_x86_64.whl.

File metadata

File hashes

Hashes for ipctk-1.2.0-cp312-cp312-macosx_10_14_x86_64.whl
Algorithm Hash digest
SHA256 0a5beaa94a41e41c1fb14a140f54743d2abecb1679e97a9226b7aa3ca196abdc
MD5 3571b879d4d1f9b9c36b822b7d4ace70
BLAKE2b-256 83869149f53fa948da5d005b3ab9eb042b4801df23e71c2090a31d0093a71255

See more details on using hashes here.

File details

Details for the file ipctk-1.2.0-cp311-cp311-win_amd64.whl.

File metadata

  • Download URL: ipctk-1.2.0-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 1.2 MB
  • Tags: CPython 3.11, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.11.7

File hashes

Hashes for ipctk-1.2.0-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 54d301dc05bfb7d2c774504c188683413c0696ea63449675c61d0b06fcfda157
MD5 f82f8d4940c78e9c4aa9f14930345e20
BLAKE2b-256 2e680d91481b434c768b65487a96c4e34ba855a16fc9fdffd14deac5fa1ff710

See more details on using hashes here.

File details

Details for the file ipctk-1.2.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for ipctk-1.2.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 ba205f5e85a0351ba04914151570a67dfb9fac1fbe63bbe4340303ebf93828b5
MD5 69bdc1723a02f66c2d1ddf95b0318299
BLAKE2b-256 ab80da115aa4439dbe374142b313bd1616bec861e40853e098d7e564b1c24b0f

See more details on using hashes here.

File details

Details for the file ipctk-1.2.0-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for ipctk-1.2.0-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 487682b0b4b0f8ba19a3ad178b4f64d6df20408077953c88dc9aba433e2a4074
MD5 5b753430fc5f73cec5a7529ebcd3e5d9
BLAKE2b-256 37a7f0965ba548bf384f2e874cf0b922e2327913b91a5e3332c111749a7795e9

See more details on using hashes here.

File details

Details for the file ipctk-1.2.0-cp311-cp311-macosx_10_14_x86_64.whl.

File metadata

File hashes

Hashes for ipctk-1.2.0-cp311-cp311-macosx_10_14_x86_64.whl
Algorithm Hash digest
SHA256 b45f294be305681436aee8b2eb591dd357576eb657815c80b932eea54dd40156
MD5 1e786c37afbdf9484f6d0f16e1e8d6b4
BLAKE2b-256 3081499d406d4f68e178b6e5cfe1dc53cf9e0f96e8e227dac966584c9f11b78a

See more details on using hashes here.

File details

Details for the file ipctk-1.2.0-cp310-cp310-win_amd64.whl.

File metadata

  • Download URL: ipctk-1.2.0-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 1.2 MB
  • Tags: CPython 3.10, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.11.7

File hashes

Hashes for ipctk-1.2.0-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 47411cc72e24708d16745982541e596b6542f535cd131d6ac0b608125be74014
MD5 81713465b995cb416ab88c2abb549b6b
BLAKE2b-256 324ed0b63d7ca26d0c3c5a844cce7a645e3f33cca4ceabbadd0b823c7e8aae26

See more details on using hashes here.

File details

Details for the file ipctk-1.2.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for ipctk-1.2.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 fb33898f34d73fdb48b1d67d8ba3b3b67d40f59d4b95113188cbff24887cffe6
MD5 b1383b8a4f2d217bbace9b86dc074a87
BLAKE2b-256 b2cf83c83b2845465297c57998836d6ff100ae2cb99dbbbe6d811f8094932b9c

See more details on using hashes here.

File details

Details for the file ipctk-1.2.0-cp310-cp310-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for ipctk-1.2.0-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 329749227b8d316d1fd2bf503283e4444ffecd69c88083266a1b13079b119127
MD5 3c5306033c2c6293fd17e13434553965
BLAKE2b-256 d0c02e082bfbfbf97fafee36494b8e378d93d85c1dab9d317c2bce85d610f5a4

See more details on using hashes here.

File details

Details for the file ipctk-1.2.0-cp310-cp310-macosx_10_14_x86_64.whl.

File metadata

File hashes

Hashes for ipctk-1.2.0-cp310-cp310-macosx_10_14_x86_64.whl
Algorithm Hash digest
SHA256 a3879d48c04789f95ce645030ddd104259cbc3f27fff980ae9e9180f85f35091
MD5 ca22b3785dbe190b9fea0b0e12337cfe
BLAKE2b-256 af82e882a888db29dacece2319aaed472eb242d4a7732f79031036c08c11c16e

See more details on using hashes here.

File details

Details for the file ipctk-1.2.0-cp39-cp39-win_amd64.whl.

File metadata

  • Download URL: ipctk-1.2.0-cp39-cp39-win_amd64.whl
  • Upload date:
  • Size: 1.2 MB
  • Tags: CPython 3.9, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.11.7

File hashes

Hashes for ipctk-1.2.0-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 51506e273141cf5b6978b182dbc48e922ced114be2143a60a5b4edd3795b9e2b
MD5 522bd60bb7c94f2179b47d47890ac7d4
BLAKE2b-256 76ca0843650bb9e1da766b6fda6031effdac55a2328dbaa35a2e5815447b0435

See more details on using hashes here.

File details

Details for the file ipctk-1.2.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for ipctk-1.2.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 73ad797cc19c9c12c1888da6000e0493c1b38012b5c428bc0f5813ba3cc27f6c
MD5 84d91f81e775dcacda869b4d9795f70b
BLAKE2b-256 9059945a5aa140d210c66bdb5560ef00e82a4340db2b0b7bd7c893b41778b55c

See more details on using hashes here.

File details

Details for the file ipctk-1.2.0-cp39-cp39-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for ipctk-1.2.0-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 be180a1fbed4c836c9d4cf81686e0943f8e1ee125e47c394fd3ff71424401512
MD5 fa324d73a6935050014ca4faba9e47bb
BLAKE2b-256 7b13535d680031f65b45b6fa54dc26f732a5c6001f985aa29500943c8556f246

See more details on using hashes here.

File details

Details for the file ipctk-1.2.0-cp39-cp39-macosx_10_14_x86_64.whl.

File metadata

File hashes

Hashes for ipctk-1.2.0-cp39-cp39-macosx_10_14_x86_64.whl
Algorithm Hash digest
SHA256 64c67e671ebcb54a7a9a97b4575f6a74fdbfaad63da9d6556f715eca27dbdade
MD5 47f4035dfb29b1ed41b1849a6f9f87f2
BLAKE2b-256 05cc61d162eaf8b8f5b82a43db04675313d92f7dd5bf3ad288ef41a0a55e242b

See more details on using hashes here.

File details

Details for the file ipctk-1.2.0-cp38-cp38-win_amd64.whl.

File metadata

  • Download URL: ipctk-1.2.0-cp38-cp38-win_amd64.whl
  • Upload date:
  • Size: 1.2 MB
  • Tags: CPython 3.8, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.11.7

File hashes

Hashes for ipctk-1.2.0-cp38-cp38-win_amd64.whl
Algorithm Hash digest
SHA256 d649e406fc1358822e6c593fcc2bbaaa331f7ae7645fa0378fa6ae111844f44b
MD5 f00fb4f9ee72b95b02a88b702cef55e9
BLAKE2b-256 356ea49218a1718b493e2b7880e6e19548c757cdf8f20197dec7ee815f3d87ce

See more details on using hashes here.

File details

Details for the file ipctk-1.2.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for ipctk-1.2.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 009687d0c8379df193e96782086d1012ca1cb0cb4454909fdcd5b71970abd771
MD5 7a890d7a10a0ecf3f2553d48162bcba2
BLAKE2b-256 d70505c9448a754d27b6703664f53500b9456b7d72d94c5bd5be81b73540b3e0

See more details on using hashes here.

File details

Details for the file ipctk-1.2.0-cp38-cp38-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for ipctk-1.2.0-cp38-cp38-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 79651a00046a8278959a9793326f3978819408aace205b299fd6997aab4c872c
MD5 0f828e7051ea9b3cef69218058c44484
BLAKE2b-256 858d006afd51e04db75a3957920922c98c49effd89045ac927aaff629092c3a8

See more details on using hashes here.

File details

Details for the file ipctk-1.2.0-cp38-cp38-macosx_10_14_x86_64.whl.

File metadata

File hashes

Hashes for ipctk-1.2.0-cp38-cp38-macosx_10_14_x86_64.whl
Algorithm Hash digest
SHA256 539faac85f7b11dc9cdeebc127b48afda7627f458b48eff40707876bb1aaf980
MD5 976e753adf036f8eb6ea561613b278e4
BLAKE2b-256 53cb994371406aa025a59adfaa9172174e621722692ee185a983311cf14cf011

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