[X3D-Ecosystem] John’s Blender tasks list

John Carlson yottzumm at gmail.com
Tue Jul 9 22:10:29 PDT 2024


Great idea, Joe!  This is a great follow on from WinterAndSpring.

Short summary:  XSLT may be the best tool for adding decorations to HAnim
models, but it doesn’t work with flat files that I know of.

This maybe not a Blender task, unless more export options are added.

I can look into adding features to an existing humanoid ala old versions of
my Blender exporter.  Most of that code has been stripped out in favor of
exporting empties as sites and segments.  I have been relying on Blender
import to add decorations like geometry.  So adding features like
billboards, skeletal features, and site and geometry can be option
checkboxes.  My primary tasks with Blender are import, export and
conversion.

It seems like we want to use Jin 20f for both structure and data of the
humanoid, then use something like the Jaminate/Just Humans app (think
modifying the humanoid with Java/X3DJSAIL) to add features like resize,
animation concatenation or chaining, USE/deUSE and Site+Segment
geometry/billboards.  Ideally, we’d have decorate your own Jin app that
could be used from anywhere, including systems without Blender.

I can add additional features to Jaminate, but it seems like these features
could see wider adoption through use of X3DJSAIL in X3D-Edit.  I can
develop small features, but as far as I know, I am locked out of
contributing to X3DJSAIL/X3D-Edit.  Don has explicitly stated “no source
code.”  I don’t know if changing my status as a Web3D consortium member
will affect this.  I also feel a review system like GitHub should be in
place for updates, etc.

It would seem like I should make a kind of web server such that billboards
and geometry could be added to a provided HAnim model.   These are things
that could also be incorporated into X3DUOM and X_ITE playgrounds.  So it
seems like a web-based transactional service would be appropriate for
this.  This leaves out SAI as being too “chatty” unless the source code is
uploaded.

If one thinks about adding geometry, clothes, billboards, etc to humanoids
as a web service, then this opens up APIs to developers of Blender,
SAI/X3DJSAIL/x3d.py, X3DOM, X_ITE, Metaverse, X3DJSAIL, X3D-edit etc.

I don’t particularly like the idea of hosting a web service by myself. The
security issues with file upload are too numerous to mention—including
providing “XML” for confused deputies.  I would prefer writing a local
library that others could embed in their apps.  This probably means
programming in DOM plus C/Rust/Zig, which could probably be incorporated
into Java, Python, C++, but would likely leave out JavaScript, unless
someone wants to learn node-gyp and the like.

So perhaps the task is to write a high level HAnim API that could be used
in a variety of languages, could be standardized along with SAI, etc.  The
first of these would be a web service, as a platform neutral approach.

What I can do is write the server library using GraalJS/X3DJSAIL, then rely
on someone to incorporate this into a JavaScript or Java web server.

A quick overview of the API would include X3DLoaderDOM.java or JavaScript
as a way to read a humanoid scene into X3DJSAIL.  Then there would be
templatized “geometry” for Segments and Sites.  Template variables would
include joint centers, site translations, joint names, segment names, site
names, site numbers, joint numbers, and segment numbers (see Joe’s
hierarchy).  An optional flag would turn on/off use of USE.

Then we can talk about conversion to glTF and USD for incorporation into
the metaverse.

What we really need is a good language or library for “automated data
decoration (ADD)” of humanoids.  I’m guessing XSLT would be a great option
here.

Programming in Blender python with large HAnim models is not exactly quick
turnaround.  Minus a debugger is hard too.  Python is my choice language
for dealing with XML and using OpenCV/MediaPipe.  Not much else.  I like to
use SAX in Java, and DOM in JavaScript.  Domain-specific libraries are even
more enjoyable, but need the ability to read tons of documentation in many
cases.  A well-patterned library goes a long way.

So I think the first task is figuring out what features we want in such a
ADD humanoid API, then prioritize.  We should also define which
environments we want this to operate in.

I have not even mentioned animation.

John

On Tue, Jul 9, 2024 at 4:14 PM Joe D Williams <joedwil at earthlink.net> wrote:

> Hi All, I just want to see further development of the jin-based 1:1 model.
>
> The attached Jin loa4Markers file intends to include all v2 Joint and Site
> objects, then (fix some wild ones here and) add each new or different v2.1
> Site names, numbers and set an example location on this model when Carol
> and Katy make it available.
>
>
>
> John showed some nice work on Humanoid4.x3d to add the billboards and he
> might be able to add 'standard' features like sort of automagically from
> using complete v2.1 hanim schema.
>
>
>
> This attached Jinloa4Minimum is a target skeleton for direct import to
> blender or wherever.
>
> It contains the v2 loa4 hierarchy with only Joint center and Site
> translation numbers.
>
> No geometry is included except a 0 0 0 and x y z axis location marker for
> first, the Parent Scene default coordinate system and second, for the
> Humanoid default coordinate system.
>
>
>
> The idea is to get a basic as readable as possible skeleton hierarchy with
> personal centers and translations as import to whatever system might be
> used to author geometry and poses and motions, then back to x3d hanim
> scenegraph to get control and integration into the metaverse.
>
>
>
> Thanks and Best,
>
> Joe
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
> -----Original Message-----
> From: John Carlson <yottzumm at gmail.com>
> Sent: Jun 27, 2024 11:50 AM
> To: Carol McDonald <cemd2 at comcast.net>
> Cc: Joe D Williams <joedwil at earthlink.net>, Katy Schildmeyer KS APPAREL
> DESIGN <katy at ksappareldesign.com>
> Subject: Re: John’s Blender tasks list
>
>
> Getting Blender JSON export working is going to be a very hard problem,
> perhaps beyond my skill level. This requires changes to x3d.py which is
> generated from an XSLT stylesheet.
>
> I am having fairly good results with just joints and skin, but the skin
> appears fairly mangled.  Exporting Katy's gramps is working, except I
> currently have 2 humanoids.
>
> There's two tasks with import, JSON import and X3D import. I've been
> working on XML import for now.  Hopefully, we'll have a JSON to X3D Python
> import working at some point, then X3D Python to Blender Python.  I'm just
> trying to get the Blender side working right now.  I'll probably make quite
> a bit of use of claude.ai for this work.
>
> I am considering flipping to an alternate approach, which is generating
> Blender python from X3D XML.  There will be no lost work, as the new work
> should be directly usable in an addon.
>
> On Thu, Jun 27, 2024 at 1:31 PM Carol McDonald <cemd2 at comcast.net> wrote:
>
>> Let's make sure that we can get the humanoid working before the clothes.
>>
>> Create X3D JSON import/export - will be important for data sharing.
>>
>> Carol
>>
>> On 06/23/2024 1:55 AM PDT John Carlson <yottzumm at gmail.com> wrote:
>>
>>
>> Copy vertex groups (weights) from armature to EMPTY joint hierarchy.
>> Test. This is similar to the center code already accomplished for Joints.
>>
>> Test and enhance segmented skin and continuous skin (weights).  Make
>> sure that continuous skin animation in Blender is similar to external
>> examples.
>>
>> Fix axes directions from import_scene.x3d call
>>
>> Add CURVE/LineSet export
>>
>> Ensure that local, non-root center rotations work.
>>
>> Test with USD/glTF/VRM import export.
>>
>> Import/export realistic clothes.  Animate.
>>
>> Get animation working.  Test Blender bone animation, EMPTY animation, and
>> non- HAnim animation.
>>
>> Test PROTO import/export
>>
>> Test DEF/USE export.
>>
>> Create small examples to test features.
>>
>> Write an X3D to Blender Python stylesheet or serializer for models.
>>
>> Implement Displacer/LATTICE/ShapeKey code.
>>
>> Implement Texture rotation.
>>
>> Think about using Blender triangulation/tesselation instead of our own.
>>
>> Create X3D JSON import/export.
>>
>> Please vote for the 2 highest in your opinion.  Add additional items and
>> reply.
>>
>> Thanks!
>>
>>
>> John
>>
>>
>>
>>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://web3d.org/pipermail/x3d-ecosystem_web3d.org/attachments/20240710/69ec9051/attachment-0001.html>


More information about the X3D-Ecosystem mailing list