Hacker News

Best stories

Live mirror
30 storiesupdated just nowView source snapshot
  1. When did Google get so weird? (sancho.bearblog.dev)
    666comments
  2. Breaking Up with Google Play: Why Conversations Is Now Free (gultsch.de)
    292comments
  3. Unsealed Briefs in Authors’ Case v. Microsoft/OpenAI (authorsguild.org)
    601comments
  4. Owed a billion dollars in Nvidia stock (colo.to)
    254comments
  5. I'm the mom in that viral Giants clip. Let me tell you about my husband (themomoftheyear.substack.com)
    235comments
  6. Ember-1 (fireworks.ai)
    205comments
  7. Meta Blocks President Lula's Facebook Page, Campaign Ads 2 Weeks from Election (reddit.com)
    288comments
  8. Fifteen years later, the Apple Cards origin story (lexontech.org)
    114comments
  9. Show HN: Reladraw – A diagram language where you decide where to place things (github.com/reladraw)
    113comments
  10. Go Concurrency Distilled (antonz.org)
    180comments
  11. Flip Fluid on Flip Dots (mitxela.com)
    24comments
  12. On caring for user data: NeoVim caused Vim undo files to be deleted (aresluna.org)
    327comments
  13. There are no "rogue" AI agents (eoinhiggins.substack.com)
    251comments
  14. Tells of a Slop UI (hereticpleb.vercel.app)
    230comments
  15. How to keep enjoying programming in a world of LLMs (haskell.org)
    337comments
  16. DeepSeek Elastic Compute (DSec) (arxiv.org)
    109comments
  17. The Normalization of Inexplicable Failures (ihatethefuture.com)
    107comments
  18. What is the size of Yemen? (2024) (theborys.substack.com)
    77comments
  19. In an $80 motel room, a discovery to shed light on the origins of life (nytimes.com)
    91comments
  20. Show HN: Lofi Cities – Pixel-art city nights with browser-generated lofi (loficities.com)
    108comments
  21. Don't couple your Go code to GitHub (iain.rocks)
    104comments
  22. Floci: Locally emulating any cloud service (floci.io)
    48comments
  23. If we do not stop to help each other, what do we become? (codinghorror.com)
    89comments
  24. Plunging test scores are a slow-moving catastrophe (economist.com)
    395comments
  25. Japan moves to tighten rules for foreigners (aljazeera.com)
    584comments
  26. SNL Weekend Update: Anthropic CEO Dario Amodei on A.I.'S Threat to Humanity [video] (youtube.com)
    95comments
  27. One Month Without AI (bustikiller.com)
    225comments
  28. PostmarketOS is rebranding as Nura (nura.eco)
    53comments
  29. Drawgent: Coding agent on a live Excalidraw canvas (tangled.org/yanndegat.tngl.sh)
    45comments
  30. Self-Hosting on the Dark Web (alvarezrosa.com)
    54comments

Show HN: Lofi Cities – Pixel-art city nights with browser-generated lofi

229 pointsby 13h agoloficities.com
107 comments
13h agoHN ↗

So cool. Add Los Angeles, Cape Town, Florence, Cairo, Athens, Vancouver, São Paulo.

Actually, shouldn't it be possible to auto-generate any city via AI on demand?

12h agoHN ↗

Maybe to a degree but this isn’t just somebody using Seeddance to generate a first-frame-and-last-frame video loop and calling it a day.

There's definitely some manual curation. They even have assets that are clearly being placed into the scene, like the boats moving in the water.

You could theoretically generate all possible animated sprites (birds, people, vehicles, etc.) for use in any given cityscape, but automatically segmenting/detecting the different valid "paths/waypoints" where those assets should be placed would probably end up looking pretty janky.

11h agoHN ↗

Maybe??.. Opus 5.5 is a giant step function up with "manual illustration". Quite a bit better than Astra. It is entirely possible to get this quality of animation "hand drawn" from Opus 5.5...

Honestly I was blown away, it is one capability that blindsided me. I haven't been this surprised by a capability lift in a long time.

10h agoHN ↗

I haven't had a chance to play with Opus 5.5 yet, but I guess if there were a way to generate each of the pieces (aka the layers) then it might be possible:

- parallax, which might be some clouds moving in the background.

- weather effects which is mostly just an overlay

- animated sprites that interact with, or at least move along, the different sections of the static scene.

It'd be neat to see how well it could recreate some of the larger set pieces like Westminster palace.

I've definitely seen some pretty impressive automated AI voxel stuff (and that was 6 months ago) and that's having to deal an extra dimension. [1]

Personally I still don’t see a situation in which you could do it completely hands-off though. I think you’d end up with some pretty good scenes and some really terrible scenes requiring post-adjustments. It would be an interesting experiment at any rate!

[1] - https://github.com/Ammaar-Alam/minebench

9h agoHN ↗

I make the cities ahead of time with AI and prepare the loops before adding them. The app can’t generate cities on demand yet, but I like the idea.

13h agoHN ↗

Man, wish we had dynamic wallpapers like this, and we could have had it decades ago.

Why do companies like Apple & Microsoft sterilize themselves so?

12h agoHN ↗

I was having a very similar thought - finally a nice use case for HTML wallpapers like Windows used to have them. I bet that there's a trick to have this as a desktop background in Wayland, but I'm too lazy to find out right now.

Either way, really nicely made, I love it! Small change request: adjust the CSS to make the controls look less vibecode-y.

12h agoHN ↗

Wallpapers that move would make for poor usability.

11h agoHN ↗

That's up to personal preference. Just like with static wallpapers, some people like single subtle colors, some people like noisy multicolored wallpapers.

There's already subtle parallax in iOS etc.

Animated wallpapers could be subtle, like raindrops, or animate only when interacted with, when you're bored or waiting for the AI to finish a run etc. :)

9h agoHN ↗

That's up to personal preference.

Stated preference perhaps, but unlikely revealed preference.

Depends on context, but for a computer on which you're doing work, moving wallpaper is usually a net negative for usability while you're actively working, though the magnitude depends heavily on the animation.

The problem is primarily peripheral attention. Motions is a strong pre-attentive visual signal: your visual system detects it without you deliberately deciding to look at it. One a laptop where you're close to the display and spending long periods concentrating on text, code, documents, etc., any visible animated region around or through windows can create low-level competition for attention.

A good compromise is wallpaper motion during transitions or stillness during work.

Broader UI principle: motion should explain change, not create change to be noticed.

10h agoHN ↗

When using my 32 inch screen sometimes I set the wallpaper to a random walk video in YouTube and it works fantastically. I know that it is counter intuitive, but the contrast between real and moving elements and static and almost flat Windows makes for a nice experience. And helps fighting text editing fatigue.

Of course, ymmv. But give it a try.

9h agoHN ↗

Yeah and there were other 3rd party "hacks" for it, but I mean Windows or macOS never made it an official API, so it never caught on, even though Apple's own "Dynamic Wallpapers" use some kind of motion (they're videos but only during screen-savers or time-based)

11h agoHN ↗

Just tested and this works great on macOS with Plash [1] by Sindre Sorhus. I couldn't find too many URL parameters to control it, but the FAQ does mention an ?obs parameter to hide the interface by default and ?weather=... to choose the weather. This URL in Plash works as described:

    https://loficities.com/tokyo/?obs&weather=leaves

I was also able to omit ?obs and use the website interface controls to configure it via Plash browsing mode and then the interface went away after a moment of inactivity.

[1]: https://sindresorhus.com/plash

10h agoHN ↗

Good to know it works with Plash! Thanks for sharing the setup.

13h agoHN ↗

Gorgeous, very well executed. I'm guessing the primary request will be more cities but I'll deviate and say I'd love to see more views as well. Would be nice to have the same set of cities by I can see it from a studio view same way it is in the Paris view. Or from an office. Or a cafe.

10h agoHN ↗

I’ll add indoor views to the roadmap. Cafés and apartments could give each city a different feel.

12h agoHN ↗

The product hunt ad is breaking the immersion for me. I know that most cities have ads but still, I prefer ad free pixel art.

It’s also not realistic, in one landscape the billboard is taller than a 9 story building.

11h agoHN ↗

It feels bolted on to an otherwise cool thing. Even angling the board, or smudging, dimming color, localizing language, etc. All would make it feel like it fits.

11h agoHN ↗

I know this is going to sound ridiculous, but the way the dithering is used feels very "generated" and chaotic.

Human pixel art tends to be very deliberate about the exact colors of every pixel and their placement tends to follow idealized (but not necessarily geometric) shapes.

The last time I saw dithering this sloppy was decades ago when people would scan photos as low color images. It is its own vibe, but it's a cold and rough one. These artifacts feel more "realistic", but it felt like slop back then too.

10h agoHN ↗

Yes, that’s the tell tale sign of AI generative pixel art. AI can’t be consistent with the pixels. Looks ok sometimes but never pops.

5m agoHN ↗

Nooooo. :(

Turns out part of the appeal for me is that it's handmade.

10h agoHN ↗

Would a hide option help, or should the billboard itself blend into the scene better?

6h agoHN ↗

Honestly I’d blend it more. Maybe reduce the contrast a bit and so it’s not the first thing your eye goes to.

43m agoHN ↗

That makes sense. I’ll try lowering the contrast and adjusting the lighting so it fits the rest of the scene better.

5h agoHN ↗

Just delete it :/

Ads are the worst and they're antithetical to the vibe of something like this

If it's an actual ad.. You'd get more goodwill (and maybe clicks) out of a tiny 'if you appreciate this maybe check out product hunt to support me' message somewhere. At least it's not manipulative that way.

5h agoHN ↗

Yes, just delete it. Seriously. WTF is that? Loved the general vibe but hit the back button after a visceral to... f*ckin' Product Hunt? Seriously?

Crazy times, man.

44m agoHN ↗

I hear you. If the billboard made you leave, it’s getting in the way of what I wanted the site to feel like. I’ll rethink it.

46m agoHN ↗

A small optional support link makes sense. I’ll think about moving the promotion out of the scene so it doesn’t interrupt the atmosphere.

9h agoHN ↗

Who cares.

Only on HN there can be a single pixel that is misplaced or off and it causes ONE person to get upset about it.

This is completely petty. Just stop.

4h agoHN ↗

Occasionally it switches from product hunt to a "Your Ad Here" ad that links to a popup with the following (slop) text:

Put your café, shop, studio or brand on the billboard in Paris: drawn by hand in the same pixel-art style, and glowing in the scene while people study, work and unwind to the music.

It's clear this is a money-making endeavor, not something created out of passion or goodness of heart. And not art.

1h agoHN ↗

Thanks! I’ll change it to “drawn in the same pixel-art style.”

This is a passion project for me. I’m paying to keep it running, and the billboards are meant to help cover those costs. I’ll add an option to hide them.

2h agoHN ↗

You won't have this type of billboard in Paris...And it looks so off.

42m agoHN ↗

I’ll take another look at the Paris billboard and how it fits into the scene.

12h agoHN ↗

This is a vibe! Is this pixel art AI generated?

12h agoHN ↗

There's a lot of AI on the author's github, so I would assume so. I have no idea how I feel about these sorts of things. On the one hand I think it's objectively a super neat idea, but it makes me sad that a human (probably) didn't make the art/songs.

12h agoHN ↗

A human did --- just indirectly, in the same way as using a compiler or assembler instead of writing each byte by hand.

11h agoHN ↗

I use a compiler to perform a task. I don’t use pixel art to perform a task, other than to feel connection to another human —- something AI makes more challenging.

11h agoHN ↗

I've been thinking about this a lot lately. I feel very averse to consuming AI media, but it's not super obvious to me why. In some sense, I agree with what you're saying, but in reality no pixel art of a city I've never been to would elicit that feeling in me. Maybe I would feel differently if it were art of the city I live in and had some pixels dedicated to specific things I think are cool about the city, but for this website in particular it could be the best pixel art of SF ever made and I don't think it would be all that meaningful to me.

The main conclusion I've come to is that it's less that I dislike AI art inherently, and rather that I value the human decisions in media that I personally care about, and AI media threatens both its creation and how much other people value such things.

11h agoHN ↗

maybe you are MOSTLY judging what you perceive to be the artist's options and then decisions, and with most AI art, it's super easy to judge both of those quickly and accurately -- they had a billion options, and they chose a really lazy one.

or i don't know if you are but this is how i think i feel a lot of the time haha

11h agoHN ↗

I mean pixel art is kind of weird, in that I rarely just look at a single screen of pixel art and say, wow, I feel more connected now. It’s often taken in context of a larger whole, like a game or animation where the artist is usually trying to express something, and the specific art is some small part of the overall expression. It’s kind of like how no individual still image from Spirited Away will convey the meaning of the whole movie.

11h agoHN ↗

other than to feel connection to another human

With AI, instead you feel a connection to the sum of all humanity.

11h agoHN ↗

Ah that's a bummer. I'm unsure if this is gonna change over time, but it entirely tanks my enjoyment of any visual art project to know it was generated.

10h agoHN ↗

Yes, I use AI for the images and video loops. The music is synthesized live in your browser using the Web Audio API.

11h agoHN ↗

There's a lot to like here, but too AI-generated for me. The pixel art for Tokyo & Hong Kong don't use proper Chinese/Japanese characters. The pulsating badges in the non-pixel UI are also pretty AI-indicative in a way that is distracting.

2h agoHN ↗

Yeah, the city search got cut off on mobile. Vibey and janky, but still it's a pretty creative idea.

I would have been very impressed if it made pixel art for cities on demand. If I were able to put in my hometown and see a delightful pixel art memory, I'd swoon and point to it and say "wow wee LLMs are pretty dope aren't they", but instead I'm just thinking this is yet another shallow project which will be abandoned tomorrow.

1h agoHN ↗

Which phone and browser were you using? I’ll check the city search layout on smaller screens.

11h agoHN ↗

I love the FM synth in the music. Some of the patches from Sonic games can be heard.

11h agoHN ↗

Nice idea, but the rain sound (at least on my system) isn't rain - it's just white noise?

11h agoHN ↗

White noise is better than the repetitive and generic synthetic music I got

10h agoHN ↗

Which browser and device are you using? Does the rain still sound like white noise with the music paused?

8h agoHN ↗

Got it. I’ll look into the rain sound on Firefox with the music paused.

10h agoHN ↗

Very cool project. I love the tour aspect of it!

I first saw Paris from inside the room, and only later realized that 90% of the cities seem to be outdoors. It did make me kind of miss the indoor theming of the local area.

Also make me think how cool it would be to be able to toggle between being indoors or on the balcony. Shift the volume of the music vs the weather, maybe add some city sounds and shift them as well. Finally, it means you could have twice as much visual variety for only 50% more art.

10h agoHN ↗

strange to me that "lofi" has graduated from low fidelity to AI generated downtempo music, which I assume (like the art) is based on the work of real artists.

10h agoHN ↗

Is the music AI-generated? Because it's pretty hard to listen to. Weird dissonant chord progressions.

10h agoHN ↗

The music is generated procedurally in your browser using the Web Audio API. Which city and music style were you listening to?

9h agoHN ↗

It's cute, but the custom weather overlays don't make sense. Where are the autumn leaves falling from on top of the 7th floor in Paris, the secret rooftop forest canopy?

9h agoHN ↗

Haha, fair point :) You can use any weather effect in any city, which leads to some odd combinations like leaves outside that Paris window.

9h agoHN ↗

I don't why I would want to stare at vibecoded UI and an ad to relax

9h agoHN ↗

I loved it. Since i was a child i have something with skylines in general that i can't explain (be it real or not). it's like a nostalgic/depressive feeling in a good and weird way. i also have a similar and weird thing with liminal spaces [0]

[0] https://en.wikipedia.org/wiki/Liminal_space

8h agoHN ↗

I’m glad it gives you that feeling. There’s something about city skylines at night that fits lofi so well.

9h agoHN ↗

I had a similar idea yesterday - https://www.lofiwizard.com/ - I mainly wanted to have Opus 5.5 generate random browser scenes to see what it could do. I love how your pixel cities came out! I tried to do similar music via code but it never sounded right so I had Google's Lyria 3 model make the music instead.

8h agoHN ↗

Nice to see another take on this! What was hardest to get right with the code-generated music?

8h agoHN ↗

It's interesting, I vibecoded a very similar lofi/mood idle game, but in 2.5D with Codex, I would say that the reception was about 60% positive with a lot of people complaining about AI slop, then I removed the Codex fingerprints like the verbose titles "Neon Rain by Tokyo Tower", the button/field UI that looks like a ChatGPT wrapper startup from a year ago, changed font from the generated one, and then it had about 80% positive interaction.

I think its easier to sell it as actual art/non-slop when you take some time to remove what is generic across newer LLM sessions.

8h agoHN ↗

That’s useful feedback. I’ll take another look at the typography and controls. I want them to fit the scenes better.

8h agoHN ↗

I'd encourage chronicling the effort you put in and be transparent about the methods. If you want your AI art to reach proper recognition, the different type of effort needs to be shown

8h agoHN ↗

It's a fair point. I experimented with this, but I still don't think that the general public is there yet. Any mention of AI is already a negative sentiment for a large group of consumers, especially in artistic fields. While this is true, it does not make sense to disclose these things because then you can capture both the customers that care and those who don't if you are sufficiently careful.

Once the technology gets good enough and people can't tell it apart and start to get used to generated content like this, it will perhaps start to make sense to provide this kind of effort if it's still relevant.

8h agoHN ↗

You're not the first to try to build something on the basis of lying by omission, but I will say, it's pretty bleak

8h agoHN ↗

Disclosure makes sense when the trust it buys is worth more than the sales it costs. Currently the trade-off is completely dogshit. You don't get good reputation by making any art with AI, nor good sales by disclosure.

When/if people start rewarding disclosure it will make sense to do this, otherwise you are asking me to pay for this abstract principle out of my own pocket.

6h agoHN ↗

Nice! Were the assets generated or imported? Also, if generated, natively or MCP? And which?

6h agoHN ↗

All generated, I don't normally use the ChatGPT/Codex desktop app but in this instance I had it do everything directly.

So GPT 5.6 Sol using GPT images 2.0 (fake transparency by generating pink which it then removed) and it deployed to ChatGPT sites which I also wanted to just see in action for fun. It's basically just CloudFlare with D1 underneath or something.

So tldr yeah just generated with the built in image gen, it does have an advantage there over Claude. With images 2.5 I imagine the result would be more consistent.

6h agoHN ↗

When I open some of the submissions here, I have a voice in my head that screams "LLM"...

This is almost like a reflex, I am not sure why, because when I look, I don't see any pattern...

Anyone else have the same?

6h agoHN ↗

Unpopular opinion, but I think the "Lofi" sound or style ruins perfectly fine songs.

6h agoHN ↗

Not the biggest issue (and perhaps the smallest) it's not Sakura tree season here in Tokyo ;)

40m agoHN ↗

The scenes don’t follow the seasons yet. I’d like to explore that so Tokyo doesn’t stay in cherry blossom season all year.

5h agoHN ↗

I like the Sydney one (the jacarandas are a nice touch; a banksias or wattle option would add an interesting local touch).

For any city, a thunderstorm or light drizzle option would be very moody.

2h agoHN ↗

The Sydney one has the opera house as an island.. that's not how it is at all

1h agoHN ↗

I’ll take another look at the Opera House placement. I want the landmarks to feel right, even in a stylized scene.

1h agoHN ↗

Glad you liked Sydney! More local plants would be a nice touch. I’ll also keep thunderstorms and lighter rain in mind.

5h agoHN ↗

It's not that weird - Google isn't a search engine company, they're an advertising company.

I'm not just flogging a dead horse here - they don't care how good the search results for these types of queries are, they need to be just good enough to stop you from moving to search via Perplexity, Chatgpt, Claude etc. They also need to be as cheap as possible to generate.

Google makes money when you search for things to buy which is why they'll give you an ad-free experience on things that they never made much money off anyways (eg "why is the sky blue?") - they want you to be around when you search for something they can (eg "jewellery"). Note that they never give you AI slop when you're doing a product search.

Unfortunately people both expect answers phrased in response to their questions, and people have generally poor skills at picking up on authoritative-sounding bullshit. Also if they give you "an answer" and stop you from moving to another site with more detail (and possibly ads from someone else!) you're more likely to ask follow up questions on google.

3h agoHN ↗

You can put cool AI infront of AI slop and it's still AI slop. Man this website is so weird.

2h agoHN ↗

Ad hiding option would improve immersion significantly.

1h agoHN ↗

I’m planning to add a switch to hide the billboards so you can keep the scene clear.

1h agoHN ↗

<overthinking>I get a feeling it's too cold inside. Maybe it's how thin the walls/windows look (evidenced by how loud the rain can be heard), or how tall the ceiling is, which makes it seem colder, with no light flicker indicating presence of an indoor fireplace.</overthinking>

6m agoHN ↗

Totally adding this to my second monitor setup for those late-night coding sessions. The generated lofi is a fantastic touch.