Open Source RoboticsRobots, software & learning

libuipc

Software

CUDA-accelerated C++ and Python simulation library coupling rigid and deformable objects through Incremental Potential Contact. [1]

Installation & first result →Official websiteGetting started

For
Robotics and simulation developers studying contact-rich scenes [1]
Source rights
Named licenses are documented by part. Review licenses
Unknowns
compute requirements not fully established. Review gaps

Source researched · Not tested by us
Sources checked · Research details

Licenses & related hardware

Requirements · Research details and dates

On this page

Overview

libuipc couples rigid bodies, deformable solids, cloth and threads in one contact simulation. It provides C++ and Python APIs over a CUDA backend, making it relevant to robotics developers studying interactions that a rigid-body-only scene cannot represent. Its penetration-free contact and performance statements are upstream claims, not results reproduced in this review. [1]

Is this for you?

Known limitations
  • Quick-start bunny.msh is an external input to the shown script.
  • Driver requirements differ for native GPU code and PTX compilation.
  • README describes backward-optimization Diff-Sim as coming soon.

[1]

What you need

Operating system
  • Linux
  • Windows

[1]

Languages / runtimes
  • C++
  • Python

[1]

Dependencies
  • Compatible NVIDIA GPU and driver for the CUDA backend
  • Python >=3.10,<3.15 for pyuipc
  • Source builds: C++20, CMake >=3.26, CUDA >=12.4 and vcpkg; README specifies Python >=3.11

[1] [2]

Installation & first result

Open the upstream getting-started guide [1]

  • Install the matching pyuipc release.
  • Run python -m uipc doctor and python -m uipc doctor --probe-cuda.
  • Supply the quick-start bunny.msh geometry, then initialize, advance and retrieve the scene.

Editorial assessment from cited documentation; no runtime testing.

[1] · Editorial assessment

Installation

Install pyuipc; pin 0.0.28 for this reviewed release and run uipc doctor before a scene.

Editorial assessment from cited documentation; no runtime testing.

[1] [6] · Editorial assessment

Hardware, models & data

Inputs and outputs

Geometry, material and contact settings define a scene; World.advance and World.retrieve step and retrieve simulated state.

[1]

Project notes

Check the GPU path before building a scene

The Python package is named pyuipc. This review covers v0.0.28; pin that version when following these notes. The documented wheel pipeline targets Linux and Windows with Python 3.10–3.14. Run python -m uipc doctor, followed by python -m uipc doctor --probe-cuda, before interpreting a scene failure as a modeling problem. [1] [2] [6]

Driver requirements depend on how the GPU executes the packaged code. The README distinguishes native SASS images from PTX that needs compilation by the driver; the PTX path has a higher driver floor. For the reviewed source, native images cover compute capabilities 7.5, 8.0, 8.6, 8.9 and 12.0, with reported driver floors of 525.60.13 on Linux and 528.33 on Windows. The PTX path requires 570.124.06 and 572.61 respectively. These wheels carry their CUDA runtime code, so the documented requirement is a compatible driver rather than a system CUDA Toolkit. It also calls out a CUDA DLL dependency in the older 0.0.27 wheel. Avoid carrying requirements from one wheel or GPU architecture to another. We have not installed or probed a wheel. [1]

Source builds are a separate route: the README lists CMake 3.26+, CUDA 12.4+, vcpkg and Python 3.11+, while the package itself accepts Python from 3.10. Those are different scopes, not evidence that every source-build combination works. [1] [2]

Supply geometry before copying the quick start

The quick-start script reads bunny.msh, applies a soft-body material, adds a ground plane and advances the scene for 100 steps. It does not create or download that mesh. Obtain suitable geometry first, then inspect both the simulated state and the material/contact settings. The sample collection is a separate repository and a submodule; a plain source archive does not include its checkout. [1] [3]

The README describes the system as designed for differentiability but labels backward-optimization Diff-Sim APIs as coming soon. Do not select this revision solely on the assumption that a complete differentiable optimization workflow is already available. [1]

Repository software and documentation use Apache-2.0 terms. Meshes, sample assets and dependencies need their own checks. This profile pins commit 9c5710ee4b716502e3757e7312360e5ee68cb79f and covers source research only: no CUDA installation, simulation, gradient test or robotics integration was run. [7] [6]

What we checked

Source researched only; no installation, training, benchmark or physical hardware test performed. No affiliate links or reused media.

Not yet established

  • Requirements: host computer
  • Version-specific hardware compatibility (ecosystem tags alone do not establish it)

Updates

Upstream last updated
Sep 3, 2026 [6]
Latest release
Sep 4, 2026 [6]
Profile updated
Oct 17, 2026
Sources last checked
Oct 17, 2026
Next review
Nov 17, 2026
Reviewed revision
v0.0.28 / 9c5710ee4b716502e3757e7312360e5ee68cb79f · software repository

Source files and licenses

Apache-2.0 simulation library; external scene assets and runtime claims remain separately scoped.

LayerAvailability / license
softwareavailable · Apache-2.0
Repository materials only; external components retain their own terms. [7]
documentationavailable · Apache-2.0
Repository materials only; external components retain their own terms. [7]

The simulation workflow does not use a pretrained model.

The scoped workflow uses supplied scene geometry, not a training dataset.

References

Each source links to the exact revision we read. “Used for” shows where this page relies on it.

Correction guidance · Discussion is not enabled · Profile format 0.7.0-draft.5

Change history