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.
imnodes: writing an immediate mode node editor library
Node editors are one of the more discussed use-cases for the ImGui UI library, and there are lots of gists as well as fully-fledged implementations for them on Github. If you want to implement your own node editor, you can get cracking! However, my pet peeve with the available samples and implementations is that they often aren't immediate mode and don't obey ImGui's philosophy of being lightweight and dependency free.