Show HN: Browser-based light pollution simulator using real photometric data (iesna.eu)

44 points by holg ↗ HN
Hi HN — author here. iesna.eu is a browser-based ecosystem for working with photometric data: parsing standard luminaire files (LDT/EULUMDAT, IES LM-63, Oxytech, ATLA-S001), running design calculations against EN 13201 / ANSI/IES RP-8 / CJJ 45 / IES-IDA MLO, and (the part I most want to show off here) rendering real urban scenes in Bevy with the photometric data driving actual streetlight behavior, including sky-glow contribution. The Skyglow Analysis demo loads a real LDT file into a Bevy scene (Khronos Bistro test asset). The luminaire's intensity distribution drives the streetlight rendering directly — no fudging — and the sky-glow grade updates live as you adjust the uplight percentage. Swap to a full-cutoff fixture and the sky goes from F (Severe) back to A (Excellent). You can see the difference on the buildings as well as in the sky. Stack: Rust core (eulumdat-rs and friends, ~20 crates handling photometric formats), Bevy for the 3D rendering, WASM for browser deployment. No backend; everything runs client-side. About a thousand lines of new code on top of the existing photometric library to make the Bevy integration work. Things I'd love feedback on:

The atmospheric scattering model is currently single-scattering Rayleigh+Mie. Is that defensible for the use case, or should I move toward multi-scattering? The Bistro test scene works well visually but isn't a controlled environment. Anyone know of a public urban geometry asset that's more typical of real road-lighting evaluation? The CJJ 45 implementation (China's national road lighting standard) is the only one I've had to reverse-engineer from translated PDFs. If anyone has primary-source experience with it, I'd value a sanity check.

Open-source on GitHub (eulumdat-rs and the related crates). Crates.io: eulumdat

9 comments

[ 3.3 ms ] story [ 33.1 ms ] thread
All I get is an empty, dark blue page after I hit Launch Demo. Perhaps that does look a bit like a night sky, but I don't think that's what you're going for :)

Tested in Firefox/Brave/Chrome on Linux.

I love the idea, but it feels very un-serious as an attempt to educate people or reduce light pollution, which makes me very sad as someone who cares about reducing light pollution :'(

Why can't I create any light pollution no matter what I do? The stars wink out when the light pollution is 1000x less bright than the stars. It just feels completely disconnected from what I know light pollution feels like.

If I may make a technical suggestion, accurately representing the "qualia" of what both the presence and absence of colorful light feels like on a monitor requires compressing the color space a bit. Take a gander at this: https://brandonli.net/spectra/doc/

Love this tool - actually the idea itself - since I am fighting heavily against unnecessary outdoor lighting, especially with the new LED lights which I find terribly disturbing.
Thanks, well i got more feedback, so i figured out it shall be done even better...
That's very cute, I like the idea. Did you consider upgrading to a dynamic perspective? I guess that would be cooler and more immersive.
That's the neat idea!