Skip to main content

# mesh_nav_3D

This package provides a 3D mesh-based navigation framework with multiple path planning algorithms and visualization tools.

## 📦 Installation

1. Install python3-venv python3-pip Python 3.12 and `pip`.
2. Download the `.whl` file provided.
3. Open a terminal in the directory containing the `.whl` file.
4. Run:

```bash
pip install mesh_nav_3D-<version>-py3-none-any.whl
```

> Replace `<version>` with the actual version string in the filename.

---

## 🚀 Quick Start

### Visualizing Planners

To visualize a single or multiple planners on a mesh, use the following code:

```python
from mesh_nav_3D import visualize_single_planner, visualize_multiple_planners, PlannerConfig

if __name__ == "__main__":
# To visualize a single planner
# visualize_single_planner('dijkstra_planner', PlannerConfig(mesh_file_path="terrain_mesh"))

# To visualize multiple planners
visualize_multiple_planners(
['AStarPlanner', 'HeatMethodPlanner'],
PlannerConfig(mesh_file_path="terrain_mesh")
)
```

Use the inbuilt `"terrain_mesh"` or a path to a valid mesh file.

---

### Benchmarking Multiple Planners

You can compare multiple planners across several scenarios using the following code:

```python
from mesh_nav_3D import compare_planners, PlannerConfig
import numpy as np

if __name__ == "__main__":
scenarios = [
(1, np.array([5.00, 9.55, 0.95]), np.array([6.82, 1.36, 0.10]), 8.42),
(2, np.array([9.09, 9.55, -0.33]), np.array([7.73, 1.36, 0.20]), 8.31),
(3, np.array([5.00, 9.55, 0.95]), np.array([0.91, 0.91, 0.48]), 9.57),
(4, np.array([9.09, 10.00, -0.27]), np.array([2.73, 0.91, 0.25]), 11.11),
(5, np.array([0.45, 9.55, -0.44]), np.array([8.18, 1.36, 0.19]), 11.27),
]

for scenario in scenarios:
print(f">>>>>>>>>>>>>>>>>>>>> Scenario {scenario[0]}")
start_point = scenario[1]
goal_point = scenario[2]
planners = [
"AStarPlanner",
"DijkstraPlanner",
"FlipOutPlanner",
"FastMarchingPlanner",
"GreedyBFSPlanner",
"HeatMethodPlanner",
"MMPPlanner",
"ThetaStarPlanner"
]
results = compare_planners(
mesh_file_path="terrain_mesh",
start_point=start_point,
goal_point=goal_point,
planners=planners,
output_dir="metrics_outputs",
save_results=True
)
```

Results will be saved to the `metrics_outputs/` folder.

---

## 📝 Notes

- Replace mesh file paths with actual paths to your `.obj`, `.ply`, or supported mesh files.
- Ensure all dependencies are installed. If not bundled in the wheel, manually install them:

```bash
pyvista = "^0.44.2"
tqdm = "^4.67.1"
pygeodesic = "^0.1.11"
potpourri3d = "^1.2.1"
pydantic = "^2.11.2"
psutil = "^7.0.0"
```

- **Planner Naming**: Planner names can be provided in the following formats:
- **snake_case**: e.g., `"dijkstra_planner"`,
- **PascalCase**: e.g., `"AStarPlanner"`,
- **Class instances**: e.g., `AStarPlanner()` (direct class instance).
All these formats will work and the system will handle the conversion automatically.

---

## 🤝 License

MIT.

```

Metadata

Release files for mesh_nav_3D 0.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for mesh_nav_3D 0.1.0
File Size Uploaded
mesh_nav_3d-0.1.0.tar.gz 29.2 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for mesh_nav_3D 0.1.0
File Interpreter ABI Platform
mesh_nav_3d-0.1.0-py3-none-any.whl Python 3 none any Details

Total release size: 66.0 kB

Release files / mesh_nav_3d-0.1.0.tar.gz

Download URL mesh_nav_3d-0.1.0.tar.gz
Size 29.2 kB
Tags Source
SHA-256 checksum
How to use checksums
ffa72a30b0b5cca56ac6e08c6a678e402c8a3d39e6c5131401db65806199ddf3
BLAKE2b-256 checksum
How to use checksums
e8bc26fa12f4c38a59a45e7ba2c603fdb03dec0302ad14a386adc4840367aa13
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via poetry/2.1.2 CPython/3.12.3 Linux/6.11.0-21-generic

Release files / mesh_nav_3d-0.1.0-py3-none-any.whl

Download URL mesh_nav_3d-0.1.0-py3-none-any.whl
Size 36.9 kB
Tags Python 3
SHA-256 checksum
How to use checksums
4df25163803dab1410455594d5595dda3e18fef80834b72db3678f337e9b004b
BLAKE2b-256 checksum
How to use checksums
f3950539551b26d7f1f8874dbeddb8d8a9720a33302b7b1c151569ab46887802
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via poetry/2.1.2 CPython/3.12.3 Linux/6.11.0-21-generic

Release history Release notifications | RSS feed

This release

0.1.0 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page