Column[{
Style["The double cone",Bold,16],
"This shows the real points of the affine toric variety (y^2) = x z, with the torus embedding (t, s) ↦ (t, ts, ts²). The values t = 0 and s = 0 are a priori exluded, but can be reached in the variety as limit points.",
Manipulate[Module[{cone,torusAction,point},(*Define the real points of the affine cone y^2=xz*)
cone=ContourPlot3D[
(y^2)==x z,{x,-1,1},{y,-1,1},{z,-1,1},
Mesh->None,
ContourStyle->Directive[Opacity[0.5],Red],
ColorFunction->Function[{x,y,z,f},Hue[z]],
AxesLabel->{"x","y","z"}
];
(*Torus action:(t,s)->(t,ts,ts^2)*)
point={pt[[1]],pt[[1]] pt[[2]],pt[[1]] ((pt[[2]])^2)};
(*Display the cone and the moving point*)
Show[
cone,
Graphics3D[{Red,PointSize[Large],Point[point]}]]
],
{{pt,{1,1},"(t,s)"},{-1,-1},{1,1}}
]
}]

CloudDeploy[
Column[{
Style["The double cone",Bold,16],
"This shows the real points of the affine toric variety (y^2) = x z, with the torus embedding (t, s) ↦ (t, ts, ts²). The values t = 0 and s = 0 are a priori exluded, but can be reached in the variety as limit points.",
Manipulate[Module[{cone,torusAction,point},(*Define the real points of the affine cone y^2=xz*)
cone=ContourPlot3D[
(y^2)==x z,{x,-1,1},{y,-1,1},{z,-1,1},
Mesh->None,
ContourStyle->Directive[Opacity[0.5],Red],
ColorFunction->Function[{x,y,z,f},Hue[z]],
AxesLabel->{"x","y","z"}
];
(*Torus action:(t,s)->(t,ts,ts^2)*)
point={pt[[1]],pt[[1]] pt[[2]],pt[[1]] ((pt[[2]])^2)};
(*Display the cone and the moving point*)
Show[
cone,
Graphics3D[{Red,PointSize[Large],Point[point]}]]
],
{{pt,{1,1},"(t,s)"},{-1,-1},{1,1}}
]
}]
,
Permissions->"Public"]

BrickRed=RGBColor[0.8,0,0];
RoyalBlue=RGBColor[0.25,0.41,0.66];
ForestGreen=RGBColor[0.13,0.55,0.13];
BurntOrange=RGBColor[1,0.75,0];

doubleCone[col_]:=ContourPlot3D[
(y^2)==x z,{x,-1.5,1.5},{y,-1.5,1.5},{z,-1.5,1.5},
Mesh->None,ContourStyle->Directive[col,Opacity[0.8],Specularity[White,30]],AxesLabel->{"(Subscript[x, 1])","(Subscript[x, 2])","(Subscript[x, 3])"}];

Show[
doubleCone[BrickRed],
Graphics3D[{BrickRed,PointSize[Large],Point[{1,1,1}]}],
Graphics3D[{RoyalBlue,Thick,Line[{{-1.5,0,0},{1.5,0,0}}]}],
Graphics3D[{RoyalBlue,PointSize[Large],Point[{1,0,0}]}],
Graphics3D[{ForestGreen,Thick,Line[{{0,0,-1.5},{0,0,1.5}}]}],
Graphics3D[{ForestGreen,PointSize[Large],Point[{0,0,1}]}],
Graphics3D[{BurntOrange,PointSize[0.03],Point[{0,0,0}]}]
]

Show[
doubleCone[RoyalBlue]
]