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

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.4.0.tar.gz (191.6 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.4.0-cp313-cp313-win_amd64.whl (1.3 MB view details)

Uploaded CPython 3.13Windows x86-64

ipctk-1.4.0-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (1.9 MB view details)

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

ipctk-1.4.0-cp313-cp313-macosx_11_0_x86_64.whl (1.6 MB view details)

Uploaded CPython 3.13macOS 11.0+ x86-64

ipctk-1.4.0-cp313-cp313-macosx_11_0_arm64.whl (1.4 MB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

ipctk-1.4.0-cp312-cp312-win_amd64.whl (1.3 MB view details)

Uploaded CPython 3.12Windows x86-64

ipctk-1.4.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (1.9 MB view details)

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

ipctk-1.4.0-cp312-cp312-macosx_11_0_x86_64.whl (1.6 MB view details)

Uploaded CPython 3.12macOS 11.0+ x86-64

ipctk-1.4.0-cp312-cp312-macosx_11_0_arm64.whl (1.4 MB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

ipctk-1.4.0-cp311-cp311-win_amd64.whl (1.3 MB view details)

Uploaded CPython 3.11Windows x86-64

ipctk-1.4.0-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (1.9 MB view details)

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

ipctk-1.4.0-cp311-cp311-macosx_11_0_x86_64.whl (1.6 MB view details)

Uploaded CPython 3.11macOS 11.0+ x86-64

ipctk-1.4.0-cp311-cp311-macosx_11_0_arm64.whl (1.4 MB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

ipctk-1.4.0-cp310-cp310-win_amd64.whl (1.3 MB view details)

Uploaded CPython 3.10Windows x86-64

ipctk-1.4.0-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (1.9 MB view details)

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

ipctk-1.4.0-cp310-cp310-macosx_11_0_x86_64.whl (1.6 MB view details)

Uploaded CPython 3.10macOS 11.0+ x86-64

ipctk-1.4.0-cp310-cp310-macosx_11_0_arm64.whl (1.4 MB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

ipctk-1.4.0-cp39-cp39-win_amd64.whl (1.4 MB view details)

Uploaded CPython 3.9Windows x86-64

ipctk-1.4.0-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (1.9 MB view details)

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

ipctk-1.4.0-cp39-cp39-macosx_11_0_x86_64.whl (1.6 MB view details)

Uploaded CPython 3.9macOS 11.0+ x86-64

ipctk-1.4.0-cp39-cp39-macosx_11_0_arm64.whl (1.4 MB view details)

Uploaded CPython 3.9macOS 11.0+ ARM64

File details

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

File metadata

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

File hashes

Hashes for ipctk-1.4.0.tar.gz
Algorithm Hash digest
SHA256 ee011ea418066beada3820c7d2fb54fdd43140a09715d7e7bc231825eb2a1314
MD5 54e97ba2b2e37cc731c7d2aec6592281
BLAKE2b-256 8892d675a03e41387c8143bbf38ed3def90579062f55c197151f5102bd37dd03

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for ipctk-1.4.0-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 2d36fcfb8530eff0c4743787b35d65c19dab121b32fd239b0c53e1a0eff58292
MD5 f3f0cdb1c898012341753f9c3c50a11a
BLAKE2b-256 61f5b690ad5d4e0ed5367e85c57d38279288f7d77a3d1cadabf3b368c95f5194

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for ipctk-1.4.0-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 e8b07db8d6cc8addc21f712f9183f98450785880906d4da60b0ef87ff8e9d468
MD5 8f99d42bf5b3452a4a64d87f5b03c5f2
BLAKE2b-256 5ca1b4fcaf75bbe4733bf2c65338458a96da953066f2bf9d8ce27637d7cde89b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for ipctk-1.4.0-cp313-cp313-macosx_11_0_x86_64.whl
Algorithm Hash digest
SHA256 745fa2cf4d317bb4bd2f4de4f1d01de3a94b663e902ffa34e4a465e9dad97329
MD5 a8be96a896ef2164891a616f0a7bd07a
BLAKE2b-256 d5db2941b6d9bd16d8aa72a334b4950eeded996bb4d1165abb3f1f0bede1c3a4

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for ipctk-1.4.0-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 552d43517e3348f76f3fa317520b0ff1c825c01980f7e9abd2667fc31033d4d3
MD5 40abd9352b6d490c66053cfa37f280c6
BLAKE2b-256 64d00379c708f4a09c87a0d4e60446e31a7e22f76b7a972d3ae127de4ab65b5d

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for ipctk-1.4.0-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 79a46453982bbffbaa7126433af0621f2524238b5a2fa10e3167b00c47ecacc8
MD5 f2eef7cd6e3e9f868994a02154b3e960
BLAKE2b-256 c0f5e01f1c387fcbcc1ac63a2597ddf4bbfaf7ac62df0452bb74ae58f104597a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for ipctk-1.4.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 ab7e9906aa45785ef21f4a9f33c41eaa156dbec31d8cd1c1f02271718da7decd
MD5 53c17066336503243ec73ddd225cbc7c
BLAKE2b-256 f7b429fe4fa5faf49d83b013698ed2ef1075e0e5384755b9dc743bf856891c97

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for ipctk-1.4.0-cp312-cp312-macosx_11_0_x86_64.whl
Algorithm Hash digest
SHA256 55b273d31be7fcf986ce448fdd319572c3f0cddf3847a47b79290281eefb1af9
MD5 fa5ac391dbb1f4f3d4a57da3a562e000
BLAKE2b-256 1c7a99d6e5b882339a91ff4b45d26559e012145925a094ef55cd7c6834af13ab

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for ipctk-1.4.0-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 ee5ce9d671041c671b7358a6d37580af17d7154a1464a43baba49e6ac13734f1
MD5 33146fd12e383c991a208bd48060262f
BLAKE2b-256 3fd247ccb7f8e37717d57156ca284461535a79b80db3ef843e7d7f7f140c905d

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for ipctk-1.4.0-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 48e3251f1e8b092b6d8fafc693e4f0326920562a068534ed9d2c7cde3e430a90
MD5 002e5d02cf17d9155d0c204341451ae8
BLAKE2b-256 ea834e266b719e9db664964d94d67a08f854d12f86132d898e12586c655a5754

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for ipctk-1.4.0-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 dddc2b1254daa080aa0e097b5fafa63a00d4e67088ffdd324021c9873984947d
MD5 71d34b05931e7ada4ac4102a65cf8d89
BLAKE2b-256 51ae83e355f3b4aa081f5ca76d2c4b38fd2e3dabbad05b71337099e6caf93304

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for ipctk-1.4.0-cp311-cp311-macosx_11_0_x86_64.whl
Algorithm Hash digest
SHA256 c08981ce8e86bede6e535cba864d750c4cbed7fb46fad38727f55cc0365c713b
MD5 3184ef5ab020f55be84eb86882e72cf6
BLAKE2b-256 53b9f3c1f8630b76d940163d13b9178a4c0b9e65dca8a3f29749c095769e538f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for ipctk-1.4.0-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 0918b173fffae6877d0cafc44b629bd11ea04e2d5cd9293276b7e7b39e3f4053
MD5 d78f46976c4b2dea0a812d40bffee827
BLAKE2b-256 f66ceeb8fa02b18c92e365aac55ab6c94db0b24ab4680da975fbb8225e593f3d

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for ipctk-1.4.0-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 996868e6f63147fcbd07ed4b55c9f0f9e12014477f0049f7b038661472345339
MD5 f176376847ff1121334d91ced957b981
BLAKE2b-256 21fc95622016ba4fdd9b5bafebaacd7f009b94b19153587e77057f2a35afd219

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for ipctk-1.4.0-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 5ee5382ba85d111aff9909d206d0f29670c5f2270453847b1d539fe3f60fcf7f
MD5 281e624b9242b183061826e88f8f6e89
BLAKE2b-256 a408c126c9c94476e060207454df3a55f4a1b8d3463a0308d5e6877f9dcd07e0

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for ipctk-1.4.0-cp310-cp310-macosx_11_0_x86_64.whl
Algorithm Hash digest
SHA256 6ac7054940d8209a5b82cc88d0b8756cad3f73e951acf2cb357cf18c8b0cf2f3
MD5 af62ecf3716e6aa2ed1c74bfa7fad0d3
BLAKE2b-256 bc59e5cd15623884aa79c7a1317d9664e65c43d368525edfd6a18e39862060ca

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for ipctk-1.4.0-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 395be0444dd3d43949cfa81f0f440023f500b9ef7de7a5f830d88861beb457c3
MD5 531f0a595cb3a08951438b241ae12562
BLAKE2b-256 429142ee6bd4d18af6a2b193f15e8e280e58b7fa58572d033a50f089f8731398

See more details on using hashes here.

File details

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

File metadata

  • Download URL: ipctk-1.4.0-cp39-cp39-win_amd64.whl
  • Upload date:
  • Size: 1.4 MB
  • Tags: CPython 3.9, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.8

File hashes

Hashes for ipctk-1.4.0-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 ba7c169f95b7d099e49ad147f80488d2a5f08640decc032496bdf463157ddd9c
MD5 4fa38262ade4a31e12384175ddd57df6
BLAKE2b-256 b186c95791b27ff6e46127bf873ce891f4dea9c69adddc734678c2c69b4b99f0

See more details on using hashes here.

File details

Details for the file ipctk-1.4.0-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for ipctk-1.4.0-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 f3f67eed67ca9b61bacb093ec64f8c8ae1b5ec60b73718727b6034b45385d3ba
MD5 37182eaf10947e8a17713a1cb0b37a89
BLAKE2b-256 e404d3d7450f3cf62ece435bb2eab9f919111ad68565365f9c73f6444314ffb6

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for ipctk-1.4.0-cp39-cp39-macosx_11_0_x86_64.whl
Algorithm Hash digest
SHA256 39057b5f11b9a3c770ecc06e2f97ed190612e964f5509c2f654d77b5d6fef2f3
MD5 9e837d613058784028459f866f51d3a9
BLAKE2b-256 347ac8e520fd888f5e7d93bc7ad4f2205f8406356f989560139bb40d2210844f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for ipctk-1.4.0-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 8325088e88b858fd65423193b16e56d160e7ce1cd6d9b77d399f999872c3c554
MD5 d7b8348cbe0e44e4d9df3eccf1f8dad0
BLAKE2b-256 04d30c90c27ff8021fe067d54749b86cc23abca738eae3baeb84b0fddbb58f62

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