<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
</head>
<body>
<div dir="ltr">
<div></div>
<div>
<div>Thanks for a good idea. It has come up before. We decided not to do that in the X3D architecture.</div>
<div dir="ltr"><br>
</div>
<div dir="ltr">I could think of a few alternative ways to implementers might want to do this.</div>
<div dir="ltr">
<ul>
<li>use source code, for example, JavaScript or Java or python</li><li>It is possible to put those array values in a MetadataFloat node. That node might be used by a Script node, that pass the values at runtime to the corresponding interpolators.</li><li>If such a technique is shown to be useful in practice, then you could write a prototype declaration to facilitate reuse. </li></ul>
</div>
<div id="ms-outlook-mobile-signature">
<div>Of course, BVH and HAnimMotion were all successfully designed to reduce the need for more verbose interpolators. </div>
<div dir="ltr"><br>
</div>
<div>As our compression tools become more competent, I expect that they will have no trouble reducing the size of models with such repetitive large float values.</div>
<div dir="ltr"><br>
</div>
<div dir="ltr">Bandwidth and disk sizes keep increasing too…</div>
<div dir="ltr"><br>
</div>
<div dir="ltr">And so, there are plenty of good options without resorting to reengineering the language. </div>
<div dir="ltr"><br>
</div>
<div dir="ltr">Have fun with X3D!  😀</div>
<div dir="ltr"><br>
</div>
<div>v/r Don</div>
</div>
</div>
</div>
<hr style="display:inline-block;width:98%" tabindex="-1">
<div id="divRplyFwdMsg" dir="ltr"><font face="Calibri, sans-serif" style="font-size:11pt" color="#000000"><b>From:</b> x3d-public <x3d-public-bounces@web3d.org> on behalf of John Carlson <yottzumm@gmail.com><br>
<b>Sent:</b> Monday, October 9, 2023 4:09:43 PM<br>
<b>To:</b> X3D Graphics public mailing list <x3d-public@web3d.org><br>
<b>Subject:</b> [x3d-public] Proposal: sharedKeyDEF, sharedKeyUSE</font>
<div> </div>
</div>
<div>Proposal to share keys between Interpolators to reduce file size.
<div dir="auto"><br>
</div>
<div dir="auto">A big part of the increased file size for animations is the duplication of the key fields in Interpolators.  My proposal is to add two fields, a DEF-like field and a USE-like field to all? Interpolator definitions in the standard.</div>
<div dir="auto"><br>
</div>
<div dir="auto">The first interpolator in a shared key group would have a keyDEF field naming the group.  A shared key field would be specified in the first interpolator, but not subsequent interpolators.  Subsequent interpolators in the group would have a
 keyUSE field referring to the shared key group.  Subsequent Interpolators would not have a key field.  A keyValue which is not shared would also be specified in all the interpolators.</div>
<div dir="auto"><br>
</div>
<div dir="auto">Different types of interpolators could share key values this way.</div>
<div dir="auto"><br>
</div>
<div dir="auto">This is already basically done for HAnimMotion, but HAnim lacks the nonlinear aspect of interpolator keys, which could be added to HAnimMotion if not there.</div>
<div dir="auto"><br>
</div>
<div dir="auto">This could be done with CSS class in HTML.</div>
<div dir="auto"><br>
</div>
<div dir="auto">John</div>
</div>
</body>
</html>