Fire Simultor
Mohcen Hafidi - 2018
Project Overview
I developed a custom engine in Java with LWJGL to create a realistic, real-time, interactive 3D fire simulator. the particle and physics engines were built from scratch. To increase realism, I used detailed texture atlases to define the fire's visual properties. I optimized rendering by using Instancing and reduced OpenGL calls from 10,000 to just a few per frame.
Keywords: particle systems, fire simulation, engine programming, GLSL.
Acquired or Enhanced Skills
- OpenGL pipeline
- Particle systems
- Fire simulation
- LWJGL
- Texture atlases
- Additive blending
- Instancing
- GUI
Technical Implementation
I built a particle-based fire simulator in Java with LWJGL/OpenGL. An emitter component (point/cone/sphere) spawns particles at a configurable rate with randomized initial velocity and temperature; an update loop integrates position, velocity, age, and temperature under a simple constant acceleration and retires expired particles. Each frame, packed particle data streams into a persistently mapped VBO and is drawn as instanced camera-facing quads. A GLSL shader samples a texture atlas for animated flames, and modulates color/alpha. Depth-fade soft particles prevent hard intersections, and additive-alpha blending composites directly to the default framebuffer.
Visual Results

Main GUI of our fire simulator.

Scene illustrating interactions between spheres and the particle system (with the spheres visible).

Scene illustrating interactions between spheres and the particle system (with the spheres hiden).

Camp fire simulation.

Camp fire simulation.

Blue gas flame simulation.

Torch lighter flame simulation
Demonstration Video
Real-time fire simulation demonstration showcasing interactive features