[x3d-public] start timer at fraction 0 after scene loading

John Carlson yottzumm at gmail.com
Sat Sep 9 22:27:51 PDT 2023


And here’s an animation chain output.

Enjoy!

https://github.com/coderextreme/jaminate/blob/main/Jaminate/app/src/main/javascript/takes.John.txt


On Sun, Sep 10, 2023 at 12:20 AM John Carlson <yottzumm at gmail.com> wrote:

> Here’s actual JavaScript code that takes a JSON file.
>
>
> https://github.com/coderextreme/jaminate/blob/main/Jaminate/app/src/main/javascript/takes.js
>
>
> This is one place to look to see if I’ve done stuff with fair use.
>
> As you can see from the comments, I had a lot of tries.
>
> John
>
> On Sun, Sep 10, 2023 at 12:13 AM John Carlson <yottzumm at gmail.com> wrote:
>
>> I am in total agreement with what Andreas described.   The VRML in the
>> link below is some of what I’ve implemented in my examples that I derived
>> from his  emails.  I’ve also done stuff like BooleanSequencer.next, which I
>> think came from Joe?  That’s still in my code as well.
>>
>> I did not click on these links Andreas, I trust you enough so I don’t
>> even need to see evidence of it working.
>>
>> I realize that Joe has to rewrite this to give to Don.  That’s the deal,
>> apparently.  I just want to give people credit for helping.  Thank you,
>> Andreas, Michalis, Holger, Don, Joe, Roy, etc.  we’re standing on the
>> shoulders of giants.
>>
>> Rinse, repeat, until it sinks in.
>>
>> The code is currently under Apache 2.0 license and is available below.
>> No WS specific stuff is there.  Some stuff is waiting on publication before
>> checkin.  The Java code is mine. I’m not responsible for publishing full
>> humanoids or actual animation, just timing examples for (multiple) actors.
>>
>> https://github.com/coderextreme/jaminate
>>
>> If someone issues a takedown of the code, please report it to the list as
>> well.
>>
>> I am currently in the process of delivering JSON output. JSON was my
>> idea, I gave an example because I we haven’t published the actual report
>> yet.  I’m waiting until some of the pain fades before I start coding again.
>>
>> You can’t see that it works without downloading, but I can do silent
>> videos. To make people more comfy about it.
>>
>> John
>>
>> On Sat, Sep 9, 2023 at 11:15 PM Andreas Plesch <andreasplesch at gmail.com>
>> wrote:
>>
>>> Thanks Joe for putting together this example. I can confirm that using
>>> stopTime_changed does not work with x3dom. First I thought it was a
>>> bug but it also does not work with x-ite so there is probably more to
>>> it..
>>>
>>> Rereading the spec at
>>>
>>> https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-IS.proof/Part01/components/time.html#Timeactivation
>>> ,
>>> generating a stopTime_changed would fall into 'final events' at the
>>> end of a cycle. But it is actually not clear that stopTime_changed
>>> should be generated according to the spec. The spec. only seems to
>>> refer to stopTime_changed for the case when a set_stopTime event is
>>> received. Which is what both x3dom and x-ite are doing.
>>>
>>> So I am now uncertain that stopTime should be used to chain
>>> TimeSensors although it would seem natural.
>>>
>>> Instead it is possible to use the isActive field which unequivocally
>>> becomes false at the end of a cycle. Routing isActive through
>>> BooleanFilter to check for false and then TimeTrigger to startTime
>>> then works fine:
>>>
>>>
>>> https://create3000.github.io/x_ite/playground/?url=https://gist.githubusercontent.com/andreasplesch/3f7ea30b9860b6399c797c51e3235459/raw/c9ddf16c10baa683c7c5cdfbb96db7be4464152b/JoeStarterTest.x3d
>>>
>>>
>>> https://andreasplesch.github.io/Library/Viewer/index.html?url=https://gist.githubusercontent.com/andreasplesch/3f7ea30b9860b6399c797c51e3235459/raw/c9ddf16c10baa683c7c5cdfbb96db7be4464152b/JoeStarterTest.x3d
>>>
>>> Also note that the position of the red ball is arbitrary which seems
>>> correct.
>>>
>>> Andreas
>>>
>>> On Sat, Sep 9, 2023 at 3:36 PM Joe D Williams <joedwil at earthlink.net>
>>> wrote:
>>> >
>>> > inline comments
>>> > -----Original Message-----
>>> > From: Andreas Plesch <andreasplesch at gmail.com>
>>> > Sent: Sep 8, 2023 9:27 PM
>>> > To: Brutzman, Donald (Don) (CIV) <brutzman at nps.edu>
>>> > Cc: X3D Graphics public mailing list <x3d-public at web3d.org>
>>> > Subject: Re: [x3d-public] start timer at fraction 0 after scene loading
>>> >
>>> > > A variation would be for the start timer to self-disable by routing
>>> > its cycleTime through event utilities to set its enabled field to
>>> > false.
>>> >
>>> > Right, I have done that and it works, If I send a false to loop before
>>> fraction 1 best results. Seems like the loop false needs to be sent
>>> slightly before sequencer fraction 1 to get the timer to stop at last frame.
>>> >
>>> > What I need is to catch the second StartTimer cycleTime to send to
>>> MainTimer startTime.
>>> >
>>> > For some reason the StartTimer, when halted like that, does not have a
>>> useable stopTime.
>>> > In fact, I can't find a usable stop-Time. This should work:
>>> >
>>> >     <TimeSensor DEF='TIME1' cycleInterval='1' loop='true'/>
>>> >     <TimeSensor DEF='TIME2' cycleInterval='5' loop='false'/>
>>> >     <TimeSensor DEF='TIME3' cycleInterval='10' loop='false'/>:
>>> >    <ROUTE fromField='cycleTime' fromNode='TIME1'
>>> toField='set_stopTime' toNode='TIME1'/>
>>> >    <ROUTE fromField='stopTime' fromNode='TIME1'
>>> toField='set_startTime' toNode='TIME2'/>
>>> >    <ROUTE fromField='stopTime' fromNode='TIME2'
>>> toField='set_startTime' toNode='TIME3'/>
>>> >
>>> > Timer1 should start and be stopped a tic or two after its cycleTime is
>>> sent.
>>> > Timer 2 gets started by Timer1 cycleTime (couldn't get Timer1
>>> startTime or stopTime to be usable).
>>> > TImer2 completes at fraction 1 and sends its stopTime to Timer3
>>> startTime.
>>> > Timer 3 starts, then stops at fraction 1.
>>> > Wait, the timer2 stopTime doesn't work like expected, so Timer 3 never
>>> Starts.
>>> >
>>> > So, attached is what I have. I don't see why timer3 never gets started.
>>> > Thanks,
>>> > Joe
>>> >
>>> > >  is more verbose but may help a bit with performance since
>>> > the browser then does not need to check stopTime against the actual
>>> > current time at each tick, for a timer which is never used again.
>>> >
>>> > > It would be useful if BooleanFilter would have a triggerFalse field
>>> in
>>> > addition to its triggerTrue, in order to switch off things. It could
>>> > be just added without backward compatibility issues. A BooleanFilter
>>> > can invert but it seems arbitrary and unsymmetrical to only have
>>> > triggerTrue. I have a sense of Dejavu since event utilities had been
>>> > discussed before.
>>> >
>>> > Cheers, Andreas
>>> >
>>> > On Fri, Sep 8, 2023 at 3:18 PM Brutzman, Donald (Don) (CIV)
>>> > wrote:
>>> > >
>>> > > Very interesting, thanks for sharing Andreas. We should all be
>>> thinking of regularizing some example design patterns like animation.
>>> > >
>>> > >
>>> > >
>>> > > Meanwhile, your example is the kind that makes me think we should
>>> have a description field for ROUTE.
>>> > >
>>> > >
>>> > >
>>> > >
>>> > >
>>> > >
>>> > >
>>> > >
>>> > >
>>> > > Potential alternative approaches for ROUTE comments:
>>> > >
>>> > >
>>> > >
>>> > > Comments? Sure, but sometimes get stripped, and not unambiguously
>>> readable by tools.
>>> > > Prototype extension? Too complex and error prone, fuggedaboutit.
>>> > > Metadata nodes? Hmm, we can't make those part of ROUTE statements
>>> themselves, not allowed.
>>> > >
>>> > >
>>> > >
>>> > > Maybe some clumsy-but-unambiguous convention like the following
>>> already-legal X3D fragment:
>>> > >
>>> > >
>>> > >
>>> > >
>>> > >
>>> > >
>>> > >
>>> > >
>>> > >
>>> > >
>>> > >
>>> > >
>>> > >
>>> > >
>>> > >
>>> > > Of course simplest future approach would be to give ROUTE a
>>> description field. Hmmm, maybe someday.
>>> > >
>>> > >
>>> > >
>>> > > Might deserve a Mantis issue for X3D4.1 if others agree some
>>> potential value exists for future consideation.
>>> > >
>>> > >
>>> > >
>>> > > all the best, Don
>>> > >
>>> > > --
>>> > >
>>> > > Don Brutzman Naval Postgraduate School, Code USW/Br brutzman at nps.edu
>>> > >
>>> > > Watkins 270, MOVES Institute, Monterey CA 93943-5000 USA
>>> +1.831.656.2149
>>> > >
>>> > > X3D graphics, virtual worlds, navy robotics
>>> https://faculty.nps.edu/brutzman
>>> > >
>>> > >
>>> > >
>>> > > -----Original Message-----
>>> > > From: x3d-public On Behalf Of Andreas Plesch
>>> > > Sent: Thursday, September 7, 2023 1:43 PM
>>> > > To: X3D Graphics public mailing list
>>> > > Subject: Re: [x3d-public] start timer at fraction 0 after scene
>>> loading
>>> > >
>>> > >
>>> > >
>>> > > Here is an initial count down after loading the scene using the same
>>> autostart method, and a sequencer:
>>> > >
>>> > >
>>> > >
>>> > >
>>> https://andreasplesch.github.io/Library/Viewer/dev.html?url=https://gist.githubusercontent.com/andreasplesch/3f7ea30b9860b6399c797c51e3235459/raw/d17f9d2a0a258569ac5a474c36a68208674d535e/countdown.x3d
>>> > >
>>> > >
>>> > >
>>> > >
>>> https://create3000.github.io/x_ite/playground/?url=https://gist.githubusercontent.com/andreasplesch/3f7ea30b9860b6399c797c51e3235459/raw/d17f9d2a0a258569ac5a474c36a68208674d535e/countdown.x3d
>>> > >
>>> > >
>>> > >
>>> > > -Andreas
>>> > >
>>> > >
>>> > >
>>> > > On Thu, Sep 7, 2023 at 1:01 AM Andreas Plesch wrote:
>>> > >
>>> > > >
>>> > >
>>> > > > Another method apart from a ProximitySensor to start a timer
>>> without
>>> > >
>>> > > > user interaction after scene loading is to use two TimeSensors. The
>>> > >
>>> > > > first has loop=true and its only purpose is to trigger the second
>>> by
>>> > >
>>> > > > routing its cycleTime to the startTime of the second TimeSensor.
>>> The
>>> > >
>>> > > > first also stops itself by routing its cycleTime to its own
>>> stopTime.
>>> > >
>>> > > >
>>> > >
>>> > > > Here is an example modified from the cycleTime NIST example:
>>> > >
>>> > > >
>>> > >
>>> > > >
>>> https://nam10.safelinks.protection.outlook.com/?url=https%3A%2F%2Frent
>>> > >
>>> > > > ry.co%2Fx3d-startTimer&data=05%7C01%7Cbrutzman%40nps.edu
>>> %7C4b415083034
>>> > >
>>> > > >
>>> 641d371e608dbafe335ef%7C6d936231a51740ea9199f7578963378e%7C0%7C0%7C638
>>> > >
>>> > > >
>>> 297162641403741%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2
>>> > >
>>> > > >
>>> luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&sdata=v3ah%2F2OY7
>>> > >
>>> > > > NVzEwTUIhRhBjG%2BNHdMZoJTbsC3lEnHR1I%3D&reserved=0
>>> > >
>>> > > >
>>> > >
>>> > > >
>>> https://nam10.safelinks.protection.outlook.com/?url=https%3A%2F%2Fandr
>>> > >
>>> > > > easplesch.github.io
>>> %2FLibrary%2FViewer%2Fdev.html%3Furl%3Dhttps%3A%2F%
>>> > >
>>> > > > 2Fgist.githubusercontent.com
>>> %2Fandreasplesch%2F3f7ea30b9860b6399c797c5
>>> > >
>>> > > >
>>> 1e3235459%2Fraw%2F118d65438f9cfdc152c01fc5a24a8eccec705511%2FstartTime
>>> > >
>>> > > > r.x3d&data=05%7C01%7Cbrutzman%40nps.edu
>>> %7C4b415083034641d371e608dbafe3
>>> > >
>>> > > >
>>> 35ef%7C6d936231a51740ea9199f7578963378e%7C0%7C0%7C638297162641403741%7
>>> > >
>>> > > >
>>> CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1
>>> > >
>>> > > >
>>> haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&sdata=m8xOnL%2BHHQy5gXlqLQaec6vBIi
>>> > >
>>> > > > %2BSchjeWtKfYWNDMHw%3D&reserved=0
>>> > >
>>> > > >
>>> > >
>>> > > > --
>>> > >
>>> > > > Andreas Plesch
>>> > >
>>> > > > Waltham, MA 02453
>>> > >
>>> > >
>>> > >
>>> > >
>>> > >
>>> > >
>>> > >
>>> > > --
>>> > >
>>> > > Andreas Plesch
>>> > >
>>> > > Waltham, MA 02453
>>> > >
>>> > >
>>> > >
>>> > > _______________________________________________
>>> > >
>>> > > x3d-public mailing list
>>> > >
>>> > > x3d-public at web3d.org
>>> > >
>>> > > http://web3d.org/mailman/listinfo/x3d-public_web3d.org
>>> >
>>> >
>>> >
>>> > --
>>> > Andreas Plesch
>>> > Waltham, MA 02453
>>> >
>>> > _______________________________________________
>>> > x3d-public mailing list
>>> > x3d-public at web3d.org
>>> > http://web3d.org/mailman/listinfo/x3d-public_web3d.org
>>> >
>>>
>>>
>>> --
>>> Andreas Plesch
>>> Waltham, MA 02453
>>>
>>> _______________________________________________
>>> 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/20230910/37c8ca13/attachment-0001.html>


More information about the x3d-public mailing list