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.3.1.tar.gz (176.9 kB view details)

Uploaded Source

Built Distributions

ipctk-1.3.1-cp313-cp313-win_amd64.whl (1.2 MB view details)

Uploaded CPython 3.13 Windows x86-64

ipctk-1.3.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.8 MB view details)

Uploaded CPython 3.13 manylinux: glibc 2.17+ x86-64

ipctk-1.3.1-cp313-cp313-macosx_11_0_x86_64.whl (1.5 MB view details)

Uploaded CPython 3.13 macOS 11.0+ x86-64

ipctk-1.3.1-cp313-cp313-macosx_11_0_arm64.whl (1.3 MB view details)

Uploaded CPython 3.13 macOS 11.0+ ARM64

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

Uploaded CPython 3.12 Windows x86-64

ipctk-1.3.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.8 MB view details)

Uploaded CPython 3.12 manylinux: glibc 2.17+ x86-64

ipctk-1.3.1-cp312-cp312-macosx_11_0_x86_64.whl (1.5 MB view details)

Uploaded CPython 3.12 macOS 11.0+ x86-64

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

Uploaded CPython 3.12 macOS 11.0+ ARM64

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

Uploaded CPython 3.11 Windows x86-64

ipctk-1.3.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.8 MB view details)

Uploaded CPython 3.11 manylinux: glibc 2.17+ x86-64

ipctk-1.3.1-cp311-cp311-macosx_11_0_x86_64.whl (1.5 MB view details)

Uploaded CPython 3.11 macOS 11.0+ x86-64

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

Uploaded CPython 3.11 macOS 11.0+ ARM64

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

Uploaded CPython 3.10 Windows x86-64

ipctk-1.3.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.8 MB view details)

Uploaded CPython 3.10 manylinux: glibc 2.17+ x86-64

ipctk-1.3.1-cp310-cp310-macosx_11_0_x86_64.whl (1.5 MB view details)

Uploaded CPython 3.10 macOS 11.0+ x86-64

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

Uploaded CPython 3.10 macOS 11.0+ ARM64

ipctk-1.3.1-cp39-cp39-win_amd64.whl (1.3 MB view details)

Uploaded CPython 3.9 Windows x86-64

ipctk-1.3.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.8 MB view details)

Uploaded CPython 3.9 manylinux: glibc 2.17+ x86-64

ipctk-1.3.1-cp39-cp39-macosx_11_0_x86_64.whl (1.5 MB view details)

Uploaded CPython 3.9 macOS 11.0+ x86-64

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

Uploaded CPython 3.9 macOS 11.0+ ARM64

File details

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

File metadata

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

File hashes

Hashes for ipctk-1.3.1.tar.gz
Algorithm Hash digest
SHA256 dd472d870ba7da46431cb5b98a056ee41e988faa4ce212555cf4ced131fbd73e
MD5 bf1dfadd16c69bce29426a2d713a0089
BLAKE2b-256 1ad10930d66371c7643903a1e31d0a34e475ea576d4e06caa4e93fdae0bd19d2

See more details on using hashes here.

File details

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

File metadata

  • Download URL: ipctk-1.3.1-cp313-cp313-win_amd64.whl
  • Upload date:
  • Size: 1.2 MB
  • Tags: CPython 3.13, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.11.10

File hashes

Hashes for ipctk-1.3.1-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 954219a9e8df78d594c03b4034b93fd8c0662d8925f75c0a636a292632202239
MD5 1f13480e4696dccf70c62e7a1cf3a398
BLAKE2b-256 12a378de2bc2bc0605da3badbd852c14517399b6a61aaf50c32e45f68a016751

See more details on using hashes here.

File details

Details for the file ipctk-1.3.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for ipctk-1.3.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 26f380d36a2ad3e2fbed0c38de30eb346d5888db32da8a2d23aaedfd8a2c499b
MD5 49f7740c4e6aca8578828c9a1bda9f2f
BLAKE2b-256 0a10db8a822b5a117d513167d6efbd3d39a0a02f26fcbe2b4ed24a0e16d8835a

See more details on using hashes here.

File details

Details for the file ipctk-1.3.1-cp313-cp313-macosx_11_0_x86_64.whl.

File metadata

File hashes

Hashes for ipctk-1.3.1-cp313-cp313-macosx_11_0_x86_64.whl
Algorithm Hash digest
SHA256 15cb39a30d44f3a72a748d02b45d0881e46d0cb2884192e41c3b2fbabfa54107
MD5 437e4d3860c6b3e016efeda93efb108c
BLAKE2b-256 06a6d6cf7516db54ae1fe2aa22040cd6b8f3ecd1c2c777101159be333133d612

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for ipctk-1.3.1-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 933fc4179cdda9b14bd9bee0bce1018908f5898d8f76a40a3cd92f0010bbae5c
MD5 f7eba49997eff60f42ab884bd4b95cf2
BLAKE2b-256 329bd89e7d6b1cbd0658ad7a8fff94ce6f382c17761c39e611c4dde9214b9afc

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for ipctk-1.3.1-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 f058a650d2eb762df0286886c42e3a788147c4ceba01597201ed5f5584238a67
MD5 0deaa2800f92a8ceb333508e490815c0
BLAKE2b-256 b737cedbf98db14d559f4f3f4426ca6c3f293cd7217603f269512ce61e518515

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for ipctk-1.3.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 e8e75de975b39eb2183681962b624f55ca9ee908638b2376a2380e12be9d52c3
MD5 abd527c3865eca7566a940689e7bbf4e
BLAKE2b-256 7daf2f820774ed39007b165434c7acb820a753009ec1925bc87092606ff48e5f

See more details on using hashes here.

File details

Details for the file ipctk-1.3.1-cp312-cp312-macosx_11_0_x86_64.whl.

File metadata

File hashes

Hashes for ipctk-1.3.1-cp312-cp312-macosx_11_0_x86_64.whl
Algorithm Hash digest
SHA256 525aa2b11b92368e97f3aa6919ec68e4293adcc42685acbc102ddf8af2c06455
MD5 4d1c439ee5a2e9946c483144d7788f0a
BLAKE2b-256 1befc92c0fb185bab3a663b5e0647ba35c774880698376ac13bf05b04cc11020

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for ipctk-1.3.1-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 6c40cd8030f72030f2c1987a5d5394a5cdd41aa1ae1c0b3fbec70de964a6539e
MD5 955254799e2e5aea1b40bc4090747613
BLAKE2b-256 87ef1c25647477c249d7102413ba62877497306cbc57b4a3bacdf509cd7cd2ac

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for ipctk-1.3.1-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 56a64ca60bf2e65f7c1c4da8f27d39dad65e0efe0dd9f46055ec9d3f63c2902a
MD5 6535066be13e6a7404bea704b399a2a4
BLAKE2b-256 94d4960c0a0f46f871ad164d93ae1b2c996170d4eb8755944e550c32d9e44656

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for ipctk-1.3.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 ec767ad33071260cea4895b5084b5072de380c8c332cf72e70fdd71aef267775
MD5 c1bfefad992f7fd89ce0fe14cf0f1744
BLAKE2b-256 8dd6061414ab57cd3c00cf7a41851b3f75787747b6e95c403e0f707934715c3e

See more details on using hashes here.

File details

Details for the file ipctk-1.3.1-cp311-cp311-macosx_11_0_x86_64.whl.

File metadata

File hashes

Hashes for ipctk-1.3.1-cp311-cp311-macosx_11_0_x86_64.whl
Algorithm Hash digest
SHA256 7e46f9fb0c86bc00d0cc1b1c026b7dcb36dea2554bb5d72b75dc797706fad349
MD5 5c02f67f217c2131ee47a8d16a65436f
BLAKE2b-256 4fe4fa231df2c503233216c3cd1e0c709c777e1364c32fcfdf94fd49e80533fa

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for ipctk-1.3.1-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 481a288a5ff43c2fd697663ec48ed31838285981e4c37fc3ed49937153d52c74
MD5 3fd43a1c325ac5cc64821944050b86b4
BLAKE2b-256 8934fc23951665ab68478b6ebd5b4d969a15ae840e5d58cbbc1be00a991deb7e

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for ipctk-1.3.1-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 30ea5b22b5bc0d9c7d5de84e0badec92bd95325a09e52ac75f61e22adf20c86e
MD5 f5e1dceb5fa95e72c897f28f390d20a5
BLAKE2b-256 6e53105d3886de6fc8411d2f89bfa8e7a0597b74d57028386c7a473cb68678f7

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for ipctk-1.3.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 7bd86ecdfbc5bc2e0063bf1ac47806041c4fcacf3d0353b73ab25ea00238f7b0
MD5 75f82dd30935a0894ce2ce8f8abe0c81
BLAKE2b-256 fe5ca8725fcce342174907c5358823c228af08f4ba3303a8c8717b1d95c66239

See more details on using hashes here.

File details

Details for the file ipctk-1.3.1-cp310-cp310-macosx_11_0_x86_64.whl.

File metadata

File hashes

Hashes for ipctk-1.3.1-cp310-cp310-macosx_11_0_x86_64.whl
Algorithm Hash digest
SHA256 4204846db64cf2b76db7753534dcfaddf417bf17c1f1a3b28c9c53fe4354f2ac
MD5 772923ee9e46cccbc383df9d7c56ee5e
BLAKE2b-256 3dbbff8200b5947905fd62550bf8faddeffc95428b7235f3fd9779548d92c9c7

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for ipctk-1.3.1-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 78c3260e2d0d5edf0091c18fcb45c7ff9c8ddd9af03f3fdb7fb41d339ec005ff
MD5 acd5a0e85fd872bf5e7d189063036979
BLAKE2b-256 45232d406f2e1f742d16c0e04b2f40d91317ca6fdedb83613ec4278c84acd84d

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for ipctk-1.3.1-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 b0c20fb400f7a3c4966e5dde6aad9237c2bd7197c562fac8a019becdd054b825
MD5 c1b7c055eeb34e2c205bcf6aa5e407c8
BLAKE2b-256 9ea5caa97b21c97b5eea3fa7692066b7f7fc9628d49ad5c6ee57c192fba8975a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for ipctk-1.3.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 3923f4faedb3290d33bb1398ee21d4307e198a07e81642b4cd874de8c1f9aa8c
MD5 0636ce5eb976b99a717e9fe9d5c5bde0
BLAKE2b-256 649e06c0076ba99a10b1578273dafe9dd7ee81f665b354c3ceef24eac4263e39

See more details on using hashes here.

File details

Details for the file ipctk-1.3.1-cp39-cp39-macosx_11_0_x86_64.whl.

File metadata

File hashes

Hashes for ipctk-1.3.1-cp39-cp39-macosx_11_0_x86_64.whl
Algorithm Hash digest
SHA256 010d7673d96a2fd5d640d8d8a93a4d435a98a08e8063fa29b355a4d1c574abba
MD5 432110c938b54a384bcfe700848336ed
BLAKE2b-256 1adf0abc2cfc099bc7fa3fedc8aa20347f79c1310a19bf02b8701d00e2c00280

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for ipctk-1.3.1-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 5db244bca7c576ee24f32cfea75501b2413a94e099fc25d498727a98026b908d
MD5 2e1618815d0ba36aa3a929e9399012d9
BLAKE2b-256 666aeb326584dd6f4d32578bea2cbc04aa92d3b7de2b50b7cc2dbed7d8a091b1

See more details on using hashes here.

Supported by

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