\begin{tikzpicture} % Shaded areas \fill[violet, opacity=0.05] (4, 4) rectangle (8, 8) (0, 0) rectangle (4, 4) (8, 0) rectangle (12, 4); \shade[top color=violet,bottom color=white, opacity=0.05] (4, 0) rectangle (8, -1); \fill[orange, opacity=0.1] (8, 2) rectangle (10, 4) (10, 4) rectangle (12, 6) (6, 4) rectangle (8, 6) (8, 6) rectangle (10, 8); \fill[teal, opacity=0.1] (9, 1) rectangle (10, 2) (10, 2) rectangle (11, 3) (10, 0) rectangle (11, 1) (11, 1) rectangle (12, 2); % Grid \draw[line width=1pt] (0,0) grid[step=4] (12,8); \draw[dashed, line width=0.5pt] (4.001,0.0001) grid[step=2] (8.999,7.999); \draw[line width=1pt] (8.001,0.001) grid[step=2] (9.999,7.999); \draw[dashed, line width=0.5pt] (8.001,0.001) grid[step=1] (9.999,7.999); \draw[line width=1pt] (10.001,0.001) grid[step=1] (11.999,7.999); % Arrows \draw[line width=1.5pt, violet] (4, 0) grid[step=4] (8, 4); \draw[violet, ->, line width=1.5pt] (2, 2) to[bend left=15] (5.9, 2); \draw[violet, ->, line width=1.5pt] (10, 2) to[bend right=15] (6.1, 2); \draw[violet, ->, line width=1.5pt] (6, 6) to[bend left=15] (6, 2.1); \draw[violet, ->, line width=1.5pt] (6, -1) to[bend right=15] (6, 1.9); \draw[line width=1.5pt, orange] (8, 4) grid[step=2] (10, 6); \draw[orange, ->, line width=1.5pt] (7, 5) to[bend left=15] (8.95, 5); \draw[orange, ->, line width=1.5pt] (9, 7) to[bend left=15] (9, 5.05); \draw[orange, ->, line width=1.5pt] (11, 5) to[bend right=15] (9.05, 5); \draw[orange, ->, line width=1.5pt] (9, 3) to[bend right=15] (9, 4.95); \draw[line width=1.5pt, teal] (10, 1) grid[step=1] (11, 2); \draw[teal, ->, line width=1.25pt] (9.5, 1.5) to[bend left=15] (10.45, 1.5); \draw[teal, <-, line width=1.25pt] (10.5, 1.55) to[bend right=15] (10.5, 2.5); \draw[teal, <-, line width=1.25pt] (10.55, 1.5) to[bend left=15] (11.5, 1.5); \draw[teal, <-, line width=1.25pt] (10.5, 1.45) to[bend left=15] (10.5, 0.5); % Fadings \draw[line width=1pt, path fading=south] (0, -1) grid[step=4] (12, 0); \draw[dashed, line width=0.5pt, path fading=south] (4.1, -1) grid[step=2] (7.9, 0); \draw[dashed, line width=0.5pt, path fading=south] (8.1, -0.95) grid[step=1] (9.9, 0); \draw[line width=1pt, path fading=south] (10, -0.95) grid[step=1] (11.9, 0); \draw[black, line width=1pt, path fading=east] (12, 0) grid[step=1] (12.8, 8); \draw[black, line width=1pt, path fading=north] (0, 8) grid[step=4] (12, 9); \draw[dashed, line width=0.5pt, path fading=north] (4.1, 8) grid[step=2] (7.9, 9); \draw[dashed, line width=0.5pt, path fading=north] (8.1, 8) grid[step=1] (9.9, 8.95); \draw[line width=1pt, path fading=north] (10, 8) grid[step=1] (11.9, 8.95); \draw[black, line width=1pt, path fading=west] (-1, 0) grid[step=4] (0, 8); \end{tikzpicture}