Yaay, it works! Smth like radiosity GI, but on voxels. In essence I spawn 4 surfels in corners of each visible face, and run real-time MC irradiance integration on them assuming diffuse materials.

A lot can be done to improve convergence, but it's already fun to play with 🤩

Typically in path tracing the N-th sample gets blended to the total sum with a factor of 1/N. I can't do this here because the scene can change, so I use a fixed factor. Larger factor means too much noise, smaller factor means slower convergence. Are there any alternatives?
That's what TAA does, with a typical value of making the new frame coming in be like the 10th frame seen so far. (Lerp from old to new 0.1 of the way)
TAA has neighborhood sampling to help know when to reject history and stop ghosting artifacts.
It's a hard problem doing integration on a dynamic source and knowing when your data is bad and needs to be restarted.

@demofox Yeah, I guess typically TAA has way more info about the samples than I do :(

I wonder if there's some research on this time-varying MC integration. All my googling leads to results on some quantum stuff 😅

Or maybe I should just accept the current solution and instead speed up convergence with reservoirs or smth like that

@lisyarus ddgi (rtxgi) had some things for this but I don't remember what. I really do think some fundamental research is waiting to be done here though. But yeah I dunno, maybe other people have better info :P