<div style="color:rgb(0,0,0);font-family:arial,sans-serif;font-size:12pt"><p style="margin: 0.1rem 0; line-height: 1.0;">> <span style="font-family: arial, sans-serif;">adding an <em>info </em>field for all of the HAnim nodes, </span></p>
<p style="margin: 0.1rem 0; line-height: 1.0;"> </p>
<p style="margin: 0.1rem 0; line-height: 1.0;"><span style="font-family: arial, sans-serif;">seems fine to me</span></p>
<p style="margin: 0.1rem 0; line-height: 1.0;"><span style="font-family: arial, sans-serif;">Joe</span></p>
</div>
<div class="elnk-inline-message-container" style="border-left: 1px solid #aaa; box-sizing: border-box; padding: 10px 0 10px 15px; margin: 0;">
<p>-----Original Message-----<br>From: Don Brutzman via x3d-public <x3d-public@web3d.org><br>Sent: Mar 13, 2026 11:55 AM<br>To: Humanoid Animation (HAnim) Working Group <h-anim@web3d.org>, X3D Public Mailing List <x3d-public@web3d.org><br>Cc: Don Brutzman <don.brutzman@gmail.com><br>Subject: [x3d-public] Including metadata within an HAnim model</p>
<p style="margin: 0.1rem 0; line-height: 1.0;"> </p>
<div dir="ltr">
<div>Dick, Aaron and I had good discussions during today's X3D Standards Working Group meeting.</div>
<div> </div>
<div>One topic of shared interest:</div>
<div>
<ul>
<li>Mantis 1527: Including metadata within an HAnim model.</li>
<li><a href="https://mantis.web3d.org/view.php?id=1527">https://mantis.web3d.org/view.php?id=1527</a></li>
</ul>
</div>
<div>
<table class="gmail-table gmail-table-bordered gmail-table-condensed" style="font-family: Poppins; border-collapse: collapse; border-spacing: 0px; width: 1023.37px; max-width: 100%; margin-bottom: 0px; border-width: 0px; border-style: solid; border-color: #e5e5e5 #dddddd #dddddd; color: #393939; font-size: 13px; border-radius: 0px;">
<tbody style="box-sizing: border-box;">
<tr style="box-sizing: border-box;">
<td class="gmail-bug-description" style="box-sizing: border-box; padding: 5px; line-height: 1.42857; vertical-align: top; border-width: 1px 0px; border-style: solid; border-color: #dddddd; border-radius: 0px;" colspan="5"><br class="gmail-Apple-interchange-newline">
<blockquote style="margin: 0 0 0 40px; border: none; padding: 0px;">The metadata structure in an HAnim is relatively simple:<br>- HAnimHumanoid <em>info </em>field: paired "name=value" string array<br>- All of the HAnim nodes have a simple <em>description </em>field</blockquote>
<ul>
<li><a href="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19774/ISO-IEC19774-1/ISO-IEC19774-1v2.1/ISO-IEC19774-1v2.1-WD/Architecture/ObjectInterfaces.html#Humanoid">HAnimArchitecture draft v2.1, clause 6 Object interfaces, 6.3 Humanoid</a></li>
<ul>
<li><span style="font-family: monospace; font-size: small;">sequence<string> info []</span></li>
<li><span style="font-family: monospace; font-size: small;">string description ""</span></li>
</ul>
<li><a href="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4.1-CD/Part01/components/hanim.html#HAnimHumanoid">X3D Architecture, draft v4.1, 26.3.2 HAnimHumanoid</a></li>
<ul>
<li><span style="font-family: monospace;">MFString [in,out] info []</span></li>
<li><span style="font-family: monospace;">SFString [in,out] description ""</span></li>
</ul>
</ul>
<blockquote style="margin: 0 0 0 40px; border: none; padding: 0px;">The X3D Architecture describes how to equivalently map the <em>info </em>field of paired strings to a MetadataSet node.</blockquote>
<br style="box-sizing: border-box;">
<blockquote style="margin: 0 0 0 40px; border: none; padding: 0px;">As we continue to build humanoid models of greater sophistication, a likely use case will be inclusion of paired (and hopefully typed) metadata within any of the HAnim nodes. Some capability needs to be considered.</blockquote>
<br style="box-sizing: border-box;">
<blockquote style="margin: 0 0 0 40px; border: none; padding: 0px;">Perhaps a simple approach might be to use the <em>info </em>field equivalently in all of the nodes.</blockquote>
</td>
</tr>
</tbody>
</table>
</div>
<div>Mapping definition for X3D HAnimHumanoid <em>info </em>field:</div>
<blockquote style="margin: 0 0 0 40px; border: none; padding: 0px;">
<div>
<p style="color: #000000; font-family: Verdana,Arial,Helvetica,sans-serif;">Metadata values from the <em>info</em> field can be equivalently encoded via <span class="gmail-proposed" style="background-color: yellow;" title="Mantis 1513">a single</span> MetadataSet <span class="gmail-proposed" style="background-color: yellow;" title="Mantis 1513">node with field <em>name="HAnimHumanoid.info"</em></span> containing <span class="gmail-proposed" style="background-color: yellow;" title="Mantis 1513">corresponding MetadataString</span> <span class="gmail-proposedDeletion" style="background-color: orange; text-decoration-line: line-through;" title="Mantis 1513">related X3DMetadataObject</span> nodes. <span class="gmail-proposed" style="background-color: yellow;" title="Mantis 1513">No more than one set of such <code>term=value</code> pairs (via MFString <em>info</em> field or MetadataSet <em>name="HAnimHumanoid.info"</em> node) shall be included at one time.</span></p>
</div>
</blockquote>
<div>
<div class="gmail-proposed" style="background-color: yellow; color: #000000; font-family: Verdana,Arial,Helvetica,sans-serif;" title="Mantis 1513">
<p class="gmail-Example" style="margin-top: 18px; margin-bottom: 18px; font-family: univers,arial,sans-serif;">EXAMPLE 1 <em>info</em> field <code>term=value</code> pairs</p>
<pre class="gmail-node" style="margin-left: 25px;"> HAnimHumanoid {
name "JinLOA1"
info [ "gender=female" "height=1.5" "weight=50" ]
}
</pre>
<p class="gmail-Example" style="margin-top: 18px; margin-bottom: 18px; font-family: univers,arial,sans-serif;">EXAMPLE 2 MetadataSet node equivalent to EXAMPLE 1</p>
<pre class="gmail-node" style="margin-left: 25px;"> HAnimHumanoid {
name "JinLOA1"
metadata MetadataSet {
name "HAnimHumanoid.info"
reference "<a href="https://www.web3d.org/documents/specifications/19774/V2.0/Architecture/ObjectInterfaces.html#Humanoid">https://www.web3d.org/documents/specifications/19774/V2.0/Architecture/ObjectInterfaces.html#Humanoid</a>"
value [
MetadataString {
name "gender"
value [ "female" ]
}
MetadataFloat {
name "height"
value [ 1.5 ]
}
MetadataFloat {
name "weight"
value [ 50 ]
}
]
}
}</pre>
</div>
</div>
<div>
<div class="gmail_signature" dir="ltr" data-smartmail="gmail_signature">
<div dir="ltr">
<div style="color: #222222;"><span style="font-family: monospace;"> </span></div>
<div style="color: #222222;"><span style="font-family: arial, sans-serif;">I can see one editorial tweak to make in spec prose above: rather than forbidding it, allow MetadataSet to contain either MetadataString or other typed Metadata@ nodes for floats, booleans, etc. That will match the intent shown in the second example, which includes two MetadataFloat nodes.</span></div>
<div style="color: #222222;"><span style="font-family: arial, sans-serif;"> </span></div>
<div style="color: #222222;"><span style="font-family: arial, sans-serif;">So... what do people think about adding an <em>info </em>field for all of the HAnim nodes, not just HAnimHumanoid?</span></div>
<div style="color: #222222;"><span style="font-family: monospace;"> </span></div>
<div style="color: #222222;"><span style="font-family: monospace;">all the best, Don</span></div>
<div style="color: #222222;"><span style="font-family: monospace;">-- </span></div>
<div style="color: #222222;"><span style="font-family: monospace;">X3D Graphics, Maritime Robotics, Distributed Simulation</span></div>
<div style="color: #222222;"><span style="font-family: monospace;">Relative Motion Consulting <a href="https://RelativeMotion.info" target="_blank" rel="noopener">https://RelativeMotion.info</a></span></div>
</div>
</div>
</div>
</div>
</div>
<p style="margin: 0.1rem 0; line-height: 1.0;"> </p>