Black dragon flying and breathing fire. All parts are generated from sine based functions with time as parameter for animation.
_='u=t=1;eH=F<E;@beginPath(Style=A||000"R@arc(B,H*D*2+HJH<G*4;HZ@lineTo(H>1?0:X221 (JA<9"^@strokOwx=52 B*y=YBQX;U3yZ5/(!7?7-i:i-,xZ7-p,r=p?X:15-x-p*3 2p/5+3r,p?5:6),N-x*1-p*d3r+p?5:6)0Q5;)1+A+6 *316+*(16A),7~5:7,~4:8,1OqF;G<0?i>300:!=G+BU9^!X^G<_x=!575?i:.4+34r=!2?23:(i>5?25-5:19)-L62+4)*dp/G?N":H,x-D*3+(1u)V,30C*r-L99)*(2 uV*-L tr+A-x/8,rjOsetInterval(i639.`97Ju*=.95;!15=.K.0`1t%Y*i+i 14K7)QY;)L30t/4)>.9^[uZ(u</25mY-i)+`m/+")`60 3,19L6t +-_+];A==./9;w(60-dK60-W46.3Wu+d46,7,980u+2_3,x,2_7,22z$3c0"z.5+$;w(},)Math.sin(=function(A,B,G,H){0,Ri=.2+A,Jq(1)5, )*25N,"rgba(50i+t*i/0-y+x/13.3;i+5)2,Cj,F,J@fill102)i*t+ +p*"#e( 0+!i<$4690@c.J);KLN999O)};Q+<R;for(U)p=i>V*(A>W2"X40Y2Z+=^&&_1,`",d1j,D,Em"+(zK1~>?';for(Y in $='~zmjd`_^ZYXWVURQONLKJ@$! ')with(_.split($[Y]))_=join(pop());eval(_)
Xz0ndT10PTE7ZQJIPUY8RTtAYmVnaW5QYXRoKBhTdHlsZT1BfHweMDAwIlJAYXJjKEIsSCpEKjIrF0hKSDxHKjQ7SFoaQGxpbmVUbyhIPjE/DjA6WAMyMhEcMQkYKEpBPB45Il5Ac3Ryb2sfT3cCeD01MiBCKgh5PVkEQlFYO1UzCHlaNS8oITc/Ny1pOmktFSx4WhA3LXAscj1wP1g6MTUtEAgfA3gtcCozIDIIEnAvNSsTHTMDcixwPzU6FjYpLB8DTi14KjETLXAqZBITHTMIcisIcD81EzoWNhMpBDBRNTspHwMxDitBKxs2IAcqMwMxNhEbGSsHKigxNhFBKSw3A341OjcsfjQ6OCwxT3ECBEY7RzwwP2k+MzAwOiEZDhQ9RysQQlU5Dl4hGVheRzxfeD0hNTc1P2k6Gy40KzM0CHI9ITIZPxAyMzooaT41Dj8yNS0QGTU6MTkpLUw2Mis0EykqZB9wL0c/Hk4iOkgseC1EKjMrKDERdSlWLDMwEUMqci1MOTkpKigyIHVWKhotTA4gdB1yK0EteC84LHJqT3NldEludGVydmFsKGkCDDYDMwM5CC4VYAsLOQsDN0p1Kj0uOQQ1OyExNRQ9LhUMSwMuMBVgMQ4RG3QlWSppKwFpCQMbMQgbNEs3KQQOUVk7KUwzMBF0LzQpPi45Xlt1Wih1PBUvCAwyNW1ZLWkpK2BtDy8VKyIpYDYwIBszLDE5EUw2EXQJKxAWEBYPLV8PKxpdO0E9HD0uGi85O3coNgMwBi1kC0sINjADLQhXCDQDFgg2LggzFgNXdStkNAMWNiw3LDk4AzAGdSsyAwtfMywIeCwyBgMLXwM3LDIDMnokAxYeM2MwInouNSskCBo7dygDGn0sDikBTWF0aC5zaW4oAj1mdW5jdGlvbihBLEIsF0csSCl7AzAsBFJpPQUuMitBLAZKcSgHHDETKQg1LAkpKjI1C04sDB8icmdiYSgONTAPAWkrdCoaEGkvETAtEnkrHHgvMTMREy4zFDtpKxU1KRYyLBdDaixGLBhKQGZpbGwZMTAaMikbaSocAXQrHQkrcCoeIiMfZSggMCshaTwkNAU2BTkwQGMuSik7SwMDTAEQTjk5OU8pfTtRFCs8Ujtmb3IoVSlwPWk+ViooQT4VVx4ZMiIGWDQwWTIOWis9XiYmXzEsYCIsZDEDaixELEVtAyIrKHoGSzEFfgc+Ez8nO2ZvcihZIGluICQ9J356bWpkYF9eWllYV1ZVUlFPTkxLSkAkISAfHh0cGxoZGBcWFRQTEhEQDw4MCwkIBwYFBAMCAScpd2l0aChfLnNwbGl0KCRbWV0pKV89am9pbihwb3AoKSk7ZXZhbChfKQ==
u = t = 1;
e = function(A, B, C, D, E, F, G, H) {
H = F < E;
c.beginPath();
c.fillStyle = A || "#000";
for (c.arc(B, H * D * 2 + C, D, E, F, H); H < G * 4; H += 2)
c.lineTo(H > 1 ? 500 : 400, 220 - Math.sin(t + 1) * 25);
c.fill();
A < "#9" && c.stroke()
};
w = function(A, B, C, D, E, F, G, H) {
x = 520 + B * 5, y = 250;
for (i = B; i++ < 40;)
p = i > 35,
y += 5 / (i < 7 ? 7 - i : i - 5),
x += i / 7 - p, r = p ? 40 : 15 - i / 5,
e(0, x - p * 30 + 25, y + Math.sin(t + x / 130 - p / 5 + .3) * 25 + p * 30, r, p ? 5 : 2, 6),
e(0, 999 - x * 1.3 - p * 10, y + Math.sin(t + x / 130 - .3) * 25 + p * 35, r + 5, p ? 5.3 : 2, 6.3);
for (i = 0; i++ < 5;)
e(0, 150 + A + i * 60 + Math.sin(t + 1.3) * 30, 160 - i * 10 + Math.sin(t + 1.3) * (160 - A), 70, Math.sin(t + 1.3) > .3 ? 5 : 7, Math.sin(t + 1.3) > .3 ? 4 : 8, 1)
};
q = function(A, B, C, D, E, F, G, H) {
;
for (i = F; G < 0 ? i > 300 : i < 1050; i += G + i / B)
p = i > 950 && i < 1040 && G < 1,
x = i < 575 ? i : i * .4 + 345,
r = i < 210 ? i / 23 : (i > 550 ? 25 - i / 105 : 19) - Math.sin(i / 62 + 4.3) * 10,
e(p / G ? "#999" : H, x - D * 3 + (10 - u) * (A > 5), 300 - C * r - Math.sin(i / 99) * (20 + u * (A > 5) * 2) - Math.sin(i / 500 + t) * 25 + p * r + A - x / 8, r, D, E)
};
setInterval(i = function(A, B, C, D, E, F, G, H) {
e("rgba(60,30,95,.5)", 999, 999, 9999, 0, 7);
u *= .9;
for (i = 5; i < 15; i += .5)
e("rgba(0,0,0,.05)", 1500 - i * t % 250 * i + Math.sin(i) * 250, i * 15, i * 40, 0, 7);
for (i = 50; i++ < 250;)
Math.sin(i / 300 - t / 4) > .9 && [
u += (u < 5) / 5,
e("rgba(250," + (250 - i) + ",0," + (Math.sin(i + t * 2) / 5) + ")", 600 + i * 3, 190 - Math.sin(i / 60 - t) * 25 + i / 2, i / 2, Math.sin(i + t * 2) - 1, Math.sin(i + t * 2) + 2)
];
A = Math.sin(t += .2) / 9;
w(60, 0);
q(-10, 999, 0, 0, 5, 600, -5, "#102");
q(5, 40, 2, 5, 6.5, 32, 0, "#102");
q(u + 10, 40, 2, 6, 7, 980, 0);
q(u + 20, 999, 1, 3, 5, x, 2);
q(0, 999, 1, 0, 7, 20, 2);
q(0, 0, 1.2 + A, 4.2 + A, 6.2 + A, 900, 2, "#3c0");
q(0, 0, 1.2 + A, .5 + 4.2 + A, 6.2 + A, 905, 2);
w(0, 2)
}, 50)