\documentclass[tikz]{standalone}

\renewcommand{\familydefault}{\sfdefault}
\usepackage{sansmath} 
\sansmath

\usepackage{tikz}   %TikZ is required for this to work.  Make sure this exists before the next line

\usepackage{tikz-3dplot} %requires 3dplot.sty to be in same directory, or in your LaTeX installation
\usetikzlibrary{calc}

\begin{document}

\definecolor{c0}{RGB}{228,26,28}
\definecolor{c1}{RGB}{55,126,184}

\begin{tikzpicture}[scale=0.7,
  n/.style={circle,draw=black,outer sep=0pt,inner sep=0pt, minimum size=6pt},
  nc0/.style={n,fill=c0},
  nc1/.style={n,fill=c1},
  n2c0/.style={nc0,minimum size=3pt},
  n2c1/.style={nc1,minimum size=3pt},
  e/.style={}] 
  \begin{scope}[local bounding box=outer box]

    \coordinate (t1) at (2,-3); 
    \coordinate (t2) at (4,-6); 

    %Network t=0
    \node[n2c0] (a0) at (-0,0) {};
    \node[n2c0] (b0) at (-1,0) {};
    \node[n2c0] (c0) at (-0,1) {};
    \node[n2c0] (d0) at (-1,1) {};
    \node[n2c1] (e0) at (-2,1) {};
    \node[n2c1] (f0) at (-1,2) {};
    \node[n2c1] (g0) at (-2,2) {};
    %\draw[-] (d0) -- (b0) -- (a0) -- (c0) -- (d0) -- 
    %         (e0) -- (g0) -- (f0) -- (d0);

    %Network t=1
    \node[n2c0] (a1) at ($(t1) + (-0,0)$) {};
    \node[n2c0] (b1) at ($(t1) + (-1,0)$) {};
    \node[n2c0] (c1) at ($(t1) + (-0,1)$) {};
    \node[n2c0] (d1) at ($(t1) + (-1,1)$) {};
    \node[n2c0] (e1) at ($(t1) + (-2,1)$) {};
    \node[n2c1] (f1) at ($(t1) + (-1,2)$) {};
    \node[n2c1] (g1) at ($(t1) + (-2,2)$) {};
    %\draw[-] (d1) -- (b1) -- (a1) -- (c1) -- (d1) -- 
    %         (e1) -- (g1) -- (f1) -- (d1) (b1) -- (e1);

    %Network t=2
    \node[n2c0] (a2) at ($(t2) + (-0,0)$) {};
    \node[n2c0] (b2) at ($(t2) + (-1,0)$) {};
    \node[n2c0] (c2) at ($(t2) + (-0,1)$) {};
    \node[n2c1] (d2) at ($(t2) + (-1,1)$) {};
    \node[n2c1] (e2) at ($(t2) + (-2,1)$) {};
    \node[n2c1] (f2) at ($(t2) + (-1,2)$) {};
    %\node[nc0] (g2) at (2,4,2) {g};
    %\draw[-] (d2) -- (b2) -- (a2) -- (c2) -- (d2) -- (e2)
    %         (f2) -- (d2);

    %interslice edge 0 - 1
    \draw[-,dashed] (a0) to[bend left =60] (a1)
                             (b0) to[bend right=45] (b1)
                             (c0) to[bend left =45] (c1)
                             (d0) .. controls ($(t1) + (-2.5,1.5)$) .. (d1)
                             (e0) to[bend right=45] (e1)
                             (f0) to[bend left =45] (f1)
                             (g0) to[bend right=60] (g1);

    %interslice edge 1 - 2
    \draw[-,dashed] (a1) to[bend left =60] (a2)
                             (b1) to[bend right=45] (b2)
                             (c1) to[bend left =45] (c2)
                             (d1) to[bend right=20] (d2)
                             (e1) to[bend right=45] (e2)
                             (f1) to[bend left =60] (f2);


    %\draw[thick,->] (0,0,0) -- (1,0,0) node[anchor=north east]{$x$}; 
    %\draw[thick,->] (0,0,0) -- (0,1,0) node[anchor=north west]{$y$}; 
    %\draw[thick,->] (0,0,0) -- (0,0,1) node[anchor=south]{$z$}; 

    \draw ($(outer box.north east)+(0,7pt)$) rectangle ($(outer box.south west)+(0,-5pt)$);
    \node[anchor=south] at (outer box.north) {Layer 0 (Interslice)};
  \end{scope}
  \begin{scope}[xshift=9cm,local bounding box=outer box]
    \coordinate (t1) at (2,-3); 
    \coordinate (t2) at (4,-6); 

    %Network t=0
    \node[nc0] (a0) at (-0,0) {};
    \node[nc0] (b0) at (-1,0) {};
    \node[nc0] (c0) at (-0,1) {};
    \node[nc0] (d0) at (-1,1) {};
    \node[nc1] (e0) at (-2,1) {};
    \node[nc1] (f0) at (-1,2) {};
    \node[nc1] (g0) at (-2,2) {};
    \draw[-] (d0) -- (b0) -- (a0) -- (c0) -- (d0) -- 
             (e0) -- (g0) -- (f0) -- (d0);

    %Network t=1
    \node[n2c0] (a1) at ($(t1) + (-0,0)$) {};
    \node[n2c0] (b1) at ($(t1) + (-1,0)$) {};
    \node[n2c0] (c1) at ($(t1) + (-0,1)$) {};
    \node[n2c0] (d1) at ($(t1) + (-1,1)$) {};
    \node[n2c0] (e1) at ($(t1) + (-2,1)$) {};
    \node[n2c1] (f1) at ($(t1) + (-1,2)$) {};
    \node[n2c1] (g1) at ($(t1) + (-2,2)$) {};
    %\draw[-] (d1) -- (b1) -- (a1) -- (c1) -- (d1) -- 
    %         (e1) -- (g1) -- (f1) -- (d1) (b1) -- (e1);

    %Network t=2
    \node[n2c0] (a2) at ($(t2) + (-0,0)$) {};
    \node[n2c0] (b2) at ($(t2) + (-1,0)$) {};
    \node[n2c0] (c2) at ($(t2) + (-0,1)$) {};
    \node[n2c1] (d2) at ($(t2) + (-1,1)$) {};
    \node[n2c1] (e2) at ($(t2) + (-2,1)$) {};
    \node[n2c1] (f2) at ($(t2) + (-1,2)$) {};
    %\node[nc0] (g2) at (2,4,2) {g};
    %\draw[-] (d2) -- (b2) -- (a2) -- (c2) -- (d2) -- (e2)
    %         (f2) -- (d2);

    %%interslice edge 0 - 1
    \draw[-,red,opacity=0] (a0) to[bend left =60] (a1)
                           (b0) to[bend right=45] (b1)
                           (c0) to[bend left =45] (c1)
                           (d0) .. controls ($(t1) + (-2.5,1.5)$) .. (d1)
                           (e0) to[bend right=45] (e1)
                           (f0) to[bend left =45] (f1)
                           (g0) to[bend right=60] (g1);

    %%interslice edge 1 - 2
    \draw[-,red,opacity=0] (a1) to[bend left =60] (a2)
                           (b1) to[bend right=45] (b2)
                           (c1) to[bend left =45] (c2)
                           (d1) to[bend right=20] (d2)
                           (e1) to[bend right=45] (e2)
                           (f1) to[bend left =60] (f2);


    %\draw[thick,->] (0,0,0) -- (1,0,0) node[anchor=north east]{$x$}; 
    %\draw[thick,->] (0,0,0) -- (0,1,0) node[anchor=north west]{$y$}; 
    %\draw[thick,->] (0,0,0) -- (0,0,1) node[anchor=south]{$z$}; 
    \draw ($(outer box.north east)+(0,7pt)$) rectangle ($(outer box.south west)+(0,-5pt)$);
    \node[anchor=south] at (outer box.north) {Layer 1 ($t = 1$)};
  \end{scope}
  \begin{scope}[yshift=-10cm,local bounding box=outer box]
    \coordinate (t1) at (2,-3); 
    \coordinate (t2) at (4,-6); 

    %Network t=0
    \node[n2c0] (a0) at (-0,0) {};
    \node[n2c0] (b0) at (-1,0) {};
    \node[n2c0] (c0) at (-0,1) {};
    \node[n2c0] (d0) at (-1,1) {};
    \node[n2c1] (e0) at (-2,1) {};
    \node[n2c1] (f0) at (-1,2) {};
    \node[n2c1] (g0) at (-2,2) {};
    %\draw[-] (d0) -- (b0) -- (a0) -- (c0) -- (d0) -- 
    %         (e0) -- (g0) -- (f0) -- (d0);

    %Network t=1
    \node[nc0] (a1) at ($(t1) + (-0,0)$) {};
    \node[nc0] (b1) at ($(t1) + (-1,0)$) {};
    \node[nc0] (c1) at ($(t1) + (-0,1)$) {};
    \node[nc0] (d1) at ($(t1) + (-1,1)$) {};
    \node[nc0] (e1) at ($(t1) + (-2,1)$) {};
    \node[nc1] (f1) at ($(t1) + (-1,2)$) {};
    \node[nc1] (g1) at ($(t1) + (-2,2)$) {};
    \draw[-] (d1) -- (b1) -- (a1) -- (c1) -- (d1) -- 
             (e1) -- (g1) -- (f1) -- (d1) (b1) -- (e1);

    %Network t=2
    \node[n2c0] (a2) at ($(t2) + (-0,0)$) {};
    \node[n2c0] (b2) at ($(t2) + (-1,0)$) {};
    \node[n2c0] (c2) at ($(t2) + (-0,1)$) {};
    \node[n2c1] (d2) at ($(t2) + (-1,1)$) {};
    \node[n2c1] (e2) at ($(t2) + (-2,1)$) {};
    \node[n2c1] (f2) at ($(t2) + (-1,2)$) {};
    %\node[nc0] (g2) at (2,4,2) {g};
    %\draw[-] (d2) -- (b2) -- (a2) -- (c2) -- (d2) -- (e2)
    %         (f2) -- (d2);

    %interslice edge 0 - 1
    \draw[-,red,opacity=0] (a0) to[bend left =60] (a1)
                           (b0) to[bend right=45] (b1)
                           (c0) to[bend left =45] (c1)
                           (d0) .. controls ($(t1) + (-2.5,1.5)$) .. (d1)
                           (e0) to[bend right=45] (e1)
                           (f0) to[bend left =45] (f1)
                           (g0) to[bend right=60] (g1);

    %interslice edge 1 - 2
    \draw[-,red,opacity=0] (a1) to[bend left =60] (a2)
                           (b1) to[bend right=45] (b2)
                           (c1) to[bend left =45] (c2)
                           (d1) to[bend right=20] (d2)
                           (e1) to[bend right=45] (e2)
                           (f1) to[bend left =60] (f2);


    %\draw[thick,->] (0,0,0) -- (1,0,0) node[anchor=north east]{$x$}; 
    %\draw[thick,->] (0,0,0) -- (0,1,0) node[anchor=north west]{$y$}; 
    %\draw[thick,->] (0,0,0) -- (0,0,1) node[anchor=south]{$z$}; 
    \draw ($(outer box.north east)+(0,7pt)$) rectangle ($(outer box.south west)+(0,-5pt)$);
    \node[anchor=south] at (outer box.north) {Layer 2 ($t = 2$)};
  \end{scope}
  \begin{scope}[xshift=9cm,yshift=-10cm,local bounding box=outer box]

    \coordinate (t1) at (2,-3); 
    \coordinate (t2) at (4,-6); 

    %Network t=0
    \node[n2c0] (a0) at (-0,0) {};
    \node[n2c0] (b0) at (-1,0) {};
    \node[n2c0] (c0) at (-0,1) {};
    \node[n2c0] (d0) at (-1,1) {};
    \node[n2c1] (e0) at (-2,1) {};
    \node[n2c1] (f0) at (-1,2) {};
    \node[n2c1] (g0) at (-2,2) {};
    %\draw[-] (d0) -- (b0) -- (a0) -- (c0) -- (d0) -- 
    %         (e0) -- (g0) -- (f0) -- (d0);

    %Network t=1
    \node[n2c0] (a1) at ($(t1) + (-0,0)$) {};
    \node[n2c0] (b1) at ($(t1) + (-1,0)$) {};
    \node[n2c0] (c1) at ($(t1) + (-0,1)$) {};
    \node[n2c0] (d1) at ($(t1) + (-1,1)$) {};
    \node[n2c0] (e1) at ($(t1) + (-2,1)$) {};
    \node[n2c1] (f1) at ($(t1) + (-1,2)$) {};
    \node[n2c1] (g1) at ($(t1) + (-2,2)$) {};
    %\draw[-] (d1) -- (b1) -- (a1) -- (c1) -- (d1) -- 
    %         (e1) -- (g1) -- (f1) -- (d1) (b1) -- (e1);

    %Network t=2
    \node[nc0] (a2) at ($(t2) + (-0,0)$) {};
    \node[nc0] (b2) at ($(t2) + (-1,0)$) {};
    \node[nc0] (c2) at ($(t2) + (-0,1)$) {};
    \node[nc1] (d2) at ($(t2) + (-1,1)$) {};
    \node[nc1] (e2) at ($(t2) + (-2,1)$) {};
    \node[nc1] (f2) at ($(t2) + (-1,2)$) {};
    %\node[nc0] (g2) at (2,4,2) {g};
    \draw[-] (d2) -- (b2) -- (a2) -- (c2) -- (d2) -- (e2)
             (f2) -- (d2);

    %interslice edge 0 - 1
    \draw[-,red,opacity=0] (a0) to[bend left =60] (a1)
                           (b0) to[bend right=45] (b1)
                           (c0) to[bend left =45] (c1)
                           (d0) .. controls ($(t1) + (-2.5,1.5)$) .. (d1)
                           (e0) to[bend right=45] (e1)
                           (f0) to[bend left =45] (f1)
                           (g0) to[bend right=60] (g1);

    %interslice edge 1 - 2
    \draw[-,red,opacity=0] (a1) to[bend left =60] (a2)
                           (b1) to[bend right=45] (b2)
                           (c1) to[bend left =45] (c2)
                           (d1) to[bend right=20] (d2)
                           (e1) to[bend right=45] (e2)
                           (f1) to[bend left =60] (f2);


    %\draw[thick,->] (0,0,0) -- (1,0,0) node[anchor=north east]{$x$}; 
    %\draw[thick,->] (0,0,0) -- (0,1,0) node[anchor=north west]{$y$}; 
    %\draw[thick,->] (0,0,0) -- (0,0,1) node[anchor=south]{$z$}; 
    \draw ($(outer box.north east)+(0,7pt)$) rectangle ($(outer box.south west)+(0,-5pt)$);
    \node[anchor=south] at (outer box.north) {Layer 3 ($t = 3$)};
  \end{scope}

\end{tikzpicture} 

\end{document}
