Spatial intelligence
for hardware AI.
One API to give your drones, robots, and autonomous systems the ability to reconstruct, understand, and simulate the physical world in real time.
Python · TypeScript · REST · gRPC · 99.9% uptime SLA
From sensor to spatial intelligence in 10 lines.
Our Python SDK handles the full pipeline — reconstruct from any source, build a queryable scene graph, and run physics simulations. All with a single API key.
import percept # Initialize with your API key client = percept.Client( api_key="pk_live_..." ) # Reconstruct from drone video scene = client.reconstruct( source="drone_capture.mp4", mode="metric_3d" ) # Query the scene graph defects = scene.query( type="structural_defect", severity="critical" ) # Simulate physics result = scene.simulate( scenario="fire_spread", duration=4, wind_speed=12.5 ) # → 2.4M vertices · 12 defects · 96.2% confidence
Three endpoints. The entire pipeline.
Raw sensor input goes in. Structured spatial intelligence comes out. Each endpoint builds on the last.
Reconstruct
percept.reconstruct()Turn any video, LiDAR scan, or satellite image into metrically accurate 3D. Supports phone cameras, drones, terrestrial scanners, and satellite.
| Param | Type | Description |
|---|---|---|
| source | str | Video file, LiDAR point cloud, or URL |
| mode | str | "metric_3d" | "mesh" | "point_cloud" |
| coordinate_system | str | CRS code (default EPSG:4326) |
| resolution | float | Target resolution in meters |
scene = percept.reconstruct( source="drone_capture.mp4", mode="metric_3d", coordinate_system="EPSG:4326" ) # → 2.4M vertices · ±2cm accuracy · 3m 12s
Query
scene.query()Query the physical world like a database. Filter by object type, material, defect severity, spatial region, or semantic label. Returns structured results with coordinates.
| Param | Type | Description |
|---|---|---|
| type | str | Object or defect type to find |
| severity | str | "critical" | "high" | "medium" | "low" |
| within | Bounds | Spatial filter (bbox, radius, polygon) |
| material | str | Filter by detected material type |
defects = scene.query(
type="structural_defect",
severity="critical",
within=scene.bounds(
lat=37.87, lon=-122.26, radius=500
)
)
# → 12 critical defects · georeferencedSimulate
scene.simulate()Run real physics on real geometry. Fire spread, structural failure, flood inundation, corrosion — all grounded in the actual reconstructed environment.
| Param | Type | Description |
|---|---|---|
| scenario | str | "fire_spread" | "structural_failure" | "flood" | "corrosion" |
| duration | int | Simulation hours |
| wind_speed | float | Wind speed in km/h |
| wind_direction | int | Wind bearing in degrees |
result = scene.simulate(
scenario="fire_spread",
duration=4,
wind_speed=12.5,
wind_direction=225
)
for frame in result.frames():
print(f"t={frame.time}s area={frame.area_m2}m²")
# → 96.2% prediction accuracyEverything else you need.
Beyond the three core endpoints — streaming, export, edge deployment, versioning, and event-driven workflows.
Streaming Ingest
percept.stream(feed, fps=30)Real-time processing of live sensor feeds. Continuously update the scene graph as new data arrives.
Export & Integrate
scene.export("gltf", crs="EPSG:4326")Export to glTF, LAS, GeoJSON, or OBJ. Integrate with GIS, game engines, CAD, or your own pipeline.
Webhooks & Events
percept.on("defect_detected", cb)Event-driven architecture. Trigger workflows when objects change, defects appear, or thresholds breach.
Batch Processing
percept.batch(sources=[...], parallel=4)Process thousands of captures in parallel. Automatic queuing, retry, and progress tracking built in.
Edge Deployment
percept.edge(device="jetson", model="v3")Run reconstruction on NVIDIA Jetson, Qualcomm, or custom edge hardware. 30fps on-device inference.
Version Control
scene.checkpoint("pre-storm-2024")Snapshot and diff scene graphs over time. Track how environments change between captures.
Every robot.
One shared memory.
Percept gives your fleet a persistent semantic 3D map of every environment they encounter — every object indexed by type, location, and last seen time. When one robot discovers something, every robot knows.
- Warehouse fleets: any picker instantly knows where any SKU was last seen — even if another robot moved it
- Home robots that remember where you left your keys, your glasses, your phone
- Search & rescue teams building a live shared map of survivors, hazards, and cleared zones
- Query the memory graph by object type, confidence, recency, or spatial region via API
from percept import memory, fleet # Any robot queries shared fleet memory shelf = memory.find( object="package", sku="4421", max_age_s=30 ) # → aisle A · 1.2s ago · robot 1 observed # Sync memory map across entire fleet fleet.share( map=memory.export(), agents="all" ) # → 3 agents · 284 objects synced · 247ms
Start building in minutes.
Free tier available · No credit card required · Full SDK access