Sandbox — LSD is in active testing. All systems operational·payments are test-mode (no real charges).
Overview Use Cases News Docs Tool Store Support Community Get LSD
Use cases/ Digital Twins/ Streaming bridge strain gauges into a 3D twin
Bridge mesh color-mapped by live stress with the 48 gauge positions marked replace with screenshot · 1600 × 900

Streaming bridge strain gauges into a 3D twin

Drop gauge locations from a CSV, the bridge mesh, and the live telemetry feed on one canvas, calibrate raw microstrain to stress, and set per-member thresholds. You get a color-mapped stress twin that repaints as trucks cross and an alert log you can export the moment a gauge exceeds its limit.

Advanced ⏱ 35 min strainstructural-healthbridgetelemetryalerts

Strain data without a picture#

A structural-health rig on a bridge produces exactly one thing operators can't use directly: a firehose of microstrain numbers from a few dozen gauges, streaming over REST. Somewhere there's a CSV of where each gauge is bonded and a glTF mesh of the structure from the design model, but the numbers and the geometry never meet. When a gauge spikes, the on-call engineer is reading a row in a table, not looking at the girder.

The twin is the pipeline#

LSD binds the three sources — gauge map, mesh, and live feed — into one canvas so the stress lives on the structure instead of in a spreadsheet. The mesh isn't a separate CAD viewer; the gauges are entities placed on the structure, and every reading flows to the member it's bonded to. Calibration and thresholding are live nodes, so the limits you set are things you watch take effect, not constants buried in a script. Cached intermediates mean a fresh telemetry batch repaints the twin and re-scans for exceedances without touching the calibration upstream.

What ships#

Two things come off the same canvas: a color-mapped 3D twin that repaints as load crosses the span, and an alert log — one CSV row per exceedance window with gauge, timestamp, peak stress, and duration — ready to hand to the maintenance team. Point it at the next bridge by swapping the gauge CSV and the mesh.

Step by step

How it's built

  1. 01

    Drop the gauge map on the canvas

    Drag the gauge-location CSV onto the canvas and a @load node lists all 48 gauges — ID, position along the deck, and mounting face. LSD plots them as points in the 3D viewer straight away. Each gauge is now an entity waiting for its mesh and its signal.

    48 gauge positions plotted from the CSV in the 3D viewer replace with screenshot · 1200 × 750
  2. #040 · Load 02

    Load the bridge mesh

    Drop the bridge's glTF export next to it and the structure renders around the floating gauge points. Line the two up and the gauges settle onto the girders and deck where they are actually bonded. Now every reading has a place to land on the geometry.

    Bridge mesh rendered around the plotted gauge points replace with screenshot · 1200 × 750
  3. 03

    Stream the live telemetry

    Point a @load node at the telemetry REST endpoint and set it to poll every few seconds. Raw microstrain per gauge streams in as live entities, and the node preview ticks as traffic crosses the span. That stream is the twin's heartbeat.

    Raw microstrain streaming into the load node as traffic crosses replace with screenshot · 1200 × 750
  4. #041 · Shape 04

    Calibrate microstrain to stress

    Chain a @shape calibration node and apply each gauge's gauge-factor and zero offset from the CSV. Raw counts become engineering stress in MPa, and the preview replots the corrected values live. Nudge a zero offset and the whole channel re-baselines instantly.

    Calibration node converting raw microstrain to MPa with live offsets replace with screenshot · 1200 × 750
  5. 05

    Threshold and catch exceedance windows

    Add a @shape threshold node and drag the caution and alarm limits per member. LSD flags every window where a gauge crosses its limit and lists start, peak, and duration. Because the node is live, tightening a limit re-scans the whole history in place.

    Exceedance windows listed with peak stress and duration per gauge replace with screenshot · 1200 × 750
  6. #042 · Deliver 06

    Color the twin and export the alert log

    Wire the calibrated stress into a @deliver node that colors the mesh green-to-red by live load — the bridge repaints as each axle rolls across. Set an alert-log delivery that writes every exceedance window to CSV with gauge, time, and peak. Drop a new telemetry batch and both rebuild from cached intermediates.

    Bridge color-mapped by live stress beside the exported alert log replace with screenshot · 1200 × 750
The pipeline

Every step used, at a glance

Load

Gauges, mesh, feed

Place 48 gauges from CSV, load the bridge mesh, and stream live strain telemetry onto one canvas.

CSVglTFREST/HTTP
Shape

Calibrate & threshold

Convert raw microstrain to engineering stress and flag every window where a gauge crosses its limit.

Deliver

Stress twin & alerts

Color the bridge by live stress and export an alert log of every exceedance.

glTFCSV
48 gauges
live on one bridge twin
Live
stress repainted as traffic crosses
Every exceedance
logged and exported to CSV

More use cases