KISS-ICP LiDAR Archive
A full-stack Next.js + FastAPI sample for robotics and autonomous-vehicle teams running continuous LiDAR SLAM. It ingests scan frames, runs the real open-source KISS-ICP engine (CPU-only) for odometry and incremental mapping, and archives raw scans, per-batch odometry, .ply map snapshots, and the session trajectory to Backblaze B2 over the S3-compatible API — a cheap, growing archive for offline analysis and model retraining.
Built for: Robotics and autonomous-vehicle teams running continuous LiDAR SLAM who need a cheap, S3-compatible archive for scans, odometry, map snapshots, and trajectories.

What it's built with
Each piece of the stack, and the job it does in this project.
- Next.js 16 + React 19
- Web application, dashboard, and session UI
- Tailwind CSS v4 + shadcn/ui
- Design tokens and reusable interface primitives
- Recharts + TanStack Query
- Trajectory/metrics charts and client-side data fetching
- FastAPI + Pydantic v2
- Layered, typed Python API and startup config validation
- KISS-ICP + NumPy
- Real CPU-only LiDAR odometry and incremental mapping engine
- boto3 + Backblaze B2
- S3-compatible object storage for scans, maps, and trajectories
- pnpm workspaces
- TypeScript and Python monorepo workflow
Core capabilities
What the project does out of the box, before you write any code of your own.
LiDAR session lifecycle
Create, run, browse, edit, and delete SLAM runs, persisted as B2 objects with no database.
Real KISS-ICP SLAM
The real open-source engine computes per-frame odometry and an incremental voxel-hash point-cloud map, CPU-only with no GPU.
Synthetic scan generator
Overlapping synthetic LiDAR frames along a known ground-truth path let the whole demo run with only B2 credentials — no sensor required.
Everything archived to B2
Raw scans, per-batch odometry, .ply map snapshots, and the full session trajectory are streamed to Backblaze B2 over the S3-compatible API.
Trajectory and archive explorers
A 2D trajectory plot, a session-scoped archive explorer, and a full-bucket File Explorer for previewing, downloading, and deleting objects.
A closer look
More screens from the running project.
Choose it for the right job
KISS-ICP LiDAR Archive is a head start for a specific shape of project, not a supported, general-purpose product.
Use it when
- You run continuous LiDAR SLAM and want a cheap, S3-compatible archive for scans, odometry, map snapshots, and trajectories you can query offline.
- You want a working example of the real KISS-ICP engine running CPU-only on the backend, with no GPU and no second API key.
- You want to see Backblaze B2 as the storage layer for a high-rate, data-heavy robotics pipeline, end to end.
Choose another path when
- You need a complete hosted SaaS product with user accounts, authentication, tenant isolation, or billing — none are included.
- You need a real sensor driver — the input is a synthetic scan generator, not hardware ingest.
- You plan to run heavy CPU SLAM on serverless functions — the KISS-ICP Run suits local dev or a long-lived container, not Vercel functions.
Project status and support
Report defects through the repository's GitHub Issues; this sample is provided as-is with no service-level agreement (SLA).


