¿Cómo dibujar el código Gray de 3 cubos?

¿Cómo dibujar el código Gray de 3 cubos?

Si los códigos grises reflejados se generan de forma inductiva, entonces se pueden usar dos copias de 2 cubos para generar un 3 cubos. Esto es lo que intento ilustrar. Así que dibujé dos copias de 2 cubos, pero cuando las conecto con una línea recta, obtengo una imagen bastante pobre. Adjunto la imagen y el código de látex que estoy usando.

 \documentclass{article}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}[scale=3]
 \node (a) at (0,0,0) {$0000$};

 \node (b) at (1,0,0) {$0001$};
 \node (c) at (1,1,0) {$0101$};
 \node (d) at (0,1,0) {$0100$};

 \node (e) at (0,0,1) {$0010$};
 \node (f) at (1,0,1) {$0011$};
 \node (g) at (1,1,1) {$0111$};
 \node (h) at (0,1,1) {$0110$};
 ----------
 \node (a1) at (4,4,3) {$1000$};

 \node (b1) at (5,4,3) {$1001$};
 \node (c1) at (5,5,3) {$1101$};
 \node (d1) at (4,5,3) {$1100$};

 \node (e1) at (4,4,4) {$1010$};
 \node (f1) at (5,4,4) {$1011$};
 \node (g1) at (5,5,4) {$1111$};
 \node (h1) at (4,5,4) {$1110$};


 \draw (a) -- (b) -- (c) -- (d) -- (a);
 \draw (e) -- (f) -- (g) -- (h) -- (e);
 \draw(a) -- (e);
 \draw (d) -- (h);
 \draw (b) -- (f);
 \draw (c) -- (g);

  \draw (a1) -- (b1) -- (c1) -- (d1) -- (a1);
 \draw (e1) -- (f1) -- (g1) -- (h1) -- (e1);
 \draw(a1) -- (e1);
 \draw (d1) -- (h1);
 \draw (b1) -- (f1);
 \draw (c1) -- (g1);

 \draw (a) -- (a1);
 \draw (b) -- (b1);
 \draw (c) -- (c1);
 \draw (d) -- (d1);
 \draw (e) -- (e1);
 \draw (f) -- (f1);
 \draw (g) -- (g1);
 \draw (h) -- (h1);



 \end{tikzpicture}
 \end{document}

Imagen: ingrese la descripción de la imagen aquí

Las conexiones entre varios nodos no están claras en esta imagen. ¿Qué puedo hacer para mejorar esta ilustración?

información relacionada