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.