FusionAtlasPaths={"~/projects/fusionatlas/code/package/","~/Documents/research/fusionatlas/code/package/"};
$Path=$Path~Join~FusionAtlasPaths;
<<FusionAtlas`

caps={{0,0,0,0,0,0,0,0,1,d2,1,0,0,0,0,0,d1,d1 d2,0,d1},{1,0,d2,0,0,0,0,0,0,d1,d1 d2,0,0,0,0,0,0,1,0,d2},{d2 d1,0,d1,d1,0,0,0,0,0,d2,1,1,0,0,0,0,0,0,0,0},{1,0,0,d2,0,0,0,0,0,d1,0,d1 d2,0,1,0,d2,0,0,0,0},{0,0,0,0,0,0,0,0,1,d2,0,1,d1,d1 d2,0,d1,0,0,0,0},{0,0,0,0,0,0,0,0,d1 d2,d1 ,0,0,d2,1,0,0,d2,1,0,0},{0,1,0,d2,0,d1,0,d1 d2,0,0,0,0,0,0,1,d2,0,0,0,0},{0,0,0,0,1,d2,0,1,0,0,0,0,d1,0,d1 d2,d1,0,0,0,0},{0,0,0,0,d1 d2,d1,0,0,0,0,0,0,d2,0,1,0,d2,0,1,0},{0,0,0,0,1,d2,1,0,0,0,0,0,0,0,0,0,d1,0,d1 d2,d1},{0,1,d2,0,0,d1,d1 d2,0,0,0,0,0,0,0,0,0,0,0,1,d2},{0,d1 d2,d1,d1,0,d2,1,1,0,0,0,0,0,0,0,0,0,0,0,0}}

caps//MatrixForm

(caps.rotation)[[{5,6,1,2,3,4,11,12,7,8,9,10}]]-caps//MatrixForm

ns=Simplify[NullSpace[caps]];

(nsn=Table[Simplify[ns[[k]](PolynomialLCM@@(Denominator/@ns[[k]]))],{k,1,8}])//MatrixForm

MatrixRank[nsn]

MatrixRank[Table[nsn[[k]]+rotation.nsn[[k]]+rotation.rotation.nsn[[k]],{k,1,4}]/.d1->1.8/.d2->3.7]

ω=Exp[2π I/3];

MatrixRank[Table[nsn[[k]]+ω rotation.nsn[[k]]+(ω^2)rotation.rotation.nsn[[k]],{k,5,6}]/.d1->1.8/.d2->3.7]

MatrixRank[Table[ns[[k]]+(ω^2) rotation.ns[[k]]+ω rotation.rotation.ns[[k]],{k,7,8}]/.d1->1.8/.d2->3.7]

(λ[1]=Table[nsn[[k]]+rotation.nsn[[k]]+rotation.rotation.nsn[[k]],{k,1,4}])//MatrixForm

(λ[ω]=Table[nsn[[k]]+ω rotation.nsn[[k]]+(ω^2)rotation.rotation.nsn[[k]],{k,5,6}])//MatrixForm

(λ[(ω^2)]=Table[Simplify[nsn[[k]]+(ω^2) rotation.nsn[[k]]+ω rotation.rotation.nsn[[k]]],{k,7,8}])//MatrixForm

MatrixRank[λ[1]~Join~λ[ω]~Join~λ[(ω^2)]/.{d1->3.2,d2->4.7}]

rotation.λ[1][[1]]-λ[1][[1]]

rotation={
{0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0},
{0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0},
{0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0},
{0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0},
{0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0},
{0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
{0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0},
{0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
{0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0},
{0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0},
{0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0},
{0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0},
{0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1},
{0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0},
{0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0},
{0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0},
{0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
{1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
{0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
{0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}};

rotation.rotation.rotation==IdentityMatrix[20]

MatrixForm[Rotation]

MatrixForm[MatrixPower[Rotation,3]]