Skip to content

A CPU-processed and grid-based fluid simulator built for my diploma thesis.

License

Notifications You must be signed in to change notification settings

vkabadzhova/equilibrium

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Equilibrium


The official thesis paper (in Bulgarian) can be found here, and the "home-brewed" translation is available here.


A CPU-processed and grid-based fluid simulator built for my diploma thesis.

Hello and welcome to Equilibrium - a light version of a fluid simulator (written fully in Rust) and also my high school diploma thesis!

It is written using the egui library. The fluid simulator is based on the Jos Stam's paper from 2003 called "Real-Time Fluid Dynamics for Games". However, the current simulator is not real time and is CPU-based.

Fluid simulation video

Sections:

Dependencies

All the dependencies are described in the Cargo.toml file. When the application is run by cargo r they will be automatically fetched.

Demo

You can find a demonstration of the project on GitHub pages or on vkabadzhova.xyz. It is compiled to WASM.

Features

  • Scene (fluid simulation)
    • only 2D simulation is supported;
    • The colors of the fluid and the world around it can be altered;
    • Obstacles can be set in the scene (only rectangle shapes are supported)
  • Application
    • Dark/Light theme
    • Navigation through the simulation (Next, previous frame, scroll through the whole application)
    • Configurations through the GUI:
      • simulation settings: number of frames, speed of the simulation,
      • fluid settings: diffusion, viscousity and colour,
      • obstacles settings: add/remove/change shape of the obstacles
      • viewport settings: zoom in/out

Documentation

Note: the official documentation of the project is available only in Bulgarian. The translation is unofficial.

The official documentation is written in LaTex and can be found here, the home-brewed translation is available here.

What can you find in the documentation?

  • Chapter 1: Available research on the topic of simulating fluid dynamics;
  • Chapter 2: Selecting the technology stack - the programming language and algorithms;
  • Chapter 3: Implementation details;
  • Chapter 4: User guide.

Technical Documentation

Typically, using the Rust's packet manager Cargo a technical documentation can be generated via cargo d or cargo d --open if you want to open it directly.

Vision

The project as it is now is not production ready. It is designed on the grounds of educational interest in the field of computar graphics and the Rust programming language. In case you wish to contribute, please, feel free to do so by first reading the CONTRIBUTING.md file.

About

A CPU-processed and grid-based fluid simulator built for my diploma thesis.

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages