Hacker Newsnew | past | comments | ask | show | jobs | submitlogin
Show HN: isometric.nyc – giant isometric pixel art map of NYC (cannoneyed.com)
1222 points by cannoneyed 1 day ago | hide | past | favorite | 225 comments
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





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.


Author here, and to reiterate another reply - all of the critique of "pixel art" is completely fair. Aesthetically and philosophically, what AI does for "pixel art" is very off. And once you see the AI you can't really unsee it.

But I didn't want to call it a "SimCity" map, though that's really the vibe/inspiration I wanted to capture, because that implies a lot of other things, so I used the term "pixel art" even though I figured it might get a lot of (valid) pushback...

In general, labels and genres are really hard - "techno" to a deep head in Berlin is very different than "techno" to my cousins. This issue has always been fraught, because context and meaning and technique are all tangled up in these labels which are so important to some but so easily ignored by others. And those questions are even harder in the age of AI where the machine just gobbles up everything.

But regardless, it was a fun project! And to me at least it's better to just make cool ambitious things in good faith and understand that art by definition is meaningful and therefore makes people feel things from love to anger to disgust to fascination.


My scientific opinion is that you cooked. noice.

Will "Retro art" do?

Low-res cel shading would be a better descriptor. It lends itself to looking like pixel art when zoomed out, but cel shading when zoomed in.

No. Lean into "pixel art".

Hot take: "photo realistic" is just a style.

If it doesn't exist and wasn't taken with a camera, then "photo realistic" is just the name of the style.

Same with "pixel art", "water color", and everything else.


pixel art 2.0

still respects what it is but clearly differentiates itself as something new


That'd be like calling photography "painting 2.0".

One day the majority of pixel art in the world, and indeed even photoreal photos, will be generated.

We'll call it pixel art even if the original motivation is gone.


just FYI, there are some very obvious inaccuracies (stitching artefacts?) in this map, especially noticeable e.g. on Roosevelt Island around Roosevelt Bridge, or naround Pier 17 next to Brooklyn Bridge

There's a strange error where half the Broadway Junction subway station just... disappears. And seems to be replaced with some generically hallucinated city blocks? But that's the thing with AI, the quality control at scale is tough. I'm just happy this seems to be about 99.9+% accurate.

It’s almost like sim city (2000), but not quite. It night help if the overall mayo was fully square.

More like Sim City 3000 methinks. Sim City is more pixel artsy / lower resolution, while 3000 have enough resolution to feel more like an illustration rather than a videogame.

High-res pixel art? Maybe adding an extra zoom level so people can actually see the pixels as big fat squares would help? Of course purists would probably still not call it pixel art, but as you wrote, leaning more into the "pixel art" aspect would hurt the realistic representation.

Actually, if you only look at (midtown and uptown) Manhattan, is looks more "pixel art"-y because of the 90-degree street grid and most buildings being aligned with it. But the other boroughs don't lend themselves to this style so well. Of course, you could have forced all buildings to have angles in 45° steps, but that would have deviated from "ground truth" a lot.


TBH, the nano banana ones are closer to pixel art than Qwen Image ones. Much closer.

This looks like early 2000 2.5D art, like Diablo style.


Feels a bit like between cel shading and isometric pixel art...

Isn't this comment AI? The writing screams ChatGPT to me.

This comment isn't just amazing -- it's my new favorite comment on Hacker News.

I'm Commander Shephard and this is my new favorite comment on the Citadel^WHacker News.

This is an immensely cool thing that fits the space I imagine for AI within art. And I am not someone that likes framing AI output as art.

If you had instead drawn this, there would be charm and fun details EVERYWHERE. Little buildings you know would have inside jokes, there would be references snuck into everything. Who YOU are would come through, but it would also be much smaller.

This is HUGE, and the zoomed out view is actually an insanely useful map. It's so cool to see reality shifted into a style like this, and there's enough interesting things in "real new york" to make scrolling around this a fun thing to do. I have no impression of you here other than a vague idea you like the older sim city games BUT I have a really interesting impression of NYC.

IMO, that's two totally different pieces of art, with two totally different goals. Neither takes away from the other, since they're both making something impactful rather than one thing trying to simulate the impact of the other. Really nice job with this.


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.


Basically, it's not pixel art at all.

It's very cool and I don't mind the use of AI at all but I think calling it pixel art is just very misleading. It's closer to a filter but not quite that either.


Yup, not pixel art. I wonder if people are not zooming in on it properly? If you zoom in max you see how much strangeness there is.

It kind of looks like a Google Sketchup render that someone then went and used the Photoshop Clone and Patch tools on in arbitrary ways.

Doesn’t really look anything like pixel art at all. Because it isn’t.


Pixel art is just a style now, just like "photorealistic" and "water color".

Everything is just a style now. And these names will become attached to the style rather than the technique.


It's pixel art, just not the types of pixels most people want in pixel art.

Pixel art has a certain connotation (probably more accurately referred to as 8-bit or 16-bit).

Otherwise every digital image could be classified as pixel art.


It's pixel art in the same way that everything rendered on a computer screen is pixel art. It's all pixels.

That is reductive, why not call all everything CGI then? Or call CGI pixel art as well? As we’re talking about “art”, it’s necessarily going to be subjective, but pixel art has certain style aspects such as use of 2x1 lines (https://www.the-pixel-artist.com/articles/top-ten-things-new...). This is just an example, while I’m not saying that every convention must be met in order to qualify as pixel art, not having any doesn’t make a useful definition of a genre.

Yeah it leaves a lot to be desired. Once you see the AI it's hard to unsee. I actually had a few other generation styles, more 8-bit like, that probably would have lended themselves better to actual pixel-art processing, but I opted to use this fine-tune and in for a penny in for a pound, so to speak...

Have you looked at retro Diffusion? https://x.com/RealAstropulse

This person shares lots authentic looking ai generated pixel art. This should give the building more realistic pixel art look.

Edit: example showing small houses https://x.com/RealAstropulse/status/2004195065443549691 Searching for buildings


Yup, I'm a big fan. They'd be the first to admit that making true pixel art is very hard, and getting the AI to do it even somewhat consistently requires a lot of tuning and guardrails / processing.

At some point I couldn't fiddle with the style / pipeline anymore and just had to roll with "looks ok to me" - the whole point of the project wasn't to faithfully adhere to a style but to push the limits of new technology and learn a lot along the way


For projects like this (that would have been just inconceivably too much work without the help of AI), I'm fine with AI usage.

> 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.


That quote seriously rubs me the wrong way. "Dragging little boxes around" in a DAW is creative, it constitutes the entire process of composing electronic music. You are notating what notes to play, when and for how long they play, what instrument plays them, and any modifications to the default sound of that instrument. Is writing sheet music tedious? Sure, it can be, when the speed of notating by hand can't keep up with the speed your brain is thinking through ideas. But being tedious is not mutually exclusive with being creative despite the attempt to explicitly contrast them as such, and the solution to the process of notating your creativity being tedious is not "randomly generate a bunch of notes and instruments that have little relation with the ones you're thinking of". This excerpt supposes that generative AI lets you automate the tedious part while keeping "the quality of your decisions", but it doesn't keep your decisions, it generates its own "decisions" from a broad, high-level prompt and your role is reduced to merely making decisions about whether or not you like the content generated, which is not creativity.

I'd say that deciding where a transient should go" is creative, manually aligning 15 other tracks over and over again is not (not to mention having to do it in both the DAW and melodyne)...

I agree that "push button get image" AI generation is at best a bit cheap, at worst deeply boring. Art is resistance in a medium - but at what point is that resistance just masochism?

George Perec took this idea to the max when he wrote an entire novel without the letter "E" - in French! And then someone had the audacity to translate it to English (e excluded)! Would I ever want to do that? Hell no, but I'm very glad to live in a world where someone else is crazy enough to.

I've spent my 10,000 hours making "real" art and don't really feel the need to justify myself - but to all of the young people out there who are afraid to play with something new because some grumps on hacker news might get upset:

It doesn't matter what you make or how you make it. What matters is why you make it and what you have to say.


> It doesn't matter what you make or how you make it. What matters is why you make it and what you have to say.

I want to add one point: That you make/ ship something at all.

When the first image generating models came out my head was spinning with ideas for different images I'd want to generate, maybe to print out and hang on the wall. After an initial phase of playing around the excitement faded, even though the models are more than good enough with a bit of fiddling. My walls are still pretty bare.

Turns out even reducing the cost of generating an image to zero does not make me in particular churn out ideas. I suspect this is true for most applications of AI for most people.


Related? Unrelated? Places like redbubble.com will let you print your design on t-shirts, dresses, mugs, pillow covers, bathroom curtains, bedspreads, shower curtains, stickers, posters, phone cases, and 50+ other things. And, cheap! You can order a single print t-shirt for ~$20

When I first saw all the items I was like "yea, I'm going to cover my house in custom stuff'. But other then a few personal t-shirts I haven't done anything.


To be clear, as I said in another reply downthread, I think this particular project is creative, although creative in a fundamentally different way that does not replace existing creative expression. I also don't object to people doing "push button get image" for entertainment (although I do object to it being spammed all over the internet in spaces meant for human art and drowning out people who put effort into what they create, because 10,000 images can be generated in the time it takes to draw a single one). But "push button get image" is not making things yourself. I would give you credit for creating this because you put effort into fine-tuning a model and a bespoke pipeline to make this work at scale, but this project is exceptional and non-representative among generative AI usage, and "push button get image" does not have enough human decision-making involved for the human to really have any claim to have made the thing that gets generated. That is not creativity, and it is not capable of replacing existing expressions of creativity, which you've asserted multiple times in the article and thread. By all means push button and get image for as long as it entertains you, but don't pretend it is something it isn't.

To me, this project is the point. AI makes "push button get image" is now a thing just like photography made "push button get image" a thing. People complained then that photography was not art. But then eventually we mostly found the art of photography. I think the same will happen for AI stuff. When everyone can do it you need to do something else/more

I don't know anything about electronic music or what a DAW is, but his usage of "dragging boxes around" could either be a gross reduction in the process of creating art, or it could genuinely be just mundane tasks.

It's like if someone says my job as a SWE is just pressing keys, or looking at screens. I mean, technically that's true, and a lot of what I do daily can certainly be considered mundane. But from an outsiders perspective, both mundane and creative tasks may look identical.

I play around with image/video gen, using both "single prompt to generate" à la nano banana or sora, and also ComfyUI. Though what I create in ComfyUI often pales in comparison to what Nano or Sora can generate given my hardware constraints, I would consider the stuff I make in ComfyUI more creative than what I make from Sora or Nano, mainly because of how I need to orchestrate my comfy ui workflow, loras, knobs, fine tuning, control net, etc, not to mention prompt refinement.

I think creativity in art just boils down to the process required to get there, which I think has always been true. I can shred papers in my office, but when Banksy shred his painting, it became a work of art, because of the circumstances in which it was creative.


Just to provide a little more context, a DAW (Digital Audio Workstation) is, underneath all of the complexity and advanced features piled on top, a program which provides a visual timeline and a way to place notes on the timeline. The timeline is almost directly analogous to sheet music, except instead of displaying notes in a bespoke artificial language like sheet music does, they are displayed as boxes on the timeline, with the length of the box directly correlating to how long the note plays. Placing and dragging these boxes around makes up the foundation of working in a DAW, and every decision to place a box is a decision that shapes the resulting music.

Where to place boxes to make good music is not obvious, and typically takes a tremendous understanding of music theory, prior art, and experimentation. I think the comparison to an author or programmer "just pressing keys" is apt. Reducing it to the most basic physical representation undercuts all of the knowledge and creativity involved in the work. While it can be tedious sometimes, if you've thought of a structure that sounds good but there is a lot of repetition involved in notating it, there are a lot of software features to reduce the tedious aspects. A DAW is not unlike an IDE, and there are ways to package and automate repetitive musical structures and tasks and make them easy to re-use, just as programmers have tools to create structures that reduce the repetitive parts of writing code so they can spend more of their attention on the creative parts.


Thanks! That makes sense.

Tedium in art is full of micro decisions. The sum of these decisions makes a subtle but big impact in the result. Skipping these means less expression.

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.


I think the core idea in "masking" is to provide adjacent pixel art tiles as part of the input when rendering a new tile from photo reference. So part of the input is literal boundary conditions on the output for the new tile.

Reference image from the article: https://cannoneyed.com/img/projects/isometric-nyc/training_d...

You have to zoom in, but here the inputs on the left are mixed pixel art / photo textures. The outputs on the right are seamless pixel art.

Later on he talks about 2x2 squares of four tiles each as input and having trouble automating input selection to avoid seams. So with his 512x512 tiles, he's actually sending in 1024x1024 inputs. You can avoid seams if every new tile can "see" all its already-generated neighbors.

You get a seam if you generate a new tile next to an old tile but that old tile is not input to the infill agorithm. The new tile can't see that boundary, and the style will probably not match.


That’s exactly right - the fine tuned Qwen model was able to generate seamless pixels most of the time, but you can find lots of places around the map where it failed.

More interestingly, not even the biggest smartest image models can tell if a seam exists or not (likely due to the way they represent image tokens internally)


Did you ever consider using something like https://github.com/jenissimo/unfake.js/ in your process, to make it more proper-pixel-art?

Maybe to process the Nano-Banana generated dataset before fine-tuning, and then also to fix the generated Qwen output?


I'm curious why you didn't do something like generate new tiles one at a time, but just expand the input area on the sides with already-generated neighbors. Looks like your infill model doesn't really care about tile sizes, and I doubt it really needs full adjacent tiles to match style. Why 2x2 tile inputs rather than say... generate new tiles one at a time, but add 50px of bordering tile on each side that already has a pixel art neighbor?

Yeah I actually did that quite a bit too. I didn't want to get too bogged down in the nitty gritty of the tiling algorithm because it's actually quite difficult to communicate via writing (which probably contributed to it being hard to get AI to implement).

The issue is that the overall style was not consistent from tile to tile, so you'd see some drift, particularly in the color - and you can see it in quite a few places on the map because of this.


Have you tried restraining the color palette by post-processing?

Oh that makes sense, thanks for explaining! And thanks for sharing your process and result! Interesting to see your process, and looking at the map really tickles my nostalgia

There would have to be some tiles which don't have all four neighbors generated yet.

Thanks for this - I was confused as well. Makes perfect sense now.

you can tell the diffusion from space, sadly it would normally take years to do it the conventional way, which is still the only correct way.

Does anyone have a good reference for finetuning Qwen? This article opened my eyes a bit...

The turn-key option is ostris ai-toolkit which has good tutorials on YT and can be run completely locally or via RunPod. Claude Code can set everything up for you (speaking from experience) and can even SSH into RunPod.

So you don't grok it. You understand it, but don't grok it. Respect the martian :)

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

> while I spent an embarassing amount of money on rented H100s

Would you mind sharing a ballpark estimate?


(Not OP) Judging by the clues in the article and trial/error, probably ~1000USD for the project.

Curious if the H100s were strictly for VRAM capacity? Since this is a batch job and latency doesn't really matter, it seems like you could have run this on 4090s for a fraction of the cost. Unless the model size was the bottleneck, the price to performance ratio on consumer hardware is usually much better for this kind of workload.

> 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...


This project is awesome, and I love that there are people who are driven enough to make something with so much craft, attention, and duration.

That being said I have three kids (one a newborn) - there's no possible way I could have done this in the before times!


you don't have to do it alone

Also while searching for SimCity screenshots I found someone recreating NYC in SimCity 4 https://www.reddit.com/r/simcity4/comments/12dkxey/check_out...

Also, sites like Pixeljoint used to (or still do? I haven't really kept up) collaborations. This would be a mammoth one, but the result would be much more impressive. This is a cool concept, but it's definitely not pixel art by any definition.

I got a recommended video in Youtube just the other day, where a bunch of users made NYC in Minecraft at a 1:1 scale: https://www.youtube.com/watch?v=ZouSJWXFBPk

Granted, it was a team effort, but that's a lot more laborious than a pixel-art view.


Related:

New York City is being recreated at 1:1 scale inside Minecraft

https://news.ycombinator.com/item?id=46665589


Huh, the linked instagram account is no longer available :/

I still see it at https://www.instagram.com/minninycity04, with two video posts


Someone else posted this on HN a while back -- https://github.com/Hugo-Dz/spritefusion-pixel-snapper

Maybe you can use that^ to snap the pixels to a perfect grid


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.


I was amazed only saw one comment mentioning the agentic coding and it was overwhelmingly positive https://news.ycombinator.com/item?id=46724639

The reality is, this is a HUGE project to do with no GIS / image gen experience without Gen AI.


Really great work! All that's left is a day/night cycle, some underground infra views, and (obviously) a way to play the SimCity 3000 soundtrack over it

> I simply booted up a VM with an H100, ssh’d into it with Cursor, and prompted the agent to set up an inference server that I could ping from my web generation app. What used to take hours or days of painful, slow debugging now takes literally minutes.

an awesome takeaway from this is that self-hosted models are the future! can't wait for hardware to catch up and we can do much more experiments on our laptops!


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


Not working here either. Two different errors with two different browsers on Arch.

- Chromium: Failed to load tiles: Failed to fetch

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


Yeah I'm gonna blame Claude (and my free plan) for this one. Fixing!

Cloudflare caching should be back. Turns out that there were a lot of tiles being served, who could have seen that coming?

Same in Safari on macOS here, FWIW.

I lived in NYC for 8 years and have worked there for almost 20 years.

Absolutely loved zooming around to see:

- my old apartment

- places I've worked

- restaurants and rooftop lounges I've been to etc

The explanation of how this was put together was even cooler: https://cannoneyed.com/projects/isometric-nyc


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


This is so good, just ordered one!

First thing I wanted to do was click the monster button in SimCity 2000

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!

We should be back online! Thanks for everyone's patience, and big thanks to Claude for helping me debug this and to Cloudflare for immediately turning the website back on after I gave them some money

Great project! Just wanted to talk about the "/ The edit problem" section in the blog post - it's almost entirely false. Inpainting (when you provide a mask) has existed for years, and for good edit models (such as Nano Banana Pro) you can annotate the image, and it'll only edit one part, keeping the rest almost entirely consistent. The same goes for other top editing models like Flux 2, Seedream 4.5 and so on.

Transparency also exists, e.g. GPT Image does it, and Nano Banana Pro should have it supported soon as well.


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).


In my experience image models are very "thirsty" and can often learn the overall style of an image from far fewer models. Even Qwen is a HUGE model relatively speaking.

Interestingly enough, the model could NOT learn how to reliably generate trees or water no matter how much data and/or strategies I threw at it...

This to me is the big failure mode of fine-tuning - it's practically impossible to understand what will work well and what won't and why


I see, yeah, I can see how if it's like 100% matching some parts of the style, but then failing completely on other parts, it's a huge pain to deal with. I wonder if a bigger model could loop here - like, have GPT 5.2 compare the fine-tune output and the Nano Banana output, notice that trees + water are bad, select more examples to fine-tune on, and the retry. Perhaps noticing that the trees and water are missing or bad is a more human judgement, though.

Interestingly enough even the big guns couldn't reliably act as judges. I think there are a few reasons for that:

- the way they represent image tokens isn't conducive to this kind of task

- text-to-image space is actually quite finicky, it's basically impossible to describe to the model what trees ought to look like and have them "get it"

- there's no reliable way to few-shot prompt these models for image tasks yet (!!)


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.


I didn't know Oxen.ai. I took a look at your docs on how to fine-tune LLMs:

> Oxen.ai supports datasets in a variety of file formats. The only requirement is that you have a column where each row is a list of messages. Each message is an dictionary with a role and content key. The role can be “system”, “user”, or “assistant”. The content is the message content.

Oh, so you're forced to use the ChatML multi-turn conversation format.


Hell yeah oxen.ai is awesome, made my life so much easier

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

> 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.


It feels like whether or not it's possible to make a model of new york misses the point. This kind of project could just as easily scale up to be an isometric map of the entire world, every city, every forest, every mountain hut, and update continuously as new buildings are built and cities grow. Expensive yes, for now- but the speed and scale to make and maintain such representations will absolutely be outside the realm of what was previously possible. Not just maps of the world, maps of human knowledge, history, to such detail that would entail not just tens of thousands of hours but billions or trillions of hours if done by hand.

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);

That second link shows controls but does not have any water effects?

As far as I can see, OP tried to implement water shaders but then abandoned this idea.

that's right - it worked very nice, but the models to generate the "shore distance mask" for the water shader weren't reliable enough to automate, and I just couldn't justify sinking any more time into the project

0 shade (hehe), the project is extraordinary as it is! cheers

This is a fantastic piece of work, AI or no!

Feature idea: For those of us who aren't familiar with The City, could you allow clicks on the image to identify specific landmarks (buildings, etc.)? Or is that too computationally intensive? I can identify a few things, but it would sure be nice to know what I'm looking at.


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...


Really want to do SF next. Maybe the next gen of models will be reliable enough to automate it but this took WAY too much manual labor for a working man. I’ll get the code up soon if people wanna fork it!

I'd absolutely love to play with this. one idea I had is to train another model to create bitmaps of sidewalks and roads and add a simulation for pedestrians and cars. day/night cycle would also be so cool!

How about Staten Island next?

I second that! I know that Staten Island isn't that well liked by the other boroughs, but the only time I visited New York so far, I stayed at an AirBNB (actually it was a HomeAway) there and have pleasant memories of seeing Manhattan in the distance through the window and using the ferry each morning to get there...

Really would love to see Tokyo, Kyoto, or Sydney.

Truly amazing work! I only had time to scan quickly your write-up but I'll try to read it entirely, it's very interesting thank you!

As you say: software engineering doesn’t go away in the age of AI - it just moves up the ladder of abstraction ! At least in the mid term :)


Looks pretty amazing, especially a bit zoomed out!

The 3D/street view version is an obvious and natural progression from here, but from what I've read in your dev log, it's also probably a lot of extra work.


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 :)

oh wow that's such a good/obvious idea, i'll see if I can whip it together tonight

I created an account just to say that your map is amazing! It's beautiful and very interesting to look at, because of all the details. Thank you for documenting your method of creating this! I've been looking for a way to create a similar map for the island I'm living at, and maybe your method will work for this. Thank you so much for documenting the steps!

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.


I too am amazed by the detail. I see things now, that I never saw before, in areas I'm intimately familiar with.

This is an incredible piece of work that I had a blast exploring!

I must admit I spent way too much time finding landmarks I visited when I last holidayed from Australia. Now I'm feel nostalgic.

Thanks so much for sharing!


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

> 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.


I mean this pretty literally though - I'm not particularly interested in these questions. They've been discussed a ton by people way more qualified to discuss them, but I personally I feel like it's been pretty much the same conversation on loop for the last 5 years...

That's not to say they're not very important issues! They are, and I think it's reasonable to have strong opinions here because they cut to the core of how people exist in the world. I was a musician for my entire 20s - trust me that I deeply understand the precarity of art in the age of the internet, and I can deeply sympathize with people dealing with precarity in the age of AI.

But I also think it's worth being excited about the birth of a fundamentally new way of interacting with computers, and for me, at this phase in my life, that's what I want to write and think about.


I appreciate the thoughtful reply. I will try to give you the benefit of the doubt then and not extrapolate from your relatively benign feelings as it pertains to a creative art project any capacity for you to take up engineering projects that would make the world worse.

You get your votes back from me.


This is basically the inversion of the famous Jurassic Park quote. “Never mind if we should. What if we could?”

neat!

Would be cool if you could adjust the sun's position & see the effect on shadows.

Could even extend it to add a "night mode" too, though that'd require extensive retexturing.


This is delightful. It scratches that SimCity itch while still being recognizably New York. I ended up losing track of time exploring my old neighborhood and landmarks, and it somehow conveys the city's scale and quirks better than a satellite view. Thanks for sharing it.

> 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.


I agree this is the interesting part of the project. I was disappointed when I realized this art was AI generated - I love isometric handdrawn art and respect the craft. But after reading the creator's description of their thoughtful use of generative AI, I appreciated their result more.

Where’s the love here? There are artists who dedicate their lives to creating a single masterwork. This is someone spending a weekend on a “neat idea”.

You're inferring that time invested per project is directly proportional to love for the craft, which I disagree with strongly. Taking a weekend to explore a new medium is an act of interest/love in the craft. Is Robert Bateman any less dedicated to a life of art than Michelangelo was? Maybe, maybe not, but I think we can both agree they produced quick sketches, and dedicated their lives to producing incredible art.

I expect artists will experiment with the new tools and produce incredibly creative works with them, far beyond the quality I can produce by typing in "a pelican riding a bicycle".


It’s not necessarily directly correlated, but it’s a decent signal. What’s the signal here?

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.


the classic "water/concrete" issue! There's probably a lot of those around the map - turns out, it's pretty hard to tell the difference between water and concrete/terrain in a lot of the satellite imagery that the image model was looking at to generate the pixel images!

The author had built something like this image viewer before and used an existing library to handle some of the rendering.

This is fantastic, can't overstate how revolutionary this would be for gaming development.

This is so cool. I love the 80s cartoon feel of the map.

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

Haha I had to throw in the towel at some point and Staten Island didn't make the cut. Sorry (not sorry)

Not to mention much of long island and the bronx

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

Wow, this is absolutely amazing! This is the kind of project I am trying to do with agents, but of course I'm really far from this, but you motivated me to do better!

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


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


Oh wow this is great, I threw a few of these tricks at it and never really felt like I nailed it... Might have to revisit after playing around with this more

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


You definitely captured the SimCity vibe. Well done!

This is one of the coolest things I've ever seen. Massive kudos to you. I am forwarding to all NYers I know. It gives me chills to relive specific places, though I'm far from the city now.

Very cool! What's your license on this stuff?

This is pretty awesome!

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.


Maybe I'm just missing it somewhere but does anyone see what the licence for this map is?

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

I just couldn't justify spending dozens more hours for Staten Island...

What do you estimate the cost would be to have each tile hand drawn by an artist?

I don't think there are enough artists in the world to achieve this in a reasonable amount of time (1-5 years) and you're probably looking at a $10M cost?

Part of me wonders if you put a kickstarter together if you could raise the funds to have it hand drawn but no way the very artists you hire wouldn't be tempted to use AI themselves.


Really slick. Let’s see the AI open it up so we can use it to generate a similar map for anyplace on Earth :)

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!


Yup back of the napkin is probably about there - also spent a fair bit on the oxen.ai fine-tuning service (worth every penny)... paint ain't free, so to speak

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


"Napoleon may have once said “quantity has a quality all its own”."

Nope, It was Stalin who said that in regards to his "meatwave" strategy.


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

100% - I originally wanted to do that but when I realized how much manual work I'd have to do just to get the tiles generated I had to cut back on scope pretty hard.

I actually have a nice little water shader that renders waves on the water tiles via a "depth mask", but my fine-tunes for generating the shader mask weren't reliable enough and I'd spent far too much time on the project to justify going deeper. Maybe I'll try again when the next generation of smarter, cheaper models get released.


There's gotta be an easy way to just use the Google maps data to make a mask for the water?

I am doing something like you describe but it uses real maps.

https://lisbonracer.com/


what an amazing feat of artwork and such a fine writeup as well. learnt a ton! thank you for this

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!

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

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!


Looks more like trimetric projection, but cool nevertheless.

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

The progressive loading of the tile images really goes great with the pixel art style. Nice touch!

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

Great job, I love the M Machine too. Good music and visuals.

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

Seems to have been hugged to death as of now

Should be back after some help from Claude and some money to Cloudflare

Class, looks amazing. The embed in the writeup looks so cool!

Great work, I loved the in depth tech explanation

I love it! Such a SimCity 2000 vibe!

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

We had our third kid in late November, and I worked sporadically on it over the following two months of paternity leave and holiday... If I had to bet, I'd say I put in well over 200 hours of work on it, the majority of that being manual auditing/driving of the generation process. If any AI model were reliable at checking the generated pixels, I could have automated this process, but they simply aren't there yet, so I had to do a lot more manual work than I'd anticipated.

All told I probably put in less than 20 hours of actual software engineering work, though, which consisted entirely of writing specs and iterating with various coding agents.


> If any AI model were reliable at checking the generated pixels, I could have automated this process, but they simply aren't there yet, so I had to do a lot more manual work than I'd anticipated.

Since the output is so cool and generally interesting, there might be an opportunity for those forking this to do other cities to deploy a web app to crowd source identifying broken tiles and maybe classifying the error or even providing manual hinting for the next run. It takes a village to make a (sim) city! :-)


Yeah I'll get the code out there soon - it's just very vibe-y right now, the repo is a bit of a mess since I never bothered to organize things. The secret sauce is really in the fine-tuning, can definitely get those datasets/models public on oxen.ai too

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

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


Yup the adjustment was giving cloudflare 5 bucks :)

Hah! I thought caching stuff was free. Is it because of the workers? I assumed this was all static assets.

I too have been giving cloudflare 5$ for a while now :D


yeah I had to put it behind a worker to deal with the subdomain and various other subtle caching issues. All in all cloudflare is incredible, and Claude makes it actually quite easy to deal with all the ins and outs

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

I used antigravity a bit, but it still feels a bit wonky compared to Cursor. Since this was on my own time, I'm gonna use the stuff that feels best. Though, by the end of the project I wasn't touching an IDE at all.

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

This on top of Subway Builder would be incredible

Dope

> But at the end of the day, the last 10% always takes up 90% of the time and, as always, the difference between good enough and great is the amount of love you put into the work.

Nicely put.


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

It looks like simcity4!

Absolutely love this! Yay robots!

This is incredible, I love it. It would be great to be able to overlay OSM data over it for those of us who aren't that familiar with the city and would like to know more about certain areas or places

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


Yeah this is all completely fair and I agree with all of it. Aesthetically and philosophically, what AI does for "pixel art" is very off. And once you see the "AI" you can't really unsee it.

But I didn't want to call it a "SimCity" map, though that's really the vibe/inspiration I wanted to capture, because that implies other things, so I used the term "pixel art" even though I knew it'd get a lot of (valid) pushback...

As with all things art, labels are really difficult and the context / meaning / technique is at once completely tied to genre but also completely irrelevant. Think about the label "techno" - the label is deeply meaningful and subtle to some and almost meaningless to others


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.


Looks badly AI generated.

Sim City, NYC edition

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

simple is relative, could definitely be done, but until the models get a bit smarter and require less manual hand-holding it'd be a lot of grindy work

this makes me want to play simcity again! really cool

I love it, and I want it for my city, and hell the whole world!

Makes me realize how much I love New York, thank you.

Why is so much NJ on the map?

a) couldn’t decide where to draw the edges b) I live in NJ ;)

Amazing

this is truly amazing. bravo.

Really nice.

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.

At the risk of rehashing the same conversation over and over again, I think this is true of every technology ever.

Personally I'm extremely excited about all of the creative domains that this technology unlocks, and also extremely saddened/worried about all of the crafts it makes obsolete (or financially non-viable)...


Do you seriously believe this[1] makes any craft obsolete or financially non-viable?

[1] https://files.catbox.moe/1uphaw.png

This is a fairly cool and novel application of generative AI[2], but it did not generate pixel art and it's still wildly incoherent slop when you examine it closely. This mostly works because it uses scale to obfuscate the flaws; users are expected to be zoomed out and not looking at the details. But the details are what makes art work. You could not sell a game or an animation like this. This is not replacing anybody.

[2] It's also wholly unrepresentative of general use-cases. 99.99999999% of generative AI usage does not involve a ton of manual engineering labour fine-tuning a model and doing the things you did to get this set up. Even with all of that effort, what you've produced here is never replacing a commercially viable pixel artist. The rest of the world slapping a prompt into an online generator is even further away from doing that.


Does it really matter that much that a sewage treatment plant couldn't exist without automated sensors? Maybe it shouldn't exist then at all.

> 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.

If you don’t see these tools as a way for ALL of us to more-intimately reach more of our intended audiences,

whether as a musician, marketer, small business, whatever,

then I don’t know if you were really passionate or excited about what you were doing in the first place.


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)!


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…


Hugged to death? :(

Seems so. Shame! Really wanted to see this.

You really, really do. It's quite something.

It's back and wow, it's incredible!

Should be back online now!

beautiful!

reticulating splines

[deleted]




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: