[x3d-public] BVH tasks. (Non-Blender BVH loaders/parsers)

Joseph D Williams joedwil at earthlink.net
Thu Nov 3 05:27:43 PDT 2022


I meant always use ‘standard’ loa4 as target playback skeleton. 
But the main point may be that it is reasonable to test the imported bvh capture skeleton first, before considering whether the animation may be useful. 
If the imported skeleton is working with a ‘standard’ animation then that file stands a getter chance of working with your personal ‘standard’ skeleton. 
So, to analyze the imported bvh skeleton, just find the shoulders, hips and feet, figure out which way it is facing, scale the thing to human size in a human friendly space, set a good 0 0 0, set a few viewpoint locations, then try the ‘standard’ Run animation of Nancy or later versions with Run, Walk, Jump. This will help determine that you may have may have a reasonably configured bvh skeleton and thus, that the animation may be useful with your personal ‘standard’ without lots of work. 
Now, if you can see that the capture skeleton is reasonable,  it may be worthwhile to try the imported bvh animation on your personal skeleton. 
Basically, if you can’t get decent results using a simple ‘standard’ walk animation on the bvh capture skeleton there may be little value or at least lots of work to adapt it to your ‘standard’ skeleton. 

Also please note that the Hanim interface provides several fields that provide adjustments for differences between the default pose of the bvh capture skeleton and the Hanim standard default pose before animation. 

Thanks, 
Joe




From: Joseph D Williams
Sent: Wednesday, November 2, 2022 11:09 AM
To: John Carlson; Andreas Plesch; Brutzman, Donald (Don) (CIV); Holger Seelig; Nicholas Polys; X3D Graphics public mailing list
Subject: Re: [x3d-public] BVH tasks. (Non-Blender BVH loaders/parsers)


The real contribution is getting the BCH data into X3D loa3 skeleton and x3d timer/interpolator form. We probably have to first convert the BVH skeleton into Hanim loa4, then produce the timer, keytimes and keyframe data from bvh to x3d. This is advisable because the video framerate bvh animations will be practically useless and very cumbersome to use directly and will probably be incomplete for your playback skeleton performance. Thus, you will need to edit and add to any animation extracted this way. That is why you want the x3d user code instead of the BVH data file. 

Also, the main idea of alI this, to me, is that you have lyour personal skeleton that you are working with and that, instead of rotating some joints yourself, you want to import some animation data using the unregulated bvh transport file forms. So, first, you may wish to figure out what is the basic skeleton being driven by the data. If the data was not based on a reasonable skeleton that can be reborn as x3d Hanim loa4 that was defined in some known default before animation pose, facing +z, +y up and +x left then you really do not know what you will harvest. Next, if the skeleton is reasonable then the data may be usable except that it is resolved at some video frame rate that results in just silly looking x3d. This is because a bvh to video renderer can be simple because it only does fixed fps. 

Anyway, having an x3d player that can directly play a bvh file is interesting as a tool used for screening and evaluating usefulness of a particular animation, however it does x3d author no good until it gets hooked up to x3d skeleton definition and realtime animation style. 
Thanks, 
Joe

From: John Carlson
Sent: Sunday, October 30, 2022 2:59 PM
To: Andreas Plesch; Brutzman, Donald (Don) (CIV); Holger Seelig; Nicholas Polys; X3D Graphics public mailing list
Subject: Re: [x3d-public] BVH tasks. (Non-Blender BVH loaders/parsers)

I suggest we start a new project, BVH to DOM document “BVHParser.ts” in Typescript which can be converted to most JavaScript versions.   Then:

Add BVHParser.ts  to X3DOM.

Add BVHParser.ts to X_ITE.

So we’re following along the path that X3DJSONLD followed, first develop a capability in “isolation”, then integrate into browsers.

We won’t be converting over a whole project to use TypeScript so risk is low.

We should probably start with the BVH loader in three.js unless there’s licensing issues.  Hopefully this will provide us with some kind of metric to measure our success.

This sounds like something pretty reasonable which i can apply existing skill to.

John 
On Sun, Oct 30, 2022 at 4:19 PM John Carlson <yottzumm at gmail.com> wrote:
We’ll need to consider the steps for x3d.py

Import BVH
Export python (like the x3djsonld.py).

It would be cool if we could produce a dict structure that mirrored the JSON load, or JSON.

Then further work on x3djsonld.py is needed.

OR

Export XML, and use X3DJSAIL to produce python.

John

On Sun, Oct 30, 2022 at 3:47 PM John Carlson <yottzumm at gmail.com> wrote:
What’s next on the BVH task list?

“
• Adapting X3D-Edit (BVH?) conversion source to become part of X3DJSONLD, X3DJSAIL, X3DPSAIL (x3d.py) libraries
“
What sources in X3D-Edit?  I don’t know what steps are required to convert BVH-to-X3D.  Could you provide a kind of UML Sequence Diagram, or a function name to call?   I might be able to work it down from the GUI button.  Can you assist, Terry?   I did find a couple of files with Bvh in file name, but I haven’t opened X3D-Edit 4 inside latest version.

I can work on a JavaScript port if given a general direction as to how the BVH-to-X3D works in X3D-Edit.

Maybe we should pause on emails?  I’ve got chores.  I’d rather see a release than an email.

I know you provided many HTML links ?  File links would be better at this point.   If they start with x3d/tools/X3D-Edit4.0 that would be easy to understand.

I will go back through emails.

John 

On Sun, Oct 30, 2022 at 3:13 PM Brutzman, Donald (Don) (CIV) <brutzman at nps.edu> wrote:
I’m not working with Blender.  That is an X3D-Public topic.
 
When we have an update to X3D-Edit we will announce it.  Providing the link in the email helps the email archives be less confusing.
 
Thanks.
 
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
 
From: John Carlson <yottzumm at gmail.com> 
Sent: Sunday, October 30, 2022 1:09 PM
To: Brutzman, Donald (Don) (CIV) <brutzman at nps.edu>
Cc: Michalis Kamburelis <michalis.kambi at gmail.com>
Subject: Re: BVH tasks, BVH to X3D (Blender)
 
Michalis’ suggestion was to use Blender to do BVH to X3D conversion,  I suggested a modifying a Blender python BVH to FBX script, which did scraping from the cgspeed, i think.   I don’t think we need to do the scraping any more.   Please be patient as i have chores.
 
It should be easy to create a blender script to convert BVH to X3D once the files are downloaded, but can script unpack from cgspeed.   Doesn’t Blender have a macro capability?
 
When should i test the X3D-Edit converter again?  I saw that you were close to another release.
 
John
 
 
 
On Wed, Oct 26, 2022 at 10:49 AM Brutzman, Donald (Don) (CIV) <brutzman at nps.edu> wrote:
Hi John, thanks for your note.
 
First and foremost: please always take care of yourself.  No heroic actions needed, we are “playing the long game” here.

Next: let’s do one thing at a time, and do it well.
 
Suggestion:  tracking down the BVH file used in the three.js example, then seeing how well X3D-Edit importer works, would be great.
 
If Michalis has a BVH import, then let’s do it twice and compare/improve each conversion.
 
Doing that single comparison example would be important.  We can document successes, and sources, and motivate further work (for example, then updating Blender export).
 
I think Joe Williams and Nicholas Polys will both be willing to help us look at details and any unforeseen difficulties.
 
Thanks for considering this possibility.
 
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
 
From: John Carlson <yottzumm at gmail.com> 
Sent: Wednesday, October 26, 2022 3:25 AM
To: Brutzman, Donald (Don) (CIV) <brutzman at nps.edu>; Michalis Kamburelis <michalis.kambi at gmail.com>
Subject: BVH tasks, joining forces, vim plugin
 
I guess at this point, I’d like to have at least one user/builder/cm volunteering to at least test what i am doing before starting anything.
 
In other words, I’d like to have my own reasons for starting down this BVH path.  Surprisingly enough, I don’t use my code on a day to day basis.   I have a grand scheme to build some creator software, ultimately expanding beyond X3D.  Maybe i should just team up with another creator suite instead of doing my own thing.
 
Either a happy or unhappy user would be great.
 
Without that commitment, there’s no reason to put my health at risk.
 
Apparently view3dscene/castle engine has a way to save and load JSON (not glTF?).   I don’t know if  Michalis uses JSON schema, or has his own internal checking?
 
I am now a castle engine subscriber.   I’m wondering how to produce Pascal SAI output, so i can test WASM.
 
How is X3d-Edit conversion source different?   More advanced?  You just want the BVH part transferred to other codes, including rewriting for EcmaScript and x3d.py?
 
It sounds like you desire more extensive tests for BVH?   Or just eyeballing it?
 
It sounds like we are extending beyond XML and JSON into more generic parsing.   Is now the time to switch to ANTLR or Daffodil?  I’m not sure of support.
 
Do you want me to do visual comparison of the three.js BVH file?
 
What do you think about an X3D plugin for  vIm/nvim/neovim for  JSON?  How can vim support 3D graphics in alacritty and kitty?
 
How can i as a creator best help my needs as a creator, and secondly, help others?
 
Is there a need for standards implementation for a metaverse creator suite?   Surely people will only drop into BVH on extremely rare occasions?   Would some kind of motion editing tool would be helpful?
 
I’m always concerned about bradypnea/hypopnea making my life worse.
 
John
 
On Sat, Oct 22, 2022 at 11:11 PM Brutzman, Donald (Don) (CIV) <brutzman at nps.edu> wrote:
Glad you are progressing John.  As ever, thanks for helpful investigations.
 
Interesting possibilities that could be published for others to use, long-term:
• Confirming correctness of X3D-Edit BVH conversion, using same BVH file as the three.js example would be great
• Adapting X3D-Edit conversion source to become part of X3DJSONLD, X3DJSAIL, X3DPSAIL (x3d.py) libraries
 
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
 
From: John Carlson <yottzumm at gmail.com> 
Sent: Friday, October 21, 2022 5:21 PM
To: Brutzman, Donald (Don) (CIV) <brutzman at nps.edu>
Subject: Re: [x3d-public] X3D4 Working Group agenda, 20 OCT 2022: discuss possible Avatar strategy
 
Adding a BVH file to DOM document conversion which can be loaded with X3DJSAIL sounds intriguing.
 
Once we have DOM, many possibilities abound.
 
After a couple of months off of desktop typing, my wrists are improving.  Also, I think an alternate sleeping position helped. Continued work on breathing is indicated.  I'm happy to see progress after 35 years!  Someone up there is answering prayer!
 
I’m hoping that adding more physical exertion will help cognitive symptoms.   We carried a wooden table with 4 chairs upstairs at my in laws, played some ping pong and collected leaves last week.
 
I think pur best chance is to look for freely distributable  Bvh files.   I’m not sure if Kinect resolution is satisfactory for BVH et al.
 
Would anyone like a translation of the Java below?  Probably creating a project for loading HAnim files into Three.js is indicated.
 
Fun!
 
John 
 
On Fri, Oct 21, 2022 at 1:25 PM Brutzman, Donald (Don) (CIV) <brutzman at nps.edu> wrote:
You can find example BVH-to-X3D conversion results at
 
• X3D Example Archives: Humanoid Animation, Motion Animation
• Motion Capture (MOCAP) examples using Humanoid Animation (HAnim) models illustrates conversion from BioVision Hierarchy (BVH) files for Character animation (such as 1.bvh).
• https://www.web3d.org/x3d/content/examples/HumanoidAnimation/MotionAnimationhttps://www.web3d.org/x3d/content/examples/HumanoidAnimation/MotionAnimation/1.bvhhttps://www.web3d.org/x3d/content/examples/HumanoidAnimation/MotionAnimation/1.bvh.txt
 
Additional good examples welcome, we can add them to the HAnim Examples archive.  Got one?
 
I just checked the BVH converter in rejuvenated X3D-Edit and it seems to still work fine.  8)
 
• Menu item: X3D-Edit
• https://sourceforge.net/projects/x3d/fileshttps://www.web3d.org/x3d/content/examples/HumanoidAnimation/MotionAnimation/X3D-EditBvhImport.png
 
Adapting the X3D-Edit converter source to be part of our X3DJSONLD X3DJSAIL X3DPSAIL libraries seems like an interesting utility function to add someday.
 
• https://sourceforge.net/p/x3d/code/HEAD/tree/www.web3d.org/x3d/tools/X3dEdit4.0/X3dEditModuleSuite/X3dSourceFilePalette/src/org/web3d/x3d/actions/conversions/BvhToX3dConversionAction.java
 
Have fun with X3D and BVH!  8)
 
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
 
From: Brutzman, Donald (Don) (CIV) <brutzman at nps.edu> 
Sent: Thursday, October 20, 2022 11:22 AM
To: John Carlson <yottzumm at gmail.com>
Cc: X3D Public Mailing List (x3d-public at web3d.org) <x3d-public at web3d.org>; h-anim at web3d.org; Brutzman, Donald (Don) (CIV) <brutzman at nps.edu>
Subject: RE: [x3d-public] X3D4 Working Group agenda, 20 OCT 2022: discuss possible Avatar strategy
 
Hi John.  Good ideas, thanks for sharing them.
 
Once again, it appears as if all the capabilities necessary to accomplish that are defined in X3D4 with immense sets of BVH captures available out there.  Good hunting, sir.
 
• X3D4 Architecture, 26.3.4 HAnimMotion
• https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/hanim.html#HAnimMotion
 
• HAnim 2.0 Part 2:  Humanoid animation (HAnim) motion data animation, 4 Concepts
• https://www.web3d.org/documents/specifications/19774-2/V2.0/MotionDataAnimation/Concepts.html
 
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
 
From: John Carlson <yottzumm at gmail.com> 
Sent: Thursday, October 20, 2022 10:46 AM
To: Brutzman, Donald (Don) (CIV) <brutzman at nps.edu>
Cc: X3D Public Mailing List (x3d-public at web3d.org) <x3d-public at web3d.org>; h-anim at web3d.org
Subject: Re: [x3d-public] X3D4 Working Group agenda, 20 OCT 2022: discuss possible Avatar strategy
 
Hmm.  I suggest extending the BVH to include multifigure collaborative motions like dancing (think Virginia Reel) and sports.  That is, some kind of composed BVH with multiple avatars.
 
This may already be done.
 
Thanks!
 
On Thu, Oct 20, 2022 at 11:46 AM Brutzman, Donald (Don) (CIV) <brutzman at nps.edu> wrote:
X3D Working Group meets weekly for continued advancement of the X3D4 Specifications.
 
•        Meeting time 09-1000 pacific, each Friday
•        https://us02web.zoom.us/j/81634670698?pwd=a1VPeU5tN01rc21Oa3hScUlHK0Rxdz09 
•        https://zoom.us/j/148206572  Password 483805 
•        https://www.web3d.org/member/teleconference-information
 
Here is a “new” proposed strategy, trying to say crisply the many essential ideas that are well known already by active participants in the X3D community.
 
 
(draft) Avatar Strategy: Open, Interoperable, Personal, Secure
 
No standardized definition for “avatars” is provided in X3D4, but…
 
•        Many alternatives are possible, the “X” in “X3D” is Extensible. Vive la difference!
•        X3D includes multiple levels of detail (LOD) if progressive avatar fidelity desired, this is essential for hugely scalable worlds.
•        Most powerful Web3D example design to date:  Silhouette Avatars by IVN, https://ivn.net
•        Metadata for identity, secure digital signature and even encryption is possible.
•        Composing 3D scans and motion-capture (mocap) data for full avatar realism remains really interesting!  Interesting progress continues on this challenge.
 
X3D Working Group intends to demonstrate whatever avatar definitions are agreed upon by Metaverse Standards Forum.  We expect to show full matching Implementation and Evaluation using X3D, learning further what avatar designs work well.
 
 
Let’s discuss please.  All inputs and discussion welcome.
 
Corresponding Web3D member-only draft slideset available at
• Representing Metaverse Humans with Open Standards
• Humanoid Animation (HAnim) and X3D4 ISO Specification Support
• Web3D Consortium Communications Team
• https://docs.google.com/presentation/d/13yAhoU9h7Buy5fUjSpPoOHYVJ6dgJDYulDS9Ze8na4M/edit#slide=id.p
 
Membership has value!
• Join the Web3D Consortium
• The Web3D Consortium is a non-profit group open to industry, academic, government and individual members.
• https://www.web3d.org/join
 
Have fun with X3D, Human Animation and Avatars!  8)
 
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
 
_______________________________________________
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/20221103/31531779/attachment.html>


More information about the x3d-public mailing list