<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40"><head><meta http-equiv=Content-Type content="text/html; charset=us-ascii"><meta name=Generator content="Microsoft Word 15 (filtered medium)"><!--[if !mso]><style>v\:* {behavior:url(#default#VML);}
o\:* {behavior:url(#default#VML);}
w\:* {behavior:url(#default#VML);}
.shape {behavior:url(#default#VML);}
</style><![endif]--><style><!--
/* Font Definitions */
@font-face
        {font-family:"Cambria Math";
        panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0in;
        font-size:11.0pt;
        font-family:"Calibri",sans-serif;}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}
span.EmailStyle19
        {mso-style-type:personal-reply;
        font-family:"Calibri",sans-serif;
        color:windowtext;}
.MsoChpDefault
        {mso-style-type:export-only;
        font-size:10.0pt;}
@page WordSection1
        {size:8.5in 11.0in;
        margin:1.0in 1.0in 1.0in 1.0in;}
div.WordSection1
        {page:WordSection1;}
/* List Definitions */
@list l0
        {mso-list-id:361593988;
        mso-list-template-ids:1036558454;}
@list l0:level1
        {mso-level-number-format:bullet;
        mso-level-text:\F0B7;
        mso-level-tab-stop:.5in;
        mso-level-number-position:left;
        text-indent:-.25in;
        mso-ansi-font-size:10.0pt;
        font-family:Symbol;}
@list l0:level2
        {mso-level-number-format:bullet;
        mso-level-text:\F0B7;
        mso-level-tab-stop:1.0in;
        mso-level-number-position:left;
        text-indent:-.25in;
        mso-ansi-font-size:10.0pt;
        font-family:Symbol;}
@list l0:level3
        {mso-level-number-format:bullet;
        mso-level-text:\F0B7;
        mso-level-tab-stop:1.5in;
        mso-level-number-position:left;
        text-indent:-.25in;
        mso-ansi-font-size:10.0pt;
        font-family:Symbol;}
@list l0:level4
        {mso-level-number-format:bullet;
        mso-level-text:\F0B7;
        mso-level-tab-stop:2.0in;
        mso-level-number-position:left;
        text-indent:-.25in;
        mso-ansi-font-size:10.0pt;
        font-family:Symbol;}
@list l0:level5
        {mso-level-number-format:bullet;
        mso-level-text:\F0B7;
        mso-level-tab-stop:2.5in;
        mso-level-number-position:left;
        text-indent:-.25in;
        mso-ansi-font-size:10.0pt;
        font-family:Symbol;}
@list l0:level6
        {mso-level-number-format:bullet;
        mso-level-text:\F0B7;
        mso-level-tab-stop:3.0in;
        mso-level-number-position:left;
        text-indent:-.25in;
        mso-ansi-font-size:10.0pt;
        font-family:Symbol;}
@list l0:level7
        {mso-level-number-format:bullet;
        mso-level-text:\F0B7;
        mso-level-tab-stop:3.5in;
        mso-level-number-position:left;
        text-indent:-.25in;
        mso-ansi-font-size:10.0pt;
        font-family:Symbol;}
@list l0:level8
        {mso-level-number-format:bullet;
        mso-level-text:\F0B7;
        mso-level-tab-stop:4.0in;
        mso-level-number-position:left;
        text-indent:-.25in;
        mso-ansi-font-size:10.0pt;
        font-family:Symbol;}
@list l0:level9
        {mso-level-number-format:bullet;
        mso-level-text:\F0B7;
        mso-level-tab-stop:4.5in;
        mso-level-number-position:left;
        text-indent:-.25in;
        mso-ansi-font-size:10.0pt;
        font-family:Symbol;}
@list l1
        {mso-list-id:1537541565;
        mso-list-template-ids:-1967331006;}
@list l1:level1
        {mso-level-number-format:bullet;
        mso-level-text:\F0B7;
        mso-level-tab-stop:.5in;
        mso-level-number-position:left;
        text-indent:-.25in;
        mso-ansi-font-size:10.0pt;
        font-family:Symbol;}
@list l1:level2
        {mso-level-number-format:bullet;
        mso-level-text:\F0B7;
        mso-level-tab-stop:1.0in;
        mso-level-number-position:left;
        text-indent:-.25in;
        mso-ansi-font-size:10.0pt;
        font-family:Symbol;}
@list l1:level3
        {mso-level-number-format:bullet;
        mso-level-text:\F0B7;
        mso-level-tab-stop:1.5in;
        mso-level-number-position:left;
        text-indent:-.25in;
        mso-ansi-font-size:10.0pt;
        font-family:Symbol;}
@list l1:level4
        {mso-level-number-format:bullet;
        mso-level-text:\F0B7;
        mso-level-tab-stop:2.0in;
        mso-level-number-position:left;
        text-indent:-.25in;
        mso-ansi-font-size:10.0pt;
        font-family:Symbol;}
@list l1:level5
        {mso-level-number-format:bullet;
        mso-level-text:\F0B7;
        mso-level-tab-stop:2.5in;
        mso-level-number-position:left;
        text-indent:-.25in;
        mso-ansi-font-size:10.0pt;
        font-family:Symbol;}
@list l1:level6
        {mso-level-number-format:bullet;
        mso-level-text:\F0B7;
        mso-level-tab-stop:3.0in;
        mso-level-number-position:left;
        text-indent:-.25in;
        mso-ansi-font-size:10.0pt;
        font-family:Symbol;}
@list l1:level7
        {mso-level-number-format:bullet;
        mso-level-text:\F0B7;
        mso-level-tab-stop:3.5in;
        mso-level-number-position:left;
        text-indent:-.25in;
        mso-ansi-font-size:10.0pt;
        font-family:Symbol;}
@list l1:level8
        {mso-level-number-format:bullet;
        mso-level-text:\F0B7;
        mso-level-tab-stop:4.0in;
        mso-level-number-position:left;
        text-indent:-.25in;
        mso-ansi-font-size:10.0pt;
        font-family:Symbol;}
@list l1:level9
        {mso-level-number-format:bullet;
        mso-level-text:\F0B7;
        mso-level-tab-stop:4.5in;
        mso-level-number-position:left;
        text-indent:-.25in;
        mso-ansi-font-size:10.0pt;
        font-family:Symbol;}
ol
        {margin-bottom:0in;}
ul
        {margin-bottom:0in;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]--></head><body lang=EN-US link=blue vlink=purple style='word-wrap:break-word'><div class=WordSection1><p class=MsoNormal>Doug, please send me the “plain” .xslx modification you’ve prepared and I will see if this can be diffed/integrated.<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>Otherwise let’s simply modify the existing version-control spreadsheet step by step, as possible, during the Friday conference.  It will also be good to discuss your related efforts on browser support and Audio nodes, thanks for steadily sharing these important steps.<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>We might need to reserve some of the time for the Metaverse Standards Forum proposal first, hopefully that is nearing escape velocity.<o:p></o:p></p><div><p class=MsoNormal><span style='font-size:10.0pt;font-family:"Courier New"'><o:p> </o:p></span></p><p class=MsoNormal><span style='font-size:10.0pt;font-family:"Courier New"'>all the best, Don<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:10.0pt;font-family:"Courier New"'>-- <o:p></o:p></span></p><p class=MsoNormal><span style='font-size:10.0pt;font-family:"Courier New"'>Don Brutzman  Naval Postgraduate School, Code USW/Br        brutzman@nps.edu<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:10.0pt;font-family:"Courier New"'>Watkins 270,  MOVES Institute, Monterey CA 93943-5000 USA    +1.831.656.2149<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:10.0pt;font-family:"Courier New"'>X3D graphics, virtual worlds, Navy robotics https://</span> <span style='font-size:10.0pt;font-family:"Courier New"'>faculty.nps.edu/brutzman<o:p></o:p></span></p></div><p class=MsoNormal><o:p> </o:p></p><div><div style='border:none;border-top:solid #E1E1E1 1.0pt;padding:3.0pt 0in 0in 0in'><p class=MsoNormal><b>From:</b> GPU Group <gpugroup@gmail.com> <br><b>Sent:</b> Tuesday, January 31, 2023 12:36 PM<br><b>To:</b> Brutzman, Donald (Don) (CIV) <brutzman@nps.edu><br><b>Cc:</b> X3D Graphics public mailing list <x3d-public@web3d.org><br><b>Subject:</b> Re: [x3d-public] Browser Comparison > sorting, Levels for GLTF and HTML<o:p></o:p></p></div></div><p class=MsoNormal><o:p> </o:p></p><div style='border:solid #004679 1.0pt;padding:2.0pt 2.0pt 2.0pt 2.0pt'><p class=MsoNormal style='line-height:12.0pt;background:#004679'><span style='font-size:10.0pt;color:yellow'>NPS WARNING: *external sender* verify before acting.<o:p></o:p></span></p></div><p class=MsoNormal><o:p> </o:p></p><div><div><div><div><div><div><div><p class=MsoNormal>Don,<o:p></o:p></p></div><div><p class=MsoNormal>Details of changes I made to the X3DNodeInventoryComparison.xlsx to sort by component <o:p></o:p></p></div><div><div><p class=MsoNormal>-Doug<o:p></o:p></p></div><div><p class=MsoNormal><o:p> </o:p></p><div><p class=MsoNormal>1. on 'Node Profiles Component Levels' sheet<o:p></o:p></p></div></div><div><p class=MsoNormal>a. inserted column 'CN' (component number) after the Component column, and made it 2 digits wide<o:p></o:p></p></div><div><p class=MsoNormal>b. populated CN with the component number, using the chapter number for components in the Architecture guide<o:p></o:p></p></div><div><p class=MsoNormal>beside Core I put 7<o:p></o:p></p></div><div><p class=MsoNormal>b. deleted 'damaged text' preventing LOOKUP, from X3D Abstract Specification Nodes, Statements column, and retyped:<o:p></o:p></p></div><div><p class=MsoNormal>ProtoBody<o:p></o:p></p></div><div><p class=MsoNormal>ProtoDec;lare<o:p></o:p></p></div><div><p class=MsoNormal>ProtoInstance<o:p></o:p></p></div><div><p class=MsoNormal>ProtoInterface<o:p></o:p></p></div><div><p class=MsoNormal>2. on X3D Players and Tools Sheet<o:p></o:p></p></div><div><p class=MsoNormal>a. deleted damaged text and retyped, in Node and Statement Support column:<o:p></o:p></p></div><div><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'>Matrix3VertexAttribute<o:p></o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'>Matrix4VertexAttribute<o:p></o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'>b. inserted column 'CN' as first column and made 2 digits wide<o:p></o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'>c. added a VLOOKUP function in A5 (first row and new CN column - we'll pull CN numbers from the Profiles sheet)<o:p></o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'>=VLOOKUP(B5,'Node Profiles Components Levels'!A4:G280,5,FALSE)<o:p></o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'>-then duplicated that function down the CN column (by dragging with +) to row 280<o:p></o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'>(CN column should now have the component number for the node)<o:p></o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><o:p> </o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'>3. Macros (they are handy but unsafe if from untrusted sources)<o:p></o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'>I'll give you the 'algorithm' first so they can be re-recorded or done manually. then append the VB macros<o:p></o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'>SORT_BY_NODENAME<o:p></o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'>- select range A5:I280<o:p></o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'>- custom sort, no headers, ascending, column B<o:p></o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'>- unselect all<o:p></o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'>SORT_BY_COMPONENT<o:p></o:p></p><div><p class=MsoNormal>-- select range A5:I280<o:p></o:p></p></div><div><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'>- custom sort, first level no headers, column A, ascending<o:p></o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'>- add second level to custom sort, no headers, column B, ascending (this keeps node names ascending within a component)<o:p></o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'>- deselect all<o:p></o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><o:p> </o:p></p></div><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'>By showing the recorded and edited macros here, you can see how the sorts are done on the X3D Players and Tools sheet<o:p></o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'>Sub SORT_BY_NODENAME()<o:p></o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'>'<o:p></o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'>' SORT_BY_NODENAME Macro<o:p></o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'>'<o:p></o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'>' Keyboard Shortcut: Ctrl+Shift+N<o:p></o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'>'<o:p></o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'>    Range("A5:I280").Select<o:p></o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'>    ActiveWorkbook.Worksheets("X3D Players and Tools").Sort.SortFields.Clear<o:p></o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'>    ActiveWorkbook.Worksheets("X3D Players and Tools").Sort.SortFields.Add2 Key:= _<o:p></o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'>        Range("B5:B280"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption _<o:p></o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'>        :=xlSortNormal<o:p></o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'>    With ActiveWorkbook.Worksheets("X3D Players and Tools").Sort<o:p></o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'>        .SetRange Range("A5:I280")<o:p></o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'>        .Header = xlGuess<o:p></o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'>        .MatchCase = False<o:p></o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'>        .Orientation = xlTopToBottom<o:p></o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'>        .SortMethod = xlPinYin<o:p></o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'>        .Apply<o:p></o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'>    End With<o:p></o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'>    Range("A3:A3").Select<o:p></o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'>End Sub<o:p></o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><o:p> </o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'>Sub SORT_BY_COMPONENT()<o:p></o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'>'<o:p></o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'>' SORT_BY_COMPONENT Macro<o:p></o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'>'<o:p></o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'>' Keyboard Shortcut: Ctrl+Shift+C<o:p></o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'>'<o:p></o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'>    Range("A5:I280").Select<o:p></o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'>    ActiveWorkbook.Worksheets("X3D Players and Tools").Sort.SortFields.Clear<o:p></o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'>    ActiveWorkbook.Worksheets("X3D Players and Tools").Sort.SortFields.Add2 Key:= _<o:p></o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'>        Range("A5:A280"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption _<o:p></o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'>        :=xlSortNormal<o:p></o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'>    ActiveWorkbook.Worksheets("X3D Players and Tools").Sort.SortFields.Add2 Key:= _<o:p></o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'>        Range("B5:B280"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption _<o:p></o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'>        :=xlSortNormal<o:p></o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'>    With ActiveWorkbook.Worksheets("X3D Players and Tools").Sort<o:p></o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'>        .SetRange Range("A5:I280")<o:p></o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'>        .Header = xlGuess<o:p></o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'>        .MatchCase = False<o:p></o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'>        .Orientation = xlTopToBottom<o:p></o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'>        .SortMethod = xlPinYin<o:p></o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'>        .Apply<o:p></o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'>    End With<o:p></o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'>    Range("A3:A3").Select<o:p></o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'>End Sub<o:p></o:p></p></div></div></div></div></div></div></div><p class=MsoNormal><o:p> </o:p></p><div><div><p class=MsoNormal>On Tue, Jan 31, 2023 at 1:02 PM Brutzman, Donald (Don) (CIV) <<a href="mailto:brutzman@nps.edu">brutzman@nps.edu</a>> wrote:<o:p></o:p></p></div><blockquote style='border:none;border-left:solid #CCCCCC 1.0pt;padding:0in 0in 0in 6.0pt;margin-left:4.8pt;margin-right:0in'><div><div><div><div><p class=MsoNormal>Please send all changes to me (Don Brutzman) and cc: X3D-Public list.  If there is discussion we get to it Fridays.  If people send something way convoluted then nothing happens.  Same as always.<o:p></o:p></p></div></div><div id="m_-6420090738157244569ms-outlook-mobile-signature"><div><p class=MsoNormal><o:p> </o:p></p></div><div><p style='margin:0in'><span style='font-size:10.0pt;font-family:"Courier New"'>all the best, Don</span><o:p></o:p></p><p style='margin:0in'><span style='font-size:10.0pt;font-family:"Courier New"'>-- </span><o:p></o:p></p><p style='margin:0in'><span style='font-size:10.0pt;font-family:"Courier New"'>Don Brutzman  Naval Postgraduate School, Code USW/Br        <span style='color:#0078D4'><a href="mailto:brutzman@nps.edu" target="_blank">brutzman@nps.edu</a></span></span><o:p></o:p></p><p style='margin:0in'><span style='font-size:10.0pt;font-family:"Courier New"'>Watkins 270,  MOVES Institute, Monterey CA 93943-5000 USA    <span style='color:#0078D4'>+1.831.656.2149</span></span><o:p></o:p></p><div><p class=MsoNormal><span style='font-size:10.0pt;font-family:"Courier New"'>X3D graphics, virtual worlds, Navy robotics <span style='color:#0078D4'><a href="https://faculty.nps.edu/brutzman" target="_blank">https://faculty.nps.edu/brutzman</a></span></span><o:p></o:p></p></div></div></div></div><div class=MsoNormal align=center style='text-align:center'><hr size=2 width="98%" align=center></div><div id="m_-6420090738157244569divRplyFwdMsg"><p class=MsoNormal><b><span style='color:black'>From:</span></b><span style='color:black'> GPU Group <<a href="mailto:gpugroup@gmail.com" target="_blank">gpugroup@gmail.com</a>><br><b>Sent:</b> Tuesday, January 31, 2023 11:40:16 AM<br><b>To:</b> Brutzman, Donald (Don) (CIV) <<a href="mailto:brutzman@nps.edu" target="_blank">brutzman@nps.edu</a>><br><b>Cc:</b> X3D Graphics public mailing list <<a href="mailto:x3d-public@web3d.org" target="_blank">x3d-public@web3d.org</a>><br><b>Subject:</b> Re: [x3d-public] Browser Comparison > sorting, Levels for GLTF and HTML</span> <o:p></o:p></p><div><p class=MsoNormal> <o:p></o:p></p></div></div><div><div style='border:solid #004679 1.0pt;padding:2.0pt 2.0pt 2.0pt 2.0pt'><p class=MsoNormal style='line-height:12.0pt;background:#004679'><span style='font-size:10.0pt;color:yellow'>NPS WARNING: *external sender* verify before acting.<o:p></o:p></span></p></div><p class=MsoNormal><o:p> </o:p></p><div><div><p class=MsoNormal>Don how do I submit changes to the archival quality spreadsheet you gave a link to?<o:p></o:p></p><div><p class=MsoNormal>Thanks, Doug<o:p></o:p></p></div></div><p class=MsoNormal><o:p> </o:p></p><div><div><p class=MsoNormal>On Tue, Jan 31, 2023 at 9:59 AM Brutzman, Donald (Don) (CIV) <<a href="mailto:brutzman@nps.edu" target="_blank">brutzman@nps.edu</a>> wrote:<o:p></o:p></p></div><blockquote style='border:none;border-left:solid #CCCCCC 1.0pt;padding:0in 0in 0in 6.0pt;margin-left:4.8pt;margin-right:0in'><div><div><div><p>John, why not use our published links?  I won’t be maintaining documents at Google Docs links, they are not archival.<o:p></o:p></p><p> <o:p></o:p></p><ul type=disc><li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;mso-list:l1 level1 lfo1'><a href="https://www.web3d.org/specifications" target="_blank">https://www.web3d.org/specifications</a><o:p></o:p></li><li class=MsoNormal style='color:black;mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;mso-list:l1 level1 lfo1;background:#CCFFFF'><i><span style='font-size:13.5pt;font-family:"Times New Roman",serif'>Updated.</span></i><span style='font-size:13.5pt;font-family:"Times New Roman",serif'> <a href="https://www.web3d.org/specifications/X3dNodeInventoryComparison.xlsx" target="_blank">X3D Node Inventory Comparison</a> (<a href="https://www.web3d.org/specifications/X3dNodeInventoryComparison.pdf" target="_blank">.pdf</a>) shows node-by-node implementation coverage of the X3D Abstract Specification: validation using X3D Schema, X3D DOCTYPE, and X3D Schematron; X3D Tooltips and VRML97 node sets; plus selected open-source implementations: FreeWrl, X3DOM, X_ITE, view3dscene (Castle Game Engine), X3D-Edit, Xj3D.</span><o:p></o:p></li><li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;mso-list:l1 level1 lfo1'><a href="https://www.web3d.org/specifications/X3dNodeInventoryComparison.xlsx" target="_blank">https://www.web3d.org/specifications/X3dNodeInventoryComparison.xlsx</a><o:p></o:p></li><li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;mso-list:l1 level1 lfo1'><a href="https://www.web3d.org/specifications/X3dNodeInventoryComparison.pdf" target="_blank">https://www.web3d.org/specifications/X3dNodeInventoryComparison.pdf</a><o:p></o:p></li></ul><p> <o:p></o:p></p><p>As ever, I am happy to integrate and publish all changes and additions to the spreadsheet.  It is also maintained in version control so that we have the reliability of a full change-by-change history.<o:p></o:p></p><ul type=disc><li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;mso-list:l0 level1 lfo2'><a href="https://nam10.safelinks.protection.outlook.com/?url=https%3A%2F%2Fsourceforge.net%2Fp%2Fx3d%2Fcode%2FHEAD%2Ftree%2Fwww.web3d.org%2Fspecifications&data=05%7C01%7Cbrutzman%40nps.edu%7C7084ff45e87d43c9aa3908db03cad775%7C6d936231a51740ea9199f7578963378e%7C0%7C0%7C638107941956975660%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&sdata=DtrZYFuEG%2FeSjdxHH81PvwkXAAsfsfoC9gLnO8VJps8%3D&reserved=0" target="_blank">https://sourceforge.net/p/x3d/code/HEAD/tree/www.web3d.org/specifications</a><o:p></o:p></li></ul><p> <o:p></o:p></p><p>If the spreadsheet above contains macros that should be removed, we can work on that.  Meanwhile the PDF version (published from the spreadsheet) should be secure to everyone’s satisfaction, on whatever operating system and tool setup that they are using.<o:p></o:p></p><p> <o:p></o:p></p><p>Some of your notes below sound pretty extensive… feel free to explore new comparisons using whatever document you like, we can integrate later once it reaches some level of stability.<o:p></o:p></p><p> <o:p></o:p></p><p>Further improvements always welcome, this is a recurring weekly topic on X3D Working Group videoconferences.  Again thanks for further pursuit of progress.<o:p></o:p></p><p><span style='font-size:10.0pt;font-family:"Courier New"'> </span><o:p></o:p></p><p><span style='font-size:10.0pt;font-family:"Courier New"'>all the best, Don</span><o:p></o:p></p><p><span style='font-size:10.0pt;font-family:"Courier New"'>-- </span><o:p></o:p></p><p><span style='font-size:10.0pt;font-family:"Courier New"'>Don Brutzman  Naval Postgraduate School, Code USW/Br        <a href="mailto:brutzman@nps.edu" target="_blank">brutzman@nps.edu</a></span><o:p></o:p></p><p><span style='font-size:10.0pt;font-family:"Courier New"'>Watkins 270,  MOVES Institute, Monterey CA 93943-5000 USA    +1.831.656.2149</span><o:p></o:p></p><p><span style='font-size:10.0pt;font-family:"Courier New"'>X3D graphics, virtual worlds, Navy robotics https://</span> <span style='font-size:10.0pt;font-family:"Courier New"'><a href="http://faculty.nps.edu/brutzman" target="_blank">faculty.nps.edu/brutzman</a></span><o:p></o:p></p><p> <o:p></o:p></p><div style='border:none;border-top:solid #E1E1E1 1.0pt;padding:3.0pt 0in 0in 0in'><p><b>From:</b> x3d-public <<a href="mailto:x3d-public-bounces@web3d.org" target="_blank">x3d-public-bounces@web3d.org</a>> <b>On Behalf Of </b>GPU Group<br><b>Sent:</b> Monday, January 30, 2023 6:41 PM<br><b>To:</b> X3D Graphics public mailing list <<a href="mailto:x3d-public@web3d.org" target="_blank">x3d-public@web3d.org</a>><br><b>Subject:</b> [x3d-public] Browser Comparison > sorting, Levels for GLTF and HTML<o:p></o:p></p></div><p> <o:p></o:p></p><div><div><div><div><p><a href="https://nam10.safelinks.protection.outlook.com/?url=https%3A%2F%2Fdrive.google.com%2Ffile%2Fd%2F1pJ4vuOAAH_rToCsDNlKqrWv7QvlLmX1f%2Fview%3Fusp%3Dshare_link&data=05%7C01%7Cbrutzman%40nps.edu%7C7084ff45e87d43c9aa3908db03cad775%7C6d936231a51740ea9199f7578963378e%7C0%7C0%7C638107941956975660%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&sdata=12%2BKaIsuNW1PQ064a%2Fdw%2B4PLDJy7jIMKSAm1UXsla38%3D&reserved=0" target="_blank">https://drive.google.com/file/d/1pJ4vuOAAH_rToCsDNlKqrWv7QvlLmX1f/view?usp=share_link</a> <o:p></o:p></p></div><div><p>X3DNode_DRAFT2.xlsm - has VB macros<o:p></o:p></p></div><div><p> <o:p></o:p></p></div><div><p><a href="https://nam10.safelinks.protection.outlook.com/?url=https%3A%2F%2Fdocs.google.com%2Fspreadsheets%2Fd%2F1p51wgwlGxUfgWOaCM6QkJ9AJ6VONimYu%2Fedit%3Fusp%3Dshare_link%26ouid%3D100938900505038082978%26rtpof%3Dtrue%26sd%3Dtrue&data=05%7C01%7Cbrutzman%40nps.edu%7C7084ff45e87d43c9aa3908db03cad775%7C6d936231a51740ea9199f7578963378e%7C0%7C0%7C638107941956975660%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&sdata=xwwyIRAMSC76ONSkABja8AXSpsEg9%2FfC8lxbzNg0Buk%3D&reserved=0" target="_blank">https://docs.google.com/spreadsheets/d/1p51wgwlGxUfgWOaCM6QkJ9AJ6VONimYu/edit?usp=share_link&ouid=100938900505038082978&rtpof=true&sd=true</a><o:p></o:p></p></div><div><p>X3DNode_DRAFT2.xlsx<o:p></o:p></p></div><div><p> <o:p></o:p></p></div><div><p>the xlsm variant has 2 recorded macros for sorting<o:p></o:p></p></div><div><p>SORT_BY_NODENAME<o:p></o:p></p></div><div><p>SORT_BY_COMPONENT<o:p></o:p></p></div><div><p> <o:p></o:p></p></div><div><p>Suggested enhancements:<o:p></o:p></p></div><div><p>Levels of GLTF support<o:p></o:p></p></div><div><p>Level 0 None<o:p></o:p></p></div><div><p>Level 1 .gltf loaded as Inline, basic geometry with materials<o:p></o:p></p></div><div><p>Level 2 any enhancements over Level 1: .glb, loading materials as library for use in x3d scene, animations and skinning<o:p></o:p></p></div><div><p> <o:p></o:p></p></div><div><p>Levels of HTML support<o:p></o:p></p></div><div><p>Level 0 None<o:p></o:p></p></div><div><p>Level 1 hybrid, can show html and scene but no standard communicatio between layers / frames<o:p></o:p></p></div><div><p>Level 2 standardized way to communicate between scene and html<o:p></o:p></p></div><div><p>Level 3 full integration<o:p></o:p></p></div><div><p> <o:p></o:p></p></div><div><p>-Doug<o:p></o:p></p></div></div></div></div></div></div></div></blockquote></div></div></div></div></blockquote></div></div></div></body></html>