Here is the code to make this neat animation above:
Figuring out the shape of the distortion:
In[]:=
ContourPlotArcTan[x,y]+0.3
x^2+y^2
,{x,-8,8},{y,-8,8},Contours->Range[-2Pi,2Pi,Pi/8]
Out[]=

Hexagonal

In[]:=
ClearAll[MakeScene3]​​MakeScene3[t_?NumericQ]:=Module{n=30,r=0.4,dr=0.16,θ,objs,x,y},​​objs=Catenate@Table​​x=i+j2.0;​​y=
3
2.0j;​​θ=ArcTan[x,y]+0.3
x^2+y^2
;​​If[-n<=i+j<=n,{Circle[{x,y},r],Disk[AngleVector[{x,y},{r,2θ-2Pit}],dr]},Nothing]​​,​​{i,-n-1/2,n+1/2},​​{j,-n-1/2,n+1/2}​​;​​Graphics{GrayLevel[0.3],objs[[All,1]],White,objs[[All,2]]},Background->Black,ImageSize->600,PlotRange->1.05n{-1,1},
3
2{-1,1}​​​​MakeScene3[0]​​Manipulate[MakeScene3[τ],{τ,0,1},SaveDefinitions->True]
Out[]=
Out[]=
​
τ
imgs=Table[Rasterize[MakeScene3[τ],"Image",RasterSize->600],{τ,Most@Subdivide[30]}];
In[]:=
SetDirectory[NotebookDirectory[]];​​Export["DotArt3.gif",imgs,"DisplayDurations"->1/30]
Out[]=
DotArt3.gif

CITE THIS NOTEBOOK

Turning in circles in a hexagon…​
by Sander Huisman​
Wolfram Community, STAFF PICKS, November 5, 2023
​https://community.wolfram.com/groups/-/m/t/3060429