Show HN: isometric.nyc – giant isometric pixel art map of NYC

cannoneyed.com

608 points by cannoneyed 8 hours ago


Hey HN! I wanted to share something I built over the last few weeks: isometric.nyc is a massive isometric pixel art map of NYC, built with nano banana and coding agents.

I didn't write a single line of code.

Of course no-code doesn't mean no-engineering. This project took a lot more manual labor than I'd hoped!

I wrote a deep dive on the workflow and some thoughts about the future of AI coding and creativity:

http://cannoneyed.com/projects/isometric-nyc

crazygringo - 3 hours ago

I just want to say this isn't just amazing -- it's my new favorite map of NYC.

It's genuinely astonishing how much clearer this is than a traditional satellite map -- how it has just the right amount of complexity. I'm looking at areas I've spent a lot of time in, and getting an even better conceptual understanding of the physical layout than I've ever been able to get from satellite (technically airplane) images. This hits the perfect "sweet spot" of detail with clear "cartoon" coloring.

I see a lot of criticism here that this isn't "pixel art", so maybe there's some better term to use. I don't know what to call this precise style -- it's almost pixel art without the pixels? -- but I love it. Serious congratulations.

ProjectBarks - 6 hours ago

I was extremely excited until I looked closer and realized how many of these look like ... well AI. The article is such a good read and would recommend people check it out.

Feels like something is missing... maybe just a pixelation effect over the actual result? Seems like a lot of the images also lack continuity (something they go over in the article)

Overall, such a cool usage of AI that blends Art and AI well.

potatowaffle - 5 hours ago

> What’s possible now that was impossible before?

> I spent a decade as an electronic musician, spending literally thousands of hours dragging little boxes around on a screen. So much of creative work is defined by this kind of tedious grind. ... This isn't creative. It's just a slog. Every creative field - animation, video, software - is full of these tedious tasks. Of course, there’s a case to be made that the very act of doing this manual work is what refines your instincts - but I think it’s more of a “Just So” story than anything else. In the end, the quality of art is defined by the quality of your decisions - how much work you put into something is just a proxy for how much you care and how much you have to say.

Great insights here, thanks for sharing. That opening question really clicked for me.

tptacek - 7 hours ago

So, wait: this is just based on taking the 40 best/most consistent Nano Banana outputs for a prompt to do pixel-art versions of isometric map tiles? That's all it takes to finetune Qwen to reliably generate tiles in exactly the same style?

Also, does someone have an intuition for how the "masking" process worked here to generate seamless tiles? I sort of grok it but not totally.

cannoneyed - 6 hours ago

Sorry about the hug of death - while I spent an embarassing amount of money on rented H100s, I couldn't be bothered to spend $5 for Cloudflare workers... Hope you all enjoy it, it should be back up now

dormento - 7 hours ago

Not working here, some CORS issue.

Firefox, Ubuntu latest.

Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource at https://isometric-nyc-tiles.cannoneyed.com/dzi/tiles_metadat.... (Reason: CORS header ‘Access-Control-Allow-Origin’ missing). Status code: 429.

Edit: i see now, the error is due to the cloudflare worker being rate limited :/ i read the writeup though, pretty cool, especially the insight about tool -> lib -> application

Computer0 - 32 minutes ago

Highly recommend reading the blog post too. It helped me see some of the limitations of this approach and I thought it was useful,

ivangelion - 6 hours ago

Want to thank you for taking the time to write up the process.

I know you'll get flak for the agentic coding, but I think it's really awesome you were able to realize an idea that otherwise would've remained relegated to "you know what'd be cool.." territory. Also, just because the activation energy to execute a project like this is lower doesn't mean the creative ceiling isn't just as high as before.

xnx - 8 hours ago

> This project is far from perfect, but without generative models, it couldn’t exist. There’s simply no way to do this much work on your own,

Maybe, though a guy did physically carve/sculpt the majority of NYC: https://mymodernmet.com/miniature-model-new-york-minninycity...

weinzierl - 5 hours ago

Probably the best pre-AI take of the isometric pixel art NYC is poster from the art collective eboy. In the early 2000s their art was featured in MoMA (but I don't remember the NYC poster specifically).

https://www.eboy.com/products/new-york-colouring-poster

cannoneyed - 7 hours ago

Author here: Just got out of some meetings at work and see that HN is kicking my cloudflare free plan's butt. Let me get Claude to fix it, hold tight!

jcelliott - 4 hours ago

Hey, engineer at Oxen.ai here. Glad the fine-tuning worked well for this project! If anyone has questions on that part of it we would be happy to answer.

We have a blog post on a similar workflow here: https://www.oxen.ai/blog/how-we-cut-inference-costs-from-46k...

On the inference cost and speed: we're actively working on that and have a pretty massive upgrade there coming soon.

10c8 - 3 hours ago

There's absolutely no pixel art anywhere in the entirety of the map.

shredprez - 6 hours ago

This is so cool! Please give me a way to share lat/long links with folks so I can show them places that are special to me :)

mrandish - 5 hours ago

This is really wonderful. Thanks for doing it!

I especially appreciated the deep dive on the workflow and challenges. It's the best generally accessible explication I've yet seen of the pros and cons of vibe coding an ambitious personal project with current tooling. It gives a high-level sense of "what it's generally like" with enough detail and examples to be grounded in reality while avoiding slipping into the weeds.

vagabund - 2 hours ago

Really fun to fly around, find my old apartment building etc.

It would be neat if you could drag and click to select an area to inpaint. Let's see everyone's new Penn Station designs!

Would guess it'd have to be BYOK but it works pretty well:

https://i.imgur.com/EmbzThl.jpeg

Much better than trying to inpaint directly on Google Earth data

gregsadetsky - 6 hours ago

amazing work!

gemini 3.5 pro reverse engineered it - if you use the code at the following gist, you can jump to any specific lat lng :-)

https://gist.github.com/gregsadetsky/c4c1a87277063430c26922b...

also, check out https://cannoneyed.com/isometric-nyc/?debug=true ..!

---

code below (copy & paste into your devtools, change the lat lng on the last line):

    const calib={p1:{pixel:{x:52548,y:64928},geo:{lat:40.75145020893891,lng:-73.9596826628078}},p2:{pixel:{x:40262,y:51982},geo:{lat:40.685498640229675,lng:-73.98074283976926}},p3:{pixel:{x:45916,y:67519},geo:{lat:40.757903901085726,lng:-73.98557060196454}}};function getAffineTransform(){let{p1:e,p2:l,p3:g}=calib,o=e.geo.lat*(l.geo.lng-g.geo.lng)-l.geo.lat*(e.geo.lng-g.geo.lng)+g.geo.lat*(e.geo.lng-l.geo.lng);if(0===o)return console.error("Points are collinear, cannot solve."),null;let n=(e.pixel.x*(l.geo.lng-g.geo.lng)-l.pixel.x*(e.geo.lng-g.geo.lng)+g.pixel.x*(e.geo.lng-l.geo.lng))/o,x=(e.geo.lat*(l.pixel.x-g.pixel.x)-l.geo.lat*(e.pixel.x-g.pixel.x)+g.geo.lat*(e.pixel.x-l.pixel.x))/o,i=(e.geo.lat*(l.geo.lng*g.pixel.x-g.geo.lng*l.pixel.x)-l.geo.lat*(e.geo.lng*g.pixel.x-g.geo.lng*e.pixel.x)+g.geo.lat*(e.geo.lng*l.pixel.x-l.geo.lng*e.pixel.x))/o,t=(e.pixel.y*(l.geo.lng-g.geo.lng)-l.pixel.y*(e.geo.lng-g.geo.lng)+g.pixel.y*(e.geo.lng-l.geo.lng))/o,p=(e.geo.lat*(l.pixel.y-g.pixel.y)-l.geo.lat*(e.pixel.y-g.pixel.y)+g.geo.lat*(e.pixel.y-l.pixel.y))/o,a=(e.geo.lat*(l.geo.lng*g.pixel.y-g.geo.lng*l.pixel.y)-l.geo.lat*(e.geo.lng*g.pixel.y-g.geo.lng*e.pixel.y)+g.geo.lat*(e.geo.lng*l.pixel.y-l.geo.lng*e.pixel.y))/o;return{Ax:n,Bx:x,Cx:i,Ay:t,By:p,Cy:a}}function jumpToLatLng(e,l){let g=getAffineTransform();if(!g)return;let o=g.Ax*e+g.Bx*l+g.Cx,n=g.Ay*e+g.By*l+g.Cy,x=Math.round(o),i=Math.round(n);console.log(` Jumping to Geo: ${e}, ${l}`),console.log(` Calculated Pixel: ${x}, ${i}`),localStorage.setItem("isometric-nyc-view-state",JSON.stringify({target:[x,i,0],zoom:13.95})),window.location.reload()};
    jumpToLatLng(40.757903901085726,-73.98557060196454);
blintz - 7 hours ago

I was most surprised by the fact that it only took 40 examples for a Qwen finetune to match the style and quality of (interactively tuned) Nano Banana. Certainly the end result does not look like the stock output of open-source image generation models.

I wonder if for almost any bulk inference / generation task, it will generally be dramatically cheaper to (use fancy expensive model to generate examples, perhaps interactively with refinements) -> (fine tune smaller open-source model) -> (run bulk task).

rafram - 3 hours ago

> This project is far from perfect, but without generative models, it couldn’t exist. There’s simply no way to do this much work on your own

100 people built this in 1964: https://queensmuseum.org/exhibition/panorama-of-the-city-of-...

One person built this in the 21st century: https://gothamist.com/arts-entertainment/truckers-viral-scal...

AI certainly let you do it much faster, but it’s wrong to write off doing something like this by hand as impossible when it has actually been done before. And the models built by hand are the product of genuine human creativity and ingenuity; this is a pixelated satellite image. It’s still a very cool site to play around with, but the framing is terrible.

bigwheels - 8 hours ago

Very impressive result! are you taking requests for the next ones? SF :D Tokyo :D Paris :D Milan :D Rome :D Sydney :D

Oh man...

rzzzt - 4 hours ago

Does anyone remember a Chinese website that did something similar? IIRC it was one of the selectable rendering modes of a Google Maps equivalent.

Edit: this submission has a few links that could be what I had in mind but most of them no longer work: https://news.ycombinator.com/item?id=2282466

lagniappe - 7 hours ago

Failed to load tiles: NetworkError when attempting to fetch resource.

filoleg - 6 hours ago

This is awesome, thanks for sharing this!

I am especially impressed with the “i didn’t write a single line of code” part, because I was expecting it to be janky or slow on mobile, but it feels blazing fast just zooming around different areas.

And it is very up to date too, as I found a building across the street from me that got finished only last year being present.

I found a nitpicky error though: in Brooklyn downtown, where Cadman Plaza Park is, your webite makes it looks like there is a large rectangular body of water there (e.g., a pool or a fountain). In reality, there is no water at all, it is just a concrete slab area.

amadeuswoo - 2 hours ago

Very gorgeous and creative! Any plans to attempt other isometric cities? (Like SF, LA, Paris, London)

kkukshtel - 5 hours ago

This is awesome, and thanks so much for the deep dive into process!!

One thing I would suggest is to also post-process the pixel art with something like this tool to have it be even sharper. The details fall off as you get closer, but running this over larger patch areas may really drive the pixel art feel.

https://jenissimo.itch.io/unfaker

_0xdd - 6 hours ago

Nice work! But not all of NYC. Where's the rest of Staten Island?

sandpaper26 - 3 hours ago

"map of NYC" does not include Staten Island. That's how we like it

jesse__ - 7 hours ago

> Slop vs. Art

> If you can push a button and get content, then that content is a commodity. Its value is next to zero.

> Counterintuitively, that’s my biggest reason to be optimistic about AI and creativity. When hard parts become easy, the differentiator becomes love.

Love that. I've been struggling to succinctly put that feeling into words, bravo.

natufunu - 6 hours ago

One thing I learned from this is that my prompts are much less detailed than what author has been using.

Very cool work and great write up.

emzo - 3 hours ago

I'm on holiday in NY now - this is so cool

cheschire - 6 hours ago

> I’m not particularly interested in getting mired down in the muck of the morality and economics of it all. I’m really only interested in one question: What’s possible now that was impossible before?

Upvote for the cool thing I haven’t seen before but cancelled out by this sentiment. Oof.

suriya-ganesh - 4 hours ago

This is such a cool concept. props to you for building it.

mpaepper - 5 hours ago

You mentioned needing 40k tiles and renting a H100 for 3$/hour at 200tiles/hour, so am I right to assume that you spend 200*3=600$ for running the inference? That also means letting it run 25 nights a 8 hours or so?

Cool project!

polishdude20 - 5 hours ago

To take it a step further it would be super cool to so rhiw figure out the roadway system from the map data and use the buildings as masks over the roads and have little simulated cars driving

Kkoala - 6 hours ago

Nice, very cool!

Reminds me of https://queensmuseum.org/exhibition/panorama-of-the-city-of-...

ChrisbyMe - 5 hours ago

A bit tangential but i really think the .nyc domain is underappreciated.

SF/Mountain View etc don't even have one! you get a little piece of the NYC brand just for you!

theLegionWithin - an hour ago

Sim City, NYC edition

cyrusradfar - 7 hours ago

Insane outcome. Really thoughtful post with insights across the board. Thanks for sharing

_august - 6 hours ago

This is very cool, it would be awesome if I could rotate it as well by 90 degree increments to peek at different angles! I loved RCT growing up so this is hitting the nostalgia!

dluan - 3 hours ago

This on top of Subway Builder would be incredible

rkagerer - 5 hours ago

I love it! Such a SimCity 2000 vibe!

nzeid - 6 hours ago

Amazing. Took forever but I found my building in Brooklyn as well as the nearby dealership, gas station, and public school.

dsmmcken - 6 hours ago

Just curious, about how long did this project take you? I don't see that mentioned in the article.

sanufar - 7 hours ago

Seems to have been hugged to death as of now

tehlike - 7 hours ago

Some people reported 429 - otherwise known as HN hug of death.

You probably need to adjust how caching is handled with this.

xnx - 8 hours ago

I see you used Gemini-CLI some but no mention of Antigravity. Surprising for a Googler. Reasons?

relium - 6 hours ago

Very cool. Street names with an on/off toggle would be nice.

deltamidway - 4 hours ago

Absolutely love this! Yay robots!

vortegne - 4 hours ago

While impressive on a technical level, I can't help but notice that it just looks...bad? Just a strange blurry mess that only vaguely smells of pixelart.

Makes me feel insane that we're passing this off as art now.

honeycrispy - 6 hours ago

This is kind of beautiful. Great work! I mean it.

deadbabe - 5 hours ago

Would it be simple to modify this to make a highly stylized version of NYC instead? Like post apocalyptic NYC or medieval NYC, night time NYC, etc. because then that would have some very interesting applications

howToTestFE - 4 hours ago

this makes me want to play simcity again! really cool

epa - 3 hours ago

Amazing

MontyCarloHall - 5 hours ago

This doesn't really look like pixel art; it looks like you applied a (very sophisticated) Photoshop filter to Google Earth. Everything is a little blurry, and the characteristic sharp edges of handmade pixel art (e.g. [0]) are completely absent.

To me, the appeal of pixel art is that each pixel looks deliberately placed, with clever artistic tricks to circumvent the limitations of the medium. For instance, look at the piano keys here [1]. They deliberately lack the actual groupings of real piano keys (since that wouldn't be feasible to render at this scale), but are asymmetrically spaced in their own way to convey the essence of a keyboard. It's the same sort of cleverness that goes into designing LEGO sets.

None of these clever tricks are apparent in the AI-generated NYC.

On another note, a big appeal of pixel art for me is the sheer amount of manual labor that went into it. Even if AI were capable of rendering pixel art indistinguishable from [0] or [1], I'm not sure I'd be impressed. It would be like watching a humanoid robot compete in the Olympics. Sure, a Boston Dynamics bot from a couple years in the future will probably outrun Usain Bolt and outgymnast Simone Biles, but we watch Bolt and Biles compete because their performance represents a profound confluence of human effort and talent. Likewise, we are extremely impressed by watching human weightlifters throw 200kg over their heads but don't give a second thought to forklifts lifting 2000kg or 20000kg.

OP touches on this in his blog post [2]:

   I spent a decade as an electronic musician, spending literally thousands of hours dragging little boxes around on a screen. So much of creative work is defined by this kind of tedious grind. [...] This isn't creative. It's just a slog. Every creative field - animation, video, software - is full of these tedious tasks. In the end, the quality of art is defined by the quality of your decisions - how much work you put into something is just a proxy for how much you care and how much you have to say.
I would argue that in some case (e.g. pixel art), the slog is what makes the art both aesthetically appealing (the deliberately placed nature of each pixel is what defines the aesthetic) but also awe-inspiring (the slog represents an immense amount of sustained focus).

[0] https://platform.theverge.com/wp-content/uploads/sites/2/cho...

[1] https://www.reddit.com/media?url=https%3A%2F%2Fi.redd.it%2Fu...

[2] https://cannoneyed.com/projects/isometric-nyc

aaronbrethorst - 5 hours ago

this is truly amazing. bravo.

mal10c - 4 hours ago

reticulating splines

alterom - 5 hours ago

Holy damn, this map is a dream and the best map of NYC I've ever seen!

It's as if NYC was built in Transport Tycoon Deluxe.

I'll be honest, I've been pretty skeptical about AI and agentic coding for real-life problems and projects. But this one seems like the final straw that'll change my mind.

Thanks for making it, I really enjoy the result (and the educational value of the making-of post)!

d--b - 5 hours ago

This is huge!

At first I thought this was someone working thousands of hours putting this together, and I thought: I wonder if this could be done with AI…

- 6 hours ago
[deleted]
k1rd - 8 hours ago

Really nice.

ChrisArchitect - 8 hours ago

Appreciate that writeup. Very detailed insights into the process. However those conclusions left me on the fence about whether I 'liked' the project. The conclusions about 'unlocking scale' and commodity content having zero value. Where does that leave you and this project? Does it really matter that much that the project couldn't exist without genAI? Maybe it shouldn't exist then at all. As with alot of the areas AI touches, the problem isn't the tools or use of them exactly, it's the scale. We're not ready for it. We're not ready for the scale of impact the tech touches in multitude of areas. Including the artistic world. The diminished value and loss of opportunities. We're not ready for the impacts of use by bad actors. The scale of output like this, as cool as it is, is out of balance with the loss of huge chunk of human activity and expression. Sigh.

squigz - 8 hours ago

Hugged to death? :(

detectivestory - 8 hours ago

beautiful!

- 8 hours ago
[deleted]
fuckyah - 7 hours ago

[dead]

meindnoch - 4 hours ago

Looks badly AI generated.