\begin{figure}[tbp]
\centering

\begin{minipage}[t]{0.37\linewidth}
\centering
\begin{tikzpicture}[scale=1.18, >=Latex, line join=round, line cap=round]
\path[use as bounding box] (-1.55,-1.45) rectangle (1.55,1.45);
\draw[step=0.40, very thin, gray!35] (-1.2,-1.2) grid (1.2,1.2);
\draw[thick] (-1.2,-1.2) rectangle (1.2,1.2);
\draw[black, line width=0.65pt] (-1.00,-0.80) -- (-0.40,-0.20) -- (0.00,0.35) -- (0.55,0.75) -- (1.00,0.45);
\draw[black!70, densely dashed, line width=0.55pt] (0.20,-1.00) -- (0.20,1.00);
\node[anchor=south] at (0,1.27) {parameter space};
\node[anchor=north] at (0,-1.30) {$(-1.2,-1.2)$ to $(1.2,1.2)$};
\end{tikzpicture}

\small\textbf{Parameter domain.}
The highlighted segments are straight in the $(u,v)$ square, where they are easy
to specify and easy to reason about.
\end{minipage}\hfill
\begin{minipage}[t]{0.59\linewidth}
\centering
\begin{tikzpicture}[scale=0.80, line join=round, line cap=round]
\path[use as bounding box] (-2.40,-1.80) rectangle (2.40,2.00);

\appendlight[
  v = return Vector:new{0.38, -0.15, 1, 1}
]
\setobject[
  name = patchframe,
  object = {return Matrix.axis_angle(Vector:new{1, 0, 0, 1}, 0.92)
    :multiply(Matrix.axis_angle(Vector:new{0, 0, 1, 1}, 0.42))
    :multiply(Matrix.perspective(Vector:new{0, 0, 0.10, 1}))}
]
\appendsurface[
  uparams = return Vector:new{-1.2, 1.2, 24},
  vparams = return Vector:new{-1.2, 1.2, 18},
  v = return Vector:new{u, v, 0.22*(u*u - v*v) + 0.18*math.sin(1.4*u)*math.cos(1.1*v), 1},
  transformation = return patchframe,
  fill options = {fill=cyan!55!ltdtbrightness, draw=cyan!20!black, line width=0.08pt},
  curve = return {
    {start = Vector:new{-1.0, -0.8, 1}, stop = Vector:new{-0.4, -0.2, 1}, drawoptions = "draw=black, line width=0.55pt"},
    {start = Vector:new{-0.4, -0.2, 1}, stop = Vector:new{0.0, 0.35, 1}, drawoptions = "draw=black, line width=0.55pt"},
    {start = Vector:new{0.0, 0.35, 1}, stop = Vector:new{0.55, 0.75, 1}, drawoptions = "draw=black, line width=0.55pt"},
    {start = Vector:new{0.55, 0.75, 1}, stop = Vector:new{1.0, 0.45, 1}, drawoptions = "draw=black, line width=0.55pt"},
    {start = Vector:new{0.2, -1.0, 1}, stop = Vector:new{0.2, 1.0, 1}, drawoptions = "draw=black!70, densely dashed, line width=0.5pt"}
  }
]
\displaysimplices
\end{tikzpicture}

\small\textbf{Embedded on the surface.}
The same parameter-space segments are clipped against the surface triangles and
carried barycentrically, so they remain attached even if the surface is later
partitioned for visibility.
\end{minipage}

\caption{Embedded parameter-space curves. The left panel shows the curves where
they are authored; the right panel shows the same segments after the surface map,
the projection, and any later triangle partitioning.}
\end{figure}