# Realistic jet engine flame

I’m trying to make rocket flame and jet engine fire that is a Graphics3D object so that it can be used with a 3D rocket project.

There are many types of such flames, but for starters I would like the blue flame as seen here. Any ideas?

These sites don't do what I'm looking for.

I want to mimic that transparent effect of seeing through the middle of the flame that is visible in the images above. So far I have not been able to get even basic translucent effects right. Nothing I tried was even remotely like the above pictures, so my code is not very useful.

• Mathematica isn't really the right tool for this. You can create the shape in Mathematica, but then the best way to continue would be to export it and use a raytracer to render it. – Szabolcs Nov 6 '14 at 20:59
• Related: How to create blurred Graphics3D objects? Try Image3D. – user484 Nov 6 '14 at 21:16
• @Szabolcs, I guess for getting a reasonable effect one can well try to make an opacity field and then pixel by pixel evaluate the integral. Raytracer is a more general tool, which is neededed for reflection/refraction problems, but here it could be treated a bit simpler. – Alexey Bobrick Nov 6 '14 at 23:05

Probably not that useful, but it turned out looking cool.

temp[x_, y_, z_] := 10000 Exp[-Sqrt[4 + (z - 5)^2]/50]*40/(40 + x^2 + y^2);
Graphics3D[{Opacity[0.5],
Raster3D[
Table[Append[List @@ ColorData["BlackBodySpectrum"][#],
Clip[(# - 6000) (10000 - #)^2/2.5*^10]] &@
temp[x, y, z], {x, -5, 5, 1/2}, {y, -5, 5, 1/2}, {z, 0, 30, 1/2}]]
}, Axes -> True, Background -> Black]


• Great! Only now I'll be involuntarily hearing The Prodigy in my head for the rest of the evening. – Yves Klett Nov 7 '14 at 17:59
• Nice, but need a heat control slider :) Manipulate[ Graphics3D[ {Opacity[op], Raster3D[Table[Append[List @@ ColorData["BlackBodySpectrum"][#], Clip[(# - 6000) (10000 - #)^2/2.5*^10]] &@temp[x, y, z], {x, -5, 5, 1/2}, {y, -5, 5, 1/2}, {z, 0, 30, 1/2}]] },Axes -> True, Background -> Black], {{op, .5, "How hot?"}, 0, 1, .1}, SynchronousUpdating -> False, Initialization :> (temp[x_, y_, z_] := 10000 Exp[-Sqrt[4 + (z - 5)^2]/50]*40/(40 + x^2 + y^2) )] !Mathematica graphics – Nasser Nov 7 '14 at 18:32
• @Michael E2 Very cool!! – Bob Brooks Aug 19 '15 at 15:48
• love the graphics ! +1 – Ali Hashmi May 22 '17 at 22:10