"The frequency of these oscillations seems to be around 5 Hz, drifting up, and seems to be a fundamental parameter of the flame since it appears to be relatively constant in all observations."
It appears that some (optical) flame detectors work by obtaining the frequency of this flicker: 
"This flame scanner also monitors the rate of combustion by analysing the flicker frequency, or the fingerprint, of the flame... Since the flame is always burning back to the fuel source, the flame is always in motion. This motion allows the intensity of the flame to vary across a flame flicker frequency spectrum."
From that link, it appears that the "flicker frequency" would be related to the exact fuel source and possible fuel/air mixture ratio, as the "flame is always burning back to the fuel source".
Some other information about flame frequency-flicker: 
"Under normal gravity conditions, the flames have a well defined oscillation frequency which is inversely proportional to the square root of the burner diameter, D, and to a good approximation can be written as f » 1.5/D½, with D given in meters."
So, it would indeed seem that the flicker frequency is related to the particulars of the candle, its wick, etc.
Very interesting article!
That animation at the end really sums it up nicely.
Or are there better sensors than microphones to detect air disturbances?
Real hot wires have a diameter of ~ 1/100 of a millimeter, that's the only way to achieve any useful level of sensitivity.
Nitpicking, but I think this is technically data modeling and not reverse engineering.
Sometimes I see animations in UI. Some look completely natural, and some are horribly jarring. I know there are all sorts of curves that tweening uses to time its path. I wonder if reversed engineered curves would look better.
Even very subtle changes in the tangents of the curves can have drastic effects and it's frustrating to see some platforms limit them to a few preset curves.
I'm personally a fan of pre-generating a fixed set of points that are linearly interpolated and scaled. It has a few advantages:
-Extremely cache friendly, can even be cheaper than computing a spline on a lot of platforms since it's essentially just a look up table.
-Your curve doesn't need to fit any specific formula(I.E. you can have a step function as part of it if you want).
-You can pull data from design applications to generate the curve allowing non-developers to have control over look-and-feel if you want to get that fancy.
The other reason I like using analytic functions is because:
1) You can easily generate a linearly interpolated point set if you want, I've done it for CSS in stylus (for spring animations that can't be represented by a single bezier).
2) With the right formulation, it's very easy to tweak the shape as it is in this case
3) You can analyze the functions easily
An LED candle the responds to its environment, could be "blown out" for instance would make a great little hack project.
Years later, it seems blinkenlights went out of fashion and everybody started quantizing blink rates to 1s or 0.5s max. /sigh/ it's throwing out useful information for no good reason.
Laser diodes, on the other hand, are fast
I guess the phrase "LEDs are extremely fast" struck me the same way a pedestrian telling you "walking is the fastest way to get around" when you're stopped at a red light in a Lamborghini would
 - http://cnr.lwlss.net/ConstrainedRandomWalk/
Since this signal is dependent upon the series resistance, the output could vary as a result.