home blog show lab fav res ideas tools

Showcase

3D fluid simulations:

Some videos and images from way back when I made a 3D fluid simulation engine. The main idea behind this was to explore existing simulation methods, and accelerate them with CUDA.
I've explored DFSPH and SPH simulation methods, furthermore, I've improved the quality of the DFSPH simulation by implementing surface tension and viscosity solvers (also accelerated with CUDA). The source code can be found here.

2D fluid simulations:

I've also spent some time on making a simple 2D fluid simulation, inspired by Animal Well by Billy Basso, instead of going for top-of-the line performance I've focused on a simpler CPU-sided implementation similar to the fluidsim running in Animal Well.
That being said the simulation itself is still not naive - the entire simulation grid is split up into chunks, which are adaptively computed via multiple cores (not all chunks are processed, only the ones we consider to be 'live', additionally, the chunks themselves have to be processed in a checkerboard pattern as to preserve simulation stability). The source code can be found here.

SDF generation from 3D models:

To implement collisions with arbitrary 3D objects for my 3D fluidsim I needed to use SDFs, which proved to be a non-trivial task. In the end I also ended up using the generated SDFs for converting 3D objects into particle clouds representing those objects (by sampling the SDF, along with cubic interpolation). The source code can be found here.

Compilers and programming languages:

My main interest as of late is compiler development, I've implemented several programming languages and compilers throughout my years as a developer (to a varying degree of success), but sigma was probably my most fruitful attempt.
I started out using LLVM for my backends, but I eventually moved away from it, opting to rather implement my own - my first attempts were all using SSA-based IRs, but lately I've grown fond of Cliff Click's Sea of Nodes.