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.1.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.1-cp312-cp312-win_amd64.whl (1.2 MB view details)

Uploaded CPython 3.12Windows x86-64

ipctk-1.2.1-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.1-cp312-cp312-macosx_11_0_arm64.whl (1.3 MB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

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

Uploaded CPython 3.12macOS 10.14+ x86-64

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

Uploaded CPython 3.11Windows x86-64

ipctk-1.2.1-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.1-cp311-cp311-macosx_11_0_arm64.whl (1.3 MB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

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

Uploaded CPython 3.11macOS 10.14+ x86-64

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

Uploaded CPython 3.10Windows x86-64

ipctk-1.2.1-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.1-cp310-cp310-macosx_11_0_arm64.whl (1.3 MB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

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

Uploaded CPython 3.10macOS 10.14+ x86-64

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

Uploaded CPython 3.9Windows x86-64

ipctk-1.2.1-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.1-cp39-cp39-macosx_11_0_arm64.whl (1.3 MB view details)

Uploaded CPython 3.9macOS 11.0+ ARM64

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

Uploaded CPython 3.9macOS 10.14+ x86-64

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

Uploaded CPython 3.8Windows x86-64

ipctk-1.2.1-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.1-cp38-cp38-macosx_11_0_arm64.whl (1.3 MB view details)

Uploaded CPython 3.8macOS 11.0+ ARM64

ipctk-1.2.1-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.1.tar.gz.

File metadata

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

File hashes

Hashes for ipctk-1.2.1.tar.gz
Algorithm Hash digest
SHA256 b3195418d2f95d8a9c4901177c2316809e6e2975fe15e348c1cd8007321c51d8
MD5 04a15b2672d4a952349ffc0b0bf0c724
BLAKE2b-256 d6ec47fbacc3c37395664a81664060e5f6b5c0f3493705038909f68b3146c93b

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for ipctk-1.2.1-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 ea4a9af868ddfac2438c04d3a93f461a8ef65d07b76ded412f486471813b3404
MD5 dfad4bc9ba474219482f0f5ca47f5c3c
BLAKE2b-256 f575a703ad52faa3c0cb8c2cb2221622c53b647be933f42d2c22ce218cc928db

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for ipctk-1.2.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 ca8f0777982fcf9516d8dbbbc03401ec84a646f814a6ef02001d2ed024379245
MD5 c78e1e809288e5110044074b56160d2e
BLAKE2b-256 4ac88281e35279ebc44c23267b04e2d78ca5a0916b796535be5ded1cf24f95a1

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for ipctk-1.2.1-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 9cadc714e40fabce5cb0043a645d3ce26413f226cedb57dbd4dc0e2ab969cfcd
MD5 f0efa82fcf6f695002c2ba3ddbd2211a
BLAKE2b-256 33f7acf1dc69041948c34d6d32cfff6e0323bb1bf15414a128633617e8453b53

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for ipctk-1.2.1-cp312-cp312-macosx_10_14_x86_64.whl
Algorithm Hash digest
SHA256 97c95af5c4636c1911f3de15bab5116047f939f536097c39bb3673cb373b3112
MD5 c2e73ab11d9ad9d76acb777289b9bcf9
BLAKE2b-256 f550488122bb1f948db75ea1bf34bae2441c823ec5a3afb134a16543351883b3

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for ipctk-1.2.1-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 a4a0bd39a12d8a6427709bbd70bab50ba4f6176681ba35041c4a782fbe2191c9
MD5 2ebd72073a18e66d531761e9d84cac01
BLAKE2b-256 144ba57a0a53a76eac03ae70232ad5f283cd27a2fc1c912a1a0cd60282b97470

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for ipctk-1.2.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 3b8244438a04794685ddda1b9a5c652abe5deed64761cfad95cbdfc1e341e225
MD5 623bbcec0f914e2822d5caa94ec70aa6
BLAKE2b-256 64cad0a8a999254f4320ce7a45590c7f4fbcc37fe74504fbc316340e819ea496

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for ipctk-1.2.1-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 50b7d6addddf81ff76f098894376fbfcd5d9e7cad9a50f025879566a98f5e641
MD5 b74a6a4c031585dd2a6b745b01924f38
BLAKE2b-256 3a913df67b385a13b15befb2cc56725d47f8f7c9e1fded1896453373fea13743

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for ipctk-1.2.1-cp311-cp311-macosx_10_14_x86_64.whl
Algorithm Hash digest
SHA256 53611a828664555c0347d81c903c4a5e1867c0eab06a6565dd592d1d2840d73f
MD5 dfce965526c735731ebacddb58ef96db
BLAKE2b-256 dc27b69c3a4210de05a31764a4aaf1c29223548b64002bf26c61d0d612346b4f

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for ipctk-1.2.1-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 bcc331929b051e827306c25d3f42e42e36c2abf662c72582cf47a0f48e7a1eaf
MD5 b8fbf6efc3fd91ec590af4892f0d185a
BLAKE2b-256 1a25ea23acbcf303be132975520ca6b192e02c7053bc5d427451df4297c2df3b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for ipctk-1.2.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 f59fd7dfa3c9edf73ec8cdefaec1b7a50106ec5de569cc75df23090c2e972c33
MD5 8663fb8c3847258c8cafd62f7233151f
BLAKE2b-256 7be5d550b48a4fae21cc80c55a36a0274bf5355878eb98e896012622bdadb9f7

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for ipctk-1.2.1-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 e6e93b233c7d6f5613bd779a88ba63d658026f0e9b1649e092e55e11d36ef96e
MD5 fd982e36069d305af8097577565baa0e
BLAKE2b-256 77040552fd82d66332052f1f64f547f648a6a510ed3a469ef44754348cbc7a08

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for ipctk-1.2.1-cp310-cp310-macosx_10_14_x86_64.whl
Algorithm Hash digest
SHA256 87f32f48e55e16ef4b40424cb0fc8dfb3126b86c7a9c282a457ad99059937587
MD5 744f4931918ef2ee2a86d28c07182284
BLAKE2b-256 594979dcebcfda1cd02b1b452c6b6edbc6281046a26908ffbc83a392e4d4e4f8

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for ipctk-1.2.1-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 c6949ff3742b0a6f2c3ce026fc0fe05e920c402d6b3ceac76d3639a989c86dbb
MD5 a3f8b5c57d5a64f45676d59975c65c56
BLAKE2b-256 3362338838121b0a545427717fa1524c3f0c518aa32d7a87b61777e480ff2027

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for ipctk-1.2.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 406e9791604a7e72db7b320037660ef5c58e4b17e6067d5a435be31cceb8edf6
MD5 d2bd86e145721de85ab1602f771a2b93
BLAKE2b-256 ea68d2a7c551653ee83ec7955af896754920fdcb5df8cdd875bf45c038e59e6d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for ipctk-1.2.1-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 ceb4354b5226f71af8fa195f8c5571da830a882d0925139b0b4772f51776e04c
MD5 eff51b1807f809f1077b00260562c789
BLAKE2b-256 5f948c0eea82decb5eb0b350ca1e52f3a8d856864f2a3b9937250c439d3c3a37

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for ipctk-1.2.1-cp39-cp39-macosx_10_14_x86_64.whl
Algorithm Hash digest
SHA256 aa821c57e4a50e1bc7af81350d7e77511841d4ba38603da82d45da2c75059f76
MD5 b9ffbdb25a24790c90e45c9d89a504bb
BLAKE2b-256 47d62adebfbd76aaf98772d843216111bb5d73ec8da35e1dd3575ae33afc2c54

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for ipctk-1.2.1-cp38-cp38-win_amd64.whl
Algorithm Hash digest
SHA256 a52717f6497fc9504fb3815209b9ab4e4b1743d7edabf3fca99efeba90cff073
MD5 b3ab162a6468c5350b511484725017f2
BLAKE2b-256 45c36aae034df156b6ee613f9f5db8ab9b6797a678add905f7423a11f04b878b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for ipctk-1.2.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 58866338bd7b25b690b46046ac40d329112fbd6e9130a9f185161bb9c34a7f51
MD5 77d6070b535a568c11b6540d1fe25353
BLAKE2b-256 1bfb81fcf8fef7187460096a2182080edcf8d35052f80cb65ec693a989364a13

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for ipctk-1.2.1-cp38-cp38-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 4f84a99d950b61cde405123d61cab24c677605b448033c480f1cad19ae7d5dac
MD5 32c6c6baa7978ca28fa4e5fa99517479
BLAKE2b-256 ab6ac81a6635419ad3654739a42489cd4719d83883f9ef09510440502e234086

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for ipctk-1.2.1-cp38-cp38-macosx_10_14_x86_64.whl
Algorithm Hash digest
SHA256 d0cf8e0626619f487770780c51d917a24cff8e94479c3a4a5e5af4d7cbaebe5b
MD5 19e05761d5e85bc8898806a504cc7ac6
BLAKE2b-256 5142831bfe2296659cf37f0810494401630aadf0c150f4ddbc8e7577efa80f99

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