Show HN: Browser-based light pollution simulator using real photometric data
Source: Hacker News
Overview
Hi HN — author here. iesna.eu is a browser‑based ecosystem for working with photometric data:
- Parses standard luminaire files (LDT/EULUMDAT, IES LM‑63, Oxytech, ATLA‑S001)
- Runs design calculations against EN 13201, ANSI/IES RP‑8, CJJ 45, and IES‑IDA MLO
- Renders real urban scenes in Bevy with the photometric data driving actual street‑light behavior, including sky‑glow contribution.
Demo: Skyglow Analysis
The demo loads a real LDT file into a Bevy scene (Khronos Bistro test asset).
- The luminaire’s intensity distribution drives the street‑light rendering directly — no fudging.
- The sky‑glow grade updates live as you adjust the uplight percentage.
- Swapping to a full‑cutoff fixture changes the sky from F (Severe) back to A (Excellent).
- Differences are visible on both the buildings and the sky.
Technical Stack
- Rust core (
eulumdat-rsand friends, ~20 crates handling photometric formats) - Bevy for 3D rendering
- WebAssembly for browser deployment (no backend; everything runs client‑side)
- ~1 000 lines of new code on top of the existing photometric library to make the Bevy integration work
Feedback Requested
- Atmospheric scattering model – currently single‑scattering Rayleigh + Mie. Is this defensible for the use case, or should I move toward multi‑scattering?
- Test scene – the Bistro asset works visually but isn’t a controlled environment.
- Urban geometry assets – anyone know of a public urban geometry asset that’s more typical of real road‑lighting evaluation?
- CJJ 45 implementation – I’ve reverse‑engineered it from translated PDFs. If anyone has primary‑source experience with China’s national road‑lighting standard, I’d value a sanity check.
Open Source
- GitHub: https://github.com/iesna/eulumdat-rs (and related crates)
- Crates.io: https://crates.io/crates/eulumdat
Comments URL: https://news.ycombinator.com/item?id=47984734 (Points: 5)