[x3d-public] got sample X3D model for FontLibrary or Tangent? glTF conversion progress, tooltips, names, etc. EnvironmentLight

John Carlson yottzumm at gmail.com
Mon Jan 12 21:33:32 PST 2026


Okay!

I will try to look for the examples on sourceforge to copy to my conversion
work folder.  If they aren’t on sourceforge, I will then go to email/blogs.

It’s the style of work I am comfortable with. We have different styles.

Thanks,

John

On Mon, Jan 12, 2026 at 9:56 PM Don Brutzman <don.brutzman at gmail.com> wrote:

> We only have 3 nodes.  Example scenes are linked in my blog post and in
> the mail threads, whenever we work on them.
>
> We still do not have a FontLibrary example.  Please do not send me any zip
> files.
>
>> *To date, three new nodes have been proposed, implemented, and evaluated
>> for X3D version 4.1 and HAnim version 2.1 draft standards:*
>>
>>    - *FontLibrary
>>    <https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4.1-CD/Part01/components/text.html#FontLibrary> node
>>    can load additional font files for use by Text and FontStyle nodes.*
>>    - *HAnimPose
>>    <https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19774/ISO-IEC19774-1/ISO-IEC19774-1v2.1/ISO-IEC19774-1v2.1-WD/Architecture/ObjectInterfaces.html#Pose> node sets HAnimJoint  values
>>    in a corresponding HAnimHumanoid skeleton. (example
>>    <https://www.web3d.org/x3d/content/examples/HumanoidAnimation/Poses/HAnimPosePrototypeX_ITE.html>)*
>>
>>
>> <https://www.web3d.org/x3d/content/examples/X3dForAdvancedModeling/GltfSampleModels/CatByMuruIndex.html>
>>
>>    - *Tangent
>>    <https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4.1-CD/Part01/components/rendering.html#Tangent> node defines
>>    a set of 3D surface-normal vectors used when computing lighting and shading
>>    for advanced physically based rendering (PBR) effects.
>>    (examples CatByMuru.x3d
>>    <https://www.web3d.org/x3d/content/examples/X3dForAdvancedModeling/GltfSampleModels/CatByMuruIndex.html>, HalloweenPumpkinLanternKnight.x3d
>>    <https://www.web3d.org/x3d/content/examples/X3dForAdvancedModeling/GltfSampleModels/HalloweenPumpkinLanternKnightIndex.html>,
>>    and SheenCloth.x3d
>>    <https://www.web3d.org/x3d/content/examples/X3dForAdvancedModeling/GltfSampleModels/SheenClothIndex.html>)*
>>
>>
> all the best, Don
> --
> X3D Graphics, Maritime Robotics, Distributed Simulation
> Relative Motion Consulting  https://RelativeMotion.info
>
>
> On Mon, Jan 12, 2026 at 7:07 PM John Carlson <yottzumm at gmail.com> wrote:
>
>> Sorry for posting over you, Don.
>>
>> I plan to migrate to X3D 4.1 soon, particularly X3DUOM.  Can we have a
>> collection (zip?) of .x3d documents that implement X3D 4.1 soon?
>>
>> I can probably search through the archives and create a zip, I just want
>> to make sure not to duplicate efforts.
>>
>> Thanks!
>>
>> John
>>
>> On Mon, Jan 12, 2026 at 12:18 PM Don Brutzman via x3d-public <
>> x3d-public at web3d.org> wrote:
>>
>>> A.  I have added the khronos license link to the model meta information,
>>> which also includes a local copy + link of the license provided earlier.
>>>
>>>    - X3D4AM, X3D for Advanced Modeling Examples Archive, Gltf Sample
>>>    Models, Sheen Cloth
>>>    <https://www.web3d.org/x3d/content/examples/X3dForAdvancedModeling/GltfSampleModels/SheenClothIndex.html>
>>>
>>> C.  CannonExterior.avif deleted.
>>>
>>> Glad to hear of your interest in EnvironmentLight !
>>>
>>> Dick Puk and I welcome readiness of draft specification for
>>> EnvironmentLight node - prior work with Michalis got it pretty close to
>>> completion already in X3D 4.0, but we were at deadline and there were not 2
>>> independent implementations.
>>>
>>> Following review and potential improvement of the below draft by
>>> everyone interested, I will integrate the node definition into X3D v4.1
>>> draft specification and add it to all of the validation tools.  This is a
>>> deferred action from X3D 4.0 standardization efforts.
>>>
>>>    - Mantis issue tracker #1336: 17.4.2 EnvironmentLight - Khronos glTF
>>>    extension for image based lighting
>>>    - https://mantis.web3d.org/view.php?id=1336
>>>    - *copy of Mantis issue attached, most recent node signature and
>>>    prose follows, all review comments welcome.*
>>>
>>> 17.4.2 EnvironmentLight
>>>>
>>>> Editors NOTE This preliminary node definition indicates intent to
>>>> implement Image Based Lighting (IBL) as defined by Khronos glTF
>>>> specification. Current activity by X3D practitioners is focused on
>>>> converged design, implementation and evaluation using the open-source
>>>> Castle Game Engine, X_ITE, and X3DOM X3D browsers. Further improvements are
>>>> expected.
>>>>
>>>> EnvironmentLight : X3DLightNode {
>>>>   SFFloat    [in,out] ambientIntensity    0          [0,1]
>>>
>>>   SFColor    [in,out] color               1 1 1      [0,1]
>>>
>>>   SFNode     [in,out] diffuse             NULL       [X3DSingleTextureNode]
>>>> # .DDS format
>>>
>>>   SFNode     [in,out] diffuseTexture      NULL
>>>>  [X3DEnvironmentTextureNode]
>>>
>>>   MFFloat    [in,out] diffuseCoefficients []
>>>
>>>   SFBool     [in,out] global              FALSE
>>>
>>>   SFFloat    [in,out] intensity           1          [0,inf)
>>>
>>>   SFNode     [in,out] metadata            NULL       [X3DMetadataObject]
>>>
>>>   SFBool     [in,out] on                  TRUE
>>>
>>>   SFRotation [in,out] rotation            0 0 1 0    [-1,1] or
>>>> (-inf,inf)
>>>
>>>   SFBool     [in,out] shadows               FALSE
>>>>   SFFloat    [in,out] shadowIntensity     1          [0,1]
>>>
>>>   SFNode     [in,out] specularTexture     NULL
>>>>  [X3DEnvironmentTextureNode]
>>>
>>> }
>>>> The EnvironmentLight node supports Image Based Lighting (IBL) by
>>>> specifying light-source intensity around a given location (i.e., the
>>>> environment) as a cube map. EnvironmentLight defines both specular radiance
>>>> and diffuse irradiance.
>>>>
>>>> The diffuseTexture and specularTexture fields define diffuse and
>>>> specular lighting modifications, respectively.
>>>>
>>>> The diffuseCoefficients field provides a 3 x 9 array of float values
>>>> that declares spherical harmonic coefficients for irradiance up to l=2,
>>>> corresponding to glTF irradianceCoefficients field. The diffuseCoefficients
>>>> field overrides the diffuseTexture field if both are provided.
>>>>
>>>> A description of the global field is in 17.2.1.2 Scoping of lights
>>>
>>>
>>> Looks like we have begun executing the next steps.  Looking forward to
>>> continuing progress.
>>>
>>> TODO
>>>> * prepare draft specification prose for X3D 4.1
>>>> * share examples in X3D Examples Archives
>>>> * encourage adoption by authors and tool builders
>>>
>>>
>>> D.  X3D v4.0 is stable, approved, and an excellent default version for
>>> new models.  X3D v4.1 is draft and development is now fully supported, as
>>> reported in my 2026 New Year blog post.
>>>
>>>    - X3D and HAnim Assets Update, 2 JAN 2026
>>>    - https://relativemotion.info/x3d-and-hanim-assets-update
>>>
>>> I recommend using X3D 4.1 for any scene containing FontLibrary,
>>> HAnimPose, Tangent, or EnvironmentLight nodes.  Otherwise 4.0 is just fine;
>>> whatever people prefer is fine by me, the "X" in X3D is Extensible.
>>>
>>> Have fun with X3D v4.1 draft!  🤔
>>>
>>> all the best, Don
>>> --
>>> X3D Graphics, Maritime Robotics, Distributed Simulation
>>> Relative Motion Consulting  https://RelativeMotion.info
>>>
>>>
>>> On Mon, Jan 12, 2026 at 2:21 AM Holger Seelig <holger.seelig at yahoo.de>
>>> wrote:
>>>
>>>> A. There is a LICENCE file in the original folder:
>>>> https://github.com/KhronosGroup/glTF-Sample-Assets/blob/main/Models/SheenCloth/LICENSE.md
>>>>
>>>> C. Yes CannonExterior.avif can be deleted. I tested an EnvironmentLight
>>>> node, and removed it again because it’s still not supported by Castle. But
>>>> an EnvironmentLight is very important for PhysicalMaterial to see
>>>> reflections, metallic effects, brighter textures, and so on, otherwise
>>>> these material parts remain black or darker.
>>>>
>>>> D. Seems X_ITE should also switch to X3D4.1? 😃
>>>>
>>>> Best regards,
>>>> Holger
>>>>
>>>>>>>> Holger Seelig
>>>> holger.seelig at yahoo.de
>>>>
>>>> Am 12.01.2026 um 06:07 schrieb Don Brutzman <don.brutzman at gmail.com>:
>>>>
>>>> Thanks Holger.
>>>>
>>>> a. I was not able to figure out who the original creator was from the
>>>> README files or github history - "Microsoft" perhaps?  Appreciate your
>>>> upgrading this.
>>>>
>>>> b. Commented out undefined field in ImageTexture: <!--
>>>> colorSpaceConversion='false' -->
>>>>
>>>> c. Was CannonExterior.avif used in this model, or should it be deleted?
>>>>
>>>>    -
>>>>    https://www.web3d.org/x3d/content/examples/X3dForAdvancedModeling/GltfSampleModels/CannonExterior.avif
>>>>
>>>> d. Changed X3D version to 4.1 since Tangent node is present
>>>>
>>>> e. Once again looks identical in X_ITE and Castle.  👍
>>>>
>>>> f. This was an important example to finally get added because it
>>>> revealed important gaps in X3D XML Schema and DOCTYPE.  Now updated, along
>>>> with X3DUOM, X3DJSAIL, and X3D Ontology with X3DPSAIL x3d.py to follow.
>>>>
>>>> 11 JAN 2026, brutzman, seelig
>>>>> - (v4.0, v4.1) MultiTextureTransform can also contain
>>>>> TextureTransform3D and
>>>>>   TextureTransformMatrix3D in addition to TextureTransform
>>>>
>>>>
>>>>    -  X3D Specifications: Schema and DOCTYPE Validation
>>>>    - https://www.web3d.org/specifications
>>>>
>>>> g.   Hopefully the publication efforts and metadata look good.
>>>> Published in version control and online at
>>>>
>>>>    - X3D Example Archives: X3D4AM, X3D for Advanced Modeling, Gltf
>>>>    Sample Models, Sheen Cloth
>>>>    - MultiTexture model converted from glTF
>>>>    -
>>>>    https://www.web3d.org/x3d/content/examples/X3dForAdvancedModeling/GltfSampleModels/SheenClothIndex.html
>>>>
>>>> Have fun with advanced rendering using  X3D!  😀
>>>>
>>>> all the best, Don
>>>> --
>>>> X3D Graphics, Maritime Robotics, Distributed Simulation
>>>> Relative Motion Consulting  https://RelativeMotion.info
>>>> <https://relativemotion.info/>
>>>>
>>>>
>>>> On Sun, Jan 11, 2026 at 12:30 PM Holger Seelig <holger.seelig at yahoo.de>
>>>> wrote:
>>>>
>>>>> Here is a very simple example with only one shape that uses
>>>>> MultiTextureTransform (two different TextureTransformMatrix3D nodes) and
>>>>> MultiTextureCoordinate (where both TextureCoordinate node are actually the
>>>>> same). I have added a SheenCloth.x3d, converted with X_ITE. I have modified
>>>>> the original conversion file to make it work in Castle Model Viewer
>>>>> (removed the SheenMaterialExtension node, added proper NavigationInfo and
>>>>> Viewpoint, added MultiTextureCoordinate because Castle needs this, X_ITE
>>>>> uses the last TextureCoordinate if a mapping does not match). I attached
>>>>> the whole folder with all textures and the converted file SheenCloth.x3d.
>>>>>
>>>>> This file is originally from the glTF-Sample-Assets from Khronos:
>>>>>
>>>>> https://github.com/KhronosGroup/glTF-Sample-Assets/tree/main/Models/SheenCloth
>>>>>
>>>>> Best regards,
>>>>> Holger
>>>>>
>>>>> Am Sonntag, 11. Januar 2026 um 04:45:19 MEZ hat Don Brutzman <
>>>>> don.brutzman at gmail.com> Folgendes geschrieben:
>>>>>
>>>>>
>>>>> [cc: x3d-public since this topic has ballooned to be much bigger than
>>>>> originally expected]
>>>>>
>>>>> Background:  working on putting two of Michalis' Castle Model Viewer
>>>>> examples for X3D 4.1 Tangent node into the X3D Example Archives.
>>>>>
>>>>>    - X3D Example Archives: X3D4AM, X3D for Advanced Modeling, Gltf
>>>>>    Sample Models, Cat By Muru
>>>>>    -
>>>>>    https://www.web3d.org/x3d/content/examples/X3dForAdvancedModeling/GltfSampleModels/CatByMuruIndex.html
>>>>>    -
>>>>>    https://www.web3d.org/x3d/content/examples/X3dForAdvancedModeling/GltfSampleModels/CatByMuruX_ITE.html
>>>>>
>>>>> and
>>>>>
>>>>>    - X3D Example Archives: X3D4AM, X3D for Advanced Modeling, Gltf
>>>>>    Sample Models, Halloween Pumpkin Lantern Knight
>>>>>    -
>>>>>    https://www.web3d.org/x3d/content/examples/X3dForAdvancedModeling/GltfSampleModels/HalloweenPumpkinLanternKnightIndex.html
>>>>>    -
>>>>>    https://www.web3d.org/x3d/content/examples/X3dForAdvancedModeling/GltfSampleModels/HalloweenPumpkinLanternKnightX_ITE.html
>>>>>
>>>>> =================
>>>>>
>>>>> Continuing, mostly finishing this long thread:
>>>>>
>>>>> Thanks Holger for the TextureTransform technique.  I have applied that
>>>>> change in two models (CatByMuru.x3d and HalloweenPumpkinLanternNight.x3d to
>>>>> good effect.
>>>>>
>>>>> Have also added the following tooltip.
>>>>>
>>>>>    - X3D Tooltips: TextureTransform
>>>>>    -
>>>>>    https://www.web3d.org/x3d/content/X3dTooltips.html#TextureTransform
>>>>>
>>>>> Hint: image flip horizontal <TextureTransform DEF='FlipHorizontal'
>>>>> scale='-1 1' translation='-1 0'/>
>>>>> Hint: image flip vertical <TextureTransform DEF='FlipVertical'
>>>>> scale='1 -1' translation='0 -1'/>
>>>>>
>>>>> Noticed that when you apply such a TextureTransform, it is a child of
>>>>> the parent Appearance node, and not part of each ImageTexture (like the CGE
>>>>> attribute).  When there is an associated PhysicalMaterial and no mapping
>>>>> field is defined, that means the TextureTransform applies to all of the
>>>>> ImageTexture fields
>>>>> (baseTexture, emissiveTexture, metallicRoughnessTexture, normalTexture,
>>>>> occlusionTexture).  Similarly for UnlitMaterial.
>>>>>
>>>>> Michalis, should I leave mapping="" blank throughout, or else apply a
>>>>> value there (perhaps mapping='flipVertical' throughout)?
>>>>>
>>>>> We don't appear to mention this case explicitly in the specification,
>>>>> but I think the prose is OK and does not allow any other interpretation.
>>>>> (We can add more words for clarity if anyone wants to.)
>>>>>
>>>>>    - X3D Architecture version 4.1 draft, clause 12 Shape
>>>>>    component12.2.2 Appearance characteristics
>>>>>    -
>>>>>    https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4.1-CD/Part01/components/shape.html#AppearanceCharacteristics
>>>>>
>>>>> Also thanks Michalis, I have added generateMipMaps='true' to
>>>>> TextureProperties nodes, and handled DEF/USE.
>>>>>
>>>>>    - <TextureProperties DEF='AveragePixel' generateMipMaps='true'
>>>>>    magnificationFilter='AVG_PIXEL' minificationFilter='AVG_PIXEL_AVG_MIPMAP'/>
>>>>>
>>>>> HalloweenPumpkinLanternKnight.x3d model is too large for X3DJSAIL to
>>>>> load, unfortunately (currently 2.6MB) and so I was not able to reduce the
>>>>> extra-long floats in there (no more than 7 digits of precision are needed).
>>>>>
>>>>> Michalis, the character
>>>>> dollar; $ <https://en.wikipedia.org/wiki/$> U+
>>>>> <https://en.wikipedia.org/wiki/Basic_Latin_(Unicode_block)>0024is not
>>>>> within the range allowed for XML NMTOKEN (name token) data type, and so it
>>>>> is not recommended for X3D model interoperability across all file encodings
>>>>> and programming-language bindings.  See
>>>>>
>>>>>    - XML Recommendation, v1.1 (Second edition), World Wide Web
>>>>>    Consortium (W3C), 2.3 Common Syntactic Constructs, Names and Tokens
>>>>>    - https://www.w3.org/TR/xml11/#sec-common-syn
>>>>>
>>>>> DEF/USE, proto and other names in X3D Example Archive models are
>>>>> always conservative for best interoperability, additional suggestions
>>>>> always welcome.  Further details are maintained at
>>>>>
>>>>>    - X3D Scene Authoring Hint, NamingConventions
>>>>>    -
>>>>>    https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#NamingConventions
>>>>>
>>>>> Giving a node DEF='head' is legal, but it is confusing for the XML
>>>>> encoding, so I usually change things like that for clarity... which is
>>>>> often essential in the X3D Example Archives.  Not sure if we should add
>>>>> 'head' to the list of reserved words.
>>>>>
>>>>> *Both the CatByMuru and HalloweenPumpkinLanternKnight models are
>>>>> looking good and looking consistent, both for Castle Model Viewer and
>>>>> X_ITE/Playground/Sunrize.  Bravo!*
>>>>>
>>>>> X3DOM looks quite different (perhaps differing application of PBR
>>>>> textures in Physical Material node).  Perhaps someone wants to work on that
>>>>> open-source codebase... examples in the X3dForAdvancedModeling
>>>>> GltfSampleModels directly provide a lot of excellent test cases for glTF
>>>>> compatibility, with many others working already.
>>>>>
>>>>> New issue: since multiple TextureTransform nodes might be needed
>>>>> within an Appearance, should we allow multiple TextureTransform nodes in
>>>>> Appearance?  Right now that is an SFNode field.  If you think there is a
>>>>> use case that an author (or converter) would want more than one
>>>>> TextureTransform in the Appearance node, please advise.
>>>>>
>>>>>    - 12.4.2 Appearance
>>>>>    -
>>>>>    https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4.1-CD/Part01/components/shape.html#Appearance
>>>>>
>>>>> Appearance : X3DAppearanceNode {
>>>>>   SFNode   [in,out] acousticProperties NULL   [AcousticProperties]
>>>>>   SFFloat  [in,out] alphaCutoff        0.5    [0,1]
>>>>>   SFString [in,out] alphaMode          "AUTO" ["AUTO", "OPAQUE", "MASK", "BLEND"]
>>>>>   SFNode   [in,out] backMaterial       NULL   [X3DOneSidedMaterialNode]
>>>>>   SFNode   [in,out] fillProperties     NULL   [FillProperties]
>>>>>   SFNode   [in,out] lineProperties     NULL   [LineProperties]
>>>>>   SFNode   [in,out] material           NULL   [X3DMaterialNode]
>>>>>   SFNode   [in,out] metadata           NULL   [X3DMetadataObject]
>>>>>   SFNode   [in,out] pointProperties    NULL   [PointProperties]
>>>>>   MFNode   [in,out] shaders            []     [X3DShaderNode]
>>>>>   SFNode   [in,out] texture            NULL   [X3DTextureNode]
>>>>>   SFNode   [in,out] textureTransform   NULL   [X3DTextureTransformNode]
>>>>> }
>>>>>
>>>>> Have fun using glTF models in X3D!  😀
>>>>>
>>>>> all the best, Don
>>>>> --
>>>>> X3D Graphics, Maritime Robotics, Distributed Simulation
>>>>> Relative Motion Consulting  https://RelativeMotion.info
>>>>> <https://relativemotion.info/>
>>>>>
>>>>>
>>>>> On Sun, Jan 4, 2026 at 1:11 PM Holger Seelig <holger.seelig at yahoo.de>
>>>>> wrote:
>>>>>
>>>>> Instead of a flipVertically field, it is also possible to achieve this
>>>>> with a TextureTransform node
>>>>>
>>>>> DEF FlipVertically TextureTransform {
>>>>>   translation 0 -1
>>>>>   scale 1 -1
>>>>> }
>>>>>
>>>>> Another solution is to flip all texture coordinates (y’ = 1 - y).
>>>>>
>>>>> After all investigations I think that Castle and X_ITE are on the
>>>>> right way representing glTF textures, but all the examples miss a
>>>>> flipVertically in either way.
>>>>>
>>>>> Best regards,
>>>>> Holger
>>>>>
>>>>>>>>>> Holger Seelig
>>>>> holger.seelig at yahoo.de
>>>>>
>>>>>
>>>>> Am 04.01.2026 um 01:32 schrieb Michalis Kamburelis <
>>>>> michalis.kambi at gmail.com>:
>>>>>
>>>>> Hello Don,
>>>>>
>>>>> Great, thanks for the analysis of the file and tests on other
>>>>> browsers! Answers:
>>>>>
>>>>> 1. flipVertically:
>>>>>
>>>>>     - This is documented on
>>>>> https://castle-engine.io/x3d_implementation_texturing_extensions.php#section_flip_vertically
>>>>> , with reasons why.
>>>>>
>>>>>     - We talked about it in the past on x3d-public already.
>>>>>
>>>>>     - No, I don't think now that it deserves to be added to spec. Let
>>>>> it remain CGE extension. CGE should export with TextureTransform making
>>>>> this "flipVertically" unnecessary, and the files spec-conforming.
>>>>> Implementing this by "flipVertically" in CGE is just an optimization (see
>>>>> link above), effectively, since it's zero overhead to flip at loading. I
>>>>> feel it can remain CGE extension, actually.
>>>>>
>>>>>     - So, give me time, I'll fix these models to not use
>>>>> flipVertically :)
>>>>>
>>>>> 2. $ in name:
>>>>>
>>>>>     - I was under impression that $ is actually OK inside name in X3D.
>>>>> We use it in special situations (when "encoding" names with arbitrary chars
>>>>> from other formats) deliberately.
>>>>>
>>>>>     - Spec
>>>>> https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19776-2v4.0-WD1/Part02/grammar.html
>>>>> about "IdRestChars" implies $ is OK. ("$" is 0x24), from what I can tell.
>>>>>
>>>>>     - CGE code derived from this is
>>>>> https://github.com/castle-engine/castle-engine/blob/7dccdbb455d544e3659d6f049cde9bcf428c3c86/src/scene/load/x3dloadinternalutils.pas#L82
>>>>> .
>>>>>
>>>>>     - So: Are you sure "$" is not valid in X3D name? Where is this
>>>>> mentioned in spec? If that's the case -> no problem, I'll fix our code, and
>>>>> the test models.
>>>>>
>>>>> 3. """Wondering why you have those EXPORT statements"""
>>>>>
>>>>>     - Our glTF->X3D converter EXPORTs some named nodes, to allow
>>>>> animation of them by the outer X3D file.
>>>>>
>>>>>     - In short, it doesn't matter for these particular examples, these
>>>>> EXPORTS are not used in this case.
>>>>>
>>>>> 4. """<Transform DEF='head'/> has DEF name that illegally overrides a
>>>>> reserved word from the X3D Specification"""
>>>>>
>>>>>     - I was not aware that such names are disallowed.
>>>>>
>>>>>     - "head" is not mentioned as keyword on
>>>>> https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19776-2v4.0-WD1/Part02/grammar.html
>>>>> .
>>>>>
>>>>>     - It's not used by classic encoding, it's only an element name in
>>>>> X3D XML. I don't see how node name "head" could be really confused with
>>>>> element <head> in X3D?
>>>>>
>>>>>     - That said, we could fix the model (and CGE converter). Can you
>>>>> show me where in the specification is the "head" for node name disallowed?
>>>>> I can add a logic to our converter to avoid "head" name then.
>>>>>
>>>>> 5. """<TextureProperties DEF=''/> requires generateMipMaps='true'
>>>>> since minificationFilter='AVG_PIXEL_AVG_MIPMAP""""
>>>>>
>>>>>     - I'll fix it, indeed spec says "Mipmaps are required for
>>>>> filtering modes with MIPMAP in their value."
>>>>>
>>>>>     - Note that CGE ignores this field. Only the filtering determines
>>>>> whether we need mipmaps... so to us, generateMipMaps field is actually not
>>>>> useful.
>>>>>
>>>>>     - (And it could be confusing in case of files like DDS or KTX,
>>>>> where mipmaps are part of the image. In such case, we have mipmaps, we use
>>>>> them -> but we don't "generate" them).
>>>>>
>>>>>     - Anyhow, that's all minor notes :) We can just place
>>>>> generateMipMaps='true'.
>>>>>
>>>>> 6. About the float precision: We have a --float-precision option to
>>>>> Castle Model Converter, it was just not used for this. I can indeed
>>>>> reexxport this with smaller precision.
>>>>>
>>>>> Summary: Give me time :) and I'll fix
>>>>>
>>>>> - AD 1 - flipVertically
>>>>> - AD 5- generateMipMaps
>>>>> - AD 6 - float precision
>>>>>
>>>>> in the models.
>>>>>
>>>>> For 2 other questions, I'll appreciate a link to spec :), but of
>>>>> course we could also adjust to them, nothing problematic there :) This
>>>>> applies to:
>>>>>
>>>>> - AD 2 - $ in name
>>>>> - AD 4 - "head" in name
>>>>>
>>>>> Regards,
>>>>> Michalis
>>>>>
>>>>> sob., 3 sty 2026 o 07:11 Don Brutzman <don.brutzman at gmail.com>
>>>>> napisał(a):
>>>>>
>>>>> Thank you very much for recovering those, Michalis!
>>>>>
>>>>> I copied all three and put originals in version control, and began
>>>>> work on first.  Next step, ran/committed .x3d version through X3D
>>>>> Canonicalization (C14N) so that any changes which occur are evident.  Also
>>>>> added a variety of meta tags.
>>>>>
>>>>> Validation diagnostics quickly found the following errors:
>>>>>
>>>>>    - Attribute "flipVertically" must be declared for element type
>>>>>    "ImageTexture". (now omitted, may look funny)
>>>>>    - Attribute value "CastleEncoded_Pose_scene$46$fbx" of type IDREF
>>>>>    must be an NCName when namespaces are enabled. (changed $ character to
>>>>>    underscore _ character)
>>>>>
>>>>> If you would like to add *flipVertical *and *flipHorizontal *attributes
>>>>> to ImageTexture, or to interface X3DSingleTextureNode (ImageTexture,
>>>>> MovieTexture, PixelTexture), please propose that on x3d-public mail list.
>>>>> Seems plausible to me, if glTF has something like that then let's do it
>>>>> consistently.  No need to add "ly" suffix to names of such boolean fields.
>>>>> If everyone reaches consensus (or interest at least) then I can add them to
>>>>> XML DOCTYPE and Schema for draft version 4.1.
>>>>>
>>>>> Continued work on other diagnostics...
>>>>>
>>>>> Wondering why you have those EXPORT statements?
>>>>>
>>>>> Got illegal DEF name warning, renamed 'head' to 'modelHead'
>>>>>
>>>>>    - <Transform DEF='head'/> has DEF name that illegally overrides a
>>>>>    reserved word from the X3D Specification
>>>>>    [/X3D/Scene/Transform/Transform/Transform/Transform[1], error]
>>>>>
>>>>> Got several X3D Schematron warnings like this, do you agree?
>>>>>
>>>>>    - <TextureProperties DEF=''/> requires generateMipMaps='true'
>>>>>    since minificationFilter='AVG_PIXEL_AVG_MIPMAP' mode indicates MIPMAP
>>>>>    rendering
>>>>>    [/X3D/Scene/Transform/Transform/Transform/Transform[1]/Transform/Group/Shape/Appearance/PhysicalMaterial/ImageTexture[4]/TextureProperties,
>>>>>    error]
>>>>>    - looks like those three nodes are identical might be single DEF
>>>>>    with one USE
>>>>>
>>>>> Got a Schematron warning to take advantage of DEF/USE, and so did that.
>>>>>
>>>>>    - <ImageTexture DEF=''/> url array address(es) duplicate the url
>>>>>    definition found in a preceding node, consider DEF/USE to reduce download
>>>>>    delays and memory requirements for url content
>>>>>    (url='"textures/lambert2_metallicRoughness.png" "
>>>>>    https://www.web3d.org/x3d/content/examples/X3dForAdvancedModeling/GltfSampleModels/textures/lambert2_metallicRoughness.png"')
>>>>>    [/X3D/Scene/Transform/Transform/Transform/Transform[1]/Transform/Group/Shape/Appearance/PhysicalMaterial/ImageTexture[4],
>>>>>    warning]
>>>>>    - provided DEF, USE ='MetallicRoughness' while preserving
>>>>>    containerField values
>>>>>
>>>>> Gave it a white background for better visibility.
>>>>>
>>>>> Added identifying WorldInfo.
>>>>>
>>>>> When I ran the model through X3DJSAIL to reduce precision from 15
>>>>> digits to 8 digits after decimal point, file size went from 867KB to
>>>>> 471KB.  I think we can safely go down to 6 digits (micrometer resolution).
>>>>> Such reduction is valuable for large models, converters can have a switch
>>>>> for lossless/lossy conversion as an option.
>>>>>
>>>>> Now online at
>>>>>
>>>>>    - X3D Example Archives: X3D4AM, X3D for Advanced Modeling, Gltf
>>>>>    Sample Models, Cat By Muru Scene
>>>>>    - Converted glTF model showing use of Tangent node
>>>>>    -
>>>>>    https://www.web3d.org/x3d/content/examples/X3dForAdvancedModeling/GltfSampleModels/CatByMuruSceneIndex.html
>>>>>
>>>>> Castle and X_ITE look similar, X3DOM looks quite different (likely
>>>>> differing application of PBR textures).
>>>>>
>>>>> <image.png>
>>>>> <image.png>
>>>>>
>>>>> <image.png>
>>>>>
>>>>> all the best, Don
>>>>> --
>>>>> X3D Graphics, Maritime Robotics, Distributed Simulation
>>>>> Relative Motion Consulting  https://RelativeMotion.info
>>>>> <https://relativemotion.info/>
>>>>>
>>>>>
>>>>> On Fri, Jan 2, 2026 at 5:05 PM Michalis Kamburelis <
>>>>> michalis.kambi at gmail.com> wrote:
>>>>>
>>>>> I provided 3 sample models using Tangent in my answer to Don in
>>>>> thread "[x3d-public] Specification review progress: PNG3, Tangent
>>>>> node, HAnim weekly progress" on July :)
>>>>>
>>>>> See
>>>>> https://github.com/castle-engine/demo-models/tree/master/bump_mapping/tangents
>>>>> . It's probably easiest to "git clone" the whole repository
>>>>> https://github.com/castle-engine/demo-models to have all additional
>>>>> files (like textures).
>>>>>
>>>>> Details:
>>>>>
>>>>> - They look pretty and have been created by actual artists :) Original
>>>>> versions obtained in glTF format from Sketchfab.
>>>>>
>>>>> - They are on versions of Creative Commons licenses. So it's OK to
>>>>> reuse them, if you credit the authors. 2 of them on CC-BY-4.0 (so even
>>>>> commercial usage is allowed, you just need to credit the authors). 1
>>>>> of them on CC-BY-NC-SA-4.0, so no commercial usage allowed (don't know
>>>>> if it's a problem for X3D Examples Archive).
>>>>>
>>>>> - They were created by converting glTF versions to X3D using Castle
>>>>> Model Viewer.
>>>>>
>>>>> - I removed some CGE extensions from them (they don't contain
>>>>> animation in any way, including Skin), but admittedly I didn't test
>>>>> them in other browsers. Reports about compatibility with other X3D
>>>>> browsers are welcome. If there's anything non-spec-complaint in these
>>>>> examples -> let me know and I'll fix it.
>>>>>
>>>>> - Note that the models only make sense together with all the textures,
>>>>> they have textures in "textures/" subdirectory.
>>>>>
>>>>> - They are also larger files. I recall I tried to create some "more
>>>>> minimal" test, but from what I recall they just looked ugly /
>>>>> non-sensical :)
>>>>>
>>>>> Regards and have a great 2026 everyone ! :),
>>>>> Michalis
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>> pt., 2 sty 2026 o 07:33 Don Brutzman <don.brutzman at gmail.com>
>>>>> napisał(a):
>>>>> >
>>>>> > happy 2026!  i hope everyone is well.
>>>>> >
>>>>> > FYI i have deployed updates and support for draft x3d 4.1
>>>>> development and will announce soon...
>>>>> >
>>>>> > X3D Specifications: Schema and DOCTYPE Validation
>>>>> > https://www.web3d.org/specifications
>>>>> >
>>>>> > I was looking back through prior mail and had trouble finding some
>>>>> examples...
>>>>> >
>>>>> > If any of you have a simple X3D example for FontLibrary, or for
>>>>> Tangent node, I'd be happy to add it to our X3D Examples Archive.  This
>>>>> will help me test/confirm all the tools are working OK.
>>>>> >
>>>>> > Appreciate your considering this request, and all your many efforts.
>>>>> >
>>>>> > all the best, Don
>>>>> > --
>>>>> > X3D Graphics, Maritime Robotics, Distributed Simulation
>>>>> > Relative Motion Consulting  https://RelativeMotion.info
>>>>> <https://relativemotion.info/>
>>>>>
>>>>>
>>>>>
>>>> _______________________________________________
>>> 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/20260112/a5179087/attachment-0001.html>


More information about the x3d-public mailing list