Metadata-Version: 2.4
Name: pyterrainMap
Version: 1.3.2
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: Developers
Classifier: Intended Audience :: Science/Research
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
Classifier: Topic :: Utilities
Requires-Dist: pydantic>=2.0
Requires-Dist: httpx>=0.24
Requires-Dist: numpy>=1.24
Requires-Dist: pyyaml>=6.0
Requires-Dist: sqlalchemy>=2.0 ; extra == 'database'
Requires-Dist: psycopg>=3.1 ; extra == 'database'
Requires-Dist: duckdb>=0.9 ; extra == 'database'
Requires-Dist: pytest>=7.0 ; extra == 'dev'
Requires-Dist: pytest-asyncio>=0.21 ; extra == 'dev'
Requires-Dist: pytest-cov>=4.0 ; extra == 'dev'
Requires-Dist: black>=23.0 ; extra == 'dev'
Requires-Dist: ruff>=0.1 ; extra == 'dev'
Requires-Dist: mypy>=1.0 ; extra == 'dev'
Requires-Dist: sphinx>=6.0 ; extra == 'docs'
Requires-Dist: sphinx-rtd-theme>=1.0 ; extra == 'docs'
Requires-Dist: sphinx-autodoc-typehints>=1.20 ; extra == 'docs'
Requires-Dist: opencv-python>=4.8 ; extra == 'imaging'
Requires-Dist: pillow>=10.0 ; extra == 'imaging'
Requires-Dist: scikit-image>=0.21 ; extra == 'imaging'
Requires-Dist: scipy>=1.10 ; extra == 'scientific'
Requires-Dist: scikit-learn>=1.3 ; extra == 'scientific'
Requires-Dist: shapely>=2.0 ; extra == 'scientific'
Provides-Extra: database
Provides-Extra: dev
Provides-Extra: docs
Provides-Extra: imaging
Provides-Extra: scientific
License-File: LICENSE
Summary: Spatial intelligence platform for multi-robot terrain mapping. Real-time SLAM, traversability analysis, temporal normalization, fleet learning, persistent world knowledge.
Keywords: robotics,mapping,sensor-fusion,collaboration,terrain
Author-email: Georgi Mammen Mullassery <mullassery@gmail.com>
Requires-Python: >=3.10
Description-Content-Type: text/markdown; charset=UTF-8; variant=GFM
Project-URL: Documentation, https://github.com/Mullassery/pyterrain-map/blob/main/PYTHON_BINDINGS.md
Project-URL: Issues, https://github.com/Mullassery/pyterrain-map/issues
Project-URL: Repository, https://github.com/Mullassery/pyterrain-map

# PyTerrainMap

> **Spatial intelligence platform for multi-robot terrain mapping.** Real-time SLAM, traversability analysis, temporal normalization, fleet learning.

![Status](https://img.shields.io/badge/Status-Production--Ready-brightgreen.svg)
![Python](https://img.shields.io/badge/Python-3.10+-blue.svg)
![Tests](https://img.shields.io/badge/Tests-525%20Passing-brightgreen.svg)
![Distribution](https://img.shields.io/badge/Distribution-Wheels--Only-blue.svg)
![License](https://img.shields.io/badge/License-Proprietary-red.svg)

---

## Product Overview

**PyTerrainMap** is a proprietary, production-grade spatial intelligence platform for autonomous systems. Build 3D maps, real-time SLAM, traversability prediction, and fleet-wide terrain understanding.

### Why Robotics Teams Choose This

**The Problem**:
- SLAM systems are brittle and hard to integrate
- No unified way to handle out-of-order sensor data
- Traversability prediction requires manual annotation
- Fleet learning from multiple robots is complex

**The Solution**:
- Production SLAM implementation
- Temporal normalization (5D: x,y,z,time,quality)
- Traversability modeling
- Fleet consensus and learning
- Persistent world knowledge

**Result**: Robust multi-robot mapping, 10x faster exploration, fleet-wide learning.

---

## Installation

```bash
pip install pyterrainmap
# or with uv
uv pip install pyterrainmap

# Verify installation
terrainmap --version
```

### Requirements
- Python 3.10+
- Precompiled wheels for macOS, Linux

### Distribution Model

**Proprietary-first distribution**:
- ✅ Wheels-only via PyPI (no source code)
- ✅ Production-optimized spatial intelligence
- ✅ 525 comprehensive tests
- ✅ Used in production robotics systems

---

## Quick Start

```python
from pyterrainmap import SpatialGraph

# Initialize spatial graph
graph = SpatialGraph()

# Add sensor observations
graph.add_lidar_scan(
    robot_id='robot_1',
    timestamp=time.time(),
    frame=lidar_frame,
    pose=current_pose,
)

# Real-time SLAM
graph.update_slam()

# Query traversability
zone = graph.get_zone(x=10.5, y=20.3)
traversability = graph.predict_traversability(zone)
print(f"Can traverse? {traversability.is_passable}")
print(f"Difficulty: {traversability.difficulty}")

# Fleet consensus
fleet_graph = SpatialGraph.aggregate([
    robot1_graph,
    robot2_graph,
    robot3_graph,
])

# Predict zones other robots should avoid
risky_zones = fleet_graph.identify_hazardous_zones()
for zone in risky_zones:
    print(f"Zone {zone.id}: {zone.hazard_type} (confidence: {zone.confidence:.1%})")
```

---

## Features

- **3D Reconstruction**: Point clouds + occupancy grids
- **Real-Time SLAM**: Visual odometry + IMU fusion
- **Temporal Normalization**: 5D coordinate system (x,y,z,time,quality)
- **Traversability Modeling**: Prediction for unknown terrain
- **Fleet Learning**: Multi-robot consensus and sharing
- **Knowledge Graphs**: Persistent entity tracking
- **Production Ready**: 525 tests, real-time performance

---

## Performance

- **SLAM**: 30+ FPS on modern hardware
- **Traversability prediction**: <100ms per zone
- **Fleet aggregation**: Real-time for 10+ robots
- **Map size**: Handles unlimited-scale environments

---

## Quality & Testing

- **525 tests** passing
- **Production-grade** — used in robotics systems
- **Real-time** — guaranteed latency bounds

---

## Support

For production deployments: **mullassery@gmail.com**

---

**Version**: 1.3.0  
**License**: Proprietary  
**Distribution**: Wheels-only via PyPI  
**Python**: 3.10+  

Built for production multi-robot systems.

