An interactive graphical simulation of New York City non-market housing.

During my Government and Economics class, I was tasked with creating a project that addresses one of the two given prompts; in my case, a presentation of a possible solution to the housing crisis in NYC. Given a 9-day time frame, I decided to use the opportunity to connect class topics to my programming hobby, which is one of my favorite things to do. This project has also been featured in a segment of CBS Class Act and presented at a community event.

previewNonMarketHousingSimulation

This project contains multiple scripts to generate the resources needed from the datasets, and a Rust project that can be built and ran. You can checkout the live WASM version at https://non-market-housing-simulation.pages.dev/

To build and run the project fully locally the following pre-requisites are needed:

Ideally, all downloads above should be in the same directory, with datasets being under a data/ subdirectory.
Begin by generating the .mbtiles file from the .osm.pbf with:

tilemaker data/new-york-260512.osm.pbf --output res/new-york.mbtiles --config scripts/config-openmaptiles.json --process scripts/process-openmaptiles.lua

You can then convert the .mbtiles file to a .pmtiles file with:

pmtiles convert res/new-york.mbtiles res/new-york.pmtiles

Generate the lot_lookup.bin.gz file with:

python scripts/build_lot_lookup.py ./data/BUILDING_20260513.csv ./data/pluto_25v4.csv ./res/lot_lookup.bin.gz

Edit line 25 of src/main.rs:

- pub const RUN_LOCAL: bool = false;
+ pub const RUN_LOCAL: bool = true;

Finally, run the project via Cargo:

cargo build --release

cargo run --release

As with all other projects in this playground, the license is CC BY-NC.

CC BY-SA 4.0 The-Nice-One. Last modified: July 17, 2026 Website built with rail-yard and the TypeScript programming language. See credits.