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

Joseph D Williams joedwil at earthlink.net
Sat Feb 16 14:12:17 PST 2019


> 
> *Will I need to know XML first before I can start reading about X3D*??? (I don't really have much of a clue about it....)
> _______________________________________________

Here is something that appeared on this list you can read.
It makes a sphere out of many parts, sort of like that box you read that was made from four sides.
This is xml, but the main idea is what is each language element, what are the parameters, and what does it do? 
How does each work with others? If you know that for vrml or xml it is the same information. 


<?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 andreas 2/13/19'/>

</head>
<Scene>
<WorldInfo
title='kaleidoscope'
info='"converted to xml 20061012"'/>

<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>

When you want to know more about any of this then try asking a specific question like what is:
<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'/>
or read the “spec” at web3d.org. 

Also, from what you said about your tools, the most simple way is to use one of the html browsers that support user graphics, and maybe you really want to look at how the OpenGL and the webGL and other graphics stuff is supported on your platform. 

> Well, I'd like to use the Geany that I have here, on my Linux system......

Copy and paste the above X3D into dearest Geany (nice teapot) then try to run the thing using firefox web browser x3dom using: 

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 … 

All Best Fates, 
Joe





From: vmarchetti at kshell.com
Sent: Saturday, February 16, 2019 8:44 AM
To: iam here
Cc: X3D Graphics public mailing list
Subject: Re: [x3d-public] Do modern browsers DO VRML??

No, you will not need to be proficient in XML to start learning X3D.

The XML encoding of X3D does not use the more complex features of XML.

The key to success is remembering that though XML 'looks like' HTML, most XML parser are intolerant of not closing tags.

Most developers' text editors can detect XML syntax errors.

Moreover, as discussed earlier, you can make good progress learning X3D and continue using VRML syntax.


> On Feb 16, 2019, at 9:07 AM, iam here <iamhereintheworld at gmail.com> wrote:
> 
> >If you haven't picked a text editor, Notepad++ is free and has the features you >need for XML. 
> 
> Well, I'd like to use the Geany that I have here, on my Linux system......
> 
> *Will I need to know XML first before I can start reading about X3D*??? (I don't really have much of a clue about it....)
> _______________________________________________
> x3d-public mailing list
> x3d-public at web3d.org
> http://web3d.org/mailman/listinfo/x3d-public_web3d.org


_______________________________________________
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/20190216/886a679e/attachment-0001.html>


More information about the x3d-public mailing list