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

Don Brutzman don.brutzman at gmail.com
Mon Jan 12 19:56:16 PST 2026


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/bbff75d3/attachment-0001.html>


More information about the x3d-public mailing list