Skip to main content

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

  • Tutorials 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

This project is licensed under the MIT License.

You are free to use, modify, and distribute this code in your projects, even commercial ones, as long as you include the original copyright and license notice. A copy of the full license text can be found in the LICENSE file.

If you use this code in a product you distribute to others, you are required to include a copy of the original copyright and license notice. This is typically done in the product's documentation, an "About" or "Third-Party Licenses" section, or in a clear open-source software statement.

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.6.0.tar.gz (335.3 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.6.0-cp314-cp314-win_amd64.whl (2.2 MB view details)

Uploaded CPython 3.14Windows x86-64

ipctk-1.6.0-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (2.9 MB view details)

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

ipctk-1.6.0-cp314-cp314-macosx_11_0_arm64.whl (2.2 MB view details)

Uploaded CPython 3.14macOS 11.0+ ARM64

ipctk-1.6.0-cp313-cp313-win_amd64.whl (2.1 MB view details)

Uploaded CPython 3.13Windows x86-64

ipctk-1.6.0-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (2.9 MB view details)

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

ipctk-1.6.0-cp313-cp313-macosx_11_0_arm64.whl (2.2 MB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

ipctk-1.6.0-cp312-cp312-win_amd64.whl (2.1 MB view details)

Uploaded CPython 3.12Windows x86-64

ipctk-1.6.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (2.9 MB view details)

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

ipctk-1.6.0-cp312-cp312-macosx_11_0_arm64.whl (2.2 MB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

ipctk-1.6.0-cp311-cp311-win_amd64.whl (2.1 MB view details)

Uploaded CPython 3.11Windows x86-64

ipctk-1.6.0-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (2.9 MB view details)

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

ipctk-1.6.0-cp311-cp311-macosx_11_0_arm64.whl (2.2 MB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

ipctk-1.6.0-cp310-cp310-win_amd64.whl (2.1 MB view details)

Uploaded CPython 3.10Windows x86-64

ipctk-1.6.0-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (2.9 MB view details)

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

ipctk-1.6.0-cp310-cp310-macosx_11_0_arm64.whl (2.2 MB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

File details

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

File metadata

  • Download URL: ipctk-1.6.0.tar.gz
  • Upload date:
  • Size: 335.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.13

File hashes

Hashes for ipctk-1.6.0.tar.gz
Algorithm Hash digest
SHA256 4fe7d655d68429134c051c1243f8996017ecc393af831a97a73c18c92165fadc
MD5 1e14c2cbc51ab052b7802a55c796c8c2
BLAKE2b-256 e7117458c0d25291eb584fd562db5d229c04219bc11e324c72a6a5bc5a0c87b9

See more details on using hashes here.

File details

Details for the file ipctk-1.6.0-cp314-cp314-win_amd64.whl.

File metadata

  • Download URL: ipctk-1.6.0-cp314-cp314-win_amd64.whl
  • Upload date:
  • Size: 2.2 MB
  • Tags: CPython 3.14, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.13

File hashes

Hashes for ipctk-1.6.0-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 cef20676bf5b58820a161c399985587b476021328b61313d80eea2b3796afe79
MD5 f2870360bcdd8ba96ace09cfd9e42e0b
BLAKE2b-256 316a2426ac9917c3f7167ea7271a49bb171c83cf5309d17028dab071f78a2d6a

See more details on using hashes here.

File details

Details for the file ipctk-1.6.0-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for ipctk-1.6.0-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 5af307df9da2e1e1353b5730b350200ff651ff18995ebe806f9ced2792b2322a
MD5 ac5fe9ca648b0d7d068b3f57a163e632
BLAKE2b-256 9aceb54ca5856bc683fe68f1e8c1ec77f42cbde63360251fc684b89caa19be28

See more details on using hashes here.

File details

Details for the file ipctk-1.6.0-cp314-cp314-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for ipctk-1.6.0-cp314-cp314-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 d35bd3961602ab78d73804158e8bae25a90583fbb95c660b544ac77c6898f426
MD5 558a17d0857f3990ad06057a253b50c4
BLAKE2b-256 5b22d955413871f049d51bb8e6db1027f1ae5f4ba0c40b2773eae2f36a58ba93

See more details on using hashes here.

File details

Details for the file ipctk-1.6.0-cp313-cp313-win_amd64.whl.

File metadata

  • Download URL: ipctk-1.6.0-cp313-cp313-win_amd64.whl
  • Upload date:
  • Size: 2.1 MB
  • Tags: CPython 3.13, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.13

File hashes

Hashes for ipctk-1.6.0-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 1fedc46d77f0e2d2bb08eb218cacb3cc75cd5480d68bed4d2c351a8022b2b3e0
MD5 f71166c1908b6ba18b37b002f41b5e3e
BLAKE2b-256 65362763886bacac32ed1019751944aca1bc0b5a2eac0c7f61449136284f3afb

See more details on using hashes here.

File details

Details for the file ipctk-1.6.0-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for ipctk-1.6.0-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 f1318e7dea3d0c582b8dc75c28deebbb0e6ce587fefa9212ca9190aca83991ba
MD5 820ea8120b151c431300605aa957fa12
BLAKE2b-256 48ac612b30cce3cef03047147072de6651b9e029c7c623d447ab4034488d065a

See more details on using hashes here.

File details

Details for the file ipctk-1.6.0-cp313-cp313-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for ipctk-1.6.0-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 b02d0166f6d262d5490d627132bcdf85ff3b3ee97871b0abb8ce47ec94aacf83
MD5 8e98f24b79e6d4206520b1be1b76ff0d
BLAKE2b-256 220176fe0e55975d004f25459e2ef3cbb60352794ceb1c21c067b47d96453a7c

See more details on using hashes here.

File details

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

File metadata

  • Download URL: ipctk-1.6.0-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 2.1 MB
  • Tags: CPython 3.12, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.13

File hashes

Hashes for ipctk-1.6.0-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 3793531598fa5803beee0aa9f467178ece5b770b4c136187a2ec0f987a3a918e
MD5 883025cb351835785fe4d323f21456a6
BLAKE2b-256 c4128edb08487bd4ea839cddbf940ea3c3b76de055b18c5f4911837d91baf29f

See more details on using hashes here.

File details

Details for the file ipctk-1.6.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for ipctk-1.6.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 581f0bc2ad1d89143750a714a6327606d367089765eb02913f5f02f3306a9055
MD5 ee1dc51e914bec1f9d8da5347a82b499
BLAKE2b-256 7b7583c70da456f42800d27db9c54f03627e1c22767d13f8328ae6126fc8acf0

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for ipctk-1.6.0-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 7f01c82853b44fcd14ee444195fba87373dedced852c0457ebf2ca211063e7b5
MD5 5ed939cde02606b3f7cd6280a80afc91
BLAKE2b-256 96a77d9a3645b401dc7121e90c361d8759839f1d94a5496f075da7dea77c3bb1

See more details on using hashes here.

File details

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

File metadata

  • Download URL: ipctk-1.6.0-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 2.1 MB
  • Tags: CPython 3.11, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.13

File hashes

Hashes for ipctk-1.6.0-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 17569e3dfe7f1d0aeba131a981087ff4d791a714f0e75ad97496e6c040c38ea6
MD5 094833ce0f979f66961f842cbd4d4e7f
BLAKE2b-256 6b144812f24d4b3ecb1c59d68203f6bed180dc761e17161c5cfd8e74d811c177

See more details on using hashes here.

File details

Details for the file ipctk-1.6.0-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for ipctk-1.6.0-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 9613bd776300f271752da48f493115842b197df6e04f77f042e59dad2c423524
MD5 99c7c36892654cafdb97e9a5e4ba0376
BLAKE2b-256 1221684ed2e89bd74307a3785ee038dd47a4d32518825d927d7a188c457bf02b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for ipctk-1.6.0-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 e2734de7e94fa40ffe8da6aaac1d6d5c5aa9456c64dd777777f40e10f1cf5a7c
MD5 6d20679596d2cac329bf21022755b4ec
BLAKE2b-256 09f03a75f96ef0c0cf65f6ed58555f3e4db12c8e722fc05cbff1a313637c3796

See more details on using hashes here.

File details

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

File metadata

  • Download URL: ipctk-1.6.0-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 2.1 MB
  • Tags: CPython 3.10, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.13

File hashes

Hashes for ipctk-1.6.0-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 a083b5a25baf79c26256e158eaebbc482412eae4003378d26f49ee9afb0c3516
MD5 cfd89d6d44f20d705afb8cff0009038d
BLAKE2b-256 abe4e3cd35df97858dcca051184448c7b7821fd9921ad3bd276c6fea02c87622

See more details on using hashes here.

File details

Details for the file ipctk-1.6.0-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for ipctk-1.6.0-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 d276e5c5175ed534f98228c5769f4ce11db77735cf242621c71b4bd28ad41d71
MD5 bbb295033ffd5e5323864053658b684a
BLAKE2b-256 a88403ff860cd9a309705ecf0d517b0f5a6f887239c487fc1d179bdc6b72353c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for ipctk-1.6.0-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 ad97c84e72ff6bc447a0d0b6db8b43ead06c4f3f6eff7b39e91bca9f0d45a850
MD5 a27a218a12120d1ce062401274fc7a69
BLAKE2b-256 36b77819916ebd395f6bdb405b578f71b4e07c4b98000939eed9c12b296d1b6f

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 Sentry Error logging StatusPage Status page