Product Support
Get help with EmergentFire and other Emergent Physics Lab products for Unity and Unreal Engine
Our Products
EmergentFire
Real-time physics-based fire simulation with heat diffusion, fuel consumption, and wind effects
More products coming soon
Stay tuned for announcements
EmergentFire Documentation
v1.0.0Installation
- 1Download the
.unitypackagefile - 2In Unity: Assets → Import Package → Custom Package
- 3Select the downloaded file and click Import All
Verify Installation: After import, you should see Assets/EmergentFire/ folder and GameObject → EmergentFire menu options.
Quick Start
Option 1: Demo Scene
- 1. Go to GameObject → EmergentFire → Complete Demo Scene
- 2. Press Play
- 3. Click START FIRE in the UI
Option 2: Add to Scene
- 1. Create an empty GameObject
- 2. Add EmergentFireSurface component
- 3. Add FireParticleController (optional)
Option 3: Pre-built Controllers
- • CandleController - Small, steady flame
- • TorchAutoIgnite - Medium flame
- • CampfireController - Wide campfire
- • StructureFireController - Large fire
Basic code to start a fire:
var fire = GetComponent<EmergentFireSurface>();
fire.FillWithFuel(1.0f);
fire.Ignite(new Vector2Int(16, 16), 0.9f);Components Reference
EmergentFireSurface
The main fire simulation component. Attach to any GameObject.
| Property | Description |
|---|---|
| Grid Width | Simulation grid width (8, 16, or 32 in Free) |
| Grid Height | Simulation grid height (8, 16, or 32 in Free) |
| Color Mode | Visual style of flames |
| Auto Initialize | Start simulation on Awake |
Methods
| Method | Description |
|---|---|
| FillWithFuel(float amount) | Fill entire grid with fuel (0-1) |
| Ignite(Vector2Int pos, float temp) | Ignite at grid position |
| IgniteRadius(Vector2Int center, int radius, float temp) | Ignite circular area |
| IgniteAtWorldPosition(Vector3 worldPos, float temp) | Ignite at world position |
| ResetSimulation() | Extinguish all fire and reset |
| AddFirebreak(RectInt rect) | Add stone barrier |
| AddWater(RectInt rect) | Extinguish area with water |
FireParticleController
Renders 3D flame particles based on the fire simulation.
Maximum height of flames
Size of individual particles
How long particles live
How fast flames rise
Flickering intensity
Horizontal spread of flames
Color Modes
Blackbody
Realistic physics-based colors
Artistic
Enhanced saturation for stylized games
Magic
Blue/purple magical effects
Heatmap
Debug visualization
fire.ColorMode = FireColorMode.Magic;Fuel Types
| Type | Ignition | Burn Rate | Heat | Notes |
|---|---|---|---|---|
| Wood | Medium | Slow | Medium | Default, balanced |
| Paper | Fast | Fast | Low | Quick to ignite and burn out |
| Gas | Very Fast | Very Fast | High | Explosive, dangerous |
| Coal | Slow | Very Slow | High | Long-lasting heat |
| Grass | Fast | Medium | Low | Spreads quickly |
| Oil | Medium | Medium | High | Sustained heat |
| Stone | — | — | — | Firebreak, blocks fire |
| Water | — | — | — | Extinguishes fire |
fire.FillWithFuelType(1.0f, FuelType.Gas);
fire.AddFirebreak(new RectInt(10, 10, 5, 20)); // Stone wall
fire.AddWater(new RectInt(0, 0, 32, 5)); // Water at bottomAPI Reference
Physics Parameters
var fire = GetComponent<EmergentFireSurface>();
var instance = fire.Instance;
// Heat behavior
instance.DiffusionRate = 0.0f; // 0 = stationary, higher = spreads
instance.ConvectionRate = 0.0f; // Upward heat bias
instance.CombustionHeat = 1.5f; // Heat generated when burning
instance.CoolingRate = 0.05f; // How fast fire cools
instance.TemperatureDecay = 0.97f; // Heat damping per frame
// Fuel
instance.FuelConsumptionRate = 0.0f; // 0 = infinite fuel
instance.InfiniteFuel = true; // Shortcut for above
// Wind
instance.WindDirX = 1.0f; // -1 to 1
instance.WindDirY = 0.0f; // -1 to 1
instance.WindStrength = 2.0f; // 0 to 5
// Effects
instance.TurbulenceEnabled = true;
instance.EmbersEnabled = true;Reading Fire Data
// Get fire intensity at a point (0-1)
float intensity = instance.GetFireIntensityAt(x, y);
// Get total fire intensity
float total = instance.TotalFireIntensity;
// Get center of fire (for audio positioning)
Vector2 center = instance.FireCenter;
// Get number of burning cells
int burning = instance.ActiveCellCount;
// Get raw temperature field (for custom rendering)
float[] temps = new float[instance.CellCount];
instance.GetTemperatureField(temps);Free vs Pro Version
| Feature | Free | Pro |
|---|---|---|
| Maximum Grid Size | 32×32 | 1024×1024 |
| GPU Acceleration | ||
| All Color Modes | ||
| Particle Effects | ||
| Wind & Turbulence | ||
| Fuel Types | ||
| API Access | ||
| Commercial Use | ||
| Priority Support |
Troubleshooting & FAQ
What are the system requirements?
- Unity 2021.3 or higher
- Windows 64-bit
- Built-in or Universal Render Pipeline (URP)
Free version is limited to 32×32 grid resolution and CPU simulation only.
Fire doesn't appear
- Check that
Auto Initializeis enabled or callInitialize()manually - Ensure you called
FillWithFuel()beforeIgnite() - Verify the FireParticleController is attached for 3D flames
Fire goes out immediately
- Set
InfiniteFuel = trueor increase fuel amount - Reduce
CoolingRate - Increase
CombustionHeat
Fire spreads when I want it stationary
Set both diffusion and convection to zero:
instance.DiffusionRate = 0.0f;
instance.ConvectionRate = 0.0f;Performance is slow
- Reduce grid size (16×16 or smaller)
- Disable embers:
instance.EmbersEnabled = false - Upgrade to Pro for GPU acceleration
DLL not found error
- Ensure
Plugins/x86_64/EmergentFire.dllexists - Windows 64-bit is required
- Mac/Linux are not supported in Free version
Fire looks pixelated
This is expected at 32×32 resolution. Upgrade to Pro for higher resolutions (up to 1024×1024).
Can I use EmergentFire in commercial projects?
Contact Support
Email Support
Get help from our support team
support@emergentphysicslab.comDocumentation
Full documentation on GitHub
View on GitHubReport Issues
Found a bug? Report it on GitHub
Open IssueFeature Request
Have an idea? We'd love to hear it
Submit RequestNeed Immediate Help?
For urgent production issues, include "URGENT" in your email subject line and we'll prioritize your request.
Contact Urgent SupportLooking for our physics research?
Visit Emergent Physics Lab