I am trying to draw what you see in the figure, a smooth surface with another embedded surface that has sharp corners. I'm using the hobby package and this is what I have so far. The problem is that as you can see, the inner surface is not really fitting properly within the outer surface (see top and bottom in the figure) and I have already spent way too much time fiddling with the coordinates and the controls to make me ask whether there is a better way (faster, more efficient) way to do this. This is the MWE:
\documentclass{standalone}
\usepackage{tikz}
\usepackage{xcolor}
\usetikzlibrary{calc,hobby,positioning,patterns,decorations.pathreplacing,arrows.meta} % To draw the smooth curve
\tikzset{% adapted from hobby_doc.tex
show curve controls/.style={
decoration={
show path construction,
curveto code={
\draw [blue, -{Circle[black,open]}] (\tikzinputsegmentfirst) -- (\tikzinputsegmentsupporta) ;
\draw [blue, {Circle[black,open]}-] (\tikzinputsegmentsupportb) -- (\tikzinputsegmentlast) ;
}
},decorate
},
}
\begin{document}
\begin{tikzpicture}
\begin{scope} [rotate=0,yscale=-1.5,xscale=1.5]
\coordinate (b1) at (3.5392,1.208);
\draw[use Hobby shortcut, thick, fill=gray!5] ([out angle=-90]b1)..(3.2677,0.7067)..(2.0238,0.3988)..(0.4235,1.9163)..(0.4036,2.3412)..(1.2469,3.8406)..(2.5315,3.3503)..(2.7711,2.2784)..(3.2214,1.7665)..([in angle=90]b1);
\coordinate (A) at (1.7662,0.4514);
\coordinate (B) at (1.1987,0.7091);
\coordinate (C) at (0.8485,2.1671);
\coordinate (D) at (0.8033,3.5137);
\coordinate (E) at (1.2038,3.8238);
\coordinate (F) at (1.806,3.9003);
\coordinate (G) at (2.4412,3.5143);
\coordinate (H) at (2.6084,3.1);
\coordinate (I) at (2.6327,2.4881);
\coordinate (J) at (2.6689,1.7548);
\coordinate (K) at (2.4279,1.1534);
\draw[use Hobby shortcut, thick, fill=black!25, postaction=show curve controls]
%\draw[use Hobby shortcut, thick, fill=black!25]
([out angle=157]A).. controls (1.4,0.57)..(B)..controls (1.05,1)..(C)..controls(0.7623,2.9231)..(D)..controls(0.9135,3.652)..(E)..controls(1.4995,3.94)..(F)..controls(2.2047,3.797)..(G)..controls(2.546,3.3372)..(H)..controls(2.6,2.8578)..(I)..controls(2.6931,1.9799)..(J)..controls(2.6347,1.5298)..(K)..controls(2.1187,0.7201)..([in angle=40]A);
\foreach \i in {A,B,C,D,E,F,G,H,I,J,K}
{
\draw [fill, red] (\i) circle (2.5pt);
\node[left] at (\i) {\i};
}
\end{scope}
\end{tikzpicture}
\end{document}
The code above also shows the control points. You can comment those to get the original image.

