Metadata-Version: 2.2
Name: pyompl
Version: 0.1.0
Summary: Python bindings for the Open Motion Planning Library (OMPL)
Keywords: OMPL,robotics,motion planning,pybind11,motion planning library,path-planning
Author-Email: Mukilan <mukilanar998@gmail.com>
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: Developers
Classifier: Intended Audience :: Science/Research
Classifier: Topic :: Scientific/Engineering
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: C++
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Operating System :: OS Independent
Classifier: License :: OSI Approved :: GNU Affero General Public License v3
Project-URL: Homepage, https://github.com/armukilan/pyompl
Project-URL: Repository, https://github.com/armukilan/pyompl
Project-URL: Issues, https://github.com/armukilan/pyompl/issues
Requires-Python: >=3.10
Description-Content-Type: text/markdown

# pyompl

**pyompl** provides Python bindings for the Open Motion Planning Library (OMPL), enabling efficient motion planning algorithms to be used directly from Python.

---

## What is OMPL?

The **Open Motion Planning Library (OMPL)** is a widely used C++ library for solving motion planning problems, particularly in robotics. It implements a variety of state-of-the-art sampling-based algorithms such as:

- RRT (Rapidly-exploring Random Trees)
- PRM (Probabilistic Roadmaps)
- RRT*
- BIT*

OMPL is designed to be:
- **Efficient** — optimized for high-performance planning in complex spaces  
- **Flexible** — supports different state spaces and constraints  
- **Modular** — easy to extend with custom planners and components  

It is commonly used in robotics, autonomous systems, and simulation environments.

---

## Why is OMPL useful?

Motion planning is a core problem in robotics and automation: determining a valid path from a start state to a goal state while avoiding obstacles.

OMPL provides:
- **Robust implementations** of proven planning algorithms  
- **Scalability** to high-dimensional spaces  
- **Abstraction layers** for different types of planning problems  

Instead of implementing these algorithms from scratch, developers can rely on OMPL’s well-tested and optimized implementations.

---

## What is Python?

**Python** is a high-level, general-purpose programming language known for:

- Simple and readable syntax  
- Rapid prototyping capabilities  
- Extensive ecosystem of scientific and machine learning libraries  

It is widely used in:
- Robotics research  
- Data science and machine learning  
- Simulation and experimentation  

---

## Why Python bindings for OMPL?

While OMPL is written in C++ for performance, many researchers and developers prefer Python for:

- Faster experimentation  
- Easier integration with tools like NumPy, SciPy, and ML frameworks  
- Reduced development overhead  

By exposing OMPL to Python, we combine:
- **C++ performance**  
- **Python usability**

---

## Why use pybind11?

**pybind11** is a lightweight library that enables seamless interoperability between C++ and Python.

It allows us to:
- Expose C++ classes and functions to Python  
- Maintain near-native performance  
- Write minimal “glue code”  

Using pybind11, **pyompl** wraps OMPL’s core functionality and makes it accessible as a Python module.

---

## Summary

**pyompl** bridges the gap between high-performance motion planning in C++ and the ease of use of Python, making advanced planning algorithms more accessible for research, prototyping, and application development.