[x3d-public] special characters and fonts: extending FontStyle family/url for font file
Brutzman, Donald (Don) (CIV)
brutzman at nps.edu
Thu May 2 02:19:24 PDT 2024
[Am forwarding this email thread with permission – thank you Holger.]
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 family field to achieve this, compatibly extending (and retaining validation) of the existing X3D specification. Cool!
* X_ITE, Font Style, Support File Formats
* https://create3000.github.io/x_ite/components/text/fontstyle/#supported-file-formats
* It is possible to specify in the family field a URL of a custom font file of the following types:
Encoding
File Extension
MIME Type
Open Type
.otf
application/x-font-opentype
True Type
.ttf
application/x-font-truetype
WOFF
.woff
application/x-font-woff
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 url field, providing greater consistency with other nodes in X3D, and avoiding any overloading on still-valuable functionality of family field. For example:
15.4.1 FontStyle
https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/text.html#X3DFontStyleNode
FontStyle : X3DFontStyleNode {
SFNode [in,out] metadata NULL [X3DMetadataObject]
MFString [in,out] family "SERIF"
SFBool [in,out] horizontal TRUE
MFString [in,out] justify "BEGIN" ["BEGIN"|"END"|"FIRST"|"MIDDLE"|""],["BEGIN"|"END"|"FIRST"|"MIDDLE"|""]
SFString [in,out] language ""
SFBool [in,out] leftToRight TRUE
SFFloat [in,out] size 1.0 (0,∞)
SFFloat [in,out] spacing 1.0 [0,∞)
SFString [in,out] style "PLAIN" ["PLAIN"|"BOLD"|"ITALIC"|"BOLDITALIC"|""]
SFBool [in,out] topToBottom TRUE
MFString [in,out] url []
}
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.
The url field defines a font file …
[…]
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:
* https://www.web3d.org/x3d/content/examples/X3dForWebAuthors/Chapter02GeometryPrimitives/TextHaveunWithX3DX3dom.xhtml
* view-source:https://www.web3d.org/x3d/content/examples/X3dForWebAuthors/Chapter02GeometryPrimitives/TextHaveFunWithX3DX3dom.xhtml
* (see <style type="text/css"> section)
* X3DOM Text Example
* https://x3dom.org/x3dom/example/x3dom_text.html
More on Web fonts:
* Fonts on the Web
* https://www.w3.org/Font
* History of the Web: The Decade-Long Path to Web Fonts
* https://thehistoryoftheweb.com/web-fonts
* Wikipedia: Web typography
* https://en.wikipedia.org/wiki/Web_typography
* https://en.wikipedia.org/wiki/Web_typography#Web_fonts
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.
Prior discussion details follow, but the above provides a pretty-good summary.
Comments and discussion welcome. Have fun with X3D! 😊
all the best, Don
--
Don Brutzman Naval Postgraduate School, Code USW/Br brutzman at nps.edu
Watkins 270, MOVES Institute, Monterey CA 93943-5000 USA +1.831.656.2149
X3D graphics, virtual worlds, navy robotics https://faculty.nps.edu/brutzman
From: Brutzman, Donald (Don) (CIV) <brutzman at nps.edu>
Sent: Wednesday, May 1, 2024 3:49 PM
To: Holger Seelig <holger.seelig at yahoo.de>
Cc: Brutzman, Donald (Don) (CIV) <brutzman at nps.edu>
Subject: RE: special character missing; FontStyle family/url for font file
Wow this is really great Holger. Example fixed by using SERIF at
* https://www.web3d.org/x3d/content/examples/X3dForWebAuthors/Chapter02GeometryPrimitives/TextHaveFunWithX3DIndex.html
* https://www.web3d.org/x3d/content/examples/X3dForWebAuthors/Chapter02GeometryPrimitives/TextHaveFunWithX3D_SerifX_ITE.png
Very interesting and innovative capability to support font files as part of family field. 8) 😊
Am thinking that we should add url field instead to FontStyle, so that author can still select a family within that font file with unchanged functionality.
If you agree, let’s proposed addition of url 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.
Request your permission to share this email thread on x3d-public. Again thanks for your efforts.
all the best, Don
--
Don Brutzman Naval Postgraduate School, Code USW/Br brutzman at nps.edu <mailto:brutzman at nps.edu>
Watkins 270, MOVES Institute, Monterey CA 93943-5000 USA +1.831.656.2149
X3D graphics, virtual worlds, navy robotics https://faculty.nps.edu/brutzman
From: Holger Seelig <holger.seelig at yahoo.de <mailto:holger.seelig at yahoo.de> >
Sent: Wednesday, May 1, 2024 3:00 AM
To: Brutzman, Donald (Don) (CIV) <brutzman at nps.edu <mailto:brutzman at nps.edu> >
Subject: Re: special character missing
Hello Don,
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, ...).
In X_ITE, the X3DFontStyleNode is internally an X3DUrlObject, which makes this possible.
https://create3000.github.io/x_ite/components/text/fontstyle/#supported-file-formats
I think everyone is at peace with this.
Best regards,
Holger
PS: Coincidentally, the default SERIF font contains the smiley emoji :).
--
Holger Seelig
Leipzig, Germany
holger.seelig at yahoo.de <mailto:holger.seelig at yahoo.de>
https://create3000.github.io/x_ite/
Am 30.04.2024 um 16:27 schrieb Brutzman, Donald (Don) (CIV) <brutzman at nps.edu <mailto:brutzman at nps.edu> >:
1. Thanks for all of the amazing things you are doing! I hope to publicize some of them soon.
2. Looks like not all special characters are in your font set, example model missing “smiley face”
* https://create3000.github.io/x_ite/playground/?url=https://www.web3d.org/x3d/content/examples/X3dForWebAuthors/Chapter02GeometryPrimitives/TextHaveFunWithX3D.x3d
from
* https://www.web3d.org/x3d/content/examples/X3dForWebAuthors/Chapter02GeometryPrimitives/TextHaveFunWithX3D,x3d
* https://www.web3d.org/x3d/content/examples/X3dForWebAuthors/Chapter02GeometryPrimitives/TextHaveFunWithX3DIndex.html
all the best, Don
--
Don Brutzman Naval Postgraduate School, Code USW/Br brutzman at nps.edu <mailto:brutzman at nps.edu>
Watkins 270, MOVES Institute, Monterey CA 93943-5000 USA +1.831.656.2149
X3D graphics, virtual worlds, navy robotics https://faculty.nps.edu/brutzman
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://web3d.org/pipermail/x3d-public_web3d.org/attachments/20240502/cd7a7425/attachment-0001.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: smime.p7s
Type: application/pkcs7-signature
Size: 7709 bytes
Desc: not available
URL: <http://web3d.org/pipermail/x3d-public_web3d.org/attachments/20240502/cd7a7425/attachment-0001.p7s>
More information about the x3d-public
mailing list