Manipulate[
Graphics3D[{Specularity[White,50],
Table[{Hue[i/n],Sphere[{k-j/2,i/√3-√3j/2,-√6i/3},r]},{i,0,n-1},{j,0,i},{k,0,j}]
},Lighting->{{"Directional", White, ImageScaled[{2,2,2}]}},
Method->{"SpherePoints"->150},Background->Black],{{n,8},3,15,1},{{r,0.5},0.1,1}]

n = 6;
mat = {{0,1,-1},{0,-1,0},{1,0,0}} . {{1,0,0}, {1/2,√3/2,0}, {1/2,√3/6,√6/3}};
pts = 2 Reverse@GroupTheory`Tools`Multisets[Range[n - 1, 0, -1], 3] . mat;
Graphics3D[{
{Opacity[0.5, Blue], Specularity[1, 20], Sphere[pts]},
MapIndexed[Inset[Style[Tr@#2, 20, White, Bold], #] &, pts]
}, ImageSize -> 600, Boxed -> False, Background -> Black]
