MCPcopy Index your code
hub / github.com/cannoneyed/isometric-nyc

github.com/cannoneyed/isometric-nyc @main

Chat with this repo
repository ↗ · DeepWiki ↗ · + Follow
1,427 symbols 5,693 edges 169 files 863 documented · 60%
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

Isometric NYC

isometric-nyc

isometric-nyc

This is the codebase for the isometric.nyc project - you can learn more at cannoneyed.com/projects/isometric-nyc

The Idea

Growing up, I played a lot of video games, and my favorites were world building games like SimCity 2000 and Rollercoaster Tycoon. As a core millennial rapidly approaching middle age, I’m a sucker for the nostalgic vibes of those late 90s / early 2000s games. As I stared out at the city, I couldn’t help but imagine what it would look like in the style of those childhood memories.

So here’s the idea: Make a giant isometric pixel-art map of New York City. And I’m going to use it as an excuse to push hard on the limits of the latest and greatest generative models and coding agents.

The Codebase (⚠️ Warning! ⚠️)

This codebase was built entirely via collaboration with coding agents such as gemini-cli, Claude Code, and Cursor. As such, the code probably sucks. Honestly, I've looked at less than 1% of it, and I didn't write any of it by hand. YMMV, but because this was partly an exercise in pushing "vibe-engineering" to its limits I bought fully into the "hands-off" approach and the results speak for themselves.

After the initial reception to isometric.nyc, I decided to open source the repo, which means cleanign up and organizing a lot of cruft and temporary, long-forgotten tools. Some of this cruft is still around, and will likely never get around to getting cleaned up.

I also used a lot of services to help bring this project to life, some of which are cheap, but aren't cheap to run at scale. I've tried to set things up so that they'll more or less just work, but it might be a bit rough until things mature more. That said, if you're ok with hacking around on this and finding all those rough edges, go ahead and get started.

Getting Started

The easiest way to get started is to run the web app with the production data served from R2.

cd src/app

# Install dependencies
bun install

# Start development server (pointed at R2 Production NYC tiles data)
USE_R2_NYC=true bun run dev

If you open the app at http://localhost:3000 you'll be able to interact with the real, production data.

Docs

  • Setup For setting up and downloading sample/full city data
  • App For the tiled image viewer web app
  • Bounds For the city bounds editor
  • Data A description of the various datasets and tile data management
  • Deployment How the production app is deployed
  • Generation How to generate new tiles
  • Inference How to set up custom fine-tuned model inference on Modal
  • Water Shader The WIP water shader documentation

Project Structure

isometric-nyc/
├── src/
│   ├── app/                 # Web viewer (React + OpenSeaDragon)
│   ├── isometric_nyc/       # Core libraries + workflows
│   ├── demos/               # Demos for WIP features (e.g. Water Shader)
│   └── web/                 # 3D map tiles data viewer / renderer (Three.js)
└── tasks/                   # Tasks for agents

Development

Task Command
Run Python tests uv run pytest
Format Python code uv run ruff format .
Lint Python code uv run ruff check .
Run web app cd src/app && bun run dev
Build web app cd src/app && bun run build

Extension points exported contracts — how you extend this code

Env (Interface)
* Minimal R2 caching worker - just adds Cache-Control headers
src/app/worker/src/index.ts
TileCoords (Interface)
(no doc)
src/layers/snow/app/src/App.tsx
TileConfig (Interface)
(no doc)
src/app/src/App.tsx
TileCoords (Interface)
(no doc)
src/layers/dark_mode/app/src/App.tsx
DziMetadata (Interface)
(no doc)
src/app/src/App.tsx
ShaderParams (Interface)
(no doc)
src/layers/water_shader/app/src/App.tsx
TileManifest (Interface)
(no doc)
src/app/src/App.tsx
TileCoords (Interface)
(no doc)
src/layers/water_shader/app/src/App.tsx

Core symbols most depended-on inside this repo

save
called by 124
src/isometric_nyc/generation/automatic_generation.py
get_index
called by 96
src/isometric_nyc/tile_generation/shared.py
showToast
called by 82
src/isometric_nyc/generation/static/viewer.js
create_rectangle_plan
called by 50
src/isometric_nyc/generation/make_rectangle_plan.py
load
called by 49
src/isometric_nyc/generation/automatic_generation.py
add_image_contents
called by 45
src/isometric_nyc/tile_generation/shared.py
fetch
called by 36
src/app/worker/src/index.ts
validate_plan
called by 36
src/isometric_nyc/generation/make_rectangle_plan.py

Shape

Function 930
Method 330
Class 89
Route 54
Interface 24

Languages

Python86%
TypeScript14%

Modules by API surface

tests/test_make_rectangle_plan.py118 symbols
src/isometric_nyc/generation/static/viewer.js96 symbols
src/isometric_nyc/generation/app.py80 symbols
tests/test_make_strip_plan.py70 symbols
src/isometric_nyc/generation/automatic_generation.py58 symbols
src/isometric_nyc/generation/generate_template_test.py52 symbols
src/isometric_nyc/generation/make_rectangle_plan.py35 symbols
src/isometric_nyc/generation/infill_template.py35 symbols
src/isometric_nyc/generation/shared.py34 symbols
src/isometric_nyc/generation/make_strip_plan.py33 symbols
src/isometric_nyc/generation/view_generations.py26 symbols
src/isometric_nyc/generation/queue_db.py26 symbols

For agents

$ claude mcp add isometric-nyc \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact