An Editor’s Picks: The Best Gifts for Bird Lovers
Whether they’re into feeders, field guides, or games, these tried-and-tested picks are sure to land perfectly.
Whether they’re into feeders, field guides, or games, these tried-and-tested picks are sure to land perfectly.
From smart rings and everlasting flowers to weighted vests and LED masks, there's a gift for every kind of mom.
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
Comments URL: https://news.ycombinator.com/item?id=47984734
Points: 5
# Comments: 0
For the past week, a photo of me has been plastered on the CEO of Snap’s Wikipedia page. No one, not even Spiegel, seems to care.
Hey HN!
I built SimplePDF Copilot: an AI assistant that can interact with the PDF editor. It fills fields, answers questions, focuses on a specific field, adds fields, deletes pages, and so on.
It's built on top of SimplePDF that I started 7 years ago, pioneering privacy-respecting client-side pdf editing, now used monthly by 200k+ people.
As for the privacy model: the PDF itself never leaves the browser. Parsing, rendering, and field detection all run client-side.
The text the model needs (and your messages) goes to whatever LLM you point at. By default that's our demo proxy (DeepSeek V4 Flash, rate-capped), but you can BYOK and point it at any cloud provider, or go fully local (I've been testing with LM Studio).
Unlike the existing "Chat with PDF" tools that only retrieve the text/OCR layer, Copilot can act on the PDF: filling fields, adding fields (detected client-side using CommonForms by Joe Barrow [1], jbarrow on HN with some post-processing heuristics I added on top), focusing on fields, deleting pages, and so on.
I built this because SimplePDF is mostly used by healthcare customers where document privacy is paramount, and I wanted an AI experience that didn't require shipping PII to a third party. Stack is pretty standard:
- Tanstack Start
- AI SDK from Vercel
- Tailwind (I personally prefer CSS modules, I'm old-school but the goal since I open source it, I figured that Tailwind would be a better fit)
The more interesting part is the client-side tool calling: events are passed back and forth via iframe postMessage.
If you're not familiar with "tool calling" and "client-side tool calling", a quick primer:
Tool calling is what LLMs use to take actions. When Claude runs grep or ls, or hits an MCP server, those are tool calls.
Client-side tool calling means the intent to call a tool comes from the LLM, but the execution happens in the browser.
That matters for: speed, you can't go faster than client-to-client operations and also gives you the ability to limit the data you expose to the LLM. For the demo I do feed the content of the document to the LLM, but that connection could be severed as simply as removing the tool that exposes the content data.
The demo is fully open source, available on Github [2] and the demo is the same as the link of this post [3]
What's not open source is SimplePDF itself (loaded as the iframe).
I could talk on and on about this, let me know if you have any questions, anything goes!
[1] https://github.com/jbarrow/commonforms
[2] https://github.com/SimplePDF/simplepdf-embed/tree/main/copil...
[3] https://copilot.simplepdf.com/?share=a7d00ad073c75a75d493228...
Comments URL: https://news.ycombinator.com/item?id=47984675
Points: 4
# Comments: 1
Article URL: https://github.com/Teaonly/SKILL.make
Comments URL: https://news.ycombinator.com/item?id=47984486
Points: 9
# Comments: 1
Article URL: https://github.com/InsaneInfinity/Balistic
Comments URL: https://news.ycombinator.com/item?id=47984291
Points: 3
# Comments: 1
Praveen Neppalli Naga, Uber's chief technology officer, revealed the plan in an interview at TechCrunch's StrictlyVC event in San Francisco on Thursday night, describing it as a natural extension of a nascent program the company announced in late January called AV Labs.
Article URL: https://mathstick.github.io
Comments URL: https://news.ycombinator.com/item?id=47983485
Points: 12
# Comments: 12
Save on the science-backed devices you’ve been eyeing with 15% off Theragun discount code and 30% off other great deals.