Manipulate[
With[{Models = {{
Graphics3D[{Blue, Sphere[{0.5*Cos[0], 0.5*Sin[0], 0}, 0.2]},
Boxed -> False],
SphericalPlot3D[
1 + 2 Cos[2 \[Theta]]θ], {\[Theta]θ, 0, \[Pi]π}, {\[Phi]ϕ, 0,
2 \[Pi]π}, PlotStyle -> Blue, Mesh -> None, Boxed -> False,
Axes -> False]
},
{
Graphics3D[{Red, Sphere[{1*Cos[0], 1*Sin[0], 0}, 0.2]},
Boxed -> False],
SphericalPlot3D[
Evaluate@
Abs@SphericalHarmonicY[3, 1, \[Theta]θ, \[Phi]]ϕ], {\[Theta]θ,
0, \[Pi]π}, {\[Phi]ϕ, 0, 2 \[Pi]π}, PlotStyle -> Red,
Mesh -> None, Boxed -> False, Axes -> False]
},
{
Graphics3D[{Green, Sphere[{1.5*Cos[0], 1.5*Sin[0], 0}, 0.2]},
Boxed -> False],
ParametricPlot3D[{Cos[
u] (3 + Cos[u/2] Sin[v] - Sin[u/2] Sin[2 v]),
Sin[u] (3 + Cos[u/2] Sin[v] - Sin[u/2] Sin[2 v]),
Sin[u/2] Sin[v] + Cos[u/2] Sin[2 v]}, {u, 0, 2 Pi}, {v, 0,
2 Pi}, PlotStyle -> FaceForm[Green, Green], Mesh -> None,
Boxed -> False, Axes -> False]
},
{
Graphics3D[{Orange, Sphere[{2*Cos[0], 2*Sin[0], 0}, 0.2]},
Boxed -> False],
RevolutionPlot3D[{2 + Cos[t], Sin[t]}, {t, 0, 2 Pi},
PlotStyle -> Orange, Mesh -> None, Boxed -> False,
Axes -> False]
}}},
Column[{
Graphics3D[{
If[FreeQ[u, #[[2]]],
Button[#[[1]], AppendTo[u, #[[2]]]],
Button[#[[1]], u = DeleteCases[u, #[[2]]]]] & /@
Models}, ImageSize -> 300, Boxed -> False],
Row[{Pane[Graphics3D[{#}, Boxed -> False], {300, 300},
Alignment -> {Center, Center}]}] &[Union@u]}]], {{u, {}},
ControlType -> None}, SaveDefinitions -> True]