<div dir="ltr"><div dir="ltr"><div>Hi,</div><div><br></div><div>I took a first stab at Displacers in Segments for x3dom and use it now in the editor:</div><div><br></div><div><a href="https://andreasplesch.github.io/Library/Viewer/index.html?url=https://raw.githubusercontent.com/coderextreme/ci2had/refs/heads/main/resources/ManyClocks.x3d">https://andreasplesch.github.io/Library/Viewer/index.html?url=https://raw.githubusercontent.com/coderextreme/ci2had/refs/heads/main/resources/ManyClocks.x3d</a></div></div><div><br></div><div>This is experimental and mostly for testing purposes. If there is an example combining Displacers in both Joints and Segments that would be interesting as it is not necessarily expected to work.<br></div><div>The experimental implementation is inefficient and expensive as it is weight_changed event driven. If you activate multiple displacers the frame rate starts to drop. It probably is not very useful at this point.</div><div><br></div><div>Fee free to give it a try, -Andreas<br></div><div><br></div><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Wed, Feb 5, 2025, 4:11 PM Andreas Plesch <<a href="mailto:andreasplesch@gmail.com" target="_blank">andreasplesch@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="auto"><div>Hi John,<div dir="auto"><br></div><div dir="auto">Thanks. I found the tongue.x3d example but if you can create another one that would be helpful in general. </div><div dir="auto"><br></div><div dir="auto">You vastly overestimate my ability and availability ;) This would be a longer term project. I have an idea what to do.</div><div dir="auto"><br></div><div dir="auto">Andreas</div><br><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Wed, Feb 5, 2025, 1:31 PM John Carlson <<a href="mailto:yottzumm@gmail.com" rel="noreferrer" target="_blank">yottzumm@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="auto">I had one I sent to Holger, probably derived from this one:</div><div dir="auto"><br></div><div dir="auto"><div><a href="https://github.com/coderextreme/ci2had/blob/main/resources/JinMouthStretch.x3d" rel="noreferrer noreferrer" target="_blank">https://github.com/coderextreme/ci2had/blob/main/resources/JinMouthStretch.x3d</a></div><div dir="auto"><br></div><div dir="auto"><br></div>What I would do (again) is take out all the segments but the tongue.</div><div dir="auto"><br></div><div dir="auto">There’s no menus involved in this one.</div><div dir="auto"><br></div><div dir="auto">If you need further assistance, like a smaller example, I can help.  Also all the Jin*.x3d FACS action units can also provide examples.</div><div dir="auto"><br></div><div dir="auto">I’ll be pretty unbusy today.  I can allocate some time for creating a model, make sure it animates, etc.</div><div dir="auto"><br></div><div dir="auto">If you’re able to allocate some time today, great, we have an HAnim meeting tomorrow and showing off X3DOM editor using Displacers would be fantastic!</div><div dir="auto"><br></div><div dir="auto">Remember there’s a coord field in HAnimSegment that the HAnimDisplacer operates on!</div><div dir="auto"><br></div><div dir="auto">John</div><div dir="auto"><br></div><div dir="auto"><div class="gmail_quote" dir="auto"><div dir="ltr" class="gmail_attr">On Wed, Feb 5, 2025 at 12:01 PM Andreas Plesch <<a href="mailto:andreasplesch@gmail.com" rel="noreferrer noreferrer" target="_blank">andreasplesch@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div dir="auto"><div>Hi John,<div dir="auto"><br></div><div dir="auto">The reason is that Displacers are currently implemented in x3dom only for Joints, but not for Segments, unfortunately. Do you know of a simple but instructive test case of Segments with Displacers ?</div></div></div></div><div dir="ltr"><div dir="auto"><div><div dir="auto"><br></div><div dir="auto"></div><div dir="auto">Andreas</div><br><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Tue, Feb 4, 2025, 2:33 PM John Carlson <<a href="mailto:yottzumm@gmail.com" rel="noreferrer noreferrer" target="_blank">yottzumm@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="auto">I will try to test this in castle model converter.</div><div dir="auto"><br></div><div dir="auto">I did try setting a value for the outputOnly fields, but the converter wouldn’t shut up.</div><div dir="auto"><br></div><div dir="auto">The model below doesn’t seem to animate when one presses the menu items.  Did you get it to animate?</div><div dir="auto"><br><div class="gmail_quote" dir="auto"><div dir="ltr" class="gmail_attr">On Tue, Feb 4, 2025 at 12:27 PM Andreas Plesch <<a href="mailto:andreasplesch@gmail.com" rel="noreferrer noreferrer noreferrer" target="_blank">andreasplesch@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div>Hi John, all,<br></div><div><br></div><div>It turns out that x3dom currently expects a default value for Proto fields even for outputOnly fields. This is due to how Proto fields are initialized. They always need to have a value. While the spec. does not require this, it seems still good practice to always define a default value in the ProtoInterface. There may be a case where an outputOnly field is used in ISing where a valid value would be expected. There may be other corner cases.<br></div><div><br></div><div>Here is your example with added default values for outputOnly fields:<br></div><div><br></div><div><a href="https://andreasplesch.github.io/Library/Viewer/index.html?url=https://gist.githubusercontent.com/andreasplesch/af5ff3148c1159f71d34fb78c1f63024/raw/b3d4470107ab74e301ed48448ab2a4f4154672e0/ManyClocks_John.x3d" rel="noreferrer noreferrer noreferrer" target="_blank">https://andreasplesch.github.io/Library/Viewer/index.html?url=https://gist.githubusercontent.com/andreasplesch/af5ff3148c1159f71d34fb78c1f63024/raw/b3d4470107ab74e301ed48448ab2a4f4154672e0/ManyClocks_John.x3d</a></div><div><br></div><div>This could be fixed in x3dom, by always setting some default value. Is there a list of recommended defaults for each data type if no other source of defaults is available? For SFTime it seems to be -1.</div></div><div dir="ltr"><div><br></div><div><br></div><div>-Andreas<br></div><div><br></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Mon, Feb 3, 2025 at 7:39 AM Andreas Plesch <<a href="mailto:andreasplesch@gmail.com" rel="noreferrer noreferrer noreferrer" target="_blank">andreasplesch@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div>Hi John,</div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Mon, Feb 3, 2025 at 12:48 AM John Carlson <<a href="mailto:yottzumm@gmail.com" rel="noreferrer noreferrer noreferrer" target="_blank">yottzumm@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr">Andreas, "startTime" is an accessType outputOnly field, so why do I need to provide a value attribute in fieldValue?  I'm kind of confused.  I'm probably missing something in the spec.</div></blockquote><div><br></div><div>You are right, I only outlined scenarios where the accessType allows input or initialization..</div><div>In the outputOnly case it is not necessary to provide a fieldValue node at all since there is no value which can be provided. Providing the node would indeed be confusing, to both the user code reader and any X3D browser.</div><div>I believe the spec. is silent on this case in any encoding.</div><div><br></div><div>Best, Andreas</div><div><br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div>Thanks for any clarification.</div><div><br></div><div>I have finally enabled schematron on the project, but I'm finding it hard to understand the messages, and modifications that I make, while removing the immediate problems, seem to move the problems elsewhere.</div><div><br></div><div>Explaining why I need a "startTime" fieldValue value is my main lack of understanding, but perhaps I need a whole review of accessType.</div><div><br></div><div>Castle Model Converter reports:</div><div><br></div><div>castle-model-converter: Warning: X3D: X3D XML: <fieldValue> element references unknown field name "enabled"<br>castle-model-converter: Warning: X3D: X3D XML: <fieldValue> element references unknown field name "startTime"<br>castle-model-converter: Warning: X3D: X3D XML: <fieldValue> element references unknown field name "stopTime"</div><div><br></div><div>I will try providing a field value in the ProtoInterface</div><div><br></div><div>If I "cleanup" enabled, startTime and stopTime, I get:</div><div><br></div><div>castle-model-converter: Warning: VRML/X3D: Within prototype "MenuItem", event "inputTrue" references (by "IS" clause) non-existing event "enabled"<br>castle-model-converter: Warning: VRML/X3D: Within prototype "MenuItem", event "triggerTime" references (by "IS" clause) non-existing event "startTime"<br>castle-model-converter: Warning: VRML/X3D: Within prototype "MenuItem", event "triggerTime" references (by "IS" clause) non-existing event "stopTime"</div><div><br></div><div>I guess what I conclude at this point is, startTime and stopTime are bad DEF names, but what about enabled as a field?  The dominoes are falling.</div><div><br></div><div>About your two scenarios in the other message, perhaps this is revealing.</div><div><br></div><div>See attached attempt to fix original issue, which resulted in the above.</div><div><br></div><div>John</div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Sun, Feb 2, 2025 at 3:59 PM Andreas Plesch <<a href="mailto:andreasplesch@gmail.com" rel="noreferrer noreferrer noreferrer" target="_blank">andreasplesch@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div>I think x3dom, reasonably, expects a value for the fieldValue nodes:</div><div><br></div><div>For example:</div><div><br></div><fieldValue name="startTime" /><div><br></div><div>and others.</div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Sun, Feb 2, 2025 at 5:42 AM John Carlson <<a href="mailto:yottzumm@gmail.com" rel="noreferrer noreferrer noreferrer" target="_blank">yottzumm@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div>Andreas, Joe,</div><div><br></div><div>Reset Button, Reset_Clock added.</div><div><br></div><div>See attached zip for details, or visit link;</div><div><br></div><div><a href="https://create3000.github.io/x_ite/playground/?url=https://raw.githubusercontent.com/coderextreme/ci2had/refs/heads/main/resources/CleanedYouClocks.x3d" rel="noreferrer noreferrer noreferrer" target="_blank">https://create3000.github.io/x_ite/playground/?url=https://raw.githubusercontent.com/coderextreme/ci2had/refs/heads/main/resources/CleanedYouClocks.x3d</a></div><div><br></div><div>For some reason, this link doesn't show the live scene?</div><div><br></div><div><a href="https://andreasplesch.github.io/Library/Viewer/index.html?url=https://raw.githubusercontent.com/coderextreme/ci2had/refs/heads/main/resources/CleanedYouClocks.x3d" rel="noreferrer noreferrer noreferrer" target="_blank">https://andreasplesch.github.io/Library/Viewer/index.html?url=https://raw.githubusercontent.com/coderextreme/ci2had/refs/heads/main/resources/CleanedYouClocks.x3d</a></div><div><br></div><div>Puzzled, haven't researched it yet.  Looks good in Sunrize and X_ITE, will try FreeWRL next.</div><div><br></div><div>John</div><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="auto"><div class="gmail_quote" dir="auto"><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
</blockquote></div></div>
</blockquote></div>
</blockquote></div></div>
</blockquote></div><div><br clear="all"></div><div><br></div><span class="gmail_signature_prefix">-- </span><br><div dir="ltr" class="gmail_signature"><div dir="ltr"><div>Andreas Plesch<br>Waltham, MA 02453</div></div></div>
</blockquote></div>
</blockquote></div><div><br clear="all"></div><div><br></div><span class="gmail_signature_prefix">-- </span><br><div dir="ltr" class="gmail_signature"><div dir="ltr"><div>Andreas Plesch<br>Waltham, MA 02453</div></div></div></div>
</blockquote></div><div><br clear="all"></div><br><span class="gmail_signature_prefix">-- </span><br><div dir="ltr" class="gmail_signature"><div dir="ltr"><div>Andreas Plesch<br>Waltham, MA 02453</div></div></div>
</blockquote></div></div>
</blockquote></div></div></div>
</div>
</blockquote></div></div>
</blockquote></div></div></div>
</blockquote></div>
</div>