[x3d-public] Seed for a project

John Carlson yottzumm at gmail.com
Mon Aug 14 08:57:11 PDT 2023


Are X3D ROUTEs cyclical?  Maybe not everything in X3D is a DAG?

Thanks!

John

On Mon, Aug 14, 2023 at 10:52 AM John Carlson <yottzumm at gmail.com> wrote:

> In other words, rotations need to be generated by the hierarchy (which my
> format reports bones, or from one joint (xyz) to the next), and something
> that takes bone/joint movement over time and produces streaming BVH or
> X3D.  Is this inverse kinematics, IK?  The relative flag may mean the “IK”
> has already been done, but I think BVH may require rotations?
> Contributions to my project to do IK are welcome!  Help!  It should be
> quick to generate relative xyz from a hierarchy, if someone wants that.
> How about rotations?
>
>
> https://en.m.wikipedia.org/wiki/Inverse_kinematics#:~:text=In%20computer%20animation%20and%20robotics,the%20start%20of%20the%20chain
> .
>
> The kicker is that I don’t know if the input systems have cycles or DAGs
> yet.  So far, my systems can handle cycles and DAGs, but it’s very nascent.
>
> My issue with BVH/X3D is that I’m working with streaming data, and i hope
> that the system doesn’t need to poke a hole in the firewall or antivirus,
> which is why I might choose Java* over python.  Also, I don’t know if my
> computer is powerful enough to do IK in real time.  I’m not dealing with
> skin, thank goodness!
>
> John
>
>
> On Mon, Aug 14, 2023 at 9:53 AM John Carlson <yottzumm at gmail.com> wrote:
>
>> Understood,  I’ll need a way to turn bones into a hierarchy.  I need
>> something to convert bones and joint x,y,z into a hierarchy. I think my
>> mocap format allows for that? I’m guessing I need to add a relative flag.
>> I was already thinking of adding relative coordinates.
>>
>> Fun stuff!   Time to work on creating a template from centers again.
>>
>> John
>> On Mon, Aug 14, 2023 at 1:04 AM Joe D Williams <joedwil at earthlink.net>
>> wrote:
>>
>>> John. If you don't have a hierarchy then you have to move everything
>>> yourself. The hierarchy allows a tree of joints to be moved by simply
>>> rotating the parent. Children can then conrroll their children
>>> independently of the parent. Without a hierarchy there is anarchy.
>>>
>>> Joe
>>>
>>>
>>>
>>> -----Original Message-----
>>> From: John Carlson <yottzumm at gmail.com>
>>> Sent: Aug 13, 2023 6:23 AM
>>> To: Joe D Williams <joedwil at earthlink.net>
>>> Cc: GPU Group <gpugroup at gmail.com>, X3D Graphics public mailing list <
>>> x3d-public at web3d.org>
>>> Subject: Re: [x3d-public] Seed for a project
>>>
>>>
>>> I am thinking SAI could be a good way to do this.
>>>
>>> On Sun, Aug 13, 2023 at 8:14 AM John Carlson <yottzumm at gmail.com> wrote:
>>>
>>>> Good question about BVH!  I am proposing a new mocap format that
>>>> doesn’t need a hierarchy, and can do streaming, graph or grid data.
>>>>
>>>> S:structure of data, G for grid, H for tree, D for D for DAG, C for
>>>> cycles
>>>> V: name or id of structure
>>>> F: from joint name and/or id
>>>> T:to joint name and/or id
>>>> O: out name
>>>> B:out data (beginning)
>>>> I: in name
>>>> E:in data  (ending)
>>>> .
>>>> .
>>>> .
>>>> etc.
>>>>
>>>> The animation is done like:
>>>> J:Joint id or name
>>>> C:Joint class or type (may change)
>>>> A:Joint alias or DEF (optional)
>>>> X:X location, unit (unit may be defaulted, no unit for scaling)
>>>> Y:Y location, unit (ditto)
>>>> Z:Z location, unit (ditto)
>>>> T:frame or time, unit (ditto)
>>>> .
>>>> .
>>>> .
>>>> etc.
>>>>
>>>> -V: remove structure
>>>>  -J: remove joint
>>>> -F: from joint name and/or id
>>>> -T: to joint name and/or id
>>>>
>>>> To remove joint, bones or routes.
>>>>
>>>> Later, I will provide 4 data points per joint over time, for impact
>>>> simulator I/O grid
>>>>
>>>> J: Joint, as above
>>>> U:up data
>>>> D:down data
>>>> R:right data
>>>> L:left data
>>>>
>>>> Plus ways to remove data by adding a - in front or behind the label and
>>>> a leading or a trailing + to add data
>>>>
>>>> This needs to be generalized. Think how to do hypergraphs. More verbose
>>>> would be an option,  IDK, i don’t want to reinvent a document format.
>>>>
>>>> Obviously inspired by Katy’s format!
>>>>
>>>> Contributions welcome.
>>>>
>>>> John
>>>>
>>>>
>>>>
>>>> On Sun, Aug 13, 2023 at 6:24 AM Joe D Williams <joedwil at earthlink.net>
>>>> wrote:
>>>>
>>>>> Why concern about BVH?
>>>>>
>>>>>
>>>>>
>>>>> -----Original Message-----
>>>>> From: John Carlson <yottzumm at gmail.com>
>>>>> Sent: Aug 12, 2023 7:48 PM
>>>>> To: GPU Group <gpugroup at gmail.com>
>>>>> Cc: X3D Graphics public mailing list <x3d-public at web3d.org>
>>>>> Subject: Re: [x3d-public] Seed for a project
>>>>>
>>>>>
>>>>> I guess the best way to do the translations and rotations in BVH is
>>>>> from the root to the extremities?  Get segments close to root, then work
>>>>> down the tree.
>>>>>
>>>>> What about multiple parents in the DAG?  How is this resolved?  As
>>>>> separate children?
>>>>>
>>>>> I’m pretty sure BVH is a tree?  Anyone know?
>>>>>
>>>>> John
>>>>>
>>>>> On Sat, Aug 12, 2023 at 12:00 PM GPU Group <gpugroup at gmail.com> wrote:
>>>>>
>>>>>> > 1) provide a way to convert X3D nodes and ROUTEs to BVH with
>>>>>> animation.  This will require converting routes/segments over time to
>>>>>> translations and rotations. Help is requested.
>>>>>> One fuzzy idea: use the nodes and routes to animate, and capture the
>>>>>> animation at a choke point in the web3d browser. A good choke point is
>>>>>> where the browser applies BVH animations to the HAnim. In freewrl there are
>>>>>> a few spots where it calls update_jointMatrixFromMotion() and in theory
>>>>>> there could be another call there update_MotionFromJointMatrix() which goes
>>>>>> the other way, converting a joint matrix into a bvh motion for recording to
>>>>>> a file, with frame timestamp.
>>>>>>
>>>>>>
>>>>>>
>>>>>> On Sat, Aug 12, 2023 at 10:14 AM John Carlson <yottzumm at gmail.com>
>>>>>> wrote:
>>>>>>
>>>>>>
>>>>>>> Here's the seed for a Java (possibly X3D-Edit) project. A graph/grid
>>>>>>> editor.
>>>>>>>
>>>>>>> https://github.com/coderextreme/impact.dir/tree/master/impactVL
>>>>>>>
>>>>>>> I was thinking of adding:
>>>>>>>
>>>>>>>  JSON/XML/VRML/BVH/MediaPipeHolistic/JavaSerialized/OpenUSD  I/O,
>>>>>>> beyond native.
>>>>>>>
>>>>>>> There seems to be a slight issue with input right now, at least with
>>>>>>> the sort* input files in Impact.java
>>>>>>>
>>>>>>> Make a copy of a file externally before modifying in the tool,
>>>>>>> there's no way to save to another file currently in Impact.java.
>>>>>>>
>>>>>>> The goals are:
>>>>>>>
>>>>>>> 1) provide a way to convert X3D nodes and ROUTEs to BVH with
>>>>>>> animation.  This will require converting routes/segments over time to
>>>>>>> translations and rotations. Help is requested.
>>>>>>>
>>>>>>> 2) provide a way to visualize ROUTEs with Java (anyone else have
>>>>>>> something?)
>>>>>>>
>>>>>>> 3)  provide different naming convention for different I/O
>>>>>>>
>>>>>>> 4) take input from MediaPipe Holistic (Python) and convert to BVH.
>>>>>>>
>>>>>>> 5) provide a way to debug X3D events in Java.
>>>>>>>
>>>>>>> There are already 2 different visualizations. I hope to add more.
>>>>>>> One (Cell4x4) is based on Jed Donnelly's graphics (see images folder)
>>>>>>> scanned from his Impact project (hence the name). I would like to use this
>>>>>>> with permission, but I haven't heard from him.  The Java is mine, based on
>>>>>>> his original idea (not his or other's code).
>>>>>>>
>>>>>>> Note that I haven't tested the Cell.java program much recently.
>>>>>>> Impact.java is what Jed called the "Flow" or "Floweth" language, but his
>>>>>>> idea was to create a textual language.  But a challenge is making the 2
>>>>>>> visualizations to work together.  The textual language will be implemented
>>>>>>> in X3D/BVH. I don't have a reason to create a new language, nor do I want
>>>>>>> to.
>>>>>>>
>>>>>>> Note that I already have the idea for "Inlines" or expanding nodes
>>>>>>> into another window.  I'm not sure how well it's implemented.  I'm not sure
>>>>>>> about I/O of nested nodes right now.
>>>>>>>
>>>>>>> This seems like a lot of fun, and maybe even useful, as opposed to
>>>>>>> X3D JSON.
>>>>>>>
>>>>>>> Ant and Makefiles provided.  Not gradle. Too many garbage files to
>>>>>>> worry about iwith gradle--I'm not sure why they have all of them. If
>>>>>>> someone wants to provide maven or gradle, that would be cool. Ant is okay
>>>>>>> in Git for Windows.  If I have to fall back to Makefiles, I can use Cygwin.
>>>>>>>
>>>>>>> Any problems, file an issue with
>>>>>>> https://github.com/coderextreme/impact.dir/issues.  There's one
>>>>>>> waiting for you to close, Jed.
>>>>>>>
>>>>>>> John
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>> _______________________________________________
>>>>>>> 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/20230814/1c12fc8c/attachment-0001.html>


More information about the x3d-public mailing list