https://github.com/zephirfxec/hnanosolver
Houdini GPU Fluid Solver powered by NanoVDB
https://github.com/zephirfxec/hnanosolver
cpp cuda fluid-dynamics houdini nanovdb openvdb
Last synced: 5 months ago
JSON representation
Houdini GPU Fluid Solver powered by NanoVDB
- Host: GitHub
- URL: https://github.com/zephirfxec/hnanosolver
- Owner: ZephirFXEC
- License: gpl-3.0
- Created: 2024-07-29T22:11:06.000Z (about 1 year ago)
- Default Branch: master
- Last Pushed: 2024-10-21T23:31:50.000Z (12 months ago)
- Last Synced: 2024-10-22T20:31:49.957Z (12 months ago)
- Topics: cpp, cuda, fluid-dynamics, houdini, nanovdb, openvdb
- Language: C++
- Homepage:
- Size: 290 KB
- Stars: 7
- Watchers: 2
- Forks: 0
- Open Issues: 3
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# [HNanoSolver](https://youtu.be/W5Qsye3BMng)
> This is a project used to learn Fluid Dynamics and GPU acceleration through Cuda.
- **HNanoSolver**, All in one node computing a quantity advection by a divergence free velocity field on the GPU.
- **HNanoProjectNonDivergent**, Compute a Divergence free velocity field on the GPU.
- **HNanoAdvect**, Advect any float fields on the GPU.
- **HNanoAdvectVelocity**, Advect any vector field on the GPU.
- **HNanoViewer**, Standalone app to visualize VDBs and kernels without having to relaunch Houdini.# Warning !
> Very Early Development
This repo is undergoing rewrite very often and might not compile from time to time.
Feel free to check the [Open Issues](https://github.com/ZephirFXEC/HNanoSolver/issues) for more details.# How to Build :
## Windows :
> Make sure HFS is set in your PATH.
- `git clone https://github.com/ZephirFXEC/HNanoSolver`
- `cd HNanoSolver && mkdir build && cd build`
- `cmake -G "Visual Studio 17 2022" -T v142`
It will generate Visual Studio solutions files that you can use to Compile & Run.## Linux :
> Tested on Ubuntu 24 using GCC 13.3 and CUDA 12.8
- `git clone https://github.com/ZephirFXEC/HNanoSolver`
- `cd HNanoSolver`
- `mkdir build && cd build`
- `cmake -DCMAKE_CUDA_COMPILER:FILEPATH=/usr/local/cuda-12.8/bin/nvcc -DCMAKE_CUDA_FLAGS:STRING="-O2 -g -DNDEBUG -fPIC" ..`
> if any errors here, make sure to have $HFS set, and the right NVCC compiler
- `make`
> if any errors related to AVX / Cuda compilation it's probably due to an incompatibility between GCC and NVCC# Reference
## Papers
- Bridson, R., Muller-Fischer, M. (2007). FLUID SIMULATION SIGGRAPH 2007 Course notes. SIGGRAPH. [this](https://www.cs.ubc.ca/~rbridson/fluidsimulation/fluids_notes.pdf)
- Gabriel D. Weymouth, Data-driven Multi-Grid solver for accelerated pressure projection, [this](https://www.sciencedirect.com/science/article/pii/S0045793022002213)
- Williams and Others, fVDB: A Deep-Learning Framework for Sparse, Large-Scale, and High-Performance Spatial Intelligence, [this](https://research.nvidia.com/labs/prl/williams2024fVDB/fVDB.pdf)# Pictures
# HNanoViewer :
# Still Frame :
