Torus[r_,R_]:=Module[{θ, ϕ},
ParametricPlot3D[{(R + r Cos[θ]) Cos[ϕ], (R + r Cos[θ]) Sin[ϕ], r Sin[θ]},{θ, 0, 2 π },{ϕ,0, 2 π},Boxed->False,Axes->False]
]

Torus[1,2]

Torus1[r_, α_:0]:=Module[{θ, ϕ, M, M1, st},
(* Rotation matrix; rotates the x ,w- plane*)
M = {{Cos[α], 0, 0, -Sin[α]}, {0, 1, 0,0}, {0,0,1,0}, {Sin[α], 0,0,Cos[α]}};

v = {r Cos[θ], r Sin[θ],r Cos[ϕ], r Sin[ϕ]}; (* A vector on the torus in  (R^4) *)
M1 = M.v;(* Rotate the points on the torus*)

(* Stereographic projection of the torus onto (R^3) using the point (0,0,0,1)*)
st = {M1[[1]]/(1-M1[[-1]]), M1[[2]]/(1-M1[[-1]]), M1[[3]]/(1-M1[[-1]])};

ParametricPlot3D[ st,{θ, 0, 2π },{ϕ,0, 2 π},Boxed->False,Axes->False] 
]

Torus1[1/2]

Table[Torus1[1/2, rota],{rota, 0, 2π, π/4}]

{Manipulate[Torus1[1/2, ra], {ra, 0, 2π}], Animate[Torus1[1/2, ra], {ra, 0, 2π, π/60}]}