← Back to Home

Ignis Divinus

Final Report - CS 184 Summer 2025

Project Website: https://yijun-xiang.github.io/ignis-divinus/final.html
For extended technical documentation with additional implementation details and complete analysis:
View Full Technical Report →
Chenyang Zhang | Huachen Qu | Muze Du | Yijun Xiang

Abstract

We present Ignis Divinus, a real-time 3D fire simulation system that achieves physically realistic flame behavior through GPU-accelerated fluid dynamics. Our implementation combines stable Navier-Stokes fluid simulation with volumetric rendering techniques, leveraging Taichi's differentiable programming framework for high-performance computation. The system features a Semi-Lagrangian advection scheme for stability, temperature-driven buoyancy for natural flame motion, and physically-based blackbody radiation for accurate color representation. We achieved interactive frame rates of 30+ FPS at 96³ grid resolution on consumer GPUs, with advanced post-processing effects including bloom and heat refraction.

Technical Approach

Core Simulation Architecture

Our fire simulation system is built on a 3D grid-based fluid solver implementing the incompressible Navier-Stokes equations. We chose a Semi-Lagrangian advection scheme for its unconditional stability, allowing larger time steps without numerical explosion. The simulation operates on a staggered MAC (Marker-And-Cell) grid where velocity components are stored at cell faces and scalar quantities (density, temperature) at cell centers. The core solver performs these steps each frame:

Rendering Pipeline

We implemented a ray marching-based volume renderer that directly integrates emission and absorption along view rays. The renderer uses physically-based blackbody radiation to map temperature values to colors. Key innovations include:

Comparison with Reference Approaches

Aspect Reference (Stam 1999) Our Implementation
Grid Resolution 32³ - 64³ 96³ - 128³
Advection Semi-Lagrangian Semi-Lagrangian + CFL adaptive
Rendering Simple density mapping Blackbody radiation model
Performance ~10 FPS (CPU) 30+ FPS (GPU/Taichi)

Challenges and Solutions

Problem 1: Numerical Instability. Initial implementation suffered from velocity field explosion at high temperatures. We solved this by implementing Semi-Lagrangian advection with CFL-based adaptive time stepping (dt = min(0.066, 0.5 * dx/|v|_max)) and added numerical dissipation.

Problem 2: Unrealistic Flame Motion. Flames appeared too laminar. We added vorticity confinement (ε = 6.0) to restore small-scale rotational motion lost to numerical dissipation, and introduced stochastic fuel injection for natural flickering.

Problem 3: Performance Bottlenecks. Initial ray marcher achieved only 5-10 FPS. We implemented adaptive step sizes, early termination, and moved all computation to GPU kernels via Taichi, achieving 6x performance improvement.

Lessons Learned

Results

96³
Grid Resolution
30-60
FPS Range
256
Ray Steps
6x
GPU Speedup

Our system achieves real-time performance across multiple quality presets. At high quality (96³ grid, 256 ray steps), we maintain 30+ FPS while producing visually compelling fire effects. The frame time breakdown shows: Fluid Simulation (40%), Volume Rendering (50%), Post-processing (7%), Other (3%).

📹 Demo Video: View full demonstration with wind effects and color variations

📊 Presentation: View project slides

Team Contributions

Chenyang Zhang: Developed Jacobi pressure solver with 80 iterations. Implemented buoyancy forces and boundary conditions. Conducted fluid dynamics algorithm research.

Huachen Qu: Built VolumeRenderer with 256-step ray marching. Implemented blackbody radiation LUT (800-3000K). Designed emission-absorption model.

Muze Du: Co-implemented Fluid3D class with fuel combustion system. Created HeatRefraction effects and PostProcessor pipeline with bloom.

Yijun Xiang: Designed main.py system architecture. Led Taichi GPU integration achieving 30+ FPS. Developed adaptive timestep control.

References

[1] Stam, Jos. "Stable Fluids." SIGGRAPH 1999.

[2] Fedkiw, Ronald, Jos Stam, and Henrik Wann Jensen. "Visual Simulation of Smoke." SIGGRAPH 2001.

[3] Nguyen, Duc Quang, Ronald Fedkiw, and Henrik Wann Jensen. "Physically Based Modeling and Animation of Fire." SIGGRAPH 2002.

[4] Bridson, Robert. "Fluid Simulation for Computer Graphics." CRC Press, 2015.

[5] Taichi Programming Language Documentation. https://docs.taichi-lang.org/