EPINF-NeuFlow
The pytorch implementation of the paper "EPINF: Efficient Physics Informed Neural Reconstruction of Diverse Fluid Dynamics from Sparse Observations"
This repo is also a pypi package NeuFlow that can be installed via pip:
python -m pip install neuflow
Environment Setup
System Requirements
- System
- Windows 11 (Fully Tested)
- Ubuntu 24.04.2 (Fully Tested)
- Python: 3.13
- PyTorch: 2.7.1 + CUDA 12.8
Pip Packages
python -m pip install --upgrade pip setuptools wheel
python -m pip install torch torchvision --index-url https://download.pytorch.org/whl/cu128
python -m pip install lightning lightning[extra] dearpygui tyro matplotlib av huggingface_hub wandb opencv-python phiflow
set TCNN_CUDA_ARCHITECTURES=86
python -m pip install git+https://github.com/NVlabs/tiny-cuda-nn/#subdirectory=bindings/torch
python -m pip install ./cuda_extensions/freqencoder ./cuda_extensions/gridencoder ./cuda_extensions/raymarching ./cuda_extensions/shencoder
For Windows user, open X64 Native Tools Command Prompt for VS 2022 then activate your python venv if any, and set TCNN_CUDA_ARCHITECTURES to your GPU architecture.
| GPU | H100 | 40X0 | 30X0 | A100 | 20X0 | TITAN V / V100 | 10X0 / TITAN Xp | 9X0 | K80 |
|---|---|---|---|---|---|---|---|---|---|
| CUDA arch | 90 |
89 |
86 |
80 |
75 |
70 |
61 |
52 |
37 |
Optional Packages
triton-windows - Activate torch.compile for Windows
python -m pip install -U "triton-windows<3.3"
Wandb Logger
To use the Wandb logger, you need to set up your Wandb account and login. You can do this by running the following command:
wandb login
Datasets
We provide two datasets for training and testing the model:
- the NeRF-Synthetic is available at Hugging Face - nerf_synthetic.
- The PI-Neuflow dataset is available at Hugging Face - PI-NeuFlow.
ALL datasets are downloaded AUTOMATICALLY when running the training script.
Training
NGP Model
python -O app.py ngp --dataset.dataset=chair --epochs=500 --gpu_id=0
python -O app.py ngp --dataset.dataset=drums --epochs=500 --gpu_id=0
python -O app.py ngp --dataset.dataset=ficus --epochs=500 --gpu_id=0
python -O app.py ngp --dataset.dataset=hotdog --epochs=500 --gpu_id=0
python -O app.py ngp --dataset.dataset=lego --epochs=500 --gpu_id=0
python -O app.py ngp --dataset.dataset=materials --epochs=500 --gpu_id=0
python -O app.py ngp --dataset.dataset=mic --epochs=500 --gpu_id=0
python -O app.py ngp --dataset.dataset=ship --epochs=500 --gpu_id=0
EPINF Model
python -O app.py epinf --dataset.dataset=sphere --epochs=500 --gpu_id=0
python -O app.py epinf --dataset.dataset=game --epochs=500 --gpu_id=0
python -O app.py epinf --dataset.dataset=torch2 --epochs=500 --gpu_id=0
python -O app.py epinf --dataset.dataset=fireplace --epochs=500 --gpu_id=0
Metadata
Release files for neuflow 0.1.4
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| neuflow-0.1.4.tar.gz | 38.6 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| neuflow-0.1.4-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 91.1 kB
Release files / neuflow-0.1.4.tar.gz
| Download URL | neuflow-0.1.4.tar.gz |
|---|---|
| Size | 38.6 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
137b3034f2200a2accf81c65a0cb20b02ea052255878de4bb1331a33a9dcf490
|
|
BLAKE2b-256 checksum How to use checksums |
5c0374045d5f3c491f42333174ce36c6a382894dd397eb40cf192da022642b5c
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.2
|
Release files / neuflow-0.1.4-py3-none-any.whl
| Download URL | neuflow-0.1.4-py3-none-any.whl |
|---|---|
| Size | 52.5 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
abeb8f81dc3db17c01fa365832ed3a3e04712413fb9f3b759d225bb488c8db5a
|
|
BLAKE2b-256 checksum How to use checksums |
84fbe907211dd7ff7371b23bf64856f4e88a65a3cb0319e747c7a3c945b952b6
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.2
|