% The following answers were used to create this image:
% - http://tex.stackexchange.com/a/45824/5645 - Grid
% - http://tex.stackexchange.com/a/373/5645 - Torus
\begin{tikzpicture}
\tikzstyle{point}=[circle,thick,draw=black,fill=black,inner sep=0pt,minimum width=4pt,minimum height=4pt]
\newcommand*{\xMin}{0}%
\newcommand*{\xMax}{6}%
\newcommand*{\yMin}{0}%
\newcommand*{\yMax}{6}%

\draw (-3.5,0) .. controls (-3.5,2) and (-1.5,2.5) .. (0,2.5);
\draw[xscale=-1] (-3.5,0) .. controls (-3.5,2) and (-1.5,2.5) .. (0,2.5);
\draw[rotate=180] (-3.5,0) .. controls (-3.5,2) and (-1.5,2.5) .. (0,2.5);
\draw[yscale=-1] (-3.5,0) .. controls (-3.5,2) and (-1.5,2.5) .. (0,2.5);

\draw (-2,.2) .. controls (-1.5,-0.3) and (-1,-0.5) .. (0,-.5) .. controls (1,-0.5) and (1.5,-0.3) .. (2,0.2);

\draw (-1.75,0) .. controls (-1.5,0.3) and (-1,0.5) .. (0,.5) .. controls (1,0.5) and (1.5,0.3) .. (1.75,0);

\begin{scope}[shift={(5,-3)}]
    \foreach \i in {\xMin,...,\xMax} {
        \draw [very thin,gray] (\i,\yMin) -- (\i,\yMax)  node [below] at (\i,\yMin) {$\i$};
    }
    \foreach \i in {\yMin,...,\yMax} {
        \draw [very thin,gray] (\xMin,\i) -- (\xMax,\i) node [left] at (\xMin,\i) {$\i$};
    }

    \node (P)[point,red] at (1.2,2.2) {};
    \node (Q)[point,red] at (1.2,1.6) {};
    \draw[ultra thick, red] (P) -- (Q);

    \begin{scope}[shift={(2,1)}]
        \node (P)[point,red] at (1.2,2.2) {};
        \node (Q)[point,red] at (1.2,1.6) {};
        \draw[ultra thick, red] (P) -- (Q);
    \end{scope}
    \draw (-1, -0.5) node[below] {$T \xrightarrow{\text{Liften}} \mathbb{R}^2 / \mathbb{Z}^2$};
    \draw[red,dashed] (-5,1.5) ellipse (0.5cm and 1cm);

    \draw[red] (-5,2.5) arc (-270:-90:0.5 and 1) ;
\end{scope}
\end{tikzpicture}
