Никак не получается выгуглить, как генерировать VRML-сцену и открывать её не в новом окне, а в текущем. Для начала набросал это:
<html><head><title>vrml</title><script>
var
scene =
"data:x-world/x-vrml;base64,#VRML V2.0 utf8\n\
PROTO Planet [ field SFColor color .9 .8 .5 field SFFloat radius 1 field SFFloat mass 1 ] {\n\
Transform {\n\
children Shape { appearance Appearance { material Material { diffuseColor IS color } } geometry Sphere { radius IS radius } } }\n\
}\n\
DEF Planet_0 Transform { field SFFloat gravity 10 field SFFloat mass 10000 translation 0 0 0 rotation 0 0 0 1 children Planet { } }\n\
DEF Planet_1 Transform { field SFFloat gravity -.3 field SFFloat mass 90 translation 3 0 2 rotation 0 0 0 .3 children Planet { color .9 .7 .3 radius .3 } }\n\
DEF Planet_2 Transform { field SFFloat gravity -.4 field SFFloat mass 100 translation 1 2 4 rotation 0 0 0 .4 children Planet { color .4 .7 .9 radius .4 } }\n\
";
window.onload = function() {
window.status = "123_ " + document.getElementById("vrm").Scene;
document.getElementById("vrm").Scene = scene;
}
</script></head>
<body>
<object id="vrm" width="100%" height="100%" border="1" type="application/x-oleobject" classid="CLSID:86A88967-7A20-11D2-8EDA-00600818EDB1">
<param name="ConsoleMode" value="1">
<param name="ContextMenu" value="True">
<param name="CpuLoading" value="80">
<param name="LoadDroppedScene" value="False">
<param name="NavigationBar" value="0">
<param name="RendererHints" value="5152">
<param name="RendererName" value="DirectX Renderer">
<param name="RendererOptimization" value="0">
<param name="ShowLogo" value="False">
<param name="ShowFPS" value="False">
<param name="Skin" value="{9A2D024E-9238-4598-8E49-8BB337ED1FFF};./viewx4.zip#Version=1.0.0.17">
<param name="ShowLogo" value="False">
<param name="TravelSpeed" value="2">
<param name="viewpoint_transition_mode" value="0">
<param name="WaitForAllResources" value="True">
<param name="BackColor" value="&hC08080">
</object>
</body>