Here are two \tikzset version. The essential difference is the content of \pgfmathparse{}, which is the formula of distance.
I Like L-1 Norm

\tikzset{
blur/.style={preaction={draw,fill,white,opacity=.9,line width=2pt}},
showdepth/.style={color=#1,ball color=#1,opacity=1+(\k-2)/5},
edgemeta/.is choice,
edgemeta/1/.style={blur,showdepth=blue!66!green},
edgemeta/2/.style={blur,showdepth=green!66!blue},
edgemeta/3/.style={blur,showdepth=green},
edgemeta/4/.style={blur,showdepth=green!66!yellow},
edgemeta/5/.style={blur,showdepth=yellow!66!green},
edgemeta/6/.style={blur,showdepth=yellow},
nodemeta/.is choice,
nodemeta/0/.style={blur,showdepth=blue},
nodemeta/1/.style={blur,showdepth=blue!66!green},
nodemeta/2/.style={blur,showdepth=green!66!blue},
nodemeta/3/.style={blur,showdepth=green},
nodemeta/4/.style={blur,showdepth=green!66!yellow},
nodemeta/5/.style={blur,showdepth=yellow!66!green},
nodemeta/6/.style={blur,showdepth=yellow},
drawedge/.style={drawedgex,drawedgey,drawedgez},
drawedgex/.code={
\ifnum\i=2\else
\pgfmathparse{int(max(abs(\i),abs(\i+1))+abs(\j)+abs(\k))}
\draw[edgemeta=\pgfmathresult](\i,\j,\k)--+(1,0,0);
\fi
},
drawedgey/.code={
\ifnum\j=2\else
\pgfmathparse{int(abs(\i)+max(abs(\j),abs(\j+1))+abs(\k))}
\draw[edgemeta=\pgfmathresult](\i,\j,\k)--+(0,1,0);
\fi
},
drawedgez/.code={
\ifnum\k=2\else
\pgfmathparse{int(abs(\i)+abs(\j)+max(abs(\k),abs(\k+1)))}
\draw[edgemeta=\pgfmathresult](\i,\j,\k)--+(0,0,1);
\fi
},
drawnode/.code={
\pgfmathparse{int(abs(\i)+abs(\j)+abs(\k))}
\shade[nodemeta=\pgfmathresult](\i,\j,\k)circle(3pt);
}
}
\begin{tikzpicture}[z={(-.28,-.15)},draw=white]
\foreach\k in{-2,...,2}{
\foreach\j in{-2,...,2}{
\foreach\i in{-2,...,2}{
\path[drawedge,drawnode];
}
}
}
\end{tikzpicture}
I Like L-∞ Norm

\documentclass[tikz,border=9]{standalone}
\begin{document}
\tikzset{
blur/.style={preaction={draw,fill,white,opacity=.9,line width=2pt}},
showdepth/.style={color=#1,ball color=#1,opacity=1+(\k-2)/5},
edgemeta/.is choice,
edgemeta/1/.style={blur,showdepth=green},
edgemeta/2/.style={blur,showdepth=yellow},
nodemeta/.is choice,
nodemeta/0/.style={blur,showdepth=blue},
nodemeta/1/.style={blur,showdepth=green},
nodemeta/2/.style={blur,showdepth=yellow},
drawedge/.style={drawedgex,drawedgey,drawedgez},
drawedgex/.code={
\ifnum\i=2\else
\pgfmathparse{int(max(abs(\i),abs(\i+1),abs(\j),abs(\k)))}
\draw[edgemeta=\pgfmathresult](\i,\j,\k)--+(1,0,0);
\fi
},
drawedgey/.code={
\ifnum\j=2\else
\pgfmathparse{int(max(abs(\i),abs(\j),abs(\j+1),abs(\k)))}
\draw[edgemeta=\pgfmathresult](\i,\j,\k)--+(0,1,0);
\fi
},
drawedgez/.code={
\ifnum\k=2\else
\pgfmathparse{int(max(abs(\i),abs(\j),abs(\k),abs(\k+1)))}
\draw[edgemeta=\pgfmathresult](\i,\j,\k)--+(0,0,1);
\fi
},
drawnode/.code={
\pgfmathparse{int(max(abs(\i),abs(\j),abs(\k)))}
\shade[nodemeta=\pgfmathresult](\i,\j,\k)circle(3pt);
}
}
\begin{tikzpicture}[z={(-.3,-.15)},draw=white]
\foreach\k in{-2,...,2}{
\foreach\j in{-2,...,2}{
\foreach\i in{-2,...,2}{
\path[drawedge,drawnode];
}
}
}
\end{tikzpicture}
\end{document}
I Want to Insert Text

\tikzset{
drawnode/.code={
\pgfmathparse{int(max(abs(\i),abs(\j),abs(\k)))}
\node at(\i,\j,\k)[circle,nodemeta=\pgfmathresult]{\color{black}\tikzset{textnode/\i/\j/\k/.try}};
}
}
\begin{tikzpicture}[scale=2,z={(-.28,-.15)},draw=white,textnode/1/0/-1/.code={(-2,0,-1)}]
\foreach\k in{-2,...,2}{
\foreach\j in{-2,...,2}{
\foreach\i in{-2,...,2}{
\path[drawedge,drawnode];
}
}
}