We can make make a breathing LED by various methods . The basic requirement is that we need an slow amplitude varying voltage source . That's may be a capacitor charging and discharging ramp signal of average pulse width modulated signal.
When We used arduino fading program we uses pulse width modulation technique to make breathing led.
In astable mode of 555 timer the timing capacitor charges upto 2/3 vcc and then again discharges. There is a time varying ramp signal across the capacitor We can utilize the signal for led breathing.
Here is the circuit Diagram
pin 2 is connected with the threshold pin of 555( pin no 6). that is the non inverting input of one of the internal comparators.
It works like a op-amp voltage follower. the LED brightness varies with the base current of the transistor.
Here is the simulated signal Output