Max Liani
banner
maxliani.bsky.social
Max Liani
@maxliani.bsky.social
Tracing rays at NVIDIA. Former lighting artist, working on computer graphics rendering tech for all humans and robots alike.

I mostly post stuff about light transport simulation, and my hobby project Workbench.
Finally, I came around at implementing DOF and wiring it to the camera manipulator system. Click and drag to samples the scene to estimate the focus distance, while scroll to modulate the aperture.
February 14, 2026 at 1:02 AM
As we speak about unit testing, this is an example of what my unit tests look like. In particular the assertion messages are AI autocompletions. So, I didn't have to type much. Personally, I find this much more appealing than what I get with macro-based systems.
February 11, 2026 at 4:24 AM
Friends out there. I have a question related to the use of unit test frameworks. Most frameworks for C/C++ are macros based.
Do you like using macros for the purpose?
Or do you think macros make your life harder, you wish for another way?
February 9, 2026 at 10:25 AM
Eventually I did a good cleanup on my unit testing framework. I added support for JUnit xml export (in case I ever want to setup a CI process, even though it would be nonsense for a personal project 😅). But the cool thing is that it produces a complete log and xml export even in case of crash.
February 8, 2026 at 1:05 AM
Crossed off the procrastination list: added support for multiple cameras in the scene. Up to now, I couldn't create cameras from the GUI, couldn't select them for rendering either. It's funny how something like this takes 20 minutes to do but can stay on the list for years.
February 1, 2026 at 5:00 AM
I am back to it. I decided to revamp my modeling operators to carve out a half a decent modeler. There is a lot of cool manipulators options to be explored there. I started on chamfer... clearly, it's going to take a while to get it right.
January 25, 2026 at 6:22 AM
I am a social person, I love more working shoulder to shoulder and exchange ideas throughout the day than the reality that I work from home, isolated by time zones.

The most unexpected thing to me about AI tools, such as Cursor, is the positive impact on this.
January 19, 2026 at 4:17 AM
Earlier this year I spent a few weekends toying around the math of simulating finance and investments. The only way for me to understand was to write a program that would put the concept into practice. So, I have implemented a Montecarlo simulator that projects family finances.
December 9, 2025 at 10:04 AM
OMG! My iPhone just updated to the new version with the “Liquid Glass” design.
OMG, what were they thinking?????????
Of course I saw some of it when it was announced, and I was skeptical… but I didn’t realize it was this bad.
December 8, 2025 at 10:29 AM
I reopened my project for the first time in 6 months... I barely remember which side is up. I told myself, "Do the first thing that cross your mind":
If there is geometry under a light, and its cameraGain is set to zero, the light and the geometry become invisible to camera rays.
November 30, 2025 at 7:59 AM
Over the month of October, my solar array produced 1.5 MWh, I used 915 kWh to power the house and charge my car. I drew only 3.7 kWh from the grid, exported back 570 kWh.
November 11, 2025 at 11:54 AM
Unfortunately, modern rendering (i.e. path tracing, software rasterization, etc…) looks more like pure compute than traditional “graphics”, and implementing such complicated data structures and computation using graphics API feels exactly like GPU computing before CUDA.
GPU computing before CUDA was *weird*.


Memory primitives were graphics shaped, not computer science shaped.


Want to do math on an array? Store it as an RGBA texture.


Fragment Shader for processing. *Paint* the result in a big rectangle.
October 15, 2025 at 7:35 AM
iPhone 17 pro: orange is the new black 🤣
September 11, 2025 at 12:23 PM
Reposted by Max Liani
text compression
September 9, 2025 at 9:18 PM
You remember you made a mistake, so you want avoid doing it again! Just this time you don’t recall exactly what you did wrong, so you end up messing up at the opposite end…
September 2, 2025 at 3:30 AM
First rather naive implementation of Stochastic Light Cuts. Here comparing uniform sampling vs SLC with 1spp over 16,000 lights.
July 26, 2025 at 8:59 AM
It’s been a long break away from my projects. Work deadlines + sickness + low energy slow recovery…
I think I’ll try to make some progress on light transport, at least for a bit. Workbench doesn’t handle many lights (not gracefully at least).
July 25, 2025 at 7:11 AM
Reposted by Max Liani
Histogram Stratification for Spatio-Temporal Reservoir Sampling

Corentin Salaün, Martin Bálint, Laurent Belcour, Eric Heitz, Gurprit Singh and Karol Myszkowski

(Max Planck Institute for Informatics, Germany & Intel, France)

iribis.github.io/publication/...
June 19, 2025 at 1:31 AM
I really, really, really dislike year-based software version numbers.
May 30, 2025 at 9:18 AM
The Vulkan porting is complete 🎉 The last missing piece was the primordial raster renderer, which I am not sure why I keep around :)
All in all, it wasn't nearly as hard as I thought it would be.
May 25, 2025 at 7:29 AM
The amount how pieces to track to share a texture between Vulkan and CUDA feels a bit over the top. Each of these need to be constructed and destroyed, otherwise GPU memory leaks...
I wish we just had pointers and that's it.
May 23, 2025 at 7:05 AM
Components selection and editing work again.
May 18, 2025 at 8:09 AM
And boooom....
May 18, 2025 at 4:10 AM
I am doing things I a rush lately… Hopefully a better structure will emerge from the mess and a rewrite will follow.
May 18, 2025 at 1:41 AM
Some progress: the grid, selection, wireframe, light gizmos, reverse Z-buffer, path-tracer/raster compositing and a few more bits. It's all coming back together.
May 17, 2025 at 2:55 AM