Building a warehouse occupancy map from LiDAR sweeps
Turn raw LAS/LAZ sweeps from a mobile robot into a nav-ready occupancy grid and 3D map — registration to export with zero scripts.
Drop each unit's CSV sensor logs on the canvas, pull the same channels live over REST, and resample everything onto one 10 Hz clock. Outlier and dropout flags roll up into a per-unit pass/fail report. Three of our twelve units failed before the truck was even loaded.
A field trial gives you one window. If unit 7's IMU has been silently dropping packets for two weeks, you find out in a muddy field, a day's drive from the lab. We used to eyeball a handful of plots per robot the night before and hope — twelve units, six sensors each, and exactly one person who knew which wiggles were normal. The pipeline in this walkthrough replaced that ritual with a report we now run every Friday.
The pass/fail lines aren't arbitrary. Above roughly half a percent dropout, our EKF starts trusting stale poses; above one percent outliers, the planner brakes for ghosts. Encode whatever your stack tolerates — the point is that the numbers live in the pipeline, argued about once as a team, instead of in someone's head.
Unit 13 arrived the week after we built this. Its logs went into the same folder, the canvas picked it up on the next run, and the report grew a row — no edits, no new scripts. The three units that failed that first Friday all shipped fixed the following week, with the flagged windows attached to the repair tickets.
Drag the trial folder — 12 units, six sensor CSVs each — onto the canvas. LSD groups them into one @load node keyed by unit ID and previews the first rows with inferred types. IMU at 200 Hz, GPS at 5 Hz, and battery at 1 Hz land as separate time-series entities.
Add a second @load node pointed at the fleet's REST endpoint with a 2-second poll. Rows stream in under the same schema, so each unit's live heartbeat sits right beside its recorded history. A green pulse on the node shows which units are actually awake.
Chain a @shape sync node and pick a 10 Hz common clock. Set linear interpolation for IMU and battery, hold-last for GPS fixes, and watch the merged timeline preview line up. The synced table is a cached intermediate, so the flagging downstream stays instant.
Add two flag nodes — a rolling MAD outlier check on every numeric channel, and a gap detector that marks any silence over 500 ms as a dropout. Flags paint straight onto the timeline as red and amber bands. Unit 7's IMU lights up immediately with forty dropouts an hour.
Finish with a @deliver report node and set the trial thresholds — dropouts under 0.5%, outliers under 1%, live heartbeat present. Every unit gets a pass/fail badge with its flagged windows attached as evidence. Export as CSV and post it before anyone loads the truck.
Ingest per-unit sensor CSVs and stream the same channels live from the fleet's REST API.
Resample every channel onto a 10 Hz clock, then flag outliers and dropout gaps per unit.
Score each unit against the trial thresholds and export the evidence-backed report.
Turn raw LAS/LAZ sweeps from a mobile robot into a nav-ready occupancy grid and 3D map — registration to export with zero scripts.
Model post-closure pit-lake rebound in LSD — krige borehole heads against a NetCDF recharge grid and deliver a live 3D drawdown model plus report.
Validate 63 LAS drillhole logs against collar surveys, krige a lithology block model, and export one glTF the whole team can open.
Build churn features from Postgres events and Parquet snapshots, catch a leaky window visually, and score the holdout with ONNX — on one canvas.
Score a million-row Parquet batch with an ONNX model — training-identical normalization, live previews, scored Parquet and metrics out.
Turn folders of line-scan images and a label CSV into an ONNX defect-segmentation pipeline with overlay QA and a per-coil defect report.
Turn GeoTIFF orthomosaics into a stitched land-cover raster with per-class area stats, using tiled ONNX segmentation you can preview at every step.
Align CMM measurement points to a nominal CAD mesh, compute point-to-surface deviation, and export a color-mapped glTF model with a pass/fail report.
Resample a week of machine sensor logs, baseline each tag, and flag drift and step changes on a live dashboard with a ranked maintenance shortlist.
Join a live meter feed to 85 campus building meshes, aggregate it hourly, and paint a 3D heat-map that repaints as energy use shifts, plus a weekly report.
Calibrate live strain telemetry, place gauges on the bridge mesh from a CSV, and color the structure by stress live — plus an alert log on every exceedance.
Turn a CT DICOM series into an ONNX organ segmentation you QA in 3D, then export an annotated volume and a per-organ volumetrics report.
Drag the trial folder — 12 units, six sensor CSVs each — onto the canvas. LSD groups them into one @load node keyed by unit ID and previews the first rows with inferred types. IMU at 200 Hz, GPS at 5 Hz, and battery at 1 Hz land as separate time-series entities.
Chain a @shape sync node and pick a 10 Hz common clock. Set linear interpolation for IMU and battery, hold-last for GPS fixes, and watch the merged timeline preview line up. The synced table is a cached intermediate, so the flagging downstream stays instant.
Add two flag nodes — a rolling MAD outlier check on every numeric channel, and a gap detector that marks any silence over 500 ms as a dropout. Flags paint straight onto the timeline as red and amber bands. Unit 7's IMU lights up immediately with forty dropouts an hour.
Finish with a @deliver report node and set the trial thresholds — dropouts under 0.5%, outliers under 1%, live heartbeat present. Every unit gets a pass/fail badge with its flagged windows attached as evidence. Export as CSV and post it before anyone loads the truck.