$\textsf{Select one}$

\text{Drag the points on the edges of the pyramid. \
Drag the figure to rotate it.}

vSli = -3 (slider from -3 to 4)
pPar1: y = vSli
pPar2: x = vSli
hSli = 0 (slider from 0 to z(V))
pBase: z = hSli
ddMenu: {"$\text{Parallel to the base }$", "$\text{Orthogonal to the base's sides }$", "$\text{Explore! }$"}
is = SelectedIndex(ddMenu)
V: (0, 0, 5)
A: (0, 0, 0)
B: (4, 0, 0)
D = Point(yAxis)
C: (x(B), y(D), 0)
K = Midpoint(A, C)
K': (x(K), y(K), z(V))
base, a_1, b, c, d = Polygon(A, B, C, D)
pir, faceABK', faceBCK', faceCDK', faceADK', edgeAK', edgeBK', edgeCK', edgeDK' = Pyramid(base, K')
a, F, G, H, faceABFE, faceBCGF, faceCDHG, faceADHE, faceEFGH, edgeAE, edgeBF, edgeCG, edgeDH, edgeEF, edgeFG, edgeGH, edgeEH = Prism(Polygon[A, B, C, D], V)
P3 = Point(pir)
P2 = Point(pir)
P1 = Point(pir)
pFree = Plane(P2, P1, P3)
speed: 1
ASZ = Corner(5)
tabOrder: {ddMenu, hSli, vSli, textOnboard, P1, P2, P3}
cut = If(is ≟ 1, IntersectPath[pBase, pir], is ≟ 2 ∧ -3 ≤ vSli < 0, IntersectPath[pPar1, pir], is ≟ 2 ∧ 0 ≤ vSli ≤ 4, IntersectPath[pPar2, pir], is ≟ 3, IntersectPath[pFree, pir])
allVert: {Vertex[IntersectPath[pFree, pir]]}