Launch promotionLidarFlow is free while we launch — no card required
How it works

How LidarFlow turns a rosbag into a georeferenced map.

The flow is straightforward: upload the recording, pick your sensors, reconstruct in 3D from LiDAR or a single camera, georeference the output when GNSS exists, and review the artifacts. All in one browser workflow.

Upload .mcap or ROS1 .bagValidate LiDAR, GNSS, IMU, and TFRun GLIM + FlexCloud
Pipeline

Four steps. No SLAM tuning, no Docker.

01

Upload the recording

Start with a .mcap or ROS1 .bag. The uploader shows transfer progress first, then a short server-side prepare step while LidarFlow scans the recording's topics and sensors.

02

Pick your sensors

LidarFlow detects what's in the bag — LiDAR, GNSS, IMU, /tf_static, and any cameras with their intrinsics — and you choose what to reconstruct from: LiDAR, a single camera, or both.

03

Reconstruct in 3D

The LiDAR path runs GLIM SLAM; the camera path runs monocular metric depth to lift a single video stream into a metric point cloud. Either way the browser shows queue and worker health instead of leaving you to guess.

04

Georeference and review

When GNSS is present, FlexCloud aligns the result to real-world coordinates. You get an in-browser preview and downloadable PCD, LAS, and PLY artifacts.

Step-by-step walkthrough

What the browser workflow looks like.

Upload progress

The upload flow is staged. You see acknowledged browser transfer first and finalization second.

Validate · Topics
Topic validation

Topic suggestions surface before the run starts, including LiDAR, GNSS, IMU, and TF hints.

SLAM · Trajectory
lowhigh
Run status

Runs expose queue and worker health so stalls are visible instead of silent.

Georef · WGS84
Output preview

Successful jobs expose preview and download surfaces for mapped and georeferenced artifacts.

Under the hood

GLIM for SLAM. FlexCloud for georeferencing.

Engineers want to know what stack is running underneath the UI, and they should. LidarFlow makes that explicit instead of hiding it behind vague platform language.

GLIMFlexCloudROS 1 + ROS 2
Why not local-only?

Why not just run bag_to_pcd locally?

Because exporting timestamped point clouds is not the same job as building a mapped output. Local tools are still useful when you only need raw frames, but they stop short of a reproducible, browser-reviewable map.

ros2 run pcl_ros bag_to_pcd --ros-args \
  -p bag_path:=rosbag2_2025_01_01/ \
  -p topic_name:=/pointcloud \
  -p output_directory:=pcds

That upstream utility exports PCD frames for one topic. It does not validate your TF tree, run LiDAR SLAM, or georeference the result.

Ready to run yours
Push a real recording through the pipeline. No card to start.
FAQ

Common workflow questions.

Next step

Drop the bag. Get the map.