function hurryup(ivp, parameter, duration, fps)
syms m1 m2 m3 l1 l2 l3 l0 Mtorq g a i;
syms varalpha varbeta vargamma dvaralpha dvarbeta dvargamma ddvaralpha dddvaralpha x; 
% gets equation of motion and converts symbolic in numerical expression.
bewegungsgleichung = build_ode;
dgl = matlabFunction(bewegungsgleichung,'vars',{varalpha,l1,m1,m2,m3,g,Mtorq});
nframes=duration*fps;
% solves equation of motion
sol=ode45(@(t,x) integrator(t, x, dgl, parameter),[0 duration], ivp); 
t = linspace(0,duration,nframes);
y=deval(sol,t);
varalpha=y(1,:)'; dvaralpha=y(2,:)';
l1=parameter(5); 
l2=parameter(6); 
l3=parameter(7); 
l0 = parameter(9); 
% solves gamma and beta for each alpha
start0 = [0.6; pi/3]; 
a = 0;
i = 1;
angels = zeros(nframes,2);
while a ~= duration
trafo = fsolve(@(x) gammabeta(x,l1, l2, l3, l0, varalpha(i)),start0);
start0 = trafo;
angels(i,:) = trafo.';
a = t(i);
i = i+1;
end
clc;
varbeta = angels(:,1);
vargamma =angels(:,2);
% begin plots
subplot(3,1,1); 
alpha = plot(cos(varalpha)*l1+cos(varbeta)*l2, sin(varalpha)*l1+sin(varbeta)*l2,'blue',cos(varalpha)*l1,sin(varalpha)*l1,'red');

title('motion');
subplot(3,1,2); 
beta = plot(t, varbeta, 'red',t, vargamma, 'blue');
set(beta,'LineWidth',1);
title('angels');
legend('beta','gamma' )
subplot(3,1,3);
h=plot(0,0,'MarkerSize',30,'Marker','.','LineWidth',2);
range=1.1*(l1+l2); axis([-range range -range range]); axis square;
set(gca,'nextplot','replacechildren');
hold on;
g=plot(0,0,'MarkerSize',30,'Marker','.','LineWidth',2);
range=1.1*(l1+l2); axis([-range range -range range]); axis square;
set(gca,'nextplot','replacechildren');
for i=1:length(varalpha)-1
        
        if (ishandle(h)==1)
          Ycoord=[0,l1*sin(varalpha(i)),l1*sin(varalpha(i))+l2*sin(varbeta(i))];
            Ycoord3=[0,l3*sin(vargamma(i))]; 
           Xcoord=[0,l1*cos(varalpha(i)),l1*cos(varalpha(i))+l2*cos(varbeta(i))];
            Xcoord3=[l0,l0+l3*cos(vargamma(i))];
            set(h,'YData',Ycoord,'XData',Xcoord,'Color','red');
            set(g,'YData',Ycoord3,'XData',Xcoord3);
            drawnow;
            F(i) = getframe;
        end
    end
    title('animation1');
  
