frontpage.
newsnewestaskshowjobs

Made with ♥ by @iamnishanth

Open Source @Github

fp.

Open in hackernews

Show HN: A physically-based GPU ray tracer written in Julia

https://makie.org/website/blogposts/raytracing/
40•simondanisch•2h ago
We ported pbrt-v4 to Julia and built it into a Makie backend. Any Makie plot can now be rendered with physically-based path tracing.

Julia compiles user-defined physics directly into GPU kernels, so anyone can extend the ray tracer with new materials and media - a black hole with gravitational lensing is ~200 lines of Julia.

Runs on AMD, NVIDIA, and CPU via KernelAbstractions.jl, with Metal coming soon.

Demo scenes: github.com/SimonDanisch/RayDemo

Comments

LoganDark•1h ago
On iOS Safari the videos are fullscreening themselves as I scroll. I've seen this on other blogs before but I don't know what causes it. Super annoying
simondanisch•1h ago
Ugh, yeah I had some super weird bugs like this in safari, still haven't found the source :(
embedding-shape•25m ago
Don't quote me on this, but I think there is a "playsinline" / "webkit-playsinline" attribute for the video element you need to add to avoid that, + if it's autoplay you need to set "muted" too. I've also had this happen and I think both/either of those solved it last time.
amelius•1h ago
Is the material description part of the language the same as in PBRT?

I'm asking because I had a lot of trouble trying to describe interfaces between materials, only to find out that what I wanted to do was not possible in PBRT without modifying the code. Apparently, in PBRT a material can only have one other material touching it. So, for example rendering a glass filled with water and ice is not possible without hacks. From a user's point of view this is a bit of a let-down, of course.

Context: https://news.ycombinator.com/item?id=45668543

simondanisch•1h ago
Nope, we made a complete high level Julia interface and I plan to have the Makie API be the main user facing scene description, which can be more descriptive than pbrt I think!
amelius•59m ago
Ok. Did you see this:

https://blog.yiningkarlli.com/2019/05/nested-dielectrics.htm...

And I'm curious how you solve it.

simondanisch•7m ago
Sorry, I was on my phone. This doesn't seem to be a problem of the description language, but rather how the integrator and materials work internally, so this works the same way in Julia currently. I do think though, that its more approachable to add experimental features like this in the Julia version. Would certainly be an interesting project! I do want to over time get further away from the pbrt-v4 architecture and get to something much more modular and easy to extend. I feel like the overlaps resolve should happen at scene creation time, to not have an expensive priority stack at raytracing time - then it would be just a matter of better tracking the media at boundary crossing. But haven't really thought this through of course ;)
krastanov•1h ago
As an aside, it is really interesting to see a computational package that, while supporting multiple GPU vendors, was first vetted on AMD, not NVidia. It is encouraging to see ROCM finally shaking off its reputation for poor support.
simondanisch•28m ago
well, I do hate vendor lock in with a passion ;) But yeah, a lot did happen, this likely wouldn't have been possible one or two years ago!
NoboruWataya•35m ago
I don't hear nearly as much about Julia as I used to. A few years ago the view was that it was about to replace Python as the language of choice for data science. Seems like that didn't happen?
simondanisch•21m ago
I think the hype has slowed down, but all growth statistics haven't. Personally, I think Julia is the only language where I can implement something like Makie without running into a maintenance nightmare, and with Julia GPU programming is actually fun and high level and composes well, which I miss in most other languages. So, I dont really care about it replacing python or not. I do think for replacing python Julia will need to solve compilation latency, shipping AOT binaries and maybe interpret more of the glue code, which currently introduces quite a lot of compilation overhead without much gains in terms of performance.
bobajeff•12m ago
As someone who currently uses dabbles in both. That prediction seems a bit unrealistic. Julia is a fantastic language but it has some trade offs that need to be considered. Probably the most well known is `time to first x`. Julia like Python is used comfortably in notebooks but loading libraries can take a minute, compared to Python where it happens right away. It may lead you to not reach for it when you want to do quick testing of something especially plotting. You can mitigate this somewhat by loading all the libraries you'll ever need at startup (preferably long before you are ready to experiment) but that assumes you already know what libraries you'll need for what you're wanting to try.
IshKebab•11m ago
IMO it just had too many rough edges. Very slow compilation, correctness issues (https://yuri.is/not-julia/), kinda janky tooling (not nearly as bad as pip tbf). Even basic language mistakes like implicit variable declaration and 1-based indexing (in 2012??).

Yes 1-based indexing is a mistake. It leads to significantly less elegant code - especially for generic code - and is no harder to understand than 1-based indexing for people capable of programming. Fight me.

blueaquilae•27m ago
That's an impressive accomplishment and a fantastic tool to explore.

Show HN: An encrypted, local, cross-platform journaling app

https://github.com/fjrevoredo/mini-diarium
45•holyknight•1h ago•30 comments

Show HN: A physically-based GPU ray tracer written in Julia

https://makie.org/website/blogposts/raytracing/
40•simondanisch•2h ago•15 comments

Show HN: Synter- Open source MCP server to manage ads across 7 platforms

https://github.com/jshorwitz/synter-media
2•synterai•33m ago•0 comments

Show HN: LatentScore – Type a mood, get procedural/ambient music (open source)

https://latentscore.com/demo
11•prabal97•1h ago•10 comments

Show HN: Agent skills to build photo, video and design editors on the web

https://github.com/imgly/agent-skills
2•hauschildt•1h ago•0 comments

Show HN: CandyDocs – Simple, developer-friendly documentation for SaaS teams

https://candydocs.com/
2•mukul767•1h ago•0 comments

Show HN: A Lisp where each function call runs a Docker container

https://github.com/a11ce/docker-lisp
62•a11ce•9h ago•19 comments

Show HN: Aegis.rs, the first open source Rust-based LLM security proxy

https://github.com/ParzivalHack/Aegis.rs
2•ParzivalHack•2h ago•0 comments

Show HN: I built a compliance scanner that flags WCAG GDPR and FTC risks in mins

https://www.rataify.com/
2•CraftyGuru•2h ago•0 comments

Show HN: Rebrain.gg – Doom learn, don't doom scroll

94•FailMore•1d ago•44 comments

Show HN: Elecxzy – A lightweight, Lisp-free Emacs-like editor in Electron

https://github.com/kurouna/elecxzy
2•kurouna•2h ago•0 comments

Show HN: Respectlytics – Open-source, privacy-first mobile analytics (MIT+AGPL)

https://github.com/respectlytics/respectlytics
22•cesncn•4d ago•2 comments

Show HN: I built a fuse box for microservices

https://www.openfuse.io
21•rodrigorcs•23h ago•14 comments

Show HN: VectorNest responsive web-based SVG editor

https://ekrsulov.github.io/vectornest/
80•ekrsulov•22h ago•27 comments

Show HN: CEL by Example

https://celbyexample.com/
77•bufbuild•23h ago•40 comments

Show HN: I'm launching a LPFM radio station

https://www.kpbj.fm/
101•solomonb•1d ago•54 comments

Show HN: Breadboard – A modern HyperCard for building web apps on the canvas

https://breadboards.io/
85•simquat•2d ago•12 comments

Show HN: AsteroidOS 2.0 – Nobody asked, we shipped anyway

https://asteroidos.org/news/2-0-release/index.html
458•moWerk•1d ago•68 comments

Show HN: My dream came true: I released a mobile game

https://apps.apple.com/ua/app/color-blocks-sort-huefold/id6757859307
3•skreep•2h ago•0 comments

Show HN: Potatometer – Check how visible your website is to AI search (GEO)

https://potatometer.com/
3•apswin•6h ago•4 comments

Show HN: Pg-typesafe – Strongly typed queries for PostgreSQL and TypeScript

https://github.com/n-e/pg-typesafe
67•n_e•1d ago•32 comments

Show HN: I taught LLMs to play Magic: The Gathering against each other

https://mage-bench.com/
114•GregorStocks•1d ago•83 comments

Show HN: Glitchy camera – a circuit-bent camera simulator in the browser

https://glitchycam.com
169•elayabharath•3d ago•22 comments

Show HN: I wrote a technical history book on Lisp

https://berksoft.ca/gol/
243•cdegroot•1d ago•90 comments

Show HN: Jemini – Gemini for the Epstein Files

https://jmail.world/jemini
478•dvrp•3d ago•97 comments

Show HN: Formally verified FPGA watchdog for AM broadcast in unmanned tunnels

https://github.com/Park07/amradio
62•anonymoosestdnt•22h ago•27 comments

Show HN: I built a "Socratic" AI to stop my daughter from copy-pasting homework

https://thinkqurio.com/
33•qurio_dev•2d ago•36 comments

Show HN: Scanned 1927-1945 Daily USFS Work Diary

https://forestrydiary.com/
119•dogline•2d ago•28 comments

Show HN: Wildex – Pokémon Go for real wildlife

https://apps.apple.com/us/app/wildex-identify-plants-animals/id6748092158
104•AnujNayyar•2d ago•71 comments

Show HN: Nanbeige 4.1-3B running in the browser via WebGPU

https://huggingface.co/spaces/victor/nanbeige
2•victormustar•4h ago•2 comments