<div dir="auto">What I’m thinking i remember is that skeleton*.x3d has full hierarchy.  I’m not sure about JinLOA4.x3d.  I took a quick look, and it looked like they were there, I’m just not sure if hands and feet geometry is fully articulated.</div><div dir="auto"><br></div><div dir="auto">John</div><div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Sun, Apr 23, 2023 at 7:43 PM John Carlson <<a href="mailto:yottzumm@gmail.com">yottzumm@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="auto">What this means to me is, we can compute standardized HAnimHumanoid with a combination of standard for most nodes, and a rescaled HAnimHumanoid model found in JinLOA4.x3d for hands and feet.  Or are we replacing standard measurements?</div><div dir="auto"><br></div><div dir="auto">Please verify that JinLOA4.x3d has LOA4 hands and feet.  I may misremember.</div><div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Sun, Apr 23, 2023 at 7:26 PM John Carlson <<a href="mailto:yottzumm@gmail.com" target="_blank">yottzumm@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="auto">Joe, box is 2x2x2 defaulted, afaik.</div><div dir="auto"><br></div><div dir="auto">I’m thinking of providing a function like</div><div dir="auto"><br></div><div dir="auto">HAnimHumanoid.applyTransform(Transform) to SAI.  I haven’t figured which SAI yet.   The scale in the Transform will change the scale of the Humanoid to 1.87, 1.87, 1.87.  The translation in the Humanoid will bring the origin and centers such that the origin is between the feet.</div><div dir="auto"><br></div><div dir="auto">How i will change the other transforms and shapes, I don’t quite understand yet.   We tried something that didn’t work.   I understand that you want to get rid of defaulted transforms, and there are defaulted transforms for HAnim named nodes found in X3DUOM.</div><div dir="auto"><br></div><div dir="auto">What i think this means is i will have to pull all the HAnim default measurements from X3DUOM, HAnim 2.0 standard, or some other source, like x3d.py or X3DJSAIL, which pull from X3DUOM.  While we have a lot of these measurements in those places, I think we still need someone to pull out measurements from either the scene in question (I don’t know if all the measurements are there, we need to check), another scene, or measure them ourselves in the standard.</div><div dir="auto"><br></div><div dir="auto">That is, either the data should provide the measurements (particularly hands and feet), or the standards.</div><div dir="auto"><br></div><div dir="auto">I think your goal of taking the hands and feet measurements out of the scene is good, we will also need to pull measurements out of the standard, X3DUOM or SAI that are present, so we can do our multiplication properly, and the higher nodes must influence lower nodes.</div><div dir="auto"><br></div><div dir="auto">I already have a skeleton which pulls most of the measurements for the skeleton from the standard via scraped files.</div><div dir="auto"><br></div><div dir="auto">So we can continue using a scene to pull out HAnim measurements, as long as the measurements are there.</div><div dir="auto"><br></div><div dir="auto">May i suggest that we continue by ignoring shape geometry and focusing on HAnim nodes?  Once we have defaults for HAnim nodes, we transfer to standard, X3DUOM, etc.  then we can rescrape, and hopefully create an appropriate Humanoid.</div><div dir="auto"><br></div><div dir="auto">We have verified that JinLOA4.x3d has all nodes in hierarchy.   The measurements in JinLOA4.x3d do not yet meet the standard, AFAIK.</div><div dir="auto"><br></div><div dir="auto">Thanks!</div><div dir="auto"><br></div><div dir="auto">John</div><div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Sun, Apr 23, 2023 at 6:18 PM Joseph D Williams <<a href="mailto:joedwil@earthlink.net" target="_blank">joedwil@earthlink.net</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 lang="EN-US" link="blue" vlink="#954F72"><div><ul style="margin-top:0in" type="disc"><li style="margin-left:0in">Understood, Joe! </li></ul><p class="MsoNormal"><u></u> <u></u></p><p class="MsoNormal">Fine. Are you sure you see how we drew that part of a box? The coordinates of the points and how to make triangles?</p><p class="MsoNormal"><u></u> <u></u></p><p class="MsoNormal">There is a default 0 0 0 for the root scene. You are not really supposed to draw in this space but recommended to have a Group or Transform to hold geometry. If I say Transform defaults, Shape Box defaults then I get a box 1x1x1 centered at 0 0 0 in ancestor space so the thing should be hanging there around the middle of the scene. For other standard shapes, when the user asks for a cone, he will expect standard cone, but a cone that is not carefully specced out but will probably consist of about what 20 to 50 points. If the user wants more detail or less points then it is fairly easy diyofs in basic IFS user code. </p><p class="MsoNormal"><u></u> <u></u></p><p class="MsoNormal">Thanks, </p><p class="MsoNormal">Joe</p></div></div><div lang="EN-US" link="blue" vlink="#954F72"><div><p class="MsoNormal">  </p><p class="MsoNormal"><u></u> <u></u></p><div style="border-width:1pt medium medium;border-style:solid none none;padding:3pt 0in 0in;border-color:rgb(225,225,225) currentcolor currentcolor"><p class="MsoNormal" style="border:medium;padding:0in"><b>From: </b><a href="mailto:yottzumm@gmail.com" target="_blank">John Carlson</a><br><b>Sent: </b>Saturday, April 22, 2023 6:35 PM<br><b>To: </b><a href="mailto:joedwil@earthlink.net" target="_blank">Joseph D Williams</a><br><b>Cc: </b><a href="mailto:gpugroup@gmail.com" target="_blank">GPU Group</a>; <a href="mailto:x3d-public@web3d.org" target="_blank">X3D Graphics public mailing list</a><br><b>Subject: </b>Re: [x3d-public] Tessellation…convert to IFS?</p></div><p class="MsoNormal"><u></u> <u></u></p><div><p class="MsoNormal">Understood, Joe!  My issue is what do we do with sphere coordinates when transforms are multiplied out and deleted?   It would seem natural to replace non-coordinate shapes with some kind of shape set, whether indexed or not (X3D JSON to STL code does this). Especially something where triangles must share edges.  So yes, in the case of Sphere, Box and other non-coordinate shapes, the user code should change.</p></div><div><p class="MsoNormal"><u></u> <u></u></p></div><div><p class="MsoNormal">I think the solution may be to retain lowest level transforms in the scene in order to maintain shapes like spheres, cones, cylinders, etc.  in user code.   Then, do we need to apply the transforms to geometry?</p></div><div><p class="MsoNormal"><u></u> <u></u></p></div><div><p class="MsoNormal">Joe,  it seems like you’re leaning towards changing the shape user code to sets?  This is getting  more and more like X3D JSON to STL, we just need to support different output formats and additional shapes.  Should we translate to glTF instead of STL?</p></div><div><p class="MsoNormal"><u></u> <u></u></p></div><div><p class="MsoNormal">Doug, this is primarily to produce a standardized human model.</p></div><div><p class="MsoNormal"><u></u> <u></u></p></div><div><p class="MsoNormal">John</p></div><div><p class="MsoNormal"><u></u> <u></u></p><div><div><p class="MsoNormal">On Sat, Apr 22, 2023 at 7:03 PM Joseph D Williams <<a href="mailto:joedwil@earthlink.net" target="_blank">joedwil@earthlink.net</a>> wrote:</p></div><blockquote style="border-width:medium medium medium 1pt;border-style:none none none solid;padding:0in 0in 0in 6pt;margin-left:4.8pt;margin-right:0in;border-color:currentcolor currentcolor currentcolor rgb(204,204,204)"><div><div><p class="MsoNormal"> </p><p class="MsoNormal"> </p><p class="MsoNormal">Also note there are several ways to represent a shape in x3d. If the name includes Indexed then the user code includes the coordinates for the points and the sets of coordindex numbers that tell the browser how to make the triangles. </p><p class="MsoNormal">Some styles of shapes do not require the user to supply coordIndex, then the points are default auto-indexed into triangles by a standardized  formula depending on name and included user code for points. </p><p class="MsoNormal"> </p><p class="MsoNormal">So, when you say shape Sphere then the browser encodes that depending on its internal spec sphere. </p><p class="MsoNormal">You can see the result in a browser that can just show the points or triangles of the shape sphere otherwise it will appear as a solid but the details of the actual coordinates of points and tessellation (indexing) of those points will not appear in the user code because what does the user care about what the browser uses to create your Sphere? . </p><p class="MsoNormal"> </p><p class="MsoNormal">So, for the default shape Box, probably uses two triangles per side. </p><p class="MsoNormal">I think there is x3d Shape user code to present a box in both indexed and auto-indexed form. </p><p class="MsoNormal"> </p><p class="MsoNormal">Here is classic-style user code with lots of defaults for one side of a box. </p><p class="MsoNormal"> </p><p class="MsoNormal">DEF boxfront Shape {</p><p class="MsoNormal">  appearance Appearance {</p><p class="MsoNormal">    material Material { }</p><p class="MsoNormal">    texture ImageTexture {</p><p class="MsoNormal">      url [ "textures/boxfront.jpg" ]</p><p class="MsoNormal">    }</p><p class="MsoNormal">  }</p><p class="MsoNormal">  geometry IndexedFaceSet {</p><p class="MsoNormal">    coordIndex [ 0 1 2 3 -1 ]</p><p class="MsoNormal">    coord Coordinate {</p><p class="MsoNormal">      point [ -1 -1 1, 1 -1 1, 1 1 1, -1 1 1 ]</p><p class="MsoNormal">    }</p><p class="MsoNormal">    texCoordIndex [ 0 1 2 3 -1 ]</p><p class="MsoNormal">    texCoord TextureCoordinate {</p><p class="MsoNormal">      point [ 0 0 1 0 1 1 0 1 ]</p><p class="MsoNormal">    }</p><p class="MsoNormal">  }</p><p class="MsoNormal">}</p><p class="MsoNormal"> </p><p class="MsoNormal">Joe</p></div></div><div><div><p class="MsoNormal"> </p><p class="MsoNormal"> </p><div style="border-width:1pt medium medium;border-style:solid none none;padding:3pt 0in 0in;border-color:currentcolor"><p class="MsoNormal"><b>From: </b><a href="mailto:gpugroup@gmail.com" target="_blank">GPU Group</a><br><b>Sent: </b>Saturday, April 22, 2023 2:33 PM<br><b>To: </b><a href="mailto:yottzumm@gmail.com" target="_blank">John Carlson</a><br><b>Cc: </b><a href="mailto:x3d-public@web3d.org" target="_blank">X3D Graphics public mailing list</a><br><b>Subject: </b>Re: [x3d-public] Tessellation…convert to IFS?</p></div><p class="MsoNormal"> </p><div><p class="MsoNormal">Depends what you're doing. Assuming you're starting with a point cloud, if you're tessellating something almost flat, and with irregular points, then you can use something like Delaunay algorithm to optimize the edges between points to give triangles that are more equi-angular.</p><div><p class="MsoNormal">If you are on a 3D dimensional surface, but know its close to being convex -- like a sphere or cube -- then you can move the planar math around a spherical center, and crop points in the distance / on the other side of center when triangulating. </p></div><div><p class="MsoNormal">Or you can remove and add points from a pre-triangulated sphere (I just made this up). Looking orthogonally at an existing triangle on your sphere, add a point from your point cloud, to the appropriate triangle, based on its yaw and pitch, or latitude, longitude, while ignoring its radius/height. When you have all your points added, then start removing the sphere's points. After each step of adding (or removing sphere points at the end), do Delaunay recursive triangle swaps on the local plane. </p></div><div><p class="MsoNormal">Or ask ChatGPT - it might know.</p></div><div><p class="MsoNormal">-Doug</p></div></div><p class="MsoNormal"> </p><div><div><p class="MsoNormal">On Sat, Apr 22, 2023 at 3:05 PM John Carlson <<a href="mailto:yottzumm@gmail.com" target="_blank">yottzumm@gmail.com</a>> wrote:<u></u><u></u></p></div><blockquote style="border-width:medium medium medium 1pt;border-style:none none none solid;padding:0in 0in 0in 6pt;margin:5pt 0in 5pt 4.8pt;border-color:currentcolor currentcolor currentcolor rgb(204,204,204)"><p class="MsoNormal">When one is tessellating a shape, like Box, is it typical to convert to IFS?</p><div><p class="MsoNormal"> </p></div><div><p class="MsoNormal">Thanks!</p></div><div><p class="MsoNormal"> </p></div><div><p class="MsoNormal">John</p></div></blockquote></div><p class="MsoNormal" style="margin-left:4.8pt">_______________________________________________<br>x3d-public mailing list<br><a href="mailto:x3d-public@web3d.org" target="_blank">x3d-public@web3d.org</a><br><a href="http://web3d.org/mailman/listinfo/x3d-public_web3d.org" target="_blank">http://web3d.org/mailman/listinfo/x3d-public_web3d.org</a></p></div></div></blockquote></div></div><p class="MsoNormal" style="margin-left:4.8pt"> </p><p class="MsoNormal"><u></u> <u></u></p></div></div></blockquote></div></div>
</blockquote></div></div>
</blockquote></div></div>