And this one is perfectly looping:
SetDirectory[NotebookDirectory[]]
Dynamic[N[t]]
imgs = Table[
g = Show[graphics, PlotRange -> All, Boxed -> False, Axes -> False,
ViewVector -> VP[t], ViewAngle -> 35 Degree, ImageSize -> 2 600];
Rasterize[g, "Image", RasterSize -> 600, ImageSize -> 600]
,
{t, Most@Subdivide[1.5, 2.5, 50]}
];
Export["2022_9b.gif", imgs, "DisplayDurations" -> 1/30]