<div dir="ltr"><div>Dick, Aaron and I had good discussions during today's X3D Standards Working Group meeting.</div><div><br></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:rgb(229,229,229) rgb(221,221,221) rgb(221,221,221);color:rgb(57,57,57);font-size:13px;border-radius:0px"><tbody style="box-sizing:border-box"><tr style="box-sizing:border-box"><td class="gmail-bug-description" colspan="5" style="box-sizing:border-box;padding:5px;line-height:1.42857;vertical-align:top;border-width:1px 0px;border-style:solid;border-color:rgb(221,221,221);border-radius:0px"><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 <i>info </i>field: paired "name=value" string array<br>- All of the HAnim nodes have a simple <i>description </i>field<br></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><font size="2" face="monospace">sequence<string> info []</font></li><li><font size="2" face="monospace">string description ""</font></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><font face="monospace">MFString [in,out] info []</font></li><li><font face="monospace">SFString [in,out] description ""</font></li></ul></ul><blockquote style="margin:0 0 0 40px;border:none;padding:0px">The X3D Architecture describes how to equivalently map the <i>info </i>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 <i>info </i>field equivalently in all of the nodes.</blockquote></td></tr></tbody></table><br></div><div>Mapping definition for X3D HAnimHumanoid <i>info </i>field:</div><blockquote style="margin:0 0 0 40px;border:none;padding:0px"><div><p style="color:rgb(0,0,0);font-family:Verdana,Arial,Helvetica,sans-serif">Metadata values from the <i style="">info</i> field can be equivalently encoded via <span class="gmail-proposed" title="Mantis 1513" style="background-color:yellow">a single</span> MetadataSet <span class="gmail-proposed" title="Mantis 1513" style="background-color:yellow">node with field <i>name="HAnimHumanoid.info"</i></span> containing <span class="gmail-proposed" title="Mantis 1513" style="background-color:yellow">corresponding MetadataString</span> <span class="gmail-proposedDeletion" title="Mantis 1513" style="background-color:orange;text-decoration-line:line-through">related X3DMetadataObject</span> nodes. <span class="gmail-proposed" title="Mantis 1513" style="background-color:yellow">No more than one set of such <code>term=value</code> pairs (via MFString <i>info</i> field or MetadataSet <i>name="HAnimHumanoid.info"</i> node) shall be included at one time.</span></p></div></blockquote><div><div class="gmail-proposed" title="Mantis 1513" style="background-color:yellow;color:rgb(0,0,0);font-family:Verdana,Arial,Helvetica,sans-serif"><p class="gmail-Example" style="margin-top:18px;margin-bottom:18px;font-family:univers,arial,sans-serif">EXAMPLE 1 <i>info</i> 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 dir="ltr" class="gmail_signature" data-smartmail="gmail_signature"><div dir="ltr"><div style="color:rgb(34,34,34)"><font face="monospace"><br></font></div><div style="color:rgb(34,34,34)"><font face="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.</font></div><div style="color:rgb(34,34,34)"><font face="arial, sans-serif"><br></font></div><div style="color:rgb(34,34,34)"><font face="arial, sans-serif">So... what do people think about adding an <i>info </i>field for all of the HAnim nodes, not just HAnimHumanoid?</font></div><div style="color:rgb(34,34,34)"><font face="monospace"><br></font></div><div style="color:rgb(34,34,34)"><font face="monospace">all the best, Don</font></div><div style="color:rgb(34,34,34)"><font face="monospace">-- </font></div><div style="color:rgb(34,34,34)"><font face="monospace">X3D Graphics, Maritime Robotics, Distributed Simulation</font></div><div style="color:rgb(34,34,34)"><font face="monospace">Relative Motion Consulting <a href="https://RelativeMotion.info" target="_blank">https://RelativeMotion.info</a></font></div></div></div></div></div>