(* PreIm finds a single point in the pre-image of a point in S^2 under the Hopf Map. Rotating this about a circle in the complex plane, we get every such point*)

preIm[{w_,x_}]:= Which[x≠ 1,{(w/(((-2x+2))^(1/2))),(((((-x+1)/2)))^(1/2))},x== 1,{1,0}]

Hopf[{z0_,z1_}]:= Simplify[{2z0 Conjugate[z1],((Abs[z0])^2)-((Abs[z1])^2)}]

Hopf[preIm[{0,1}]]

(* It works!*)

StereoN[{z0_,z1_}]:= {((Re[z0])/(1-Im[z1])),((Im[z0])/(1-Im[z1])),((Re[z1])/(1-Im[z1]))}

lambda[θ_]:= Cos[2Pi θ]+I Sin[2 Pi θ];
(* Parametrization of 2 sphere with ω and ϕ within [0,1]*)
S2[ω_,ϕ_] := {Cos[2Pi ω]Sin[Pi ϕ]+I Sin[2Pi ω]Sin[Pi ϕ],Cos[Pi ϕ]}

(* If we fix the value of ϕ and vary ω (i.e. rotate around a latitude on the sphere), the fibres over each such point under the Hopf map form a torus*)

Show[Table[ParametricPlot3D[StereoN[lambda[θ]preIm[S2[ω,ϕ]]],{θ,0,1},PlotStyle->Hue[(ω),1,ϕ+0.5]],{ω,0,1,0.05},{ϕ,0.25,0.25,0.25}],PlotRange-> All,ViewPoint->{1.3, -2.4, 2.},ViewVertical->{0, 0, 1}]

(* As we let ϕ change, we obtain different tori, nested within one another*)

Show[Table[ParametricPlot3D[StereoN[lambda[θ]preIm[S2[ω,ϕ]]],{θ,0,1},PlotStyle->Hue[(ω),1,(ϕ-0.25)/0.1]],{ω,0,1,0.05},{ϕ,0.25,0.5,0.25}],PlotRange-> All,ViewPoint->{1.3, -2.4, 2.},ViewVertical->{0, 0, 1}]

(* If we vary both the longitude and latitude of our point, we will obtain a sequence of circles spiraling inward*)

Show[Table[ParametricPlot3D[StereoN[lambda[θ]preIm[S2[ω,ω]]],{θ,0,1},PlotStyle->Hue[(ω),1,(ω-0.25)/0.1]],{ω,0,0.8,0.05}],PlotRange-> All,ViewPoint->{2.5154429985039144`,1.2236432344892825`,1.904007288842729`},ViewVertical->{0.02430175190239601`,0.045771924123528186`,1.2390042168899613`}]