[x3d-public] Do modern browsers DO VRML??

Joseph D Williams joedwil at earthlink.net
Wed Feb 13 19:02:41 PST 2019


➢ That is a cool Kaleidoscope !

Yes, I wish I could remember where I got the basic geode thingie… 

➢ Here is a de-protoized version which is a little easier to understand
and uses a simple PixelTexture, using x3dom:

The example was used to show a proto using a proto. 
Sometimes browsers may not want to do that but often very convenient. 

➢ http://andreasplesch.github.io/Library/Viewer/flame3.xhtml

That is great and all self-contained.  Runs off this click directly.

➢ Since it is all text you can copy from here and paste it into
http://andreasplesch.github.io/Library/Viewer/ to try out X-ITE as
well:

that is just amazing. Thanks, for converting and showing.

Joe

From: Andreas Plesch
Sent: Wednesday, February 13, 2019 11:50 AM
To: X3D Graphics public mailing list
Subject: Re: [x3d-public] Do modern browsers DO VRML??

> Date: Wed, 13 Feb 2019 09:38:06 -0800
> From: Joseph D Williams <joedwil at earthlink.net>
> To: "vmarchetti at kshell.com" <vmarchetti at kshell.com>,  iam here
>         <iamhereintheworld at gmail.com>
> Cc: X3D Graphics public mailing list <x3d-public at web3d.org>
> Subject: Re: [x3d-public] Do modern browsers DO VRML??
>
> Fine coverage, Vince, and Best Luck, Iam. I think another important point is that vrml and x3d are designed to be readable. Text is the front panel. The web3D x3d api allows integration of authortime and runtime for creation and evolution and isolation from the actual user code that defines the scene, but the simulation can be completely represented in a simple text file. So, when you need to tamper with the real guts of whatever, then you may want to tamp or untamp the tamper(s) by actually tampering with the user code values directly rather than by current best available abstraction of an abstraction graphical user interface and its possibly open and possibly not openable data files you created. Find a style of reading and composing and leveraging things that you can comfortably work with. Like, word wrap off can really help sometimes.
> Attached is one I was really amazed by and learned a lot about vrml and x3d and the best vrml/x3d authoring system of the time and probably would be still, the vizx.
> Joe

> A non-text attachment was scrubbed...
> Name: flame3.zip
> Type: application/zip
> Size: 28518 bytes

That is a cool Kaleidoscope !

Here is a de-protoized version which is a little easier to understand
and uses a simple PixelTexture, using x3dom:

http://andreasplesch.github.io/Library/Viewer/flame3.xhtml

Since it is all text you can copy from here and paste it into
http://andreasplesch.github.io/Library/Viewer/ to try out X-ITE as
well:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE X3D PUBLIC "ISO//Web3D//DTD X3D 3.0//EN"
"http://www.web3d.org/specifications/x3d-3.0.dtd">
<X3D profile='Immersive' >
<head>
 <meta name='edited' content='joe 1/15/2006'/>
 <meta name='modified' content='deprotoized 2/13/19'/>

</head>
<Scene>
<WorldInfo
 title='kaleidoscope'
 info='"converted to xml 20061012 last 20100103. mostly from an old
wrl originally built by the master of this stuff"'/>

<Group DEF='3Dkscope'>
<Group>
   <Transform DEF='PartGeode_0'>
   <Group DEF='triangle'>
   <Transform DEF='LittleGeode'>
    <Shape>
     <Appearance>
      <PixelTexture DEF='PixelColors' image='2 4 3 0xff0000 0xffff00
0x007700 0xff0077 0x0000ff 0xff7700 0x00ff77 0x888888' />
      <TextureTransform DEF='TextureTransform0' center='0 1'/>
     </Appearance>
     <IndexedFaceSet solid='false' creaseAngle='0.524'
      coordIndex='
        0 1 2 -1
        0 2 3 -1'
      texCoordIndex='
        0 1 2 -1
        0 2 1 -1'>
      <Coordinate DEF='COORD0'
       point='
        0 1 0
        0 0.85065 0.52573
        0.35682 0.93417 0
        0 0.85065 -0.52573'/>
      <TextureCoordinate DEF='TEX_COORD0'
       point='
        0 0
        1 0
        0 1'/>
     </IndexedFaceSet>
    </Shape>
   </Transform>
   <Transform DEF='BigGeode' scale='100.3 100.3 100.3'>
      <Transform USE='LittleGeode' />
  </Transform>
  </Group>

 </Transform>
   <Transform DEF='PartGeode_1' rotation='0 1.618 1 1.257'>
     <Group USE='triangle'/>
   </Transform>
   <Transform DEF='PartGeode_2' rotation='0 1.618 1 -1.257'>
     <Group USE='triangle'/>
   </Transform>
   <Transform DEF='PartGeode_3' rotation='0 1.618 1 2.513'>
    <Group USE='triangle'/>
   </Transform>
   <Transform DEF='PartGeode_4' rotation='0 1.618 1 -2.513'>
    <Group USE='triangle'/>
   </Transform>
   <Transform DEF='PartGeode_5' rotation='0 1.618 -1 1.257'>
    <Group USE='triangle'/>
   </Transform>
   <Transform DEF='PartGeode_6' rotation='0 1.618 -1 -1.257'>
    <Group USE='triangle'/>
   </Transform>
   <Transform DEF='PartGeode_7' rotation='0 1.618 -1 2.513'>
    <Group USE='triangle'/>
   </Transform>
   <Transform DEF='PartGeode_8' rotation='0 1.618 -1 -2.513'>
    <Group USE='triangle'/>
   </Transform>
   <Transform DEF='PartGeode_9' rotation='1.618 1 0 1.257'>
    <Group USE='triangle'/>
   </Transform>
   <Transform DEF='PartGeode_10' rotation='1.618 1 0 -1.257'>
    <Group USE='triangle'/>
   </Transform>
   <Transform DEF='PartGeode_11' rotation='1.618 1 0 2.513'>
    <Group USE='triangle'/>
   </Transform>
   <Transform DEF='PartGeode_12' rotation='1.618 1 0 -2.513'>
    <Group USE='triangle'/>
   </Transform>
   <Transform DEF='PartGeode_13' rotation='1.618 -1 0 1.257'>
    <Group USE='triangle'/>
   </Transform>
   <Transform DEF='PartGeode_14' rotation='1.618 -1 0 -1.257'>
    <Group USE='triangle'/>
   </Transform>
   <Transform DEF='PartGeode_15' rotation='1.618 -1 0 2.513'>
    <Group USE='triangle'/>
   </Transform>
   <Transform DEF='PartGeode_16' rotation='1.618 -1 0 -2.513'>
    <Group USE='triangle'/>
   </Transform>
   <Transform DEF='PartGeode_17' rotation='1 0 1.618 1.257'>
    <Group USE='triangle'/>
   </Transform>
   <Transform DEF='PartGeode_18' rotation='1 0 1.618 -1.257'>
    <Group USE='triangle'/>
   </Transform>
   <Transform DEF='PartGeode_19' rotation='1 0 1.618 2.513'>
    <Group USE='triangle'/>
   </Transform>
   <Transform DEF='PartGeode_20' rotation='1 0 1.618 -2.513'>
    <Group USE='triangle'/>
   </Transform>
   <Transform DEF='PartGeode_21' rotation='-1 0 1.618 1.257'>
    <Group USE='triangle'/>
   </Transform>
   <Transform DEF='PartGeode_22' rotation='-1 0 1.618 -1.257'>
    <Group USE='triangle'/>
   </Transform>
   <Transform DEF='PartGeode_23' rotation='-1 0 1.618 2.513'>
    <Group USE='triangle'/>
   </Transform>
   <Transform DEF='PartGeode_24' rotation='-1 0 1.618 -2.513'>
    <Group USE='triangle'/>
   </Transform>
   <Transform DEF='PartGeode_25' rotation='.618 1.618 0 2.094'>
    <Group USE='triangle'/>
   </Transform>
   <Transform DEF='PartGeode_26' rotation='.618 1.618 0 -2.094'>
    <Group USE='triangle'/>
   </Transform>
   <Transform DEF='PartGeode_27' rotation='-.618 1.618 0 2.094'>
    <Group USE='triangle'/>
   </Transform>
   <Transform DEF='PartGeode_28' rotation='-.618 1.618 0 -2.094'>
    <Group USE='triangle'/>
   </Transform>
   <Transform DEF='PartGeode_29' rotation='1.618 0 .618 2.094'>
    <Group USE='triangle'/>
   </Transform>
   <Transform DEF='PartGeode_30' rotation='1.618 0 .618 -2.094'>
    <Group USE='triangle'/>
   </Transform>
   <Transform DEF='PartGeode_31' rotation='1.618 0 -.618 2.094'>
    <Group USE='triangle'/>
   </Transform>
   <Transform DEF='PartGeode_32' rotation='1.618 0 -.618 -2.094'>
    <Group USE='triangle'/>
   </Transform>
   <Transform DEF='PartGeode_33' rotation='0 .618 1.618 2.094'>
    <Group USE='triangle'/>
   </Transform>
   <Transform DEF='PartGeode_34' rotation='0 .618 1.618 -2.094'>
    <Group USE='triangle'/>
   </Transform>
   <Transform DEF='PartGeode_35' rotation='0 -.618 1.618 2.094'>
    <Group USE='triangle'/>
   </Transform>
   <Transform DEF='PartGeode_36' rotation='0 -.618 1.618 -2.094'>
    <Group USE='triangle'/>
   </Transform>
   <Transform DEF='PartGeode_37' rotation='1 1 1 2.094'>
    <Group USE='triangle'/>
   </Transform>
   <Transform DEF='PartGeode_38' rotation='1 1 1 -2.094'>
    <Group USE='triangle'/>
   </Transform>
   <Transform DEF='PartGeode_39' rotation='1 -1 1 2.094'>
    <Group USE='triangle'/>
   </Transform>
   <Transform DEF='PartGeode_40' rotation='1 -1 1 -2.094'>
    <Group USE='triangle'/>
   </Transform>
   <Transform DEF='PartGeode_41' rotation='-1 -1 1 2.094'>
    <Group USE='triangle'/>
   </Transform>
   <Transform DEF='PartGeode_42' rotation='-1 -1 1 -2.094'>
    <Group USE='triangle'/>
   </Transform>
   <Transform DEF='PartGeode_43' rotation='-1 1 1 2.094'>
    <Group USE='triangle'/>
   </Transform>
   <Transform DEF='PartGeode_44' rotation='-1 1 1 -2.094'>
    <Group USE='triangle'/>
   </Transform>
   <Transform DEF='PartGeode_45' rotation='1 0 0 3.142'>
    <Group USE='triangle'/>
   </Transform>
   <Transform DEF='PartGeode_46' rotation='0 1 0 3.142'>
    <Group USE='triangle'/>
   </Transform>
   <Transform DEF='PartGeode_47' rotation='0 0 1 3.142'>
    <Group USE='triangle'/>
   </Transform>
   <Transform DEF='PartGeode_48' rotation='1 1.618 2.618 3.142'>
    <Group USE='triangle'/>
   </Transform>
   <Transform DEF='PartGeode_49' rotation='-1 1.618 2.618 3.142'>
    <Group USE='triangle'/>
   </Transform>
   <Transform DEF='PartGeode_50' rotation='1 -1.618 2.618 3.142'>
    <Group USE='triangle'/>
   </Transform>
   <Transform DEF='PartGeode_51' rotation='-1 -1.618 2.618 3.142'>
    <Group USE='triangle'/>
   </Transform>
   <Transform DEF='PartGeode_52' rotation='2.618 1 1.618 3.142'>
    <Group USE='triangle'/>
   </Transform>
   <Transform DEF='PartGeode_53' rotation='2.618 -1 1.618 3.142'>
    <Group USE='triangle'/>
   </Transform>
   <Transform DEF='PartGeode_54' rotation='2.618 1 -1.618 3.142'>
    <Group USE='triangle'/>
   </Transform>
   <Transform DEF='PartGeode_55' rotation='2.618 -1 -1.618 3.142'>
    <Group USE='triangle'/>
   </Transform>
   <Transform DEF='PartGeode_56' rotation='1.618 2.618 1 3.142'>
    <Group USE='triangle'/>
   </Transform>
   <Transform DEF='PartGeode_57' rotation='1.618 2.618 -1 3.142'>
    <Group USE='triangle'/>
   </Transform>
   <Transform DEF='PartGeode_58' rotation='-1.618 2.618 1 3.142'>
    <Group USE='triangle'/>
   </Transform>
   <Transform DEF='PartGeode_59' rotation='-1.618 2.618 -1 3.142'>
    <Group USE='triangle'/>
   </Transform>
  </Group>
</Group>


  <TimeSensor DEF='TS_TextRot' cycleInterval='133.0' loop='true'/>
  <ScalarInterpolator DEF='TextRotInterp'
   key='0 0.25 0.5 0.75 1'
   keyValue='0 1.57 3.14 4.71 6.28'/>
  <ROUTE fromNode='TS_TextRot' fromField='fraction_changed'
toNode='TextRotInterp' toField='set_fraction'/>
  <ROUTE fromNode='TextRotInterp' fromField='value_changed'
toNode='TextureTransform0' toField='set_rotation'/>


 <NavigationInfo avatarSize='.25 1.6 .75' visibilityLimit='0'
  speed='1' headlight='false' type='"FLY" "ANY"'/>


 <Transform DEF='Camera_yaw'>
  <Viewpoint DEF='Camera_pitch' description='Moving Camera1'
   jump='false' fieldOfView='0.785'
   position='0 0 10' orientation='0 0 1 0'/>
 </Transform>

 <TimeSensor DEF='TS_Camera_yaw' cycleInterval='60.000' loop='true'
startTime='-1.000'/>
 <OrientationInterpolator DEF='OI_Camera_yaw'
  key=' 0 .25 .5 .75 1'
  keyValue='
  0 1 0 0
  0 1 0 1.57
  0 1 0 3.14
  0 1 0 4.71
  0 1 0 6.28'/>

 <TimeSensor DEF='TS_Camera_pos' cycleInterval='55.000' loop='true'
startTime='-1.000'/>
 <PositionInterpolator DEF='PI_Camera_pos'
  key='0 .35 .5 .65 1'
  keyValue='
  0 0 90
  0 1 45
  0 2 6
  0 1 45
  0 0 90'/>

 <TimeSensor DEF='TS_Camera_pitch' cycleInterval='125.000' loop='true'
startTime='-1.000'/>
 <OrientationInterpolator DEF='OI_Camera_pitch'
  key='0 .25 .5 .75 1'
  keyValue='
  1 0 0 0
  1 0 0 1.57
  1 0 0 3.14
  1 0 0 4.71
  1 0 0 6.28'/>

 <Viewpoint description='Close View'
  jump='true' fieldOfView='0.785' position='0 0 4' orientation='0 1 0 .525'/>
 <Viewpoint description='Close View 2'
  jump='true' fieldOfView='0.785'
  position='0 0 4' orientation='0 0 1 0'/>

<Transform DEF='Camera_yaw1'>
  <Viewpoint DEF='Camera_pitch0' description='Orbiting Camera'
   jump='false' fieldOfView='0.785' position='0 0 5' orientation='0 0 1 0'/>
 </Transform>

 <TimeSensor DEF='TS_Camera_yaw1' cycleInterval='23.000' loop='true'
startTime='-1.000'/>
 <OrientationInterpolator DEF='OI_Camera_yaw1'
  key='0 .25 .5 .75 1'
  keyValue='
  0 1 0 0
  0 1 0 1.57
  0 1 0 3.14
  0 1 0 4.71
  0 1 0 6.28'/>

 <Viewpoint description='Far View' jump='true'
  fieldOfView='0.785' position='0 0 100' orientation='0 0 1 0'/>
 <Viewpoint description='Outside View'
  jump='true' fieldOfView='0.785' position='0 0 125' orientation='0 1 0 0'/>

<TimeSensor DEF='vizx_init' cycleInterval='0.100' loop='true'/>
<ROUTE fromNode='vizx_init' fromField='cycleTime'
toNode='TS_Camera_yaw' toField='startTime'/>
<ROUTE fromNode='vizx_init' fromField='cycleTime'
toNode='TS_Camera_pos' toField='startTime'/>
<ROUTE fromNode='vizx_init' fromField='cycleTime'
toNode='TS_Camera_pitch' toField='startTime'/>
<ROUTE fromNode='vizx_init' fromField='cycleTime'
toNode='TS_Camera_yaw1' toField='startTime'/>
<ROUTE fromNode='vizx_init' fromField='cycleTime' toNode='vizx_init'
toField='stopTime'/>

<ROUTE fromNode='TS_Camera_pitch' fromField='fraction_changed'
toNode='OI_Camera_pitch' toField='set_fraction'/>
<ROUTE fromNode='OI_Camera_pitch' fromField='value_changed'
toNode='Camera_pitch' toField='set_orientation'/>
<ROUTE fromNode='TS_Camera_pos' fromField='fraction_changed'
toNode='PI_Camera_pos' toField='set_fraction'/>
<ROUTE fromNode='PI_Camera_pos' fromField='value_changed'
toNode='Camera_pitch' toField='set_position'/>
<ROUTE fromNode='TS_Camera_yaw' fromField='fraction_changed'
toNode='OI_Camera_yaw' toField='set_fraction'/>
<ROUTE fromNode='OI_Camera_yaw' fromField='value_changed'
toNode='Camera_yaw' toField='set_rotation'/>
<ROUTE fromNode='TS_Camera_yaw1' fromField='fraction_changed'
toNode='OI_Camera_yaw1' toField='set_fraction'/>
<ROUTE fromNode='OI_Camera_yaw1' fromField='value_changed'
toNode='Camera_yaw1' toField='set_rotation'/>

</Scene>
</X3D>



-- 
Andreas Plesch
Waltham, MA 02453

_______________________________________________
x3d-public mailing list
x3d-public at web3d.org
http://web3d.org/mailman/listinfo/x3d-public_web3d.org

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://web3d.org/pipermail/x3d-public_web3d.org/attachments/20190213/be309540/attachment-0001.html>


More information about the x3d-public mailing list