I made several updates to `3dtools`. Obviously it cannot compete with GeoSpace. But now one can determine the local coordinates of recorded physical coordinates.
```
\documentclass[tikz,border=3mm]{standalone}
\usetikzlibrary{calc,3dtools}% https://github.com/marmotghost/tikz-3dtools
\begin{document}
\begin{tikzpicture}[3d/install view={phi=120,theta=60},line cap=butt,line join=round,c/.style={circle,fill,inner sep=1pt},
declare function={a=3;}]
\path[3d/record physical components]
(a,-a,-a) coordinate (A)
(a,a,-a) coordinate (B)
(-a,a,-a) coordinate (C)
(-a,-a,-a) coordinate (D)
(a,-a,a) coordinate (E)
(a,a,a) coordinate (F)
(-a,a,a) coordinate (G)
(-a,-a,a) coordinate (H)
(0,0,0) coordinate (O);
\tikzset{3d/polyhedron/.cd,O={(O)},
back/.style={3d/polyhedron/complete dashes,fill=none},
fore/.style={3d/visible,fill=none},
%draw face with corners={{(B)},{(C)},{(G)},{(F)}},
draw face with corners={{(D)},{(C)},{(G)},{(H)}},
draw face with corners={{(E)},{(F)},{(G)},{(H)}},
draw face with corners={{(A)},{(B)},{(C)},{(D)}},
%draw face with corners={{(A)},{(B)},{(F)},{(E)}},
draw face with corners={{(A)},{(E)},{(H)},{(D)}}
}
\path[3d/record physical components,3d/circumcircle center={A={(A)},B={(C)},C={(F)}}]
coordinate (I);
\pgfmathsetmacro{\R}{sqrt(TD("(I)-(A)o(I)-(A)"))}
\pgfmathsetmacro{\h}{sqrt(TD("(I)-(H)o(I)-(H)"))}
\tikzset{3d/define orthonormal dreibein={A={(A)},B={(C)},C={(F)}}}
\begin{scope}[x={(ex)},y={(ey)},z={(ez)},3d/record physical components]
\path[3d/cone/inner/.style={save named path=base,draw=none},
3d/cone/outer/.style={draw=none}]
(I) pic{3d/cone={r=\R,h=-\h}};
\pgfmathsetmacro{\myey}{TDunit("(0,0,1)x(nscreenx,nscreeny,nscreenz)")}%
\pgfmathsetmacro{\sdtip}{screendepth(0,0,\h)}
\pgfmathsetmacro{\aspectangle}{atan2(\sdtip,sqrt(\h*\h-\sdtip*\sdtip))}
\pgfmathsetmacro{\alphacrit}{acos(tan(\aspectangle)*\R/\h)}
\path (0,0,{tan(\aspectangle)}) coordinate (-tmpex)
(\myey) coordinate (-tmpey);
\pgfmathsetmacro{\mya}{-1*cos(\alphacrit)*\R}
\pgfmathsetmacro{\myb}{sin(\alphacrit)*\R}
\pgfmathsetmacro{\Ix}{TD("(I)o(ex)")}
\pgfmathsetmacro{\Iy}{TD("(I)o(ey)")}
\pgfmathsetmacro{\Iz}{TD("(I)o(ez)")}
\pgfmathsetmacro{\myP}{TD("{(\Ix,\Iy,\Iz)+\mya*(-tmpex)+\myb*(-tmpey)}")}
\path (\myP) coordinate (P_1);
\pgfmathsetmacro{\myP}{TD("{(\Ix,\Iy,\Iz)+\mya*(-tmpex)-\myb*(-tmpey)}")}
\path (\myP) coordinate (P_2);
\end{scope}
\pgfmathsetmacro{\Plocal}{TDlocal("P_1")}
\path (\Plocal) coordinate (P_1');
\pgfmathsetmacro{\Plocal}{TDlocal("P_2")}
\path (\Plocal) coordinate (P_2');
\path[save named path=pABCD] (A) -- (B) -- (C) -- (D);
\foreach \X/\Y in {A/E,C/G,A/B,B/F,F/E,F/G,B/C}
{\path[save named path=l\X\Y] (\X) -- (\Y);}
\tikzset{3d/ordered paths/pABCD/.style={draw=none},
3d/draw ordered paths={lAE,lCG,base,pABCD,lAB,lBF,lFE,lFG,lBC}}
\tikzset{3d/.cd,line through={(P_1') and (H) named lHP1},
line through={(P_2') and (H) named lHP2},
plane through={(A) and (B) and (E) named pABF},
plane through={(B) and (C) and (F) named pBCF}}
\path[3d/intersection of={lHP1 with pABF}] coordinate (P_1'');
\path[3d/intersection of={lHP2 with pBCF}] coordinate (P_2'');
\path[3d/hidden] (P_1'') edge (H) (P_2'') edge (H);
\path[3d/visible] (P_1'') edge (P_1') (P_2'') edge (P_2');
\draw [3d/hidden] (H) -- (I);
\path foreach \p/\g in {A/-90,B/90,C/0,D/0,E/0,F/0,G/0,H/0,I/0,%
P_1'/-90,P_2'/-90,P_1''/-90,P_2''/-90}{
(\p)node[c]{}+(\g:2.5mm) node{$\p$}};
\end{tikzpicture}
\end{document}
```