[X3D-Ecosystem] [x3d-public] Wed Nov 19 - X3D-AI Working Group Meeting
John Carlson
yottzumm at gmail.com
Fri Nov 28 16:07:34 PST 2025
Apparently, this email was impossible to send on my iPhone. Use with care.
Okay, I received enclosed spec. I propose we 1) see if this spec covers
the binary .ply files we have (it looks like integers are missing).
I think my base points were here:
https://en.wikipedia.org/wiki/PLY_(file_format)
And the ASCII examples here (possibly proprietary):
https://github.com/coderextreme/X3DJSONLD/tree/master/src/main/ply
(JinFACS.ply and mobius.ply are based on X3D examples).
So we already have ASCII header parsers (except binary and endian-ness). We
might have to add GS property names.
Then we need parsers for “binary,” endian-ness and binary number loaders
for each type of endian-ness.
John
On Fri, Nov 28, 2025 at 2:47 PM GPU Group <gpugroup at gmail.com> wrote:
> Sorry John I was wrong -- I see there's a special variant of .ply for
> gaussian splatting, which is what Aaron was wanting .ply for.
> https://www.useblurry.com/blog/anatomy-of-a-ply-file
> Looks like there is a color per vertex or triangle, not an image file
> reference.
> That should still fit in an IndexedTriangleSet:
>
> https://www.web3d.org/documents/specifications/19775-1/V4.0/Part01/components/rendering.html#IndexedTriangleSet
>
> On Fri, Nov 28, 2025 at 11:59 AM GPU Group <gpugroup at gmail.com> wrote:
>
>> John,
>> Samples of gaussian splatting seem to be in binary or too big for Notepad
>> to open.
>> Hypothesis: If ply can refer to image files, then a Proto parsing a .ply
>> should have a Shape as first node, so Script node parser can set the Shape
>> material as well as the IndexedTriangleSet geometry.
>> -Doug
>>
>> https://ifiweb.informatik.tu-freiberg.de/public/silversplat/index.html?load=.%2Fmodels%2Fwerner_amethyst.ply
>>
>> - online tool showing a splat of a mineral gem
>>
>> https://ifiweb.informatik.tu-freiberg.de/public/silversplat/.%2Fmodels%2Fwerner_amethyst.ply
>>
>> - download link to same .ply
>> https://drive.google.com/file/d/1sh7yB-u1mfH2RgAN5bOpmFlM37baP7Dd/view
>> - study / paper on splatting of minerals
>> Aaron supplied links to splats:
>> PLY Splats
>> ● https://vr.csgrid.org/gsplats/soaring_eagle.ply
>> ● https://vr.csgrid.org/gsplats/Merrifield_100.ply
>> ● https://vr.csgrid.org/gsplats/Merrifield_fireplace.ply
>> ● https://vr.csgrid.org/gsplats/mug_space.ply
>> SuperSplat HTML format for quick viewing:
>> ● https://vr.csgrid.org/gsplats/soaring_eagle.html
>> ● https://vr.csgrid.org/gsplats/Merrifield_100.html
>> ● https://vr.csgrid.org/gsplats/Merrifield_fireplace.html
>> ● https://vr.csgrid.org/gsplats/mug_space.html
>>
>> On Thu, Nov 27, 2025 at 6:22 PM John Carlson <yottzumm at gmail.com> wrote:
>>
>>> Is there a need for “binary” or can we use ASCII .ply?
>>>
>>> John
>>>
>>> On Mon, Nov 24, 2025 at 7:17 AM GPU Group <gpugroup at gmail.com> wrote:
>>>
>>>> "binary"
>>>> John
>>>> When parsing MIDI packets in javascript I found DataView.
>>>> -Doug
>>>> UMP - universal MIDI packet from MIDI 2 standard, is 64 bit packet
>>>> function parseUmp(packet){
>>>> var buf = new ArrayBuffer(8);
>>>> var view = new DataView(buf);
>>>> //using SFDouble as packet container
>>>> view.setFloat64(0,packet,true);
>>>> var bytes = new Uint8Array(buf);
>>>> var res = {};
>>>> res.channel = (bytes[1] & 0xF) + 1;
>>>> res.command = bytes[1] - (res.channel-1);
>>>> res.note = bytes[2];
>>>> res.velocity = view.getUint16(4,true); return res;
>>>> }
>>>>
>>>> On Sat, Nov 22, 2025 at 4:59 PM John Carlson <yottzumm at gmail.com>
>>>> wrote:
>>>>
>>>>> Note: ASCII .ply only, I haven’t figured out binary .ply or how to
>>>>> handle binary in JavaScript yet.
>>>>>
>>>>> I’ve also written JSON to XML converter in C++ as a separate process
>>>>> as previously discussed. But I’ve not ever really considered reclaiming
>>>>> memory as the process is short-lived. YMMV
>>>>>
>>>>> My JavaScript or a derivative might serve as part of your SAI solution.
>>>>>
>>>>> John
>>>>>
>>>>> On Sat, Nov 22, 2025 at 5:40 PM John Carlson <yottzumm at gmail.com>
>>>>> wrote:
>>>>>
>>>>>> Creates JSON from .ply files. Uses IndexedLineSet and IndexedFaceSet.
>>>>>>
>>>>>>
>>>>>> https://github.com/coderextreme/X3DJSONLD/blob/master/src/main/node/convertPlyToJson.js
>>>>>>
>>>>>>
>>>>>> Partially working demo:
>>>>>>
>>>>>> https://coderextreme.net/X3DJSONLD/src/main/html/main_viewer.html
>>>>>>
>>>>>> Designed for phones:
>>>>>>
>>>>>> https://coderextreme.net/X3DJSONLD/src/main/html/responsive.html
>>>>>>
>>>>>> I spent quite a bit of effort getting .ply files into JSON, and have
>>>>>> shown UV textures being translated to .ply.
>>>>>>
>>>>>> Also comes with client search and server code for delivering
>>>>>> filenames to browser.
>>>>>>
>>>>>> I actually might have one customer?
>>>>>>
>>>>>> Text me 712-369-1032 or FaceTime or Zoom.
>>>>>>
>>>>>> Conversion from JSON to XML is also done!
>>>>>>
>>>>>> John
>>>>>>
>>>>>>
>>>>>> On Sat, Nov 22, 2025 at 11:31 AM GPU Group via x3d-public <
>>>>>> x3d-public at web3d.org> wrote:
>>>>>>
>>>>>>> "Gaussian Splatting"
>>>>>>> .ply files appear to deliver similar polygons as X3D
>>>>>>> IndexedTriangleSet
>>>>>>> https://en.wikipedia.org/wiki/PLY_(file_format)
>>>>>>>
>>>>>>> https://www.web3d.org/documents/specifications/19775-1/V4.0/index.html
>>>>>>>
>>>>>>> Methods to get .ply into x3d scene:
>>>>>>> 0. pre-process with non-browser tool to convert to x3d scene snippet
>>>>>>> for inlining
>>>>>>> 1. Special new IndexedTriangleSetPly node with a url field
>>>>>>> 2. Proto containing i) first node IndexedTriangleSet, ii) Script
>>>>>>> node to process ply into IndexedTriangleSet, and either:
>>>>>>> a) SAI function for javascript to read an arbitrary file url into a
>>>>>>> blob for processing from ply to IndexedTriangleSet by javascript
>>>>>>> b) a new node type that reads an arbitrary file into an SFImage as a
>>>>>>> blob, a route to move the SFImage to Script for processing from ply to
>>>>>>> IndexedTriangleSet
>>>>>>> Q. or is there another method that's easier / already working?
>>>>>>> -Doug
>>>>>>>
>>>>>>> On Tue, Nov 18, 2025 at 9:31 AM Bergstrom, Aaron via x3d-public <
>>>>>>> x3d-public at web3d.org> wrote:
>>>>>>>
>>>>>>>> X3D and AI Stakeholders,
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>> Please join us for the X3D-AI Working Group meeting this * Wed,
>>>>>>>> Nov 19th* at *2pm GMT* (*9am US Eastern* – *6am Pacific*)
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>> The agenda for this week will include the following topics:
>>>>>>>>
>>>>>>>> - Metaverse Standards Forum - AI Working Group
>>>>>>>> - Gaussian Splatting – Proposed Node Text
>>>>>>>> - AI Assisted Content Creation
>>>>>>>> - Near-term Activities of the X3D-AI Working Group
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>> The Zoom link for the meeting and a more detailed agenda can be
>>>>>>>> found at the Calendar link below
>>>>>>>>
>>>>>>>>
>>>>>>>> https://www.web3d.org/calendar/2800/x3d-ai-working-group-meeting/2025-11-19t140000-2025-12-17t140000-2026-01-21t140000
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>> Hope to see everyone there,
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>> Aaron Bergstrom
>>>>>>>>
>>>>>>>> X3D-AI Working Group Chair
>>>>>>>>
>>>>>>>> https://www.web3d.org/working-groups/ai-x3d
>>>>>>>>
>>>>>>>>
>>>>>>>> _______________________________________________
>>>>>>>> x3d-public mailing list
>>>>>>>> x3d-public at web3d.org
>>>>>>>> http://web3d.org/mailman/listinfo/x3d-public_web3d.org
>>>>>>>>
>>>>>>> _______________________________________________
>>>>>>> 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-ecosystem_web3d.org/attachments/20251128/698503cb/attachment-0001.html>
More information about the X3D-Ecosystem
mailing list