Git Product home page Git Product logo

ubisoft-laforge-poisson-filters's Introduction

Compact Poisson Filters for Fast Fluid Simulation

Compact Poisson filters are powerful alternatives to iterative linear methods to solve
Poisson's equation $\nabla^{2} \phi = f$, particularly for real-time applications, where interactivity is of high importance.

Poisson filter-based method is a one-shot, convolutional linear solver that balances between the strengths of spectral and iterative methods with a parallel implementation on GPU. Our solver precludes the need for careful preconditioning, scales favorably with the size of the problem, handles Neumann boundary conditions, and is a drop-in replacement with controllable error tolerance for existing solvers in high-performance settings.

While the main application presented in this work is enhancing the runtime performance of Eulerian fluids simulation, Poisson filters have the potential to be used in other domains that require a fast solution to Poisson's equation, such as image processing, cloth simulation, Newtonian gravity, and electrostatics.

Paper

"Compact Poisson Filters for Fast Fluid Simulation", ACM SIGGRAPH 2022 Conference.

You can also find the paper and its supplements in docs/paper/.

You might want to choose which experiments to run in all_examples.py.

Code Documentation

Download the contents of docs/build to be able to view and browse the html pages properly.

Start with docs/build/html/index.html. You will find a quick start on how to run the demos, technical notes and code documentations.

Note that we provide already computed filters in .hlsi and .npz formats accessible in data/preprocess/filters. To use them in your own applications you don't have to run anything!

For example, filter values for solving the 3D Poisson pressure (inverse Poisson) corresponding to 100 Jacobi iterations and a cell size of 0.9 are found here data/preprocess/filters/single_poisson_D3_INVERSE_STANDARD_dx_0.9_itr_100.hlsli.

You can also generate new filters with different paramteres than those available in the database. For details see the documentation.

Install & Run

First, install the the depedencies in requirements.txt:

pip install -r requirements.txt

Move to the demo folder src\demos:

cd src\demos

Then, just run the provided demos:

python .\all_examples.py

You can select the demo you want to run in src\demos\all_examples.py. For more information, refer to the Code Documentation

Cite

BibTeX


@inproceedings{10.1145/3528233.3530737,
author = {Rabbani, Amir Hossein and Guertin, Jean-Philippe and Rioux-Lavoie, Damien and Schoentgen, Arnaud and Tong, Kaitai and Sirois-Vigneux, Alexandre and Nowrouzezahrai, Derek},
title = {Compact Poisson Filters for Fast Fluid Simulation},
year = {2022},
isbn = {9781450393379},
publisher = {Association for Computing Machinery},
address = {New York, NY, USA},
url = {https://doi.org/10.1145/3528233.3530737},
doi = {10.1145/3528233.3530737},
abstract = {Poisson equations appear in many graphics settings including, but not limited to, physics-based fluid simulation. Numerical solvers for such problems strike context-specific memory, performance, stability and accuracy trade-offs. We propose a new Poisson filter-based solver that balances between the strengths of spectral and iterative methods. We derive universal Poisson kernels for forward and inverse Poisson problems, leveraging careful adaptive filter truncation to localize their extent, all while maintaining stability and accuracy. Iterative composition of our compact filters improves solver iteration time by orders-of-magnitude compared to optimized linear methods. While motivated by spectral formulations, we overcome important limitations of spectral methods while retaining many of their desirable properties. We focus on the application of our method to high-performance and high-fidelity fluid simulation, but we also demonstrate its broader applicability. We release our source code at https://github.com/Ubisoft-LaForge/CompactPoissonFilters .},
booktitle = {ACM SIGGRAPH 2022 Conference Proceedings},
articleno = {35},
numpages = {9},
keywords = {iterative methods, reduced modeling},
location = {Vancouver, BC, Canada},
series = {SIGGRAPH '22}
}

License

CC 4.0 : see details in Licence file

(c) 2023 All right reserved Ubisoft

ubisoft-laforge-poisson-filters's People

Contributors

shahinrab avatar ubisoft-laforge avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.