A simple test case measures how much of a boost can be obtained with hardware accelerated raytracing on Apple Silicon.
Notes on C++ initialization
A summary of the notes that I took to avoid shooting myself in the foot using C++ designated initializers and STL constructors.
GPU Pathtracer Devlog
A devlog of my GPU pathtracer project, where I am writing a physically based pathtracer from scratch using WebGPU.
Weekend raytracing with wgpu, part 2
This post focuses on making the raytracer discussed in part 1 much shinier. Notes on integrating a physically based sky model and textured material support are discussed next.
Weekend raytracing with wgpu, part 1
A look at the most notable challenges in implementing Peter Shirley's Raytracing In One Weekend using wgpu and WGSL.
Using inverse transform sampling to generate random numbers in a given distribution
In inverse transform sampling, the inverse cumulative distribution function is used to generate random numbers in a given distribution. But why does this work? And how can you use it to generate random numbers in a given distribution by drawing random numbers from any arbitrary distribution?
Quick and dirty image dithering
Dithering is a fascinating and seemingly counter-intuitive technique, the effects of which are easily demonstrated using images. This post develops a simple way to dither images using just a few lines of Rust code.
Generating 3d buildings using node graphs
There are many different ways to generate 3d models. Software like Blender gives you a pile of tools and modifiers with which you can model almost any object. Then you have your sculpting editors with which you can model complex organic shapes, as if you were modeling with clay. Finally, you have procedural modeling tools with which you can generative repetitive 3d geometry using simple rules.
Writing a small ray tracer in Rust and Zig
I spend most of my programming time writing C++. And like many other C++ programmers, I've shot myself in the foot countless times with a feature I didn't fully grok. And I've spent enormous amounts of time trying to understand the language. Like many other C++ developers in this position, I find myself frequently daydreaming about switching to another more modern and easily understood language.