Coding a triangle of balls

ClearAll[points];
points[0,n_]:={{0,0}};
points[d_,n_]:=Flatten[Subdivide[##,d]&@@@
Partition[CirclePoints[d{Sin[π/n],Cos[π/n]},d,n],2,1],1];

n=5;m=6;

Graphics3D[{
Table[{Hue[i/m],Sphere[Append[#-{Sin[π/n],Cos[π/n]} i,-i]&/@points[j-1,n],0.1]},
  {i,m},{j,i}],
Table[{Hue[(i+1)/m,1,1,0.3],Polygon@TransformationFunction[
  {{i,0,0,(i-1) Sin[π/n]},{0,i,0,(i-1) Cos[π/n]},{0,0,i,i-1},{0,0,0,1}}
  ][Append[#,-2]&/@CirclePoints[-{Sin[π/n],Cos[π/n]},1,n]]},{i,1,m-1}]
}]

enter image description here enter image description here


Something to start you out:

fig[n_, 1, {c_, h_}] := {{0, 0, 0}}

fig[n_, m_, {c_, h_}] := PadRight[Standardize[Flatten[Table[
    With[{cp = N[CirclePoints[{0, -c k/2 Csc[π/n]}, {c k/2 Csc[π/n], π/2}, n]]},
         Transpose[{1 - Range[k]/k, Range[k]/k}] . # & /@
         If[k < m - 1, Partition[Rest[cp], 2, 1], Partition[cp, 2, 1, 1]]],
    {k, m - 1}], 2], Mean, 1 &], {Automatic, 3}, N[h (1 - m)]]

With[{n = 6, m = 5}, 
     Graphics3D[Table[{Directive[ColorData[61, k], AbsolutePointSize[14]],
                       Point[fig[n, k, {1, 4/5}]]}, {k, m}]]]

figurate number pyramid