[Projects]

Built & Deployed

From field infrastructure to embedded systems and AI prototypes, I make systems designed to work in production.

Other Projects

air.grid - Live U.S. Air Quality & Emissions

Live 2026

Geospatial / Data

Live atlas of what's in the air across the U.S.: industrial emitters sized by emissions, real-time air quality sensors, and the schools and neighborhoods next to them, together on one interactive map. 268,980 facilities, 15,897 live sensors, real proximity joins, no mock data.

  • Built and deployed in one day (Handshake AI Projects challenge, June 1, 2026) using Claude Code's multi-agent system: parallel ingestion subagents coordinated through a frozen data contract, with sequential gates for schema, joins, and QA.
  • Pulls from 6 federal sources (EPA ECHO, FRS, TRI, GHGRP, NCES, Census ACS) plus AirNow, PurpleAir, and OpenAQ sensor networks; a geo-matcher joins 108,336 schools to their nearest emitters with scipy cKDTree.
  • deck.gl over MapLibre renders 10k+ points at 60fps, with independent toggle layers for facilities, air quality, schools, demographics, and NWS wind drift.
  • Hourly scheduled job keeps sensor readings live; every figure shows its timestamp and source, and an Analysis view ranks regions and surfaces the most-exposed campuses.
Next.js 14TypeScriptTailwindMapLibre GLdeck.glRechartsPythonscipy cKDTreeVercel

Atlas · Cinematic 3D Travel Globe

Live 2026

3D / Geospatial

Interactive 3D globe pinning everywhere I've lived, vacationed, and done mission work, plus everywhere I plan to go. Styled after the Apple lock-screen Earth: deep space, city lights, atmospheric scattering, soft bloom. Custom-built with three.js and globe.gl plus hand-written GLSL; no UI kits, no state libraries.

  • Custom day/night shader pipeline: normal-mapped terrain, soft terminator blend, isolated and boosted city lights, Blinn-Phong ocean glint, and rotating cloud shadows cast onto the surface.
  • Camera-relative sun direction recomputed every frame so the lighting reads cinematic from any angle; the day/night toggle sweeps the terminator across the globe in about a second.
  • Procedural starfield of 4,500 stars from a seeded PRNG, identical on every load, with per-star size and color tiers for a realistic luminosity distribution.
  • Automatic performance mode detects software rendering and low-RAM devices before any WebGL allocation, then falls back to lite shaders, no MSAA, and halved geometry for roughly 50x less fill work.
  • 107-node append-only place tree validated at build time; URL-hash deep links fly the camera straight to any pin.
Next.js 14TypeScriptthree.jsglobe.glCustom GLSLTailwind CSSStatic export

Emergency Evacuation Guidance Device

Prototype

Embedded · IoT

ENGR 1201 · Houston City College · Spring 2026

Handheld emergency evacuation device that computes and displays real-time escape routes from live temperature sensor data. Routes rebuild automatically as heat develops; reroutes around blocked zones, escalating through warning states, and triggering Shelter-In-Place when all exits are blocked.

  • 5 DS18B20 probes on a shared 1-Wire bus monitor 10 building zones (6 rooms, 2 hallways, 2 exits), streaming one CSV line per second to the Pi over USB-serial at 115,200 baud.
  • Dijkstra's algorithm via NetworkX rebuilds the optimal evacuation route in under 1 ms on every sensor state change; edge weights are dynamically scaled by zone temperature.
  • D-pad navigation drives a top-down Pygame floor plan; RGB LED and piezo buzzer mirror the active threat state in real time.
Raspberry Pi 4ESP32Python · PygameNetworkXUSB-SerialSystemd

foreCastor

Private

Finance · Personal

A PIN-locked personal finance tracker with live bank integration, spending analytics, and a long-term savings goal engine, built entirely for personal use.

  • Connected to the bank via the Plaid API to automatically import, normalize, and categorize transactions without manual entry.
  • Tracks a long-term savings goal with a compound-growth projection chart and a target date that changes color based on whether you're on pace.
  • Per-category monthly spending limits with live progress bars that shift from teal to amber to red as you approach and exceed your budget.
  • Scans transaction history to detect recurring charges and suggests adding them to your fixed expenses list automatically.
  • 31 unlockable achievements tied to real savings milestones, income streaks, and usage habits, with rarity tiers styled after Steam.
Next.js 15TypeScriptTailwind CSSCloudflare PagesSQLitePlaid API