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.

Release files for ipctk 1.6.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for ipctk 1.6.0
File Size Uploaded
ipctk-1.6.0.tar.gz 335.3 kB Details

Built distributions (wheels)

Table of built distributions (wheels) for ipctk 1.6.0
File
ipctk-1.6.0-cp314-cp314-win_amd64.whl CPython 3.14 CPython 3.14 Windows x86-64 Details
ipctk-1.6.0-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl CPython 3.14 CPython 3.14 Linux glibc 2.28+ x86-64, Linux glibc 2.27+ x86-64 Details
ipctk-1.6.0-cp314-cp314-macosx_11_0_arm64.whl CPython 3.14 CPython 3.14 macOS 11.0+ ARM64 Details
ipctk-1.6.0-cp313-cp313-win_amd64.whl CPython 3.13 CPython 3.13 Windows x86-64 Details
ipctk-1.6.0-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl CPython 3.13 CPython 3.13 Linux glibc 2.27+ x86-64, Linux glibc 2.28+ x86-64 Details
ipctk-1.6.0-cp313-cp313-macosx_11_0_arm64.whl CPython 3.13 CPython 3.13 macOS 11.0+ ARM64 Details
ipctk-1.6.0-cp312-cp312-win_amd64.whl CPython 3.12 CPython 3.12 Windows x86-64 Details
ipctk-1.6.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl CPython 3.12 CPython 3.12 Linux glibc 2.28+ x86-64, Linux glibc 2.27+ x86-64 Details
ipctk-1.6.0-cp312-cp312-macosx_11_0_arm64.whl CPython 3.12 CPython 3.12 macOS 11.0+ ARM64 Details
ipctk-1.6.0-cp311-cp311-win_amd64.whl CPython 3.11 CPython 3.11 Windows x86-64 Details
ipctk-1.6.0-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl CPython 3.11 CPython 3.11 Linux glibc 2.27+ x86-64, Linux glibc 2.28+ x86-64 Details
ipctk-1.6.0-cp311-cp311-macosx_11_0_arm64.whl CPython 3.11 CPython 3.11 macOS 11.0+ ARM64 Details
ipctk-1.6.0-cp310-cp310-win_amd64.whl CPython 3.10 CPython 3.10 Windows x86-64 Details
ipctk-1.6.0-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl CPython 3.10 CPython 3.10 Linux glibc 2.27+ x86-64, Linux glibc 2.28+ x86-64 Details
ipctk-1.6.0-cp310-cp310-macosx_11_0_arm64.whl CPython 3.10 CPython 3.10 macOS 11.0+ ARM64 Details

Total release size: 36.5 MB

Release files / ipctk-1.6.0.tar.gz

Download URL ipctk-1.6.0.tar.gz
Size 335.3 kB
Tags Source
SHA-256 checksum
How to use checksums
4fe7d655d68429134c051c1243f8996017ecc393af831a97a73c18c92165fadc
BLAKE2b-256 checksum
How to use checksums
e7117458c0d25291eb584fd562db5d229c04219bc11e324c72a6a5bc5a0c87b9
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.13

Release files / ipctk-1.6.0-cp314-cp314-win_amd64.whl

Download URL ipctk-1.6.0-cp314-cp314-win_amd64.whl
Size 2.2 MB
Tags CPython 3.14 Windows x86-64
SHA-256 checksum
How to use checksums
cef20676bf5b58820a161c399985587b476021328b61313d80eea2b3796afe79
BLAKE2b-256 checksum
How to use checksums
316a2426ac9917c3f7167ea7271a49bb171c83cf5309d17028dab071f78a2d6a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.13

Release files / ipctk-1.6.0-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl

Download URL ipctk-1.6.0-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Size 2.9 MB
Tags CPython 3.14 Linux glibc 2.27+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
5af307df9da2e1e1353b5730b350200ff651ff18995ebe806f9ced2792b2322a
BLAKE2b-256 checksum
How to use checksums
9aceb54ca5856bc683fe68f1e8c1ec77f42cbde63360251fc684b89caa19be28
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.13

Release files / ipctk-1.6.0-cp314-cp314-macosx_11_0_arm64.whl

Download URL ipctk-1.6.0-cp314-cp314-macosx_11_0_arm64.whl
Size 2.2 MB
Tags CPython 3.14 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
d35bd3961602ab78d73804158e8bae25a90583fbb95c660b544ac77c6898f426
BLAKE2b-256 checksum
How to use checksums
5b22d955413871f049d51bb8e6db1027f1ae5f4ba0c40b2773eae2f36a58ba93
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.13

Release files / ipctk-1.6.0-cp313-cp313-win_amd64.whl

Download URL ipctk-1.6.0-cp313-cp313-win_amd64.whl
Size 2.1 MB
Tags CPython 3.13 Windows x86-64
SHA-256 checksum
How to use checksums
1fedc46d77f0e2d2bb08eb218cacb3cc75cd5480d68bed4d2c351a8022b2b3e0
BLAKE2b-256 checksum
How to use checksums
65362763886bacac32ed1019751944aca1bc0b5a2eac0c7f61449136284f3afb
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.13

Release files / ipctk-1.6.0-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl

Download URL ipctk-1.6.0-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Size 2.9 MB
Tags CPython 3.13 Linux glibc 2.27+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
f1318e7dea3d0c582b8dc75c28deebbb0e6ce587fefa9212ca9190aca83991ba
BLAKE2b-256 checksum
How to use checksums
48ac612b30cce3cef03047147072de6651b9e029c7c623d447ab4034488d065a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.13

Release files / ipctk-1.6.0-cp313-cp313-macosx_11_0_arm64.whl

Download URL ipctk-1.6.0-cp313-cp313-macosx_11_0_arm64.whl
Size 2.2 MB
Tags CPython 3.13 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
b02d0166f6d262d5490d627132bcdf85ff3b3ee97871b0abb8ce47ec94aacf83
BLAKE2b-256 checksum
How to use checksums
220176fe0e55975d004f25459e2ef3cbb60352794ceb1c21c067b47d96453a7c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.13

Release files / ipctk-1.6.0-cp312-cp312-win_amd64.whl

Download URL ipctk-1.6.0-cp312-cp312-win_amd64.whl
Size 2.1 MB
Tags CPython 3.12 Windows x86-64
SHA-256 checksum
How to use checksums
3793531598fa5803beee0aa9f467178ece5b770b4c136187a2ec0f987a3a918e
BLAKE2b-256 checksum
How to use checksums
c4128edb08487bd4ea839cddbf940ea3c3b76de055b18c5f4911837d91baf29f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.13

Release files / ipctk-1.6.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl

Download URL ipctk-1.6.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Size 2.9 MB
Tags CPython 3.12 Linux glibc 2.27+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
581f0bc2ad1d89143750a714a6327606d367089765eb02913f5f02f3306a9055
BLAKE2b-256 checksum
How to use checksums
7b7583c70da456f42800d27db9c54f03627e1c22767d13f8328ae6126fc8acf0
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.13

Release files / ipctk-1.6.0-cp312-cp312-macosx_11_0_arm64.whl

Download URL ipctk-1.6.0-cp312-cp312-macosx_11_0_arm64.whl
Size 2.2 MB
Tags CPython 3.12 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
7f01c82853b44fcd14ee444195fba87373dedced852c0457ebf2ca211063e7b5
BLAKE2b-256 checksum
How to use checksums
96a77d9a3645b401dc7121e90c361d8759839f1d94a5496f075da7dea77c3bb1
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.13

Release files / ipctk-1.6.0-cp311-cp311-win_amd64.whl

Download URL ipctk-1.6.0-cp311-cp311-win_amd64.whl
Size 2.1 MB
Tags CPython 3.11 Windows x86-64
SHA-256 checksum
How to use checksums
17569e3dfe7f1d0aeba131a981087ff4d791a714f0e75ad97496e6c040c38ea6
BLAKE2b-256 checksum
How to use checksums
6b144812f24d4b3ecb1c59d68203f6bed180dc761e17161c5cfd8e74d811c177
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.13

Release files / ipctk-1.6.0-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl

Download URL ipctk-1.6.0-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Size 2.9 MB
Tags CPython 3.11 Linux glibc 2.27+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
9613bd776300f271752da48f493115842b197df6e04f77f042e59dad2c423524
BLAKE2b-256 checksum
How to use checksums
1221684ed2e89bd74307a3785ee038dd47a4d32518825d927d7a188c457bf02b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.13

Release files / ipctk-1.6.0-cp311-cp311-macosx_11_0_arm64.whl

Download URL ipctk-1.6.0-cp311-cp311-macosx_11_0_arm64.whl
Size 2.2 MB
Tags CPython 3.11 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
e2734de7e94fa40ffe8da6aaac1d6d5c5aa9456c64dd777777f40e10f1cf5a7c
BLAKE2b-256 checksum
How to use checksums
09f03a75f96ef0c0cf65f6ed58555f3e4db12c8e722fc05cbff1a313637c3796
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.13

Release files / ipctk-1.6.0-cp310-cp310-win_amd64.whl

Download URL ipctk-1.6.0-cp310-cp310-win_amd64.whl
Size 2.1 MB
Tags CPython 3.10 Windows x86-64
SHA-256 checksum
How to use checksums
a083b5a25baf79c26256e158eaebbc482412eae4003378d26f49ee9afb0c3516
BLAKE2b-256 checksum
How to use checksums
abe4e3cd35df97858dcca051184448c7b7821fd9921ad3bd276c6fea02c87622
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.13

Release files / ipctk-1.6.0-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl

Download URL ipctk-1.6.0-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Size 2.9 MB
Tags CPython 3.10 Linux glibc 2.27+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
d276e5c5175ed534f98228c5769f4ce11db77735cf242621c71b4bd28ad41d71
BLAKE2b-256 checksum
How to use checksums
a88403ff860cd9a309705ecf0d517b0f5a6f887239c487fc1d179bdc6b72353c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.13

Release files / ipctk-1.6.0-cp310-cp310-macosx_11_0_arm64.whl

Download URL ipctk-1.6.0-cp310-cp310-macosx_11_0_arm64.whl
Size 2.2 MB
Tags CPython 3.10 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
ad97c84e72ff6bc447a0d0b6db8b43ead06c4f3f6eff7b39e91bca9f0d45a850
BLAKE2b-256 checksum
How to use checksums
36b77819916ebd395f6bdb405b578f71b4e07c4b98000939eed9c12b296d1b6f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.13

Release history Release notifications | RSS feed

This release

1.6.0 This release

16 release files

1.4.0

21 release files

1.2.1

21 release files

1.2.0

21 release files

1.1.1

17 release files

1.1.0

17 release files

1.0.0

17 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page