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/ A live energy twin of a university campus
Campus heat-map with buildings colored by live energy draw above the weekly report replace with clip · 1600 × 900

A live energy twin of a university campus

Drop 85 campus building meshes, the meter registry, and a live REST feed on one canvas, join meters to the buildings they sit in, and roll the readings up by hour. You get a 3D heat-map that repaints as the feed ticks and a weekly energy report that rebuilds itself.

▶ Video walkthrough Intermediate ⏱ 30 min energycampusheat-maplive-feedbuildings

The campus already has the data#

Every campus building already meters its own power, and facilities keeps a PostgreSQL registry of where each of the ~1,200 meters lives. What's missing is the picture: a way to see the whole campus breathing at once instead of squinting at 85 separate trend charts. The meshes exist too — they were exported from the campus BIM model as glTF for a wayfinding project and then forgotten in a share drive.

One canvas, three sources#

LSD lets the geometry, the registry, and the live feed share a single pipeline instead of three tools. The 3D model is not a viewer bolted to a dashboard — the buildings are entities the moment the campus lands, the meters are rows, and the readings are a stream, all meeting on one canvas. Because every node is live, the hourly rollup and the heat-map read from the same cached intermediate, so a fresh reading repaints the campus without re-running anything upstream.

What you get out#

Two deliverables fall out of the same canvas: a 3D heat-map that colors each building by its current draw and updates as the feed ticks, and a weekly PDF that trends consumption and names the top ten buildings. When facilities adds a meter to the registry, it shows up on the twin on the next poll — no scripts, no manual rebuild.

Step by step

How it's built

  1. #037 · Load 01

    Drop the campus on the canvas

    Drag the folder of 85 building meshes onto the canvas and LSD stacks them into one @load node, rendering the whole campus in the 3D viewer. Each building keeps its ID from the filename, so it is already an addressable entity. Spin the campus to confirm nothing landed in the wrong coordinate frame.

    All 85 building meshes rendered as one campus in the 3D viewer replace with screenshot · 1200 × 750
  2. 02

    Pull in the meter registry

    Add a @load node pointed at the meters table in PostgreSQL. LSD previews all 1,200 rows — meter ID, building ID, and the lat/long where each sits. There is no export step; the connection is live, so meters facilities adds later just show up.

    Meter registry preview with 1,200 rows from PostgreSQL replace with screenshot · 1200 × 750
  3. 03

    Stream the live meter feed

    Point a third @load node at the metering REST endpoint and set it to poll every five minutes. Readings arrive as live entities — kW draw per meter, timestamped — and the node preview ticks over as fresh values land. This is the pulse the twin runs on.

    Live REST meter feed ticking over in the load node preview replace with screenshot · 1200 × 750
  4. #038 · Shape 04

    Join meters to their buildings

    Chain a @shape spatial-join node that drops each meter coordinate into the building footprint it falls inside. The preview draws a line from every meter to its host building so stray gauges stand out. Each reading is now tagged with a building ID.

    Spatial join linking each meter to the building footprint it sits in replace with screenshot · 1200 × 750
  5. 05

    Aggregate consumption by hour

    Add a @shape aggregation node that rolls the raw meter ticks into hourly kWh per building. Drag the window control and the bars rebuild live; the hourly table is a cached intermediate the heat-map and report both read. Switch to daily to sanity-check totals.

    Hourly kWh-per-building bars rebuilding as the window changes replace with screenshot · 1200 × 750
  6. #039 · Deliver 06

    Paint the heat-map and schedule the report

    Wire the hourly table into a @deliver node that colors each building blue-to-red by current draw — the campus repaints as the feed updates. Add a report delivery set to weekly and it bakes trends, top buildings, and heat-map snapshots into a PDF. Both outputs rebuild from the same canvas.

    Campus heat-map colored by live draw beside the weekly report layout replace with screenshot · 1200 × 750
The pipeline

Every step used, at a glance

Load

Meshes, meters, feed

Stack 85 building meshes, the meter registry, and the live meter feed onto one canvas.

glTFPostgreSQLREST/HTTP
Shape

Join & aggregate

Spatially join meters to the buildings they sit in and roll their ticks into hourly kWh per building.

Deliver

Heat-map & report

Paint a live 3D campus heat-map and schedule a weekly energy PDF from the same table.

glTF
85 buildings
one live campus twin
Hourly
energy rolled up per building
Weekly
energy report on autopilot

More use cases