I wrote in 2011 an application called (Fluid Sandbox 1.7) that simulates fluids and rigid bodies using the PhysX SDK. So it's not a "handmade" project by definition, but it was my very first attempt to create something which uses physics. At that time I had no idea what physics engines are, nor how to use them, nor how SPH works. It took me roughly 2-3 months to learn/figure it out and complete it. The project was very popular and got published in some magazines and some news articles.
Now in 2021 I revised it, cleaned up the source code, upgraded it to the latest PhysX SDK, improved it a lot, and replaced all other third-party libraries with either my own or single-header-file libraries. Also, the project is now open-source ;)
If you want you can get the binary release here (https://github.com/f1nalspace/fluidsandbox/releases) and play around with it on your system. It may require the Visual Studio C++ Runtime or something... (PhysX works only with CRT)
I want to rewrite the entire rendering pipeline with support for OpenGL 4.x and Vulkan.
Also, I may replace PhysX with NVIDIA Flex. Unfortunately, there is no other physics engine out there that simulates real-time fluids and rigid bodies. Writing it myself is out-of-question because I have no time to write a 3D physics engine and a particle-based fluid simulation - even though I know the math now.
If you are interested you can look at my crappy source code too:
I haven't upgraded the video yet, but more or less it looks and feels the same: