2 added 983 characters in body edited Oct 28 '18 at 11:30 Henrik Schumacher 68.4k55 gold badges9898 silver badges191191 bronze badges This could be a strategy to achieve your goals. background = ParametricPlot3D[ torus[θ1, θ2], {θ1, 0, 2 Pi}, {θ2, 0, 2 Pi}]; curve[t_] = torus[θ1[t], θ2[t]] /. sol;  (* creating the curve plots for all discete times: all computations are done here and not in Manipulate so that computations have to be done only once, speeding up the animation process *) curves = Table[ ParametricPlot3D[curve[s t], {ts, 0, 1}, PlotStyle -> Thick] /. Line[x_] :> Tube[x, 0.01], {st, 0, 10, 0.05}]; Manipulate[ GraphicsRow[{ Show[{ background, curves[[i]] }], frames[[i]] }, ImageSize -> Large]Large ], {i, 1, Length[curves], 1}, TrackedSymbols :> i ]  The idea is as follow: Given a curve $$\gamma \colon [0,T] \to \mathbb{R}^3,$$ you obtain a homotopy of this curve to a point by $$H \colon[0,T] \times [0,1] \to \mathbb{R}^3, \qquad H(t,s) = \gamma(s t).$$ You can now use one of the parameters $$s$$ or $$t$$ as animation parameter and the other one as plotting parameter. If you use t as "time" in the animation and if you plot the curve $$s \mapsto H(t,s)$$ for $$s \in [0,1]$$ and fixed t, you obtain exactly the curve that $$\gamma$$ traveled from time $$0$$ to time $$t$$. That's it basically. The replacement rule Line[x_] :> Tube[x, 0.01]  just turns the rather thin curves produced by ParametricPlot3D into a tubular curves for better visibility. This could be a strategy to achieve your goals. background = ParametricPlot3D[ torus[θ1, θ2], {θ1, 0, 2 Pi}, {θ2, 0, 2 Pi}]; curve[t_] = torus[θ1[t], θ2[t]] /. sol; curves = Table[ ParametricPlot3D[curve[s t], {t, 0, 1}, PlotStyle -> Thick] /. Line[x_] :> Tube[x, 0.01], {s, 0, 10, 0.05}]; Manipulate[ GraphicsRow[{ Show[{ background, curves[[i]] }], frames[[i]] }, ImageSize -> Large], {i, 1, Length[curves], 1}, TrackedSymbols :> i ]  This could be a strategy to achieve your goals. background = ParametricPlot3D[ torus[θ1, θ2], {θ1, 0, 2 Pi}, {θ2, 0, 2 Pi}]; curve[t_] = torus[θ1[t], θ2[t]] /. sol;  (* creating the curve plots for all discete times: all computations are done here and not in Manipulate so that computations have to be done only once, speeding up the animation process *) curves = Table[ ParametricPlot3D[curve[s t], {s, 0, 1}, PlotStyle -> Thick] /. Line[x_] :> Tube[x, 0.01], {t, 0, 10, 0.05}]; Manipulate[ GraphicsRow[{ Show[{ background, curves[[i]] }], frames[[i]] }, ImageSize -> Large ], {i, 1, Length[curves], 1}, TrackedSymbols :> i ]  The idea is as follow: Given a curve $$\gamma \colon [0,T] \to \mathbb{R}^3,$$ you obtain a homotopy of this curve to a point by $$H \colon[0,T] \times [0,1] \to \mathbb{R}^3, \qquad H(t,s) = \gamma(s t).$$ You can now use one of the parameters $$s$$ or $$t$$ as animation parameter and the other one as plotting parameter. If you use t as "time" in the animation and if you plot the curve $$s \mapsto H(t,s)$$ for $$s \in [0,1]$$ and fixed t, you obtain exactly the curve that $$\gamma$$ traveled from time $$0$$ to time $$t$$. That's it basically. The replacement rule Line[x_] :> Tube[x, 0.01]  just turns the rather thin curves produced by ParametricPlot3D into a tubular curves for better visibility. 1 answered Oct 28 '18 at 9:49 Henrik Schumacher 68.4k55 gold badges9898 silver badges191191 bronze badges This could be a strategy to achieve your goals. background = ParametricPlot3D[ torus[θ1, θ2], {θ1, 0, 2 Pi}, {θ2, 0, 2 Pi}]; curve[t_] = torus[θ1[t], θ2[t]] /. sol; curves = Table[ ParametricPlot3D[curve[s t], {t, 0, 1}, PlotStyle -> Thick] /. Line[x_] :> Tube[x, 0.01], {s, 0, 10, 0.05}]; Manipulate[ GraphicsRow[{ Show[{ background, curves[[i]] }], frames[[i]] }, ImageSize -> Large], {i, 1, Length[curves], 1}, TrackedSymbols :> i ]