- At first we wrap a line to circle.
With[{L = 30},
Manipulate[
ParametricPlot3D[{0, R, 0} +
R {Cos[t], Sin[t], 0}, {t, -π/
2 - (L/2)/R, -(π/2) + (L/2)/R}, PlotRange -> L/2], {R, 200,
L/(2 π)}]]

- Then we wrap the cylinder.
Clear["Global`*"];
L = 30; r = 1;
f[R_, t_] = {0, R, 0} + R {Cos[t], Sin[t], 0};
{n[R_, t_], b[R_, t_]} = FrenetSerretSystem[f[R, t], t][[2]][[2 ;; 3]];
Manipulate[
ParametricPlot3D[{0, R, 0} + R {Cos[t], Sin[t], 0} +
r*{Cos[s], Sin[s]} . {n[R, t], b[R, t]}, {t, -(π/2) - (L/2)/
R, -(π/2) + (L/2)/R}, {s, 0, 2 π},
PerformanceGoal -> "Quality", PlotRange -> L/2, Boxed -> False,
Axes -> False], {R, 200, L/(2 π)}]

Edit
Since the curvature of the circle is κ=1/R
where R
is the radio of the circle, we replace all of the 1/R
to κ
then make the animation smoothly.
With[{L = 30, R = 1/κ},
Manipulate[
ParametricPlot[{0, R} +
R {Cos[t], Sin[t]}, {t, -π/2 - (L/2)/R, -(π/2) + (L/2)/R},
PlotRange -> L/2], {κ, 10^-10, 2 π/L}]]

Clear["Global`*"];
L = 30; r = 1;
f[R_, t_] = PadRight[{0, R} + R {Cos[t], Sin[t]}, 3];
{n[R_, t_], b[R_, t_]} = FrenetSerretSystem[f[R, t], t][[2, 2 ;; 3]];
Manipulate[
Block[{R = 1/κ},
ParametricPlot3D[
f[R, t] +
r*{Cos[θ], Sin[θ]} . {n[R, t], b[R, t]}, {t, -π/
2 - (L/2)/R, -(π/2) + (L/2)/R}, {θ, 0, 2 π},
PerformanceGoal -> "Quality", PlotRange -> L/2, Boxed -> False,
Axes -> False, Lighting -> "ThreePoint"]], {κ, 10^-10,
2 π/L}]

- Wrap a rectangle to a torus.
Clear["Global`*"];
L = 95; l = 30;
list1 = Table[
Block[{R = 1/κ},
ParametricPlot3D[{0, 0, R} +
R {0, Cos[t], Sin[t]} + {s, 0, 0}, {t, -π/2 -
l/2/R, -π/2 + l/2/R}, {s, -L/2, L/2},
PerformanceGoal -> "Quality", PlotRange -> L/2, Boxed -> False,
Axes -> False]], {κ, Subdivide[10^-10, 2 π/l, 10]}];
f[R_, t_] = {0, R, 0} + R {Cos[t], Sin[t], 0};
{n[R_, t_], b[R_, t_]} = FrenetSerretSystem[f[R, t], t][[2, 2 ;; 3]];
list2 = Table[
Block[{R = 1/κ, r = l/2/π},
ParametricPlot3D[
f[R, t] + {0, 0, r} +
r*{Cos[θ], Sin[θ]} . {n[R, t],
b[R, t]}, {t, -π/2 - (L/2)/R, -(π/2) + (L/2)/
R}, {θ, 0, 2 π}, PerformanceGoal -> "Quality",
PlotRange -> L/2, Boxed -> False, Axes -> False]], {κ,
Subdivide[10^-10, 2 π/L, 20]}];
ListAnimate[Join[list1, list2]]
