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}]
}]
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}]]]