GlowScript 3.0 VPython
L=4; L1=L-1; L2=L-2; r=[];balls=[]; R1=0.1; R2=0.1
scene=canvas(width=800, height=600, center=vector(L1/2,L1/2,L1/2))
for i in range(L):
for j in range(L):
for k in range(L):
r.append(vec(i,j,k))
s1=sphere(pos=vec(i,j,k),radius=R1,color=vec(1,0,0)
,opacity=0.5)
balls.append(s1)
N1=len(r)
for i in range(L):
for j in range(L):
arrow(pos=vec(0,i,j),axis=vec(L1,0,0),shaftwidth=0.02,headwidth=0.02)
arrow(pos=vec(i,0,j),axis=vec(0,L1,0),shaftwidth=0.02,headwidth=0.02)
arrow(pos=vec(i,j,0),axis=vec(0,0,L1),shaftwidth=0.02,headwidth=0.02)
for i in range(N1):
if(r[i].x > L2 or r[i].y > L2 or r[i].z > L2): continue
s=r[i]+vec(0.5,0.5,0.5)
r.append(s)
s2=sphere(pos=s,radius=R2,color=vec(0,1,0))
balls.append(s2)