Zach Miller
Tools & Open Source

Geospatial Tools

Utilities and systems built around coordinates, imagery, and maps.

Tide — a live 3D globe with wildlife photos, earthquake data, and a real-time USGS event panel

Tide

A real-time geospatial streaming engine: the whole planet, live

A live globe streaming ships (AIS), aircraft (ADS-B), earthquakes (USGS), wildfires (NASA EONET), and wildlife photographs worldwide in real time. Six Rust crates built from scratch (hand-written R-tree spatial index, H3 hexagonal level-of-detail, crash-safe write-ahead log) under a custom raw-WebGL2 renderer that composites a live photo atlas in a single draw call.

100K+ entities at 60 fps~720 ns R-tree insertp99 6.3 ms fan-out · 250 clients × 25K events/s
Rust · tokio · TypeScript · WebGL2 · GLSLView source ↗
Garyville Coordinate Transformer — Site, State Plane, and Lat/Lon conversion

Coordinate Transformer

Three coordinate systems, one hand-rolled solver

Converts between a plant's local site grid, Louisiana State Plane, and NAD83(2011) lat/long using a least-squares conformal fit to 92 surveyed control monuments, with per-point residuals and a built-in self-check. The first rigorous replacement for eyeballed georeferencing on site, and the tool behind the refinery's nuclear gauge asset layer. One HTML file, zero libraries.

±0.01 ft typical accuracy92 control monuments0 dependencies
Vanilla JS · custom least-squares

Where Can I Afford ● LIVE

Housing affordability, mapped to your own income

Enter your income and see where you can afford to buy or rent, color-coded as affordable, break-even, or out of reach, with an affordability gap for each place. Every assumption is adjustable, and the methodology is published on the site.

360° Pano CSV Generator — select site, process panoramas, export UTM positions

Cintoo 360° CSV Generator

From drone panoramas to a digital twin

Extracts GPS from 360° panoramas and projects WGS84 → UTM from first principles (ellipsoid math and meridional arc, no proj4) to position imagery inside a Cintoo digital twin. Reads and writes straight to the photo folder from the browser. In company-wide use.

Vanilla JS · custom UTM projection · File System Access API
Photo to KMZ — bundle geotagged photos into a Google Earth file

Photo → KMZ

A folder of photos becomes a Google Earth flight path

Reads every geotagged JPEG in a folder and bundles them into a single .kmz, one pin per photo with the full image embedded, using a hand-written EXIF/TIFF parser and a hand-written ZIP writer. No libraries, no server, no upload.

Vanilla JS · hand-written EXIF & ZIP

Fotmob Scraper

The data layer behind Hunch

Scrapes football data for ~1,400 World Cup players by exploiting Next.js build-ID JSON endpoints. Rate-limited, SQLite-backed, and built on the Python standard library alone.

Python · stdlib only · SQLiteView source ↗