vibeSpatial¶
vibeSpatial
GPU-accelerated spatial analytics for Python. Drop-in GeoDataFrame with CUDA kernels for predicates, overlay, dissolve, buffer, and I/O.
GPU-First Design
Every operation is designed for GPU dispatch first. NVRTC kernels for predicates, overlay, dissolve, buffer, and clip. CPU fallback is explicit and observable.
GeoPandas Compatible
GeoDataFrame and GeoSeries with the same API you know. Import vibespatial, use the same methods. 98% of the upstream GeoPandas test suite passes natively.
Device-Resident Geometry
OwnedGeometryArray keeps geometry on the GPU. No Shapely round-trips for GPU consumers. Lazy materialization when host access is needed.
Precision Control
Dual-precision dispatch (fp32/fp64) via PrecisionPlan. Every kernel respects ADR-0002. Consumer GPUs get fp32 fast paths; datacenter GPUs get full fp64.
Adaptive Runtime
Automatic GPU/CPU dispatch based on input size, device capability, and kernel support. Observable dispatch events for profiling and debugging.
Native I/O
GeoParquet, GeoArrow, Shapefile, and GeoJSON with GPU-accelerated WKB decode. Zero-copy Arrow paths when available.
Quick Example¶
import vibespatial
from shapely.geometry import Point, box
# Build a GeoDataFrame
gdf = vibespatial.GeoDataFrame(
{"name": ["a", "b", "c"]},
geometry=[Point(0, 0), Point(1, 1), Point(2, 2)],
)
# GPU-accelerated operations
buffered = gdf.geometry.buffer(0.5)
result = vibespatial.sjoin(gdf, other_gdf, predicate="intersects")
dissolved = gdf.dissolve(by="name")