All projects
SampleSample · unsupportedUnsupported · no SLA

MMDetection3D LiDAR Dataset

Full-stack pipeline that turns raw LiDAR point clouds into 3D object-detection and segmentation datasets with the real MMDetection3D engine — raw scans, per-frame annotations, dataset manifests, and model checkpoints stored on Backblaze B2 over the S3-compatible API. Next.js + FastAPI; runs on local OSS with B2 credentials only.

Built for: Autonomous-vehicle and robotics teams building 3D object-detection and segmentation datasets from raw LiDAR point clouds, who want Backblaze B2 as the storage layer for scans, annotations, checkpoints, and dataset manifests.

MIT licensed · Updated Aug 17, 2026

Dashboard with LiDAR dataset metrics, per-class distribution, and recent detection runs
The dashboard gives a LiDAR overview — frames ingested, runs completed, 3D boxes, write amplification, and storage used — with a per-class box distribution and a recent-runs table.

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 and dashboard UI
Tailwind CSS v4 + shadcn/ui + Recharts
Design tokens, interface primitives, and charts
TanStack Query
Client-side data fetching and cache management
FastAPI + Pydantic v2
Typed Python API and configuration validation
MMDetection3D (OpenMMLab) + PyTorch
Local 3D-detection engine, opt-in and lazily imported
boto3 + Backblaze B2
S3-compatible object storage access
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.

  • End-to-end LiDAR dataset pipeline

    Ingest raw scans, run detection/segmentation, produce per-frame annotations, and emit a dataset manifest — every stage backed by Backblaze B2 over the S3-compatible API.

  • The real MMDetection3D engine, run locally

    Run PointPillars, SECOND, or CenterPoint from OpenMMLab against your sensor logs. The engine is opt-in and lazily imported, CPU by default with GPU auto-detected, so the base app and its checks stay green without it.

  • Dataset manifest with train/val split

    Every frame is tied to its 3D-box annotation in a JSONL manifest with a train/val split, alongside archived model-checkpoint records — the dataset artifact teams actually consume.

  • Sample-scoped Dataset explorer plus full-bucket Files

    Browse the sample's B2 objects grouped by pipeline stage — raw scans, preprocessed tensors, annotations, manifests, checkpoints — next to a reusable full-bucket Files explorer and drag-and-drop ingest.

  • Typed full-stack scaffold, enforced by code

    A Next.js frontend and layered FastAPI service with a checked API contract, structural tests, import-boundary lints, and agent-ready docs so a coding agent can read the repo and extend it safely.

A closer look

More screens from the running project.

Ingest page for uploading raw LiDAR frames to Backblaze B2
Upload raw KITTI .bin / .pcd LiDAR frames to B2 as a named sensor log, alongside a full-bucket drag-and-drop uploader.
Detection Runs page with a create form and the runs library table
Create a run against a sensor log and browse the runs library, where each run shows its model, task, status, frame count, and 3D-box total.
Run detail with per-frame BEV previews and 3D-box annotations
Run detail shows per-frame bird's-eye-view previews and 3D-box annotations with train/val split and write amplification, plus a downloadable dataset manifest and checkpoint record.
Dataset explorer grouping B2 objects by pipeline stage
A sample-scoped B2 explorer that groups every object by pipeline stage: raw scans, preprocessed tensors, annotations, dataset manifests, and checkpoints.

Choose it for the right job

MMDetection3D LiDAR Dataset is a head start for a specific shape of project, not a supported, general-purpose product.

Use it when

  • You are building 3D object-detection or segmentation datasets from raw LiDAR point clouds and want B2 as the storage layer for scans, annotations, checkpoints, and manifests.
  • You want to ingest raw .bin / .pcd LiDAR frames to B2 and run the real MMDetection3D engine locally to produce per-frame 3D bounding-box annotations.
  • You need a JSONL dataset manifest that ties every frame to its annotation and a train/val split.
  • You want a full-stack TypeScript and Python scaffold with enforced architecture, a checked API contract, and tests to build on.

Choose another path when

  • You need a complete hosted SaaS product, a managed training service, or a drop-in production annotation platform.
  • You expect the app to train models — it archives pretrained checkpoints and runs inference, it does not train.
  • You need a managed GPU fleet: the engine runs locally, and SECOND / CenterPoint generally need CUDA/Linux while PointPillars is the CPU-friendly default.
  • You need built-in user accounts, authentication, tenant isolation, or billing.
  • You only need generic B2-backed file upload and browsing without the LiDAR/ML pipeline — the Vibe Coding Starter Kit is a lighter starting point.
Sample · unsupported

Project status and support

Report defects and feature requests through the repository's GitHub Issues; this sample carries no service-level agreement (SLA).