kerr-oxide
Through the Kerr ringularity
Null geodesics around a naked ring singularity.
Open the technical description
A null-geodesic ray tracer for the Kerr solution, written in pure Rust and compiled to PTX by cuda-oxide. There is no shader language and no CUDA C anywhere in the pipeline.
The shot renders the superextremal case , where the ring singularity is naked. No horizon forms, rays pass through the interior of the ring's disc into the sheet, and the toroidal region where turns negative, so that the axial Killing vector becomes timelike, stays visible from infinity.
Device code is generic over the float type and the backend, so the same source runs on rayon as a differential oracle for the GPU path. Kerr geodesics conserve energy, axial angular momentum and Carter's constant, so every ray carries its own error metric and the two backends can be compared ray by ray.
On the landscape cut an inset diagram tracks the camera against the ring and the ergoregion in the poloidal plane. The portrait cut reframes the same shot without it, since the inset would be illegible on a phone. Source renders are 360 frames at 30 fps.
liquidmetal-oxide
Liquid-metal planet
A liquid-metal surface path-traced on the GPU.
Open the technical description
A GPU renderer for a liquid-metal surface wrapped onto a planet, written in Rust and compiled to PTX through the same cuda-oxide route as the Kerr tracer.
The render script streams RGB24 frames from the device straight into an ffmpeg fifo, which avoids a PNG round trip and roughly 12 GB of intermediate frames on disc. Longer runs take a resumable chunked path instead, writing frames in ranges and assembling them afterwards.
Surface glow comes from a baked Boussinesq convection field, sampled by loop phase so it closes on itself whatever the frame count. The sky is a linear-light HDR panorama carried as interleaved f32, which gives the stars real dynamic range for the bloom.
Both cuts run 360 frames at 30 fps with supersampling, the portrait at and the landscape at , each finished with a vignette.