<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=utf-8"><meta name=Generator content="Microsoft Word 15 (filtered medium)"><style><!--
/* Font Definitions */
@font-face
        {font-family:Wingdings;
        panose-1:5 0 0 0 0 0 0 0 0 0;}
@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;}
@font-face
        {font-family:Aptos;}
@font-face
        {font-family:"Segoe UI Emoji";
        panose-1:2 11 5 2 4 2 4 2 2 3;}
@font-face
        {font-family:"Source Sans Pro";}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0in;
        font-size:12.0pt;
        font-family:"Aptos",sans-serif;}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}
p.MsoListParagraph, li.MsoListParagraph, div.MsoListParagraph
        {mso-style-priority:34;
        mso-margin-top-alt:auto;
        margin-right:0in;
        mso-margin-bottom-alt:auto;
        margin-left:0in;
        font-size:12.0pt;
        font-family:"Aptos",sans-serif;}
span.apple-converted-space
        {mso-style-name:apple-converted-space;}
span.EmailStyle23
        {mso-style-type:personal-compose;
        font-family:"Aptos",sans-serif;
        color:windowtext;}
.MsoChpDefault
        {mso-style-type:export-only;
        font-size:10.0pt;
        mso-ligatures:none;}
@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:239484133;
        mso-list-template-ids:-591383316;}
@list l0:level1
        {mso-level-start-at:2;
        mso-level-tab-stop:.5in;
        mso-level-number-position:left;
        text-indent:-.25in;}
@list l0:level2
        {mso-level-tab-stop:1.0in;
        mso-level-number-position:left;
        text-indent:-.25in;}
@list l0:level3
        {mso-level-tab-stop:1.5in;
        mso-level-number-position:left;
        text-indent:-.25in;}
@list l0:level4
        {mso-level-tab-stop:2.0in;
        mso-level-number-position:left;
        text-indent:-.25in;}
@list l0:level5
        {mso-level-tab-stop:2.5in;
        mso-level-number-position:left;
        text-indent:-.25in;}
@list l0:level6
        {mso-level-tab-stop:3.0in;
        mso-level-number-position:left;
        text-indent:-.25in;}
@list l0:level7
        {mso-level-tab-stop:3.5in;
        mso-level-number-position:left;
        text-indent:-.25in;}
@list l0:level8
        {mso-level-tab-stop:4.0in;
        mso-level-number-position:left;
        text-indent:-.25in;}
@list l0:level9
        {mso-level-tab-stop:4.5in;
        mso-level-number-position:left;
        text-indent:-.25in;}
@list l1
        {mso-list-id:375082644;
        mso-list-type:hybrid;
        mso-list-template-ids:184961150 1439489094 67698691 67698693 67698689 67698691 67698693 67698689 67698691 67698693;}
@list l1:level1
        {mso-level-start-at:15;
        mso-level-number-format:bullet;
        mso-level-text:;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-.25in;
        font-family:Symbol;
        mso-fareast-font-family:Aptos;
        mso-bidi-font-family:"Times New Roman";}
@list l1:level2
        {mso-level-number-format:bullet;
        mso-level-text:o;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-.25in;
        font-family:"Courier New";}
@list l1:level3
        {mso-level-number-format:bullet;
        mso-level-text:;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-.25in;
        font-family:Wingdings;}
@list l1:level4
        {mso-level-number-format:bullet;
        mso-level-text:;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-.25in;
        font-family:Symbol;}
@list l1:level5
        {mso-level-number-format:bullet;
        mso-level-text:o;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-.25in;
        font-family:"Courier New";}
@list l1:level6
        {mso-level-number-format:bullet;
        mso-level-text:;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-.25in;
        font-family:Wingdings;}
@list l1:level7
        {mso-level-number-format:bullet;
        mso-level-text:;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-.25in;
        font-family:Symbol;}
@list l1:level8
        {mso-level-number-format:bullet;
        mso-level-text:o;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-.25in;
        font-family:"Courier New";}
@list l1:level9
        {mso-level-number-format:bullet;
        mso-level-text:;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-.25in;
        font-family:Wingdings;}
@list l2
        {mso-list-id:713575803;
        mso-list-template-ids:1074943984;}
@list l2:level1
        {mso-level-tab-stop:.5in;
        mso-level-number-position:left;
        text-indent:-.25in;}
@list l2:level2
        {mso-level-tab-stop:1.0in;
        mso-level-number-position:left;
        text-indent:-.25in;}
@list l2:level3
        {mso-level-tab-stop:1.5in;
        mso-level-number-position:left;
        text-indent:-.25in;}
@list l2:level4
        {mso-level-tab-stop:2.0in;
        mso-level-number-position:left;
        text-indent:-.25in;}
@list l2:level5
        {mso-level-tab-stop:2.5in;
        mso-level-number-position:left;
        text-indent:-.25in;}
@list l2:level6
        {mso-level-tab-stop:3.0in;
        mso-level-number-position:left;
        text-indent:-.25in;}
@list l2:level7
        {mso-level-tab-stop:3.5in;
        mso-level-number-position:left;
        text-indent:-.25in;}
@list l2:level8
        {mso-level-tab-stop:4.0in;
        mso-level-number-position:left;
        text-indent:-.25in;}
@list l2:level9
        {mso-level-tab-stop:4.5in;
        mso-level-number-position:left;
        text-indent:-.25in;}
@list l3
        {mso-list-id:1218249116;
        mso-list-type:hybrid;
        mso-list-template-ids:1871118254 -215872240 67698691 67698693 67698689 67698691 67698693 67698689 67698691 67698693;}
@list l3:level1
        {mso-level-start-at:3;
        mso-level-number-format:bullet;
        mso-level-text:;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-.25in;
        font-family:Symbol;
        mso-fareast-font-family:Aptos;
        mso-bidi-font-family:"Times New Roman";}
@list l3:level2
        {mso-level-number-format:bullet;
        mso-level-text:o;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-.25in;
        font-family:"Courier New";}
@list l3:level3
        {mso-level-number-format:bullet;
        mso-level-text:;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-.25in;
        font-family:Wingdings;}
@list l3:level4
        {mso-level-number-format:bullet;
        mso-level-text:;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-.25in;
        font-family:Symbol;}
@list l3:level5
        {mso-level-number-format:bullet;
        mso-level-text:o;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-.25in;
        font-family:"Courier New";}
@list l3:level6
        {mso-level-number-format:bullet;
        mso-level-text:;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-.25in;
        font-family:Wingdings;}
@list l3:level7
        {mso-level-number-format:bullet;
        mso-level-text:;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-.25in;
        font-family:Symbol;}
@list l3:level8
        {mso-level-number-format:bullet;
        mso-level-text:o;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-.25in;
        font-family:"Courier New";}
@list l3:level9
        {mso-level-number-format:bullet;
        mso-level-text:;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-.25in;
        font-family:Wingdings;}
@list l4
        {mso-list-id:1285306259;
        mso-list-template-ids:-1876761146;}
@list l4:level1
        {mso-level-number-format:bullet;
        mso-level-text:;
        mso-level-tab-stop:.5in;
        mso-level-number-position:left;
        text-indent:-.25in;
        mso-ansi-font-size:10.0pt;
        font-family:Symbol;}
@list l4:level2
        {mso-level-number-format:bullet;
        mso-level-text:;
        mso-level-tab-stop:1.0in;
        mso-level-number-position:left;
        text-indent:-.25in;
        mso-ansi-font-size:10.0pt;
        font-family:Symbol;}
@list l4:level3
        {mso-level-number-format:bullet;
        mso-level-text:;
        mso-level-tab-stop:1.5in;
        mso-level-number-position:left;
        text-indent:-.25in;
        mso-ansi-font-size:10.0pt;
        font-family:Symbol;}
@list l4:level4
        {mso-level-number-format:bullet;
        mso-level-text:;
        mso-level-tab-stop:2.0in;
        mso-level-number-position:left;
        text-indent:-.25in;
        mso-ansi-font-size:10.0pt;
        font-family:Symbol;}
@list l4:level5
        {mso-level-number-format:bullet;
        mso-level-text:;
        mso-level-tab-stop:2.5in;
        mso-level-number-position:left;
        text-indent:-.25in;
        mso-ansi-font-size:10.0pt;
        font-family:Symbol;}
@list l4:level6
        {mso-level-number-format:bullet;
        mso-level-text:;
        mso-level-tab-stop:3.0in;
        mso-level-number-position:left;
        text-indent:-.25in;
        mso-ansi-font-size:10.0pt;
        font-family:Symbol;}
@list l4:level7
        {mso-level-number-format:bullet;
        mso-level-text:;
        mso-level-tab-stop:3.5in;
        mso-level-number-position:left;
        text-indent:-.25in;
        mso-ansi-font-size:10.0pt;
        font-family:Symbol;}
@list l4:level8
        {mso-level-number-format:bullet;
        mso-level-text:;
        mso-level-tab-stop:4.0in;
        mso-level-number-position:left;
        text-indent:-.25in;
        mso-ansi-font-size:10.0pt;
        font-family:Symbol;}
@list l4:level9
        {mso-level-number-format:bullet;
        mso-level-text:;
        mso-level-tab-stop:4.5in;
        mso-level-number-position:left;
        text-indent:-.25in;
        mso-ansi-font-size:10.0pt;
        font-family:Symbol;}
@list l5
        {mso-list-id:1334259029;
        mso-list-template-ids:-1285941384;}
@list l5:level1
        {mso-level-number-format:bullet;
        mso-level-text:;
        mso-level-tab-stop:.5in;
        mso-level-number-position:left;
        text-indent:-.25in;
        mso-ansi-font-size:10.0pt;
        font-family:Symbol;}
@list l5:level2
        {mso-level-number-format:bullet;
        mso-level-text:;
        mso-level-tab-stop:1.0in;
        mso-level-number-position:left;
        text-indent:-.25in;
        mso-ansi-font-size:10.0pt;
        font-family:Symbol;}
@list l5:level3
        {mso-level-number-format:bullet;
        mso-level-text:;
        mso-level-tab-stop:1.5in;
        mso-level-number-position:left;
        text-indent:-.25in;
        mso-ansi-font-size:10.0pt;
        font-family:Symbol;}
@list l5:level4
        {mso-level-number-format:bullet;
        mso-level-text:;
        mso-level-tab-stop:2.0in;
        mso-level-number-position:left;
        text-indent:-.25in;
        mso-ansi-font-size:10.0pt;
        font-family:Symbol;}
@list l5:level5
        {mso-level-number-format:bullet;
        mso-level-text:;
        mso-level-tab-stop:2.5in;
        mso-level-number-position:left;
        text-indent:-.25in;
        mso-ansi-font-size:10.0pt;
        font-family:Symbol;}
@list l5:level6
        {mso-level-number-format:bullet;
        mso-level-text:;
        mso-level-tab-stop:3.0in;
        mso-level-number-position:left;
        text-indent:-.25in;
        mso-ansi-font-size:10.0pt;
        font-family:Symbol;}
@list l5:level7
        {mso-level-number-format:bullet;
        mso-level-text:;
        mso-level-tab-stop:3.5in;
        mso-level-number-position:left;
        text-indent:-.25in;
        mso-ansi-font-size:10.0pt;
        font-family:Symbol;}
@list l5:level8
        {mso-level-number-format:bullet;
        mso-level-text:;
        mso-level-tab-stop:4.0in;
        mso-level-number-position:left;
        text-indent:-.25in;
        mso-ansi-font-size:10.0pt;
        font-family:Symbol;}
@list l5:level9
        {mso-level-number-format:bullet;
        mso-level-text:;
        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><span style='font-size:11.0pt'>[Am forwarding this email thread with permission – thank you Holger.]<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt'><o:p> </o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt'>There is a really excellent extension in X_ITE that allows authors to reference a font file of interest.  Holger adapts the capabilities of the MFString <i>family</i> field to achieve this, compatibly extending (and retaining validation) of the existing X3D specification.  Cool!<o:p></o:p></span></p><ul type=disc><li class=MsoListParagraph style='mso-list:l1 level1 lfo6'><span style='font-size:11.0pt'>X_ITE, Font Style, Support File Formats<o:p></o:p></span></li><li class=MsoListParagraph style='mso-list:l1 level1 lfo6'><span style='font-size:11.0pt'>https://create3000.github.io/x_ite/components/text/fontstyle/#supported-file-formats<o:p></o:p></span></li><li class=MsoListParagraph style='color:#34343C;mso-list:l1 level1 lfo6;background:white'><span style='font-family:"Source Sans Pro",sans-serif'>It is possible to specify in the <i>family</i> field a URL of a custom font file of the following types:<o:p></o:p></span></li></ul><table class=MsoNormalTable border=0 cellspacing=0 cellpadding=0 style='margin-left:35.1pt;border-collapse:collapse'><thead><tr><td style='border:solid windowtext 1.0pt;padding:.75pt .75pt .75pt .75pt'><p class=MsoNormal align=center style='text-align:center'><b><span style='font-size:12.5pt'>Encoding<o:p></o:p></span></b></p></td><td style='border:solid windowtext 1.0pt;border-left:none;padding:.75pt .75pt .75pt .75pt'><p class=MsoNormal align=center style='text-align:center'><b><span style='font-size:12.5pt'>File Extension<o:p></o:p></span></b></p></td><td style='border:solid windowtext 1.0pt;border-left:none;padding:.75pt .75pt .75pt .75pt'><p class=MsoNormal align=center style='text-align:center'><b><span style='font-size:12.5pt'>MIME Type<o:p></o:p></span></b></p></td></tr></thead><tr><td style='border:solid windowtext 1.0pt;border-top:none;padding:.75pt .75pt .75pt .75pt'><p class=MsoNormal><span style='font-size:12.5pt'>Open Type<o:p></o:p></span></p></td><td style='border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;padding:.75pt .75pt .75pt .75pt'><p class=MsoNormal><span style='font-size:12.5pt'>.otf<o:p></o:p></span></p></td><td style='border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;padding:.75pt .75pt .75pt .75pt'><p class=MsoNormal><span style='font-size:12.5pt'>application/x-font-opentype<o:p></o:p></span></p></td></tr><tr><td style='border:solid windowtext 1.0pt;border-top:none;padding:.75pt .75pt .75pt .75pt'><p class=MsoNormal><span style='font-size:12.5pt'>True Type<o:p></o:p></span></p></td><td style='border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;padding:.75pt .75pt .75pt .75pt'><p class=MsoNormal><span style='font-size:12.5pt'>.ttf<o:p></o:p></span></p></td><td style='border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;padding:.75pt .75pt .75pt .75pt'><p class=MsoNormal><span style='font-size:12.5pt'>application/x-font-truetype<o:p></o:p></span></p></td></tr><tr><td style='border:solid windowtext 1.0pt;border-top:none;padding:.75pt .75pt .75pt .75pt'><p class=MsoNormal><span style='font-size:12.5pt'>WOFF<o:p></o:p></span></p></td><td style='border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;padding:.75pt .75pt .75pt .75pt'><p class=MsoNormal><span style='font-size:12.5pt'>.woff<o:p></o:p></span></p></td><td style='border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;padding:.75pt .75pt .75pt .75pt'><p class=MsoNormal><span style='font-size:12.5pt'>application/x-font-woff<o:p></o:p></span></p></td></tr></table><p class=MsoNormal><span style='font-size:11.0pt'><o:p> </o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt'>Great thinking, adding an important capability.  Specifying fonts can provide significant improvements in accessibility and also internationalization (I10N) and localization (L14N) of text.   For the long term, am thinking that author referral to a font file might also be done by adding a <i>url</i> field, providing greater consistency with other nodes in X3D, and avoiding any overloading on still-valuable functionality of <i>family</i> field.  For example:<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt'><o:p> </o:p></span></p><p class=MsoNormal style='margin-left:.5in'><b><span style='font-size:11.0pt'>15.4.1 FontStyle<o:p></o:p></span></b></p><p class=MsoNormal style='margin-left:.5in'><span style='font-size:11.0pt'>https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/text.html#X3DFontStyleNode<o:p></o:p></span></p><p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt;font-family:"Courier New"'><o:p> </o:p></span></p><p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt;font-family:"Courier New"'>FontStyle : X3DFontStyleNode {<o:p></o:p></span></p><p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt;font-family:"Courier New"'>  SFNode   [in,out] metadata    NULL    [X3DMetadataObject]<o:p></o:p></span></p><p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt;font-family:"Courier New"'>  MFString [in,out] family      "SERIF"<o:p></o:p></span></p><p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt;font-family:"Courier New"'>  SFBool   [in,out] horizontal  TRUE<o:p></o:p></span></p><p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt;font-family:"Courier New"'>  MFString [in,out] justify     "BEGIN" ["BEGIN"|"END"|"FIRST"|"MIDDLE"|""],["BEGIN"|"END"|"FIRST"|"MIDDLE"|""] <o:p></o:p></span></p><p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt;font-family:"Courier New"'>  SFString [in,out] language    ""<o:p></o:p></span></p><p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt;font-family:"Courier New"'>  SFBool   [in,out] leftToRight TRUE<o:p></o:p></span></p><p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt;font-family:"Courier New"'>  SFFloat  [in,out] size        1.0     (0,∞)<o:p></o:p></span></p><p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt;font-family:"Courier New"'>  SFFloat  [in,out] spacing     1.0     [0,∞)<o:p></o:p></span></p><p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt;font-family:"Courier New"'>  SFString [in,out] style       "PLAIN" ["PLAIN"|"BOLD"|"ITALIC"|"BOLDITALIC"|""]<o:p></o:p></span></p><p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt;font-family:"Courier New"'>  SFBool   [in,out] topToBottom TRUE<o:p></o:p></span></p><p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt;font-family:"Courier New"'>  <span style='background:yellow;mso-highlight:yellow'>MFString [in,out] url         []</span><o:p></o:p></span></p><p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt;font-family:"Courier New"'>}<o:p></o:p></span></p><p class=MsoNormal style='margin-left:.5in'><span style='font-size:11.0pt'><o:p> </o:p></span></p><p class=MsoNormal style='margin-left:.5in'><span style='font-size:11.0pt'>The FontStyle node defines the size, family, and style used for Text nodes (see 15.2.2 Text formatting), as well as the direction of the text strings and any language-specific rendering techniques used for non-English text. See Text for a description of the Text node.<o:p></o:p></span></p><p class=MsoNormal style='margin-left:.5in'><span style='font-size:11.0pt'><o:p> </o:p></span></p><p class=MsoNormal style='margin-left:.5in'><span style='font-size:11.0pt;background:yellow;mso-highlight:yellow'>The <i>url</i> field defines a font file …</span><span style='font-size:11.0pt'><o:p></o:p></span></p><p class=MsoNormal style='margin-left:.5in'><span style='font-size:11.0pt'>[…]<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt'><o:p> </o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt'>Of note is that X3DOM also has an excellent mechanism to specify Web fonts but it is performed at the HTML CSS level, so it is not directly adaptable to native X3D in various file encodings and programming-language bindings.  Example:<o:p></o:p></span></p><ul type=disc><li class=MsoListParagraph style='mso-list:l1 level1 lfo6'><span style='font-size:11.0pt'>https://www.web3d.org/x3d/content/examples/X3dForWebAuthors/Chapter02GeometryPrimitives/TextHaveunWithX3DX3dom.xhtml<o:p></o:p></span></li><li class=MsoListParagraph style='mso-list:l1 level1 lfo6'><span style='font-size:11.0pt'>view-source:https://www.web3d.org/x3d/content/examples/X3dForWebAuthors/Chapter02GeometryPrimitives/TextHaveFunWithX3DX3dom.xhtml<o:p></o:p></span></li><li class=MsoListParagraph style='mso-list:l1 level1 lfo6'><span style='font-size:11.0pt'>(see </span><span style='font-size:10.0pt;font-family:"Courier New"'><style type="text/css"></span><span style='font-size:11.0pt'> section)<o:p></o:p></span></li><li class=MsoListParagraph style='mso-list:l1 level1 lfo6'><span style='font-size:11.0pt'>X3DOM Text Example <o:p></o:p></span></li><li class=MsoListParagraph style='mso-list:l1 level1 lfo6'><span style='font-size:11.0pt'>https://x3dom.org/x3dom/example/x3dom_text.html<o:p></o:p></span></li></ul><p class=MsoNormal><span style='font-size:11.0pt'>More on Web fonts:<o:p></o:p></span></p><ul type=disc><li class=MsoListParagraph style='mso-list:l1 level1 lfo6'><span style='font-size:11.0pt'>Fonts on the Web<o:p></o:p></span></li><li class=MsoListParagraph style='mso-list:l1 level1 lfo6'><span style='font-size:11.0pt'>https://www.w3.org/Font<o:p></o:p></span></li><li class=MsoListParagraph style='mso-list:l1 level1 lfo6'><span style='font-size:11.0pt'>History of the Web: The Decade-Long Path to Web Fonts<o:p></o:p></span></li><li class=MsoListParagraph style='mso-list:l1 level1 lfo6'><span style='font-size:11.0pt'>https://thehistoryoftheweb.com/web-fonts<o:p></o:p></span></li><li class=MsoListParagraph style='mso-list:l1 level1 lfo6'><span style='font-size:11.0pt'>Wikipedia: Web typography<o:p></o:p></span></li><li class=MsoListParagraph style='mso-list:l1 level1 lfo6'><span style='font-size:11.0pt'>https://en.wikipedia.org/wiki/Web_typography<o:p></o:p></span></li><li class=MsoListParagraph style='mso-list:l1 level1 lfo6'><span style='font-size:11.0pt'>https://en.wikipedia.org/wiki/Web_typography#Web_fonts<o:p></o:p></span></li></ul><p class=MsoNormal><span style='font-size:11.0pt'>I’ve thought for years that author inability to define fonts of interest was a significant gap in X3D.  This capability by X_ITE demonstrates a clear path forward.  Am thinking we should figure this out together, adopt a twice-implemented consensus result as a Web3D Recommended Practice, and then add it to the ISO amendment list for X3D 4.0.<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt'><o:p> </o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt'>Prior discussion details follow, but the above provides a pretty-good summary.<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt'><o:p> </o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt'>Comments and discussion welcome.  Have fun with X3D!   </span><span style='font-size:11.0pt;font-family:"Segoe UI Emoji",sans-serif'>😊</span><span style='font-size:11.0pt'><o:p></o:p></span></p><div><p class=MsoNormal><span style='font-size:9.0pt;font-family:"Courier New"'><o:p> </o:p></span></p><p class=MsoNormal><span style='font-size:9.0pt;font-family:"Courier New"'>all the best, Don<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:9.0pt;font-family:"Courier New"'>-- <o:p></o:p></span></p><p class=MsoNormal><span style='font-size:9.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:9.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:9.0pt;font-family:"Courier New"'>X3D graphics, virtual worlds, navy robotics https://faculty.nps.edu/brutzman<o:p></o:p></span></p></div><p class=MsoNormal><span style='font-size:11.0pt'><o:p> </o:p></span></p><div><div style='border:none;border-top:solid #E1E1E1 1.0pt;padding:3.0pt 0in 0in 0in'><p class=MsoNormal><b><span style='font-size:11.0pt;font-family:"Calibri",sans-serif'>From:</span></b><span style='font-size:11.0pt;font-family:"Calibri",sans-serif'> Brutzman, Donald (Don) (CIV) <brutzman@nps.edu> <br><b>Sent:</b> Wednesday, May 1, 2024 3:49 PM<br><b>To:</b> Holger Seelig <holger.seelig@yahoo.de><br><b>Cc:</b> Brutzman, Donald (Don) (CIV) <brutzman@nps.edu><br><b>Subject:</b> RE: special character missing; FontStyle family/url for font file<o:p></o:p></span></p></div></div><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal><span style='font-size:11.0pt'>Wow this is really great Holger.  Example fixed by using SERIF at<o:p></o:p></span></p><ul type=disc><li class=MsoListParagraph style='mso-list:l3 level1 lfo1'><span style='font-size:11.0pt'>https://www.web3d.org/x3d/content/examples/X3dForWebAuthors/Chapter02GeometryPrimitives/TextHaveFunWithX3DIndex.html<o:p></o:p></span></li><li class=MsoListParagraph style='mso-list:l3 level1 lfo1'><span style='font-size:11.0pt'>https://www.web3d.org/x3d/content/examples/X3dForWebAuthors/Chapter02GeometryPrimitives/TextHaveFunWithX3D_SerifX_ITE.png<o:p></o:p></span></li></ul><p class=MsoNormal><span style='font-size:11.0pt'>Very interesting and innovative capability to support font files as part of <i>family</i> field.  8)  </span><span style='font-size:11.0pt;font-family:"Segoe UI Emoji",sans-serif'>😊</span><span style='font-size:11.0pt'><o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt'><o:p> </o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt'>Am thinking that we should add <u>url</u> field instead to FontStyle, so that author can still select a <i>family</i> within that font file with unchanged functionality.<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt'><o:p> </o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt'>If you agree, let’s proposed addition of <i>url</i> field on x3d-public mailing list.  Given positive review plus any further insights, we might then work towards elevating it as a Web3D Recommended Practice and then on towards ISO as an X3D 4.0 amendment.<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt'><o:p> </o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt'>Request your permission to share this email thread on x3d-public.  Again thanks for your efforts.<o:p></o:p></span></p><div><p class=MsoNormal><span style='font-size:9.0pt;font-family:"Courier New"'><o:p> </o:p></span></p><p class=MsoNormal><span style='font-size:9.0pt;font-family:"Courier New"'>all the best, Don<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:9.0pt;font-family:"Courier New"'>-- <o:p></o:p></span></p><p class=MsoNormal><span style='font-size:9.0pt;font-family:"Courier New"'>Don Brutzman  Naval Postgraduate School, Code USW/Br        <a href="mailto:brutzman@nps.edu">brutzman@nps.edu</a><o:p></o:p></span></p><p class=MsoNormal><span style='font-size:9.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:9.0pt;font-family:"Courier New"'>X3D graphics, virtual worlds, navy robotics <a href="https://faculty.nps.edu/brutzman">https://faculty.nps.edu/brutzman</a><o:p></o:p></span></p></div><p class=MsoNormal><span style='font-size:11.0pt'><o:p> </o:p></span></p><div><div style='border:none;border-top:solid #E1E1E1 1.0pt;padding:3.0pt 0in 0in 0in'><p class=MsoNormal><b><span style='font-size:11.0pt;font-family:"Calibri",sans-serif'>From:</span></b><span style='font-size:11.0pt;font-family:"Calibri",sans-serif'> Holger Seelig <<a href="mailto:holger.seelig@yahoo.de">holger.seelig@yahoo.de</a>> <br><b>Sent:</b> Wednesday, May 1, 2024 3:00 AM<br><b>To:</b> Brutzman, Donald (Don) (CIV) <<a href="mailto:brutzman@nps.edu">brutzman@nps.edu</a>><br><b>Subject:</b> Re: special character missing<o:p></o:p></span></p></div></div><p class=MsoNormal><o:p> </o:p></p><div><div><p class=MsoNormal>Hello Don,<o:p></o:p></p></div><div><p class=MsoNormal><o:p> </o:p></p></div><div><p class=MsoNormal>yes that is correct, X_ITE uses the Ubuntu font for SANS and TYPEWRITER and Droid Serif for SERIF. The fonts do not contain all characters of the UTF-8 space, but that is no reason to be sad. The FontStyle node offers the possibility to specify a font family other than the default built-in fonts. The family field can be used to specify a URL to a custom TTF or OTF font. This allows everyone to use their favourite font and also the one in their language (Emojis, Katakana, Arabic, or Chinese, ...).<o:p></o:p></p></div><div><p class=MsoNormal><o:p> </o:p></p></div><div><p class=MsoNormal>In X_ITE, the X3DFontStyleNode is internally an X3DUrlObject, which makes this possible.<o:p></o:p></p></div><div><p class=MsoNormal>https://create3000.github.io/x_ite/components/text/fontstyle/#supported-file-formats<o:p></o:p></p></div><div><p class=MsoNormal><o:p> </o:p></p></div><div><p class=MsoNormal>I think everyone is at peace with this.<o:p></o:p></p></div><div><p class=MsoNormal><o:p> </o:p></p></div><div><p class=MsoNormal>Best regards,<o:p></o:p></p></div><div><p class=MsoNormal>Holger<o:p></o:p></p></div><div><p class=MsoNormal><o:p> </o:p></p></div><div><p class=MsoNormal>PS: Coincidentally, the default SERIF font contains the smiley emoji :).<o:p></o:p></p></div><div><p class=MsoNormal><o:p> </o:p></p></div><div><div><div><div><div><div><div><div><p class=MsoNormal><span style='color:black'>--<o:p></o:p></span></p></div><div><p class=MsoNormal><span style='color:black'>Holger Seelig<o:p></o:p></span></p></div><div><p class=MsoNormal><span style='color:black'>Leipzig, Germany<o:p></o:p></span></p></div><div><p class=MsoNormal><span style='color:black'><o:p> </o:p></span></p></div><div><p class=MsoNormal><span style='color:black'><a href="mailto:holger.seelig@yahoo.de">holger.seelig@yahoo.de</a><o:p></o:p></span></p></div><div><p class=MsoNormal><span style='color:black'><a href="https://create3000.github.io/x_ite/">https://create3000.github.io/x_ite/</a><o:p></o:p></span></p></div></div></div></div></div></div></div></div><div><p class=MsoNormal style='margin-bottom:12.0pt'><o:p> </o:p></p><blockquote style='margin-top:5.0pt;margin-bottom:5.0pt'><div><p class=MsoNormal>Am 30.04.2024 um 16:27 schrieb Brutzman, Donald (Don) (CIV) <<a href="mailto:brutzman@nps.edu">brutzman@nps.edu</a>>:<o:p></o:p></p></div><p class=MsoNormal><o:p> </o:p></p><div><p class=MsoListParagraph style='mso-margin-top-alt:0in;margin-right:0in;margin-bottom:0in;margin-left:.25in;text-indent:-.25in;mso-list:l2 level1 lfo2'><![if !supportLists]><span style='font-size:11.0pt'><span style='mso-list:Ignore'>1.<span style='font:7.0pt "Times New Roman"'>   </span></span></span><![endif]><span style='font-size:11.0pt'>Thanks for all of the amazing things you are doing!  I hope to publicize some of them soon.<o:p></o:p></span></p><div style='margin-left:.25in'><p class=MsoNormal><span style='font-size:11.0pt'> <o:p></o:p></span></p></div><p class=MsoListParagraph style='mso-margin-top-alt:0in;margin-right:0in;margin-bottom:0in;margin-left:.25in;text-indent:-.25in;mso-list:l0 level1 lfo3'><![if !supportLists]><span style='font-size:11.0pt'><span style='mso-list:Ignore'>2.<span style='font:7.0pt "Times New Roman"'>   </span></span></span><![endif]><span style='font-size:11.0pt'>Looks like not all special characters are in your font set, example model missing “smiley face”<o:p></o:p></span></p><div><p class=MsoNormal><span style='font-size:11.0pt'> <o:p></o:p></span></p></div><ul style='margin-top:0in' type=disc><li class=MsoListParagraph style='margin-top:0in;margin-bottom:0in;mso-list:l4 level1 lfo4'><span style='font-size:11.0pt'>https://create3000.github.io/x_ite/playground/?url=https://www.web3d.org/x3d/content/examples/X3dForWebAuthors/Chapter02GeometryPrimitives/TextHaveFunWithX3D.x3d<o:p></o:p></span></li></ul><div><p class=MsoNormal><span style='font-size:11.0pt'> <o:p></o:p></span></p></div><div><p class=MsoNormal><span style='font-size:11.0pt'>from<o:p></o:p></span></p></div><ul style='margin-top:0in' type=disc><li class=MsoListParagraph style='margin-top:0in;margin-bottom:0in;mso-list:l5 level1 lfo5'><span style='font-size:11.0pt'>https://www.web3d.org/x3d/content/examples/X3dForWebAuthors/Chapter02GeometryPrimitives/TextHaveFunWithX3D,x3d<o:p></o:p></span></li><li class=MsoListParagraph style='margin-top:0in;margin-bottom:0in;mso-list:l5 level1 lfo5'><span style='font-size:11.0pt'>https://www.web3d.org/x3d/content/examples/X3dForWebAuthors/Chapter02GeometryPrimitives/TextHaveFunWithX3DIndex.html<o:p></o:p></span></li></ul><div><p class=MsoNormal><span style='font-size:9.0pt;font-family:"Courier New"'> </span><span style='font-size:11.0pt'><o:p></o:p></span></p></div><div><p class=MsoNormal><span style='font-size:9.0pt;font-family:"Courier New"'>all the best, Don</span><span style='font-size:11.0pt'><o:p></o:p></span></p></div><div><p class=MsoNormal><span style='font-size:9.0pt;font-family:"Courier New"'>--<span class=apple-converted-space> </span></span><span style='font-size:11.0pt'><o:p></o:p></span></p></div><div><p class=MsoNormal><span style='font-size:9.0pt;font-family:"Courier New"'>Don Brutzman  Naval Postgraduate School, Code USW/Br       <span class=apple-converted-space> </span><a href="mailto:brutzman@nps.edu">brutzman@nps.edu</a></span><span style='font-size:11.0pt'><o:p></o:p></span></p></div><div><p class=MsoNormal><span style='font-size:9.0pt;font-family:"Courier New"'>Watkins 270,  MOVES Institute, Monterey CA 93943-5000 USA    +1.831.656.2149</span><span style='font-size:11.0pt'><o:p></o:p></span></p></div><div><p class=MsoNormal><span style='font-size:9.0pt;font-family:"Courier New"'>X3D graphics, virtual worlds, navy robotics<span class=apple-converted-space> </span><a href="https://faculty.nps.edu/brutzman">https://faculty.nps.edu/brutzman</a></span><span style='font-size:11.0pt'><o:p></o:p></span></p></div></div></blockquote></div><p class=MsoNormal><o:p> </o:p></p></div></div></body></html>