Hacker News
Distributed Ray Tracer
The renderer itself is using well-known ray tracing techniques, with no special considerations there. The renderer is a slightly modified version of https://github.com/ekzhang/rpt, with additional support for SDF scripting using https://docs.rs/fidget/latest/fidget/. SDFs have been popular in the demoscene community, though perhaps not super well known outside of that, and are capable of creating some fantastic looking scenes: https://www.shadertoy.com/view/ld3Gz2. The coolest part here is using a DSL to represent the SDFs in a rendering pipeline, and using LLMs with a chat interface to create them.
The source is available here: https://github.com/hatchet-dev/distributed-ray-tracer
leecommamichael
|next
[-]
The first sentence on the site demonstrates a lack of understanding of the program. Signed distance fields are a representation of an implicit surface, which is sampled by fragments (pixels.) They have mathematical properties which make them simple to render in a realistic manner via something like ray-tracing or ray-marching. These properties also enable the fields to compose into more complex shapes.
juliusgeo
|root
|parent
[-]
keithwinstein
|next
|previous
[-]
This was led by my former PhD student Sadjad Fouladi who did a lot of creative work involving swarms of short-lived serverless functions for video encoding and distributed LLM inference (https://www.usenix.org/conference/nsdi17/technical-sessions/...) and software compilation (https://github.com/stanfordsnr/gg).
abelanger
|root
|parent
[-]
This is really neat! Especially the global illumination that passes ray data between nodes, much fancier than what we've done here. You could imagine each component as an actor that receives messages via async channels (though perhaps it's more deterministic than that?).
I think bursting on serverless for massively parallelizable problems is a really interesting use-case. We were partially inspired for this demo by one of our users doing energy simulations at massive scale, who built a library called Scythe for this purpose: https://github.com/szvsw/scythe
jimbobbam
|next
|previous
[-]
abelanger
|next
|previous
[-]
- https://iquilezles.org/articles/distfunctions/
- The 2D version: https://iquilezles.org/articles/distfunctions2d/ (discussed here: https://news.ycombinator.com/item?id=46380054)
- How Zed uses (used?) SDFs to render their editor: https://zed.dev/blog/videogame (discussed at the time: https://news.ycombinator.com/item?id=35078464)