<div dir="auto">As Joe said, I need to learn how to read glTF.  Ugh, thanks, Joe, I’m not a computer, it’s more my style to create an API that will create glTF, but I’ve not had success converting X3D to JSON.  The point of the web was to create something readable and debuggable, not follow pointers everywhere like a machine does.  Some people can probably read in parallels, I have problems comprehending.</div><div dir="auto"><br></div><div dir="auto">I admire Khronos for what they did with IridescentOlives, but since X3D doesn’t support those extensions, I don’t see the point in supporting glTF.  If I want IridescentOlives, I’ll swap to Three.JS or React/Three.  Besides, X3D generated from glTF is an order of magnitude larger than glTF.  That’s not X3D’s fault.</div><div dir="auto"><br></div><div dir="auto">I suggest a better path forward is to support webgpu, wpgu and wgsl:</div><div dir="auto"><br></div><div dir="auto"><div><div style="font-family:"google sans",roboto,"helvetica neue",arial,sans-serif;font-size:23.4px;font-style:normal;font-weight:400;letter-spacing:normal;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;text-decoration:none;color:rgb(25,27,40)"><div style="font-family:"google sans",roboto,"helvetica neue",arial,sans-serif"><div style="margin:0px 0px 20px;font-size:18px;letter-spacing:normal;line-height:24px;font-family:"google sans",roboto,"helvetica neue",arial,sans-serif;font-weight:400!important">WebGPU Shading Language (WGSL) is a low-level Rust-like language used to write shaders for WebGPU. Applications that use the WebGPU API use WGSL to express programs that run on the GPU. WGSL is designed to easily convert into the shader language of the backend, such as: </div></div></div><div style="font-family:"google sans",roboto,"helvetica neue",arial,sans-serif;font-style:normal;font-weight:400;letter-spacing:normal;text-indent:0px;text-transform:none;word-spacing:0px;color:rgb(25,27,40)"><div style="font-family:"google sans",roboto,"helvetica neue",arial,sans-serif"><ul style="font-size:16px;text-decoration:none;margin:10px 0px 20px;padding:0px 0px 0px 24px;line-height:22px;font-family:"google sans",roboto,"helvetica neue",arial,sans-serif"><li style="margin:0px 0px 8px;padding:0px 0px 0px 4px;list-style:inherit;font-family:"google sans",roboto,"helvetica neue",arial,sans-serif">SPIR-V: For Vulkan </li><li style="margin:0px 0px 8px;padding:0px 0px 0px 4px;list-style:inherit;font-family:"google sans",roboto,"helvetica neue",arial,sans-serif">MSL: For Metal </li><li style="margin:0px 0px 8px;padding:0px 0px 0px 4px;list-style:inherit;font-family:"google sans",roboto,"helvetica neue",arial,sans-serif">HLSL: For DX12 </li><li style="margin:0px;padding:0px 0px 0px 4px;list-style:inherit;font-family:"google sans",roboto,"helvetica neue",arial,sans-serif">GLSL: For OpenGL<span style="white-space:nowrap;font-family:"google sans",roboto,"helvetica neue",arial,sans-serif"> </span></li></ul><div dir="auto" style="font-family:"google sans",roboto,"helvetica neue",arial,sans-serif"><font size="3" style="font-family:"google sans",roboto,"helvetica neue",arial,sans-serif;color:rgb(25,27,40)"><span style="font-family:"google sans",roboto,"helvetica neue",arial,sans-serif">Then our X3D browsers can use WGSL to create</span></font></div><div dir="auto" style="font-family:"google sans",roboto,"helvetica neue",arial,sans-serif"><font size="3" style="font-family:"google sans",roboto,"helvetica neue",arial,sans-serif;color:rgb(25,27,40)"><span style="font-family:"google sans",roboto,"helvetica neue",arial,sans-serif">an environment whereby higher levels of abstraction</span></font></div><div dir="auto" style="font-family:"google sans",roboto,"helvetica neue",arial,sans-serif"><font size="3" style="font-family:"google sans",roboto,"helvetica neue",arial,sans-serif;color:rgb(25,27,40)"><span style="font-family:"google sans",roboto,"helvetica neue",arial,sans-serif">can be platform specific and performant.</span></font></div><div dir="auto" style="font-family:"google sans",roboto,"helvetica neue",arial,sans-serif"><font size="3" style="font-family:"google sans",roboto,"helvetica neue",arial,sans-serif;color:rgb(25,27,40)"><span style="font-family:"google sans",roboto,"helvetica neue",arial,sans-serif"><br></span></font></div><div dir="auto" style="font-family:"google sans",roboto,"helvetica neue",arial,sans-serif"><font size="3" style="font-family:"google sans",roboto,"helvetica neue",arial,sans-serif;color:rgb(25,27,40)"><span style="font-family:"google sans",roboto,"helvetica neue",arial,sans-serif">I never wanted to be a systems guy.  That was very</span></font></div><div dir="auto" style="font-family:"google sans",roboto,"helvetica neue",arial,sans-serif"><font size="3" style="font-family:"google sans",roboto,"helvetica neue",arial,sans-serif;color:rgb(25,27,40)"><span style="font-family:"google sans",roboto,"helvetica neue",arial,sans-serif"> plain in my SGI interview, so they didn’t hire me, despite</span></font></div><div dir="auto" style="font-family:"google sans",roboto,"helvetica neue",arial,sans-serif"><font size="3" style="font-family:"google sans",roboto,"helvetica neue",arial,sans-serif;color:rgb(25,27,40)"><span style="font-family:"google sans",roboto,"helvetica neue",arial,sans-serif">graduating at the top of my class.</span></font></div><div dir="auto" style="font-family:"google sans",roboto,"helvetica neue",arial,sans-serif"><font size="3" style="font-family:"google sans",roboto,"helvetica neue",arial,sans-serif;color:rgb(25,27,40)"><span style="font-family:"google sans",roboto,"helvetica neue",arial,sans-serif"><br></span></font></div><div dir="auto" style="font-family:"google sans",roboto,"helvetica neue",arial,sans-serif"><font size="3" style="font-family:"google sans",roboto,"helvetica neue",arial,sans-serif;color:rgb(25,27,40)"><span style="font-family:"google sans",roboto,"helvetica neue",arial,sans-serif">What don’t you understand about application developer?</span></font></div><div dir="auto" style="font-family:"google sans",roboto,"helvetica neue",arial,sans-serif"><br></div><div dir="auto" style="font-family:"google sans",roboto,"helvetica neue",arial,sans-serif">The shading language code I’ve worked on I got from a Java3D app.  Others have helped significantly.  Yvonne, Mick, Holger, Michalis.</div><div dir="auto" style="font-family:"google sans",roboto,"helvetica neue",arial,sans-serif"><br></div><div dir="auto" style="font-family:"google sans",roboto,"helvetica neue",arial,sans-serif">If something is missing from the Blender *import*, let me know and I will try to fix it.  People are welcome to take my JSON to STL code and extend it for glTF.  I’m not sure what’s the right version, but I can look it up or go with the X3DJSONLD.  <div dir="auto" style="font-family:"google sans",roboto,"helvetica neue",arial,sans-serif"><a href="https://github.com/coderextreme/X3DJSONLD/blob/master/src/main/node/convertJsonToStl.js" style="font-family:"google sans",roboto,"helvetica neue",arial,sans-serif">https://github.com/coderextreme/X3DJSONLD/blob/master/src/main/node/convertJsonToStl.js</a>  Feel free to copy and issue pull requests.  It doesn’t handle curved surfaces that I recall.</div></div><div dir="auto" style="font-family:"google sans",roboto,"helvetica neue",arial,sans-serif"><br></div><div dir="auto" style="font-family:"google sans",roboto,"helvetica neue",arial,sans-serif">I look at XML DIS and think, maybe I could do something like that for JSON.  I think I could.</div><div dir="auto" style="font-family:"google sans",roboto,"helvetica neue",arial,sans-serif"><br></div><div dir="auto" style="font-family:"google sans",roboto,"helvetica neue",arial,sans-serif">Is there a DIS schema?</div><div dir="auto" style="font-family:"google sans",roboto,"helvetica neue",arial,sans-serif"><br></div><div dir="auto" style="font-family:"google sans",roboto,"helvetica neue",arial,sans-serif">I fully realize an attempt has been made to convert XML to glTF.</div><div dir="auto" style="font-family:"google sans",roboto,"helvetica neue",arial,sans-serif"><font size="3" style="font-family:"google sans",roboto,"helvetica neue",arial,sans-serif;color:rgb(25,27,40)"><span style="font-family:"google sans",roboto,"helvetica neue",arial,sans-serif"><br></span></font></div><div dir="auto" style="font-family:"google sans",roboto,"helvetica neue",arial,sans-serif"><font size="3" style="font-family:"google sans",roboto,"helvetica neue",arial,sans-serif;color:rgb(25,27,40)"><span style="font-family:"google sans",roboto,"helvetica neue",arial,sans-serif">Thanks,</span></font></div><div dir="auto" style="font-family:"google sans",roboto,"helvetica neue",arial,sans-serif"><font size="3" style="font-family:"google sans",roboto,"helvetica neue",arial,sans-serif;color:rgb(25,27,40)"><span style="font-family:"google sans",roboto,"helvetica neue",arial,sans-serif"><br></span></font></div><div dir="auto" style="font-family:"google sans",roboto,"helvetica neue",arial,sans-serif"><font size="3" style="font-family:"google sans",roboto,"helvetica neue",arial,sans-serif;color:rgb(25,27,40)"><span style="font-family:"google sans",roboto,"helvetica neue",arial,sans-serif">John</span></font></div></div></div></div><br></div><div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Tue, May 14, 2024 at 1:34 PM John Carlson <<a href="mailto:yottzumm@gmail.com">yottzumm@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-style:solid;padding-left:1ex;border-left-color:rgb(204,204,204)"><div dir="ltr">If someone can look at Jin's animation user code and write a spec on how to convert it into Blender objects or types with Python, that would be great. I have been trying, but it seems like people are not satisfied with the results.<div><br></div><div>Stuff to include from Blender: F-Curves, Interpolators, Euler Angles, Locations, Quaternions, Actions, NLA Track, Channels, DopeSheet  and Grouped Channels.  Possibly Object Bones, Pose Bones and Edit Bones.  Vertex Groups for  Skin Weights, possibly attached to Bones or Object+Matrix (Transform).</div><div><br></div><div>Stuff to include from X3D: OrientationInterpolators, PositionInterpolators, ScalarInterpolators, Transforms, Geometry of various types, ROUTEs, TimeSensors, whatever else JIn has. In particular, I need help attaching HAnimSegments, HAnimSites and HAnimJoints to HAnimHumanoid (Possibly as Transforms) as Segmented Geometry.</div><div><br></div><div>In particular, figure out how to populate the Timeline, NLA Edit, DopeSheet in generically for and model.</div><div><br></div><div>I will work on getting JoeKick's Material/Texture imported after I sleep.</div><div><br></div><div>Lots of examples will help a lot.</div><div><br></div><div>Any method you choose to generate the specification is welcome, including using OpenSource, glTF Blender importers, VRM importers, VRMA importers.</div><div><br></div><div>No one is asking you to code up a bunch of python.  I need to know relationships between things in Blender.  With just a few blender examples, I don't really know how things should be laid out.  I got 147 TimeSensors in output last time I tried.</div></div>
</blockquote></div></div>