Carroll-Schwarzschild geodesics (impact parameter b>2M)

Manipulate[M=1;L=1;r0=b;Energy=(( (L^2))/( 2 (r0^2)));orbit=
Quiet@NDSolve[
{r''[τ] ==  2M Energy/ ((r[τ])^2) + (L^2)/ ((r[τ])^3)- 3 M (L^2)/((r[τ])^4) ,r[0]== r0,r'[0]== 0,ϕ'[τ] == L/ ((r[τ])^2),ϕ[0] == 0
},{r,ϕ},{τ, 0,36Pi}];
domain=(r/.orbit[[1,1]])["Domain"];
{begin,end}=domain[[1]];
angleList = ϕ[end]/.orbit;windingNumber = angleList[[1]]/( π); com=(( 1)/( (r0^2)));
orbitPlot =
ParametricPlot[
Evaluate[
r[τ]{Cos[ϕ[τ]],Sin[ϕ[τ]]}
/.orbit],
{τ, begin, end},
AspectRatio-> 1,
AxesOrigin->{0,0},
PlotRange->10.5,PlotStyle->{Thick,Orange}];
inversePlot =
ParametricPlot[
Evaluate[
r[τ]{Cos[ϕ[τ]],-Sin[ϕ[τ]]}
/.orbit],
{τ, begin, end},
AspectRatio-> 1,
AxesOrigin->{0,0},
PlotRange->10.5,PlotStyle->{Thick,Red}];
CES = Graphics[Disk[{0,0},2]];
Show[{orbitPlot,inversePlot,CES,Graphics[{Inset[ToString[StringForm["Carroll geodesics for large impact parameter"]],{-5.5,10}],Inset[ToString[StringForm["winding number  ``",NumberForm[windingNumber,3]]],{-6,9}],Inset[ToString[StringForm["Outgoing: Orange"]],{6,10}],Inset[ToString[StringForm["Ingoing: Red"]],{6,-10}],Inset[ToString[StringForm[
"impact parameter b  ``",NumberForm[b,10]]],
{6,9}]}
              ]},Ticks-> None,ImageSize->{400,400}],
{{b ,3M,"impact parameter b"}, 2.000000001 M, 10M,ImageSize->Tiny},TrackedSymbols:>{b}]

Same setup but with logarithmic scaling of b-2

Manipulate[M=1;L=1;r0=2+Exp[b];Energy=(( (L^2))/( 2 (r0^2)));orbit=
Quiet@NDSolve[
{r''[τ] ==  2M Energy/ ((r[τ])^2) + (L^2)/ ((r[τ])^3)- 3 M (L^2)/((r[τ])^4) ,r[0]== r0,r'[0]== 0,ϕ'[τ] == L/ ((r[τ])^2),ϕ[0] == 0
},{r,ϕ},{τ, 0,42Pi}];
domain=(r/.orbit[[1,1]])["Domain"];
{begin,end}=domain[[1]];
angleList = ϕ[end]/.orbit;windingNumber = angleList[[1]]/( π); com=(( 1)/( (r0^2)));
orbitPlot =
ParametricPlot[
Evaluate[
r[τ]{Cos[ϕ[τ]],Sin[ϕ[τ]]}
/.orbit],
{τ, begin, end},
AspectRatio-> 1,
AxesOrigin->{0,0},
PlotRange->10.5,PlotStyle->{Thick,Orange}];
inversePlot =
ParametricPlot[
Evaluate[
r[τ]{Cos[ϕ[τ]],-Sin[ϕ[τ]]}
/.orbit],
{τ, begin, end},
AspectRatio-> 1,
AxesOrigin->{0,0},
PlotRange->10.5,PlotStyle->{Thick,Red}];
CES = Graphics[Disk[{0,0},2]];
Show[{orbitPlot,inversePlot,CES,Graphics[{Inset[ToString[StringForm["Carroll geodesics with up to 7 windings"]],{-5.5,10}],Inset[ToString[StringForm["winding number  ``",NumberForm[windingNumber,3]]],{-6,9}],Inset[ToString[StringForm["Outgoing: Orange"]],{6,10}],Inset[ToString[StringForm["Ingoing: Red"]],{6,-10}],Inset[ToString[StringForm[
"b-2 = ``",NumberForm[Exp[b],3]]],
{6,9}]}
              ]},Ticks-> None,ImageSize->{400,400}],
{{b ,0,"impact parameter Log[b-2]"}, -30, 2.1,ImageSize->Tiny},TrackedSymbols:>{b}]

Carroll-Schwarzschild geodesics (impact parameter b<2M)

Manipulate[M=1;L=1;
rho[τ_]=2/L Sqrt[r[τ]-2M];
replr=Assuming[{r[τ]>2M,Rho[τ]>0,b>0,b<2M},Solve[rho[τ]==Rho[τ],r[τ]]][[1]];
rhs=Assuming[{r[τ]>2M,Rho[τ]>0,b>0,b<2M},((D[rho[τ],τ])/.r'[τ]->Sqrt[L(1-2M/r[τ])(1/b^2-1/r[τ]^2)]/.replr)//FullSimplify];
orbit=Quiet@NDSolve[{D[Rho[τ],τ]==rhs,Rho[0]==0,D[ϕ[τ],τ]==L^2/(1/4 (8 M+Rho[τ]^2))^2,ϕ[0]==0},{Rho,ϕ},{τ,0,6Pi(1+b^2)}];
inversePlot=ParametricPlot[Evaluate[(1/4) (8 M+((Rho[τ])^2)) {Cos[ϕ[τ]],-Sin[ϕ[τ]]}/. orbit],{τ,0,6Pi(1+b^2)},AspectRatio->1,AxesOrigin->{0,0},PlotRange->{-6M,6M},PlotStyle->{Thick,Red}];
domain=(Rho/.orbit[[1,1]])["Domain"];
{begin,end}=domain[[1]];
angleList = ϕ[end]/.orbit;windingNumber = angleList[[1]]/(π);
orbitPlot=ParametricPlot[
Evaluate[
(1/4) (8 M+((Rho[τ])^2)){Cos[ϕ[τ]],Sin[ϕ[τ]]}
/.orbit],
{τ, 0, 6Pi(1+b^2)},
AspectRatio-> 1,
AxesOrigin->{0,0},PlotRange->{-6M,6M},PlotStyle->{Thick,Orange}];CES = Graphics[Disk[{0,0},2]];Show[inversePlot,orbitPlot,CES,Graphics[{Inset[ToString[StringForm["winding number ``",NumberForm[windingNumber,3]]],{-4.2,5.3}],Inset[ToString[StringForm["Carroll geodesics for small impact parameter"]],{-4.2,5.8}],Inset[ToString[StringForm["Outgoing: Orange"]],{4.2,5.8}],Inset[ToString[StringForm["impact parameter ``",NumberForm[b,10]]],{4.0,5.3}],Inset[ToString[StringForm["Ingoing: Red"]],{4.2,-5.7}]}]],{{b ,M,"impact parameter b"}, 0.0001, 1.999999999M,ImageSize->Tiny},TrackedSymbols:>{b}]