libcoal
An extension of the Flexible Collision Library
Decision gist · record as of 2026-08-14
Yes, if you need collision detection in a robotics or physics simulation context on macOS or Linux. The library is actively maintained, permissively licensed (BSD-3-Clause), and offers state-of-the-art performance via optimized GJK algorithms. Install friction is moderate due to compiled dependencies, but binary wheels are available for common platforms. No known vulnerabilities.AI-flagged interpretation of the facts on this page — verify before relying
Before you install
- Requires compiled C++ libraries; binary wheels available for macOS (x86_64, arm64) and Linux (x86_64, aarch64) only.
- Medium install friction due to compiled dependencies (cmeel-assimp, cmeel-boost, cmeel-octomap, cmeel-qhull).
- Actively maintained with recent releases; last commit 2026-08-01.
License · maintenance · safety
BSD-3-Clause (permissive) — BSD-3-Clause (permissive) allows commercial use, modification, and distribution with minimal restrictions—suitable for most projects.
last release 2026-05-21 (85 days) · last repo commit 2026-08-01
0 known vulnerabilities (OSV.dev, 2026-08-14) · 548,509 downloads/mo, #6,061 on PyPI
Alternatives
Verify before relying
pip install libcoal
import libcoal
# Create shapes and check collision
shape1 = libcoal.Ellipsoid(0.7, 1.0, 0.8)
shape2 = libcoal.Sphere(0.5)
request = libcoal.CollisionRequest()
result = libcoal.CollisionResult()
libcoal.collide(shape1, libcoal.Transform3s.Identity(), shape2, libcoal.Transform3s.Identity(), request, result)- Whether Python bindings expose the full feature set (contact patches, serialization, broad phase) described in the C++ documentation.
- Performance characteristics of the Python bindings relative to direct C++ usage.
- Availability of comprehensive Python API documentation beyond the excerpt provided.
What it is and what it does
libcoal is a Python interface to a modern collision detection and distance computation library that evolved from the Flexible Collision Library (FCL). It provides efficient implementations of the GJK and EPA algorithms for narrow-phase collision detection, along with support for safety margins, contact point computation, and a variety of geometric primitives (boxes, spheres, capsules, ellipsoids, convex meshes, height fields, octrees). The library is designed for robotics and physics simulation where fast, reliable collision checking is critical.
The package wraps a C++ core with compiled dependencies on cmeel-boost, cmeel-assimp, cmeel-octomap, and cmeel-qhull, making installation straightforward on supported platforms (macOS and Linux) but requiring binary wheels. It is actively maintained and used in production robotics frameworks for motion planning and dynamics simulation.
Use it for
- Motion planning for robotic systems: check collisions between links and obstacles during trajectory generation.
- Physics simulation: detect contacts and compute distances between rigid bodies in a dynamics engine.
- Mesh collision queries: load convex hulls from OBJ/STL/DAE files and perform fast collision detection with other objects.
- Safety margin enforcement: maintain minimum distance constraints between objects in real-time control loops.
- Contact analysis: compute contact points and patches between colliding geometries for force feedback or constraint solving.
Worth the install?
AI-flagged interpretation of the facts on this page. Verify before relying on it.
Yes, if you need collision detection in a robotics or physics simulation context on macOS or Linux.
The library is actively maintained, permissively licensed (BSD-3-Clause), and offers state-of-the-art performance via optimized GJK algorithms. Install friction is moderate due to compiled dependencies, but binary wheels are available for common platforms. No known vulnerabilities.
Install
libcoal on PyPI
Before you install
Medium install friction due to compiled dependencies (cmeel-assimp, cmeel-boost, cmeel-octomap, cmeel-qhull). Actively maintained with recent releases; last commit 2026-08-01. Requires Python >=3.9.
Requires compiled C++ libraries; binary wheels available for macOS (x86_64, arm64) and Linux (x86_64, aarch64) only.
License in practice
BSD-3-Clause (permissive) allows commercial use, modification, and distribution with minimal restrictions—suitable for most projects.
Quickstart
pip install libcoal
import libcoal
# Create shapes and check collision
shape1 = libcoal.Ellipsoid(0.7, 1.0, 0.8)
shape2 = libcoal.Sphere(0.5)
request = libcoal.CollisionRequest()
result = libcoal.CollisionResult()
libcoal.collide(shape1, libcoal.Transform3s.Identity(), shape2, libcoal.Transform3s.Identity(), request, result)
Verify before relying
- Whether Python bindings expose the full feature set (contact patches, serialization, broad phase) described in the C++ documentation.
- Performance characteristics of the Python bindings relative to direct C++ usage.
- Availability of comprehensive Python API documentation beyond the excerpt provided.
Package facts
| License | BSD-3-Clause permissive |
| Python support | Supports the current Python release >=3.9 |
| Install friction | Medium. Platform-specific wheel |
| Runtime dependencies | 5 packagescmeelcmeel-assimpcmeel-boostcmeel-octomapcmeel-qhull |
| Maintenance | Actively maintained 85 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 548,509 / month, #6,061 on PyPI 30-day window, as of 2026-08-14 |
| Known vulnerabilities | None known OSV.dev, checked 2026-08-14 |
Evidence: libcoal-3.0.3-0-py3-none-macosx_10_9_x86_64.whl; libcoal-3.0.3-0-py3-none-macosx_11_0_arm64.whl; libcoal-3.0.3-0-py3-none-manylinux_2_28_aarch64.whl; libcoal-3.0.3-0-py3-none-manylinux_2_28_x86_64.whl
Tags
Let your AI agent find packages like this
Example. Real query, live index.
You found this page by searching. An agent finds it by wishing: SkillFed indexes 14,416 PyPI packages by what they can do, searchable in plain language.
wish › “3d geometry distance computation”
- libcoallibcoal provides Python bindings for collision detection and distance…
- coalCoal is a collision detection and distance computation library that…
- coal-libraryCoal provides collision detection, distance computation, and contact…
Give your agent the search over MCP, or paste the wish link into any chat.
More Scientific/Engineering packages
NumPy provides an N-dimensional array object and a comprehensive suite of mathematical, linear algebra, Fourier transform, and random number functions for scientific computing in Python.
pandas provides fast, flexible data structures (Series and DataFrame) for loading, cleaning, transforming, and analyzing labeled or relational data in Python.
scipy provides numerical algorithms for mathematics, science, and engineering—including optimization, integration, linear algebra, Fourier transforms, signal and image processing, and ODE solvers—built on numpy arrays.
scikit-learn provides a comprehensive Python library for supervised and unsupervised machine learning, including classification, regression, clustering, dimensionality reduction, and model evaluation tools built on NumPy and SciPy.
Install it if you need to train, evaluate, or deploy supervised or unsupervised learning models.
dill extends Python's pickle module to serialize and deserialize a much wider range of Python objects, including functions, lambdas, classes, and interpreter sessions, to byte streams for storage or network transmission.
Multiprocess is an enhanced fork of Python's standard multiprocessing library that uses dill for better serialization, allowing you to spawn processes with a threading-like API and share complex objects between them.
Install it if you use multiprocessing and encounter pickle serialization limits with lambdas or complex objects.
See also coal · coal-library · python-fcl · ifcopenshell · cmeel-qhull · libpinocchio · rsl-rl-lib · mplib · vhacdx · pin