Noah Finkelstein

Mathematics–computer science and physics at Brown University. Co-founder of CourseTrees, and machine learning research in the Bari–Hazeltine group.

I am an undergraduate at Brown, class of 2028, studying mathematics–computer science and physics. Most of what I work on ends up somewhere between the two: machine learning that has to respect a differential equation, statistics on data that was never collected for the question being asked, software for a problem I ran into myself.

Away from that I play chess, which I have been losing at since I was seven and running tournaments for since I was sixteen. I also do astrophotography, which is mostly standing in a field in the cold waiting for a cloud to move. If any of this overlaps with something you are working on, I would like to hear about it.

Noah Finkelstein on a Providence sidewalk, a wild turkey behind him
Fig. 2. Providence, 2026. The turkey lives on College Hill.
Fig. 1. The trefoil, or (2,3) torus knot: the simplest knot that cannot be undone without cutting the string.

Work

Apr 2026 – now

live

CourseTrees (opens in a new tab)

A course catalog is a few thousand paragraphs with the prerequisites buried in the prose, which makes it a graph pretending to be a list. CourseTrees parses the prose back into edges and lets you walk the result: click a course and see what it needs and what it opens up, next to grade distributions, ratings, and degree requirements. Live across 150 universities. The layout is a force simulation written by hand and run in a web worker, because no off-the-shelf layout stayed readable at catalog scale. Co-founded with Rohan Vittal. Built with Next.js, TypeScript, Cytoscape, Python, PostgreSQL and Supabase.

The CourseTrees map of Brown's courses: colour-coded course nodes joined by prerequisite arrows, clustered by department.

Jul–Aug 2026

live

BrownSync (opens in a new tab)

A live map of what is happening at Brown right now: events, club meetings, classes in session, athletics. It pulls from LiveWhale, an athletics calendar feed, campus news, and OpenStreetMap onto a 2.5D MapLibre map locked to College Hill. The TypeScript app and the Python ingestion pipeline share no code at all — they stay compatible by implementing one written data contract twice, as Zod schemas on one side and Pydantic models on the other. Built with TypeScript, MapLibre, Python, Zod and Pydantic.

BrownSync's 3D map of College Hill, with buildings that have classes in session lit up and a feed of upcoming events beside it.

Jul 2026

open source

brown3d (opens in a new tab)

Walk around Brown’s campus and downtown Providence in a browser. The 281 building footprints come from Brown’s public ArcGIS layers, extruded to heights read off USGS one-metre lidar and draped over terrain from the same survey; a Python pipeline turns 80 raw layers plus OpenStreetMap into the runtime assets. 272 buildings get a real lidar height, three are estimated from floor area, six fall back to a default, and the pipeline writes down which got which rather than hiding the difference. Built with TypeScript, three.js, Vite and Python.

An aerial view in brown3d over Brown's Main Green, with extruded brick buildings running to the horizon.

All work