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

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

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.5.0.tar.gz (393.1 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.5.0-cp314-cp314-win_amd64.whl (2.1 MB view details)

Uploaded CPython 3.14Windows x86-64

ipctk-1.5.0-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (3.0 MB view details)

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

ipctk-1.5.0-cp314-cp314-macosx_11_0_arm64.whl (2.3 MB view details)

Uploaded CPython 3.14macOS 11.0+ ARM64

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

Uploaded CPython 3.13Windows x86-64

ipctk-1.5.0-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (3.0 MB view details)

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

ipctk-1.5.0-cp313-cp313-macosx_11_0_arm64.whl (2.3 MB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

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

Uploaded CPython 3.12Windows x86-64

ipctk-1.5.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (3.0 MB view details)

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

ipctk-1.5.0-cp312-cp312-macosx_11_0_arm64.whl (2.3 MB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

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

Uploaded CPython 3.11Windows x86-64

ipctk-1.5.0-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (3.0 MB view details)

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

ipctk-1.5.0-cp311-cp311-macosx_11_0_arm64.whl (2.3 MB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

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

Uploaded CPython 3.10Windows x86-64

ipctk-1.5.0-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (3.0 MB view details)

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

ipctk-1.5.0-cp310-cp310-macosx_11_0_arm64.whl (2.3 MB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

File details

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

File metadata

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

File hashes

Hashes for ipctk-1.5.0.tar.gz
Algorithm Hash digest
SHA256 71f571bd25bb33d2afede9546abdc30396ebf8b9e6ca131bdf7d4e9fa88ec83f
MD5 91e36bbf60a1e35618ddc6c8fe9fbb73
BLAKE2b-256 c59478468bf2298f3ce521005629ae378b1e895c1df85f98880f2f9e439b64d0

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for ipctk-1.5.0-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 10deeac211c1dec079204c3392d4bdef8f2bef65fc69b3fe60e887deaf5de6d1
MD5 f99bb09ee9ba30d78bba983281739fdd
BLAKE2b-256 0e81b99779536fcf470e2b3833263eebc09084c6f67692e2d33690b5604a59d7

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for ipctk-1.5.0-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 cc187d5488524678eba8f0c6d9b372f8be55784a5d0bc02e9928dd03796253f5
MD5 0cbd2a1b47a3ead79133ee3646ef5a29
BLAKE2b-256 73f3ad843eb2234dbaf3d543c3fc30e11279a25e091efec369d171abca6f7690

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for ipctk-1.5.0-cp314-cp314-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 684c5919ed4a02cb6d69337cdb8f39f450e8ef65b4f00a3991980cfabd8acf99
MD5 00693549e6b7ececeba199286e7395a3
BLAKE2b-256 90e2992b2c94d466eaf424c8b14943d79e45aa2563a7e71348aac0f51eed997d

See more details on using hashes here.

File details

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

File metadata

  • Download URL: ipctk-1.5.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.7

File hashes

Hashes for ipctk-1.5.0-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 f6384245a3eff6c9bf5b121e545f7d0b4863b5978732b28322dec0906866f02a
MD5 4b68b7eda0ca3e1576b040e70757c185
BLAKE2b-256 1b80d59d5890e9058fe638b7509730f26c767b58dda80a9e2371ec785587ff60

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for ipctk-1.5.0-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 3c414933b8937c1d9785d7e9c09af2952a87604ba2bf1563a46f9d24a33faef6
MD5 d278c455ab7f6886c546567ce6ff2d01
BLAKE2b-256 51082779fbc634efd39aa6ec563f5e00c97c2695364d388b3df9d23cd72d6681

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for ipctk-1.5.0-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 86c26ed7b1e98ab2b23447fca040e1ebf2c0277a45a1777a4ba413535b955aab
MD5 f3532ae63320d6816bce6ec557093573
BLAKE2b-256 3154c98a0a7386cd9740b923baff07487a989553d48a7d20cb143483cda2f8b0

See more details on using hashes here.

File details

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

File metadata

  • Download URL: ipctk-1.5.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.7

File hashes

Hashes for ipctk-1.5.0-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 34f6c4123d2ddc175478df8d1939305081fc58964b75be06ade654ea47a815ff
MD5 c62deb70a8c00beffb72ffb526557131
BLAKE2b-256 1fd280188a5faecb3f7782e1ac5759551b2f27eef6f2fb3a8b8441126bfd68b1

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for ipctk-1.5.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 3fd3e27a931a4adea82861646a327aafcdb0027c8e28117c56d7b8fb3e01c936
MD5 800a998452f40a632b5c960a9618060e
BLAKE2b-256 77f8aada53906df9a0806e9ba15c0fdf6813e00b454800da1e03d9c2abe14069

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for ipctk-1.5.0-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 abb80da23b6547d30eb8862a03610c6e7eb7c578a31a32ce09f0beba0d17ab6f
MD5 cb4875d4ab06338a904d14ddb66d6d8a
BLAKE2b-256 f3248641deb157ca8b76d5d6ff5e6a095f5b48b41c851d08d546b4b54f2f4b05

See more details on using hashes here.

File details

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

File metadata

  • Download URL: ipctk-1.5.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.7

File hashes

Hashes for ipctk-1.5.0-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 c626c44bfdc5e985ccacab25d15d3b232c997129cf6702a95ebb261648a22cbb
MD5 e98c1794ee7454af0ef0c0a91463486d
BLAKE2b-256 21af1280ba83f88c6398b9eae9287ed9f8a0af1bbcf94405de6ddb17107116aa

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for ipctk-1.5.0-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 3c40241aba32c68ffa0e55198da886f470df80c922391de44fde5bca3e0e6983
MD5 ddf7e3998e11f2147e14123a30e0f114
BLAKE2b-256 e6cd299138e0617204a66b7c109ebc08775ee7df3df6c9d4af264c7f01eed505

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for ipctk-1.5.0-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 922ca2ee07d9a415b6c951e21659747e6bb9256b43d2682adcb8cdb24534cbe0
MD5 3d47a1f22d896106fed2653722665e6a
BLAKE2b-256 ce623969c269950e1b9e99abf7a62a1af3ef4318c026d2e4eb8dfce9e7c2bf0d

See more details on using hashes here.

File details

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

File metadata

  • Download URL: ipctk-1.5.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.7

File hashes

Hashes for ipctk-1.5.0-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 779db1540da8f970b20dcf27c196e2e98d7d370741b05fd26559d4b8d5f06def
MD5 824de9c12c46e919cff198070e49b43d
BLAKE2b-256 0f4b70ba3a4318ecad14610ac13bf434afada334dd148b485bddfdef9e168c8c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for ipctk-1.5.0-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 cddf1dfe0d7892f4a5f15c8187e93c21e6070613906ad551d41e460f27fae6d7
MD5 e736c9e8944b4e200706eaa0a42b066e
BLAKE2b-256 c8d0ea106cc2fb8916a59742ad8f6cfa9d9d63bbf058e050dfdcfa0ebec24674

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for ipctk-1.5.0-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 ec1d879ed9d2c0617d8ff20e64f009378625c7f01bc04682b1dd3fe7466f57c2
MD5 ea4d8a6b4db76c3be53ae3cc242c2542
BLAKE2b-256 f6c17ea83ec6ce1a3183165a2db0f0f3dfa0272e57e429c81d1973520a09ba9b

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