drone-hub
MIT · Next.js 15 · open source

Drone property intelligence, as components.

A shadcn-style framework, not a hosted app. Drop a georeferenced map layer viewer, a 3D/point-cloud viewer, a video walkthrough player, or a Minecraft terrain voxelizer into your own React app. Own the viewer. Buy only the compute.

Components shipped
7
Reconstruction
260/264 frames
Flight altitudes
66ft + 159ft AGL
Bundle strategy
R2, zero egress

The killer feature is the toggle.

MapLibre GL + a satellite base, with the orthomosaic, hillshade, contours, and parcel boundary as independently toggleable, opacity-controlled layers. This is the real orthophoto from an actual nadir-grid drone flight over 2806 Prado — not a stock tile.

drone-hub-rust.vercel.app/components/layer-viewer
LayerViewer component showing a real drone orthomosaic draped over a satellite base map, with a layer control panel toggling hillshade, contours, and parcel boundary.

Seven components. One import each.

Every component below ships with a live demo, a props table, and a full docs writeup — no half-built showcase pages.

Video

VideoTour

Scrollytelling walkthrough that steps a floor plan through doorway-linked video clips.

real interior footage
Map

LayerViewer

Toggleable, opacity-controlled georeferenced overlays draped on a satellite base map.

real ortho + DSM
3D

Model3D

Orbit-and-measure 3D mesh / point-cloud viewer for a property's photogrammetry output.

real textured mesh
Map + 3D

LandOverlay

A geo-anchored 3D model draped onto the satellite map at a real lat/lon, alongside the ortho/hillshade/boundary layers.

real georeference
3D

VoxelTerrain

Blocky, Minecraft-style terrain renderer — a VoxelGrid of stacked, height-banded cubes, orbit-controllable.

real DSM-derived heightmap
Page

ContentEngine

A per-property page composing VoxelTerrain, sample engineering docs, and flight-log telemetry into one surface.

real flight telemetry
Utility

MinecraftExport

Real, spec-compliant Minecraft Sponge Schematic (.schem) download generated from a VoxelGrid.

real .schem output

Scrollytelling through a real property.

Doorway-linked video clips with a floor-plan minimap and standard playback controls — the walkthrough shown here is real, unedited interior footage.

drone-hub-rust.vercel.app/components/video-tour
VideoTour component playing real interior walkthrough footage with a floor-plan minimap and playback controls.

Same DSM, blocky instead of smooth.

The exact digital surface model LayerViewer renders as a hillshade, voxelized into a Minecraft-style terrain block — same renderer stack as Model3D (three.js / react-three-fiber), with a sample structure resting on top and a real .schem export.

drone-hub-rust.vercel.app/components/voxel-terrain
VoxelTerrain component rendering a blocky Minecraft-style terrain block derived from a real digital surface model, with a sample structure on top.

Nadir grid in, viewer-ready layers out.

The components aren't demoed against mockups — this is the actual sequence that produced the sample data every viewer above renders.

01

Fly nadir passes at two altitudes

Straight-down grid passes at 66ft AGL and 159ft AGL, ~75/70% overlap. No RTK on this rig — expect 1–3m drift, corrected manually downstream.

02

Reconstruct with OpenDroneMap

Structure-from-motion + dense point cloud → orthomosaic, DSM, and a textured mesh. 260 / 264 frames reconstructed on the reference job, run in Docker with the memory allocation actually tuned for it.

03

Tile and crop for the web

rio warp / rio cogeo create for a Cloud-Optimized GeoTIFF ortho; a custom Lambertian hillshade + block-pooled heightmap bake off the DSM; the mesh goes through gltf-transform (resize → simplify → Draco) for a browser-sized .glb.

04

Drop into the components

Every layer lands in a typed manifest — {'{'} id, type, url, opacity, toggle {'}'} — and LayerViewer, Model3D, and VoxelTerrain all read the same shape.

Deliberately minimal, deliberately owned.

Next.js 15 React 19 Tailwind v4 MapLibre GL PMTiles maplibre-cog-protocol turf.js terra-draw three.js react-three-fiber drei hls.js embla-carousel Cloudflare R2 Vercel

What's real and what isn't, stated plainly: LayerViewer, Model3D, VoxelTerrain, and LandOverlay run against a real OpenDroneMap reconstruction from an actual nadir-grid flight — a real orthomosaic, a real DSM, a real textured mesh, not a stock photo. VideoTour plays real interior footage from the same property. Where a component has no real counterpart yet — thermal imagery (no radiometric sensor owned yet), a recorded parcel boundary — that gap is labeled honestly in its own docs page rather than faked. This is a framework/showcase repo only: no real, un-released property content and no gating of any kind live here.

Free and open source, always.

A few ways to help — or just say hi.

Use it, star it, file an issue

Honestly the best support an open-source project can get. Try the live demo or star it on GitHub.

Hire me

Fractional-CTO and consulting work — fixing and scaling tech stacks. mdostal.com/contact

Buy me a coffee

If a component here saved you time. buymeacoffee.com/mdostal

+

More from the same shop

tools.mdostal.com — more open tools · life.mdostal.com — life outside the terminal · ff.events — Firefly Events, event discovery at 8,000+ events/day