[x3d-public] best way to implment Gltf2 in web3d browser: converter or native render?
GPU Group
gpugroup at gmail.com
Tue Mar 31 15:25:20 PDT 2026
John,
" what a CreateHumanoid node is" It doesn't exist (yet) just an idea.
-Doug Sanden
more..
There are 2 ways you describe a Sphere: as a mesh / IndexedFaceSet or
equivalent, with hundreds of points, or as a Sphere node with 1 parameter
radius. The Sphere node would make smaller file than the mesh, even if mesh
is compressed to glb. We can refer to the Sphere node as parameterized
geometry, and we have others like Cone, Box, Cylinder likewise which are
parameterized geometry.
What about Humanoids? The MPFB2 / MakeHuman is a parameterized humanoid. A
few dozen scalar parameters for things like skin tone, gender (a scalar!),
height, weight. etc. The MPFB2/MakeHuman software relies on a CC0 creative
commons 0 .OBJ generic skin mesh, which the scalar parameters modify to
generate a final run-time/render mesh. .json files hold parameters for
various auxiliary things and are also CC0. Benefits to using
MPFB2/MakeHuman for generating characters: result is also CC0, easy to
generate with slidebar tinkering in UI in Blender/MPFB2 or MakeHuman
standalone app.
There is no web3d CreateHumanoid node. But if there was, the idea would be
for a Blender x3d exporter to have an option to export any humanoids as
CreateHumanoid nodes (versus exporting the post-scaling final skin mesh).
Then it's those 2 dozen scalar parameters that would be exported, not the
Skin mesh. To use the CreateHumanoid node, web3d browsers would need to
host/compile-in the generic skin .OBJ and auxiliary .json from
MPFP2/Makehumanoid --much like they host/compile-in a mesh for Sphere and
Cone-- and have code like MPFP2/Makehumanoid that takes the 2 dozen scalars
and applies them to the .OBJ mesh to generate a final skin mesh. Then
render the final skin mesh as a HanimHumanoid node. If routing / scripting
changes a parameter, the browser would re-generate the final
mesh/HAnimHumanoid skin. Otherwise it would stay the same, even when
animating.
Challenges:
1) in a Blender Exporter, can the code a) detect a character is generated
with MPFP2 and b) access the MPFP2 parameters? I don't know
2) how hard is it to duplicate the functionality in MPFP2 for generating a
final skin mesh, in an x3d browser. I don't know.
But lets say it could be done. Benefits to adopting a CreateHumanoid node:
1. smaller .x3d files transferring scenes with humanoids from Blender to
X3D browsers
2. for AI training, when x3d scene is one of the training pairs (x3d scene,
some other parameter or description) then the AI will train against a
smaller / more compact set of scene parameters (vs training against a giant
mesh).
-Doug Sanden
On Tue, Mar 31, 2026 at 3:54 PM John Carlson <yottzumm at gmail.com> wrote:
> I don’t know what a CreateHumanoid node is.
>
> I’m not experienced with MPFB2.
>
> At least 2 people besides me are working on HAnim Blender exporters.
>
> I have a custom JSON HAnim exporter:
>
> coderextreme/JSONHAnimBlenderExport: Export X3D JSON HAnim Blender Export
> <https://github.com/coderextreme/JSONHAnimBlenderExport>
>
>
> John
>
> On Tue, Mar 31, 2026 at 1:26 PM GPU Group <gpugroup at gmail.com> wrote:
>
>> John,
>> "LOA4 .. take a hit .. converting to web3d"
>> Good point.
>> Q. if coming from Blender, would a Blender exporter be better off to
>> export a (not yet in web3d specs) CreateHumanoid node with scalar
>> parameters as set in MPFB2, and web3d browsers would hold the default .obj
>> makehuman skin and .json auxiliary files, and if needing to add something
>> at LOA4 that MPFB2 doesn't have, to add it to the MPFB2 .json / auxiliary
>> files used in Blender?
>> -Doug
>>
>> On Tue, Mar 31, 2026 at 11:59 AM John Carlson <yottzumm at gmail.com> wrote:
>>
>>> I would say that high HAnim LOA4 scenes are going to take a hit when
>>> converting to web3d nodes.
>>>
>>> Use AI to convert from .x3d to .glb (and try it out)
>>>
>>> I'd offer a python program, but it doesn't do skin weights yet. WIP.
>>>
>>> John
>>>
>>> On Tue, Mar 31, 2026 at 10:31 AM GPU Group via x3d-public <
>>> x3d-public at web3d.org> wrote:
>>>
>>>> Q. What's the best/right way to support gltf2 in a web3d browser:
>>>> a) on loading convert to web3d nodes
>>>> b) load into a gltf node and treat as a sub-scenegraph, and use a
>>>> gltf2-specific rendering pipeline on each frame
>>>> -Doug Sanden
>>>> _______________________________________________
>>>> 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/20260331/a3959f8e/attachment.html>
More information about the x3d-public
mailing list