Anonymous 1123
I am trying to draw this figure
![ScreenHunter 23.png](/image?hash=43e23d0f8bab25f3846d3951cafcc31358c59598d6e13f0684fae72323cbc8a3)

With 3dtools, I tried

\documentclass[tikz,border=3mm]{standalone}
\usetikzlibrary{calc,3dtools}%https://github.com/marmotghost/tikz-3dtools
\begin{document}
\begin{tikzpicture}[3d/install view=%
{phi=110,psi=180,theta=60}]
\pic{3d/frustum={R=5,r=3,h=3}};
\end{tikzpicture}
\end{document}

I got
![ScreenHunter 24.png](/image?hash=95049d1de5bd1a0a576b87cfea835de50d8b07837e51a978c691c9f5d2407bb8)

How to draw a  semisphere on larger circle?
user 3.14159
The upper circle can be drawn with the circle on sphere pic. We can add the frustum, but need to make sure that the upper circle does not get overwritten. This can be accomplished with a clip.

\documentclass[tikz,border=3mm]{standalone}
\usetikzlibrary{calc,decorations.pathreplacing,3dtools}%https://github.com/marmotghost/tikz-3dtools
\begin{document}

\begin{tikzpicture}[3d/install view=%
{phi=110,psi=180,theta=60},
declare function={R=5;r=3;h=3;}]
\path[3d/visible/.append style={postaction={store path=fc}}]
pic{3d/circle on sphere={R=R,P={(0,0,0)},n={(0,0,1)}}};
\path [stored path/first coordinate of=fc] coordinate (fc1)
[stored path/last coordinate of=fc] coordinate (fc2);
\begin{scope}
\path[opacity=0] pic{3d/frustum={R=R,r=r,h=h}};
\clip (fc1) -- (fc2) -- (fc2-|current bounding box.east)
-- (current bounding box.south east)
-- (current bounding box.south west)
-- (fc1-|current bounding box.west) -- cycle;
\path pic{3d/frustum={R=R,r=r,h=h}};
\end{scope}
\draw[3d/screen coords] (fc1) arc[start angle=180,end angle=0,radius=R];
\end{tikzpicture}
\end{document}

![Screen Shot 2021-03-05 at 11.27.09 PM.png](/image?hash=2ff7d3a1ad01049931c80aef6b50ddc9d649d1e29e31fdec268c8194b1197cc1)

Enter question or answer id or url (and optionally further answer ids/urls from the same question) from

Separate each id/url with a space. No need to list your own answers; they will be imported automatically.