f1:={RGBColor[9/10,9/10,0],
Disk[{0,0.2},0.5`,{0,π}]};
f2:={RGBColor[9/10,9/10,0],
Rectangle[{-0.5,0},{0.5,0.21}]};
lt1[y_]:=y+Abs[0.15*Sin[Pi/2*20/3*t]]
lt2[x_]:=x+Abs[0.15*Sin[Pi/2*20/3*t]]
l1:={RGBColor[3/4,1,0],Thickness[0.03],Line[{{0.35,0.55},{0.42,0.62}}]};
l2:={RGBColor[8/10,9/10,0],Disk[{0.44,lt1[0.55]},{0.04,0.09}]};
l3:={RGBColor[8/10,9/10,0],Disk[{lt2[0.35],0.63},{0.09,0.04}]};

ir1:={White,Disk[{0.2,0.4},{0.07,0.09}]};
ir2:={Black,Disk[{0.19,0.43},0.055]};
ir3:={Thickness[0.01],Circle[{0.2,0.4},{0.07,0.09}]};
il1:={White,Disk[{-0.2,0.4},{0.07,0.09}]};
il2:={Black,Disk[{-0.21,0.43},0.055]};
il3:={Thickness[0.01],Circle[{-0.2,0.4},{0.07,0.09}]};
pl1:={Red,Disk[{-0.25,0.25},0.015]};
pl2:={Red,Disk[{-0.17,0.25},0.015]};
pr1:={Red,Disk[{0.25,0.25},0.015]};
pr2:={Red,Disk[{0.17,0.25},0.015]};
m:={Red,Disk[{0,0.2},{0.07,0.1},{Pi,2*Pi}]};

b1:={RGBColor[0,0.4,0.6],Line[{{-0.5,-0.7},{-0.5,0},{0.5,0},{-0.5,-0.7}}]};
b2:={RGBColor[0,0.7,0.7],Rectangle[{-0.5,-0.7},{0.5,0}]};


n1:={Red,Disk[{0,-0.25},0.05]};
n2:={Red,Polygon[{{0.01,-0.2},{-0.1,-0.45},{-0.2,-0.35}}]};
n3:={Red,Polygon[{{-0.01,-0.2},{0.1,-0.45},{0.2,-0.35}}]};

at1[x_]:=x+0.055t;
at2[y_]:=y-0.02t;
axl[x_]:=x-0.03t;
axr[x_]:=x+0.03 t;
al:={RGBColor[9/10,9/10,0],Disk[{ax[-0.55],-0.25},{at1[0.06],at2[0.15]}]};
ar:={RGBColor[9/10,9/10,0],Disk[{axr[0.55],-0.25},{at1[0.06],at2[0.15]}]};

l[y_]:=y+0.1t;
ll:={RGBColor[9/10,9/10,0],Disk[{-0.24,-0.7},{0.26,l[0.3]},{Pi,2*Pi}]};
lr:={RGBColor[9/10,9/10,0],Disk[{0.24,-0.7},{0.26,l[0.3]},{Pi,2*Pi}]};
baselinet[s_]:=s-0.1 t
options={AspectRatio->1.5,PlotRange->{{-1,1},{baselinet[-1],1.5}}};
fn:=Graphics[{f1,f2,l1,l2,l3,ir1,ir2,ir3,il1,il2,il3,pl1,pl2,pr1,pr2,m,b1,b2,n1,n2,n3,al,ar,ll,lr},options]
anime=Table[
Show[fn],{t,0,3,3/20}
]
ListAnimate[anime]