Data Visualization
Interactive D3 components built from scratch in React — no chart libraries. The map overlays 45,000+ NASA meteorite landing records onto a zoomable world map; the bar chart demonstrates grouped data, animated transitions, and dynamic filtering. I wrote a deep-dive on the map component if you want the technical details.
Meteorite Strikes — Animated World Map
Loading
Data from NASA's open meteorite landings dataset. Each dot represents a recorded strike, color-coded by mass. Use the buttons to replay the draw and move animations.
Stardew Valley Crop Profits
Loading
Stardew Valley crop data turns out to be a great vehicle for demonstrating grouped bar charts — it has natural categories (raw, jar, and keg profit), seasonal filtering, negative values, and extreme outliers that require deliberate scaling decisions. The y-axis rescales per season rather than against the global max; this is an intentional tradeoff that keeps within-season comparisons readable at the cost of cross-season comparability. Data from the community forums.
Embassy Locations — State Department / Museum of Diplomacy
Originally built for the 2018 ImpactHack, where the project took second place. The visualization plots US embassy and legation locations through history on an animated timeline — play, pause, scrub to any year, and watch US diplomatic reach expand and shift in response to world events.
I later adapted it into a WordPress plugin for the International Museum of Diplomacy, adding gradient-edge dots, precise year display, and descriptive tooltips distinguishing embassies from legations. The museum's live page is no longer publicly accessible, but the prototype and project write-up are still up.