Portfolio

AeroFlow

Application · 2D wind tunnel / Windows and Linux

Draw an airfoil, a cylinder or a car and the program computes the flow, forces in newtons and drag and lift coefficients in real time.

A native Rust app that simulates flow with the lattice Boltzmann method, in physical units and on the GPU. Every result comes with a reliability rating that says plainly whether it is quantitative or only qualitative.

You place NACA airfoils with any four-digit designation, cylinders, rectangles, ellipses, free shapes and brush-painted walls. Then you pick a fluid – air, water or a custom one – a temperature and a speed, and the program shows the velocity, pressure, vorticity or smoke field, with particles, streamlines and force vectors on top.

Results include forces in newtons, Cd, Cl and Cm coefficients, the Strouhal number, surface pressure distribution and the airfoil polar. A reliability indicator says whether, at the current resolution and Reynolds number, the result is resolved, partly resolved or only qualitative, and validation scenarios compare the output with values from the literature.

The D2Q9 solver with regularised BGK collision and a Smagorinsky model runs on the GPU through wgpu (Vulkan, DirectX 12, Metal) – about 4,800 million cell updates per second on an RTX 4070 Ti, sixteen times more than on the CPU. Without a supported card it falls back to the CPU on its own. Windows installer, portable build and a Linux package, with automatic updates verified by SHA-256.

NACA 0012 stall at 16°: vorticity field computed on the GPU

Features

  • NACA airfoils, cylinders, free shapes and brush-painted walls
  • forces in newtons, Cd, Cl, Cm, Strouhal number and polar
  • reliability rating for every result and validation scenarios
  • GPU computation with automatic CPU fallback
  • installer, portable build and Linux, with automatic updates

Technology

  • Rust
  • wgpu
  • egui
  • Lattice-Boltzmann

My role

Design, physical model, implementation, validation and releases

Download

github.com/BlackSingularities/aeroflow