[x3d-public] Seed for a project

John Carlson yottzumm at gmail.com
Mon Aug 14 08:52:26 PDT 2023


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/3ac56474/attachment-0001.html>


More information about the x3d-public mailing list