Project Summary
We will build an interactive 3D lighter simulation featuring physically-based volumetric fire rendering with real-time heat haze effects. Using Taichi for GPU acceleration, our system will combine 3D fluid simulation, volumetric ray marching with blackbody radiation coloring, and screen-space refraction to create a cinematic-quality fire effect.
The final deliverable will be an interactive demo where users can control various parameters while maintaining real-time performance at 30+ FPS.
Problem Description
Traditional fire effects in real-time graphics often rely on 2D sprite-based approximations or simplified particle systems that lack volumetric depth and realistic interaction with the environment. The challenge lies in achieving physically accurate fire simulation and rendering at interactive framerates while incorporating advanced visual effects like heat distortion.
Key Technical Challenges
- Real-time 3D fluid simulation at sufficient resolution to capture small-scale vortex structures
- Volumetric rendering that accurately represents fire's emission and absorption properties
- Heat haze effects through screen-space refraction based on temperature gradients
- Performance optimization to maintain 30+ FPS while running complex simulations and rendering
We will solve these challenges by leveraging GPU acceleration through Taichi, implementing efficient algorithms like semi-Lagrangian advection and ray marching with early termination, and carefully balancing visual quality with performance.
Goals and Deliverables
What We Plan to Deliver (Baseline Plan)
- 3D Fluid Simulation System
- Stable Fluids implementation with 96³ grid resolution
- Semi-Lagrangian advection with Jacobi pressure solver (40 iterations)
- Real-time performance: ≥30 FPS average at 1920×1080
- Volumetric Fire Rendering
- Ray marching with blackbody radiation color mapping
- Temperature-based emission and density-based absorption
- Post-processing: bloom and filmic tone mapping
- Screen-Space Heat Refraction
- Temperature gradient (∇T) based refraction normal calculation
- Adjustable refraction strength with visual comparisons
- Temporal filtering to reduce flickering
- Dynamic Lighting
- Fire emission contributing to diffuse and specular lighting on lighter case
- Real-time toggle between lighting on/off for comparison
- Evaluation Framework
- Automated benchmarking script measuring FPS, frame times, memory usage
- Ablation studies with matrices showing different configurations
- Visual comparison tools (side-by-side renders, brightness profiles)
What We Hope to Deliver (Aspirational Plan)
- Enhanced Simulation
- 128³ grid resolution maintaining ≥25 FPS
- BFECC/MacCormack advection schemes with side-by-side comparison
- Vorticity confinement for better small-scale details
- Additional Visual Effects (at least one of):
- Particle-based sparks system
- Smoke simulation when flame is extinguished
- Enhanced PBR materials on lighter case with environment mapping
- Advanced Analysis Tools
- Brightness profile analysis with quantitative metrics
- Shadow area statistics for lighting validation
- Illumination falloff curve visualization
- Cinematic Quality
- 10-20 second offline-rendered sequence with film-quality settings
- Advanced compositing and color grading
Project Schedule
Minimum Viable System
- Implement 3D fluid simulation (96³) with Semi-Lagrangian advection
- Basic volumetric rendering with ray marching
- Blackbody radiation LUT and initial post-processing
- Screen-space refraction module with ∇T calculation
- UI sliders for parameter control
- FPS counter and basic timing infrastructure
Progress Checkpoint
- 1-page milestone webpage
- 1-minute progress video (all members present)
- 2-3 presentation slides
- Demo: real-time parameter adjustment, initial ablation studies
Enhancement and Polish
- Attempt 128³ resolution and BFECC implementation
- Add particle sparks or smoke effects (stretch goal)
- Enhance lighter case materials and scene composition
- Implement batch evaluation scripts and graph generation
- Film offline sequences for final video
- Optimize performance bottlenecks
Project Completion
- 2-3 page final report webpage
- 1-2 minute polished video
- GIF/video clips
- Source code and reproduction scripts
Resources
References
Fluid Simulation
- Stam, J. (1999). "Stable Fluids"
- Fedkiw, R., Stam, J., & Jensen, H. W. (2001). "Visual simulation of smoke"
- Kim, B., Liu, Y., Llamas, I., & Rossignac, J. (2005). "FlowFixer: Using BFECC for fluid simulation"
Volume Rendering
- Wrenninge, M. (2012). "Production Volume Rendering"
- Fong, J., Wrenninge, M., Kulla, C., & Habel, R. (2017). "Production volume rendering"
Heat Distortion
- Tessendorf, J. (2004). "Simulating Ocean Water"
- Various game development resources on screen-space refraction
Computing Platform
- Framework: Taichi (GPU-accelerated Python)
- Hardware: NVIDIA GPU with 8GB+ VRAM recommended
- Development: Python 3.8+, Taichi 1.6+
- Additional Tools:
- FFmpeg for video encoding
- Matplotlib/Seaborn for performance graphs
- OpenEXR for high-quality frame export
Starting Code
- Taichi examples for fluid simulation
- Custom ray marching implementation
- Blackbody radiation lookup tables from scientific literature