The main concept of this circuit is modulating the duty cycle of one astable MV (multivibrator) directly by a another slow astable MV. The basic MV circuit is constructed from a single inverter with RC feedback. Any inverter can do (analog or digital) but schmidt-trigger input is recommended. The implementation used here is realized by a c-mos 4-nand circuit CD4093 because I had it in my drawer. All inputs are paired together to give a 4-inverter circuit.
Going into some details: The circuit given uses high resistances and therefore the input current of a pair of inputs may influence the operation differently if a hex-inverter is used.
R4 and D1 to make the pulses asymmetrical, R3 is the modulation-coupling element. R3 is set initially to maximum and slowly lowered down until almost stopping the ascillation of the second MV.
The values I used are: R1=2.2M, C1=2uF, R2=2M, C2=10nF, R3=1M trim-pot, R4=390K. D1 can be any silicon diode (1N4148 or 1N4007, whatever). The output must be buffered because c-mos output voltage is very much affected by the output current. On the other hand- identical c-mos elements can usually be paralleled: If you use a hex-inverter you can use two stages for the circuit and all remaining stages in parallel as the buffer. Using pulsed activation of the LED has an advantage because during the pulses tha LED can handle higher current without exceeding the average power, and thus you benefit from the fact that during these higher current pulses the luminar efficiency of the LED, like many other light sources, is higher!
The fading effect is of course non-linear, especially if you look straight on the LED (our eye has a natural compensating character). I recommend putting a diffuser (thin paper may do) to see the effect better.