Skip to content

RiggedSimple glTF conversion

Andreas Plesch edited this page Dec 14, 2018 · 35 revisions

glTF to HAnim example conversion

RiggedSimple at https://github.com/KhronosGroup/glTF-Sample-Models/tree/master/2.0/RiggedSimple includes skeletal animation in a simple manner. The example was originally created in Blender, then exported as Collada and converted to glTF with collada2gltf.

To make manual porting easier, the glTF was cleaned from redundant and no-op animation content: https://github.com/andreasplesch/glTF-Sample-Models/tree/simpleRiggedSimple/2.0/RiggedSimple/glTF

glTF json

{
    "asset": {
        "generator": "COLLADA2GLTF, manual cleaning",
        "version": "2.0"
    },
    "scene": 0,
    "scenes": [
        {
            "nodes": [
                0
            ]
        }
    ],
    "nodes": [
        {
            "children": [
                2,
                1
            ],
            "matrix": [
                1.0,
                0.0,
                0.0,
                0.0,
                0.0,
                0.0,
                -1.0,
                0.0,
                0.0,
                1.0,
                0.0,
                0.0,
                0.0,
                0.0,
                0.0,
                1.0
            ]
        },
        {
            "mesh": 0,
            "skin": 0
        },
        {
            "children": [
                3
            ],
            "translation": [
                0.0,
                -3.156060017772689e-7,
                -4.1803297996521
            ],
            "rotation": [
                -0.7047404050827026,
                -0.0,
                -0.0,
                -0.7094652056694031
            ]
        },
        {
            "translation": [
                0.0,
                4.18717098236084,
                0.0
            ]
        },
        {
            "_children": [
                2
            ]
        }
    ],
    "meshes": [
        {
            "primitives": [
                {
                    "attributes": {
                        "JOINTS_0": 1,
                        "NORMAL": 2,
                        "POSITION": 3,
                        "WEIGHTS_0": 4
                    },
                    "indices": 0,
                    "mode": 4,
                    "material": 0
                }
            ],
            "name": "Cylinder"
        }
    ],
    "materials": [
        {
            "pbrMetallicRoughness": {
                "baseColorFactor": [
                    0.27963539958000185,
                    0.6399999856948853,
                    0.21094389259815217,
                    1.0
                ],
                "metallicFactor": 0.0
            },
            "emissiveFactor": [
                0.0,
                0.0,
                0.0
            ],
            "name": "Material_001-effect"
        }
    ],
    "animations": [
        {
            "channels": [
                {
                    "sampler": 0,
                    "target": {
                        "node": 3,
                        "path": "rotation"
                    }
                }
            ],
            "samplers": [
                {
                    "input": 5,
                    "interpolation": "LINEAR",
                    "output": 6
                }
            ]
        }
    ],
    "skins": [
        {
            "inverseBindMatrices": 7,
            "skeleton": 2,
            "joints": [
                2,
                3
            ],
            "name": "Armature"
        }
    ],
    "accessors": [
        {
            "bufferView": 0,
            "byteOffset": 0,
            "componentType": 5123,
            "count": 564,
            "max": [
                95
            ],
            "min": [
                0
            ],
            "type": "SCALAR"
        },
        {
            "bufferView": 1,
            "byteOffset": 0,
            "componentType": 5123,
            "count": 96,
            "max": [
                1,
                1,
                0,
                0
            ],
            "min": [
                0,
                0,
                0,
                0
            ],
            "type": "VEC4"
        },
        {
            "bufferView": 2,
            "byteOffset": 0,
            "componentType": 5126,
            "count": 96,
            "max": [
                0.998198390007019,
                0.998198390007019,
                0.6888381242752075
            ],
            "min": [
                -0.998198390007019,
                -0.998198390007019,
                -0.6444730758666992
            ],
            "type": "VEC3"
        },
        {
            "bufferView": 2,
            "byteOffset": 1152,
            "componentType": 5126,
            "count": 96,
            "max": [
                1.0,
                1.0,
                4.575077056884766
            ],
            "min": [
                -1.0,
                -0.9999995827674866,
                -4.575077056884766
            ],
            "type": "VEC3"
        },
        {
            "bufferView": 3,
            "byteOffset": 0,
            "componentType": 5126,
            "count": 96,
            "max": [
                1.0,
                0.26139819622039797,
                0.0,
                0.0
            ],
            "min": [
                0.738601803779602,
                0.0,
                0.0,
                0.0
            ],
            "type": "VEC4"
        },
        
        {
            "bufferView": 4,
            "byteOffset": 12,
            "componentType": 5126,
            "count": 3,
            "max": [
                2.083333015441895
            ],
            "min": [
                0.04166661947965622
            ],
            "type": "SCALAR"
        },        
        {
            "bufferView": 5,
            "byteOffset": 48,
            "componentType": 5126,
            "count": 3,
            "max": [
                0.2933785021305084,
                -9.947898149675895e-8,
                -0.0002783441450446844,
                -0.9559963345527648
            ],
            "min": [
                -0.0020521103870123626,
                -0.00008614854596089572,
                -0.00029137087403796613,
                -0.999997854232788
            ],
            "type": "VEC4"
        },        
        {
            "bufferView": 6,
            "byteOffset": 0,
            "componentType": 5126,
            "count": 2,
            "max": [
                1.0,
                0.0,
                0.0000013948100558991428,
                0.0,
                0.000002896920022976701,
                0.006681859027594328,
                -0.9999778270721436,
                0.0,
                0.0005827349959872663,
                0.9999966025352478,
                0.006681739818304777,
                0.0,
                0.0,
                4.18023681640625,
                0.02795993909239769,
                1.0
            ],
            "min": [
                0.9999998807907105,
                -0.0005827400018461049,
                0.0,
                0.0,
                0.0,
                0.002577662002295256,
                -0.9999967217445374,
                0.0,
                0.0,
                0.999977707862854,
                0.002577601931989193,
                0.0,
                -0.000004012620138382772,
                -0.006818830035626888,
                0.027931740507483484,
                1.0
            ],
            "type": "MAT4"
        }
    ],    
    "bufferViews": [
        {
            "buffer": 0,
            "byteOffset": 5000,
            "byteLength": 1128,
            "target": 34963
        },
        {
            "buffer": 0,
            "byteOffset": 4208,
            "byteLength": 768,
            "byteStride": 8,
            "target": 34962
        },
        {
            "buffer": 0,
            "byteOffset": 1904,
            "byteLength": 2304,
            "byteStride": 12,
            "target": 34962
        },
        {
            "buffer": 0,
            "byteOffset": 224,
            "byteLength": 1536,
            "byteStride": 16,
            "target": 34962
        },
        {
            "buffer": 0,
            "byteOffset": 4976,
            "byteLength": 24
        },
        {
            "buffer": 0,
            "byteOffset": 128,
            "byteLength": 96
        },
        {
            "buffer": 0,
            "byteOffset": 0,
            "byteLength": 128
        }
    ],    
    "buffers": [
        {
            "byteLength": 6128,
            "uri": "data:application/octet-stream;base64,AACAPwAAAAAAAAAAAAAAAAAAAAB/89o7jP5/vwAAAAAAAAAAiv5/P3/y2jsAAAAAAAAAAIDEhUAb0eQ8AACAP/7/fz8Fwxi6TzW7NQAAAAC1aEI2/u0oO8n/f78AAAAAr8IYOsf/fz/87Cg7AAAAACWkhrZ+cN+7PgzlPAAAgD/eaTS/AAAAgAAAAICDnzW/3mk0vwAAAIAAAACAg581v95pNL8AAACAAAAAgIOfNb+zfAa7JqHVsyPDmLnc/3+/tTWWPqaqtLi47pG5Lbx0v7N8BrsmodWzI8OYudz/f78AAIA/AAAAAAAAAAAAAAAAAACAPwAAAAAAAAAAAAAAAAIVPT/81YU+AAAAAAAAAAAAAIA/AAAAAAAAAAAAAAAAAhU9P/zVhT4AAAAAAAAAAAAAgD8AAAAAAAAAAAAAAAACFT0//NWFPgAAAAAAAAAAAACAPwAAAAAAAAAAAAAAAAIVPT/81YU+AAAAAAAAAAAAAIA/AAAAAAAAAAAAAAAABBU9P/zVhT4AAAAAAAAAAAAAgD8AAAAAAAAAAAAAAAAEFT0//NWFPgAAAAAAAAAAAACAPwAAAAAAAAAAAAAAAAIVPT/81YU+AAAAAAAAAAAAAIA/AAAAAAAAAAAAAAAAAhU9P/zVhT4AAAAAAAAAAAAAgD8AAAAAAAAAAAAAAAACFT0//NWFPgAAAAAAAAAAAACAPwAAAAAAAAAAAAAAAAIVPT/81YU+AAAAAAAAAAAAAIA/AAAAAAAAAAAAAAAABBU9P/zVhT4AAAAAAAAAAAAAgD8AAAAAAAAAAAAAAAACFT0//NWFPgAAAAAAAAAAAACAPwAAAAAAAAAAAAAAAAIVPT/81YU+AAAAAAAAAAAAAIA/AAAAAAAAAAAAAAAAAhU9P/zVhT4AAAAAAAAAAAAAgD8AAAAAAAAAAAAAAAACFT0//NWFPgAAAAAAAAAAAACAPwAAAAAAAAAAAAAAAAIVPT/81YU+AAAAAAAAAAAAAIA/AAAAAAAAAAAAAAAAAhU9P/zVhT4AAAAAAAAAAAAAgD8AAAAAAAAAAAAAAAACFT0//NWFPgAAAAAAAAAAAACAPwAAAAAAAAAAAAAAAAIVPT/81YU+AAAAAAAAAAAAAIA/AAAAAAAAAAAAAAAAAhU9P/zVhT4AAAAAAAAAAAAAgD8AAAAAAAAAAAAAAAACFT0//NWFPgAAAAAAAAAAAACAPwAAAAAAAAAAAAAAAAQVPT/81YU+AAAAAAAAAAAAAIA/AAAAAAAAAAAAAAAAAhU9P/zVhT4AAAAAAAAAAAAAgD8AAAAAAAAAAAAAAAACFT0//NWFPgAAAAAAAAAAAACAPwAAAAAAAAAAAAAAAAIVPT/81YU+AAAAAAAAAAAAAIA/AAAAAAAAAAAAAAAAAhU9P/zVhT4AAAAAAAAAAAAAgD8AAAAAAAAAAAAAAAAAAIA/AAAAAAAAAAAAAAAAAhU9P/zVhT4AAAAAAAAAAAAAgD8AAAAAAAAAAAAAAAAEFT0//NWFPgAAAAAAAAAAAACAPwAAAAAAAAAAAAAAAAIVPT/81YU+AAAAAAAAAAAAAIA/AAAAAAAAAAAAAAAAAhU9P/zVhT4AAAAAAAAAAAQVPT/81YU+AAAAAAAAAAAAAIA/AAAAAAAAAAAAAAAAAACAPwAAAAAAAAAAAAAAAAAAgD8AAAAAAAAAAAAAAAAAAIA/AAAAAAAAAAAAAAAAAACAPwAAAAAAAAAAAAAAAAAAgD8AAAAAAAAAAAAAAAAAAIA/AAAAAAAAAAAAAAAABBU9P/zVhT4AAAAAAAAAAAAAgD8AAAAAAAAAAAAAAAAAAIA/AAAAAAAAAAAAAAAAAACAPwAAAAAAAAAAAAAAAAAAgD8AAAAAAAAAAAAAAAAAAIA/AAAAAAAAAAAAAAAAAACAPwAAAAAAAAAAAAAAAAAAgD8AAAAAAAAAAAAAAAAAAIA/AAAAAAAAAAAAAAAAAACAPwAAAAAAAAAAAAAAAAAAgD8AAAAAAAAAAAAAAAAAAIA/AAAAAAAAAAAAAAAAAACAPwAAAAAAAAAAAAAAAAAAgD8AAAAAAAAAAAAAAAAAAIA/AAAAAAAAAAAAAAAAAACAPwAAAAAAAAAAAAAAAAAAgD8AAAAAAAAAAAAAAAAAAIA/AAAAAAAAAAAAAAAAAACAPwAAAAAAAAAAAAAAAAAAgD8AAAAAAAAAAAAAAAAAAIA/AAAAAAAAAAAAAAAAAACAPwAAAAAAAAAAAAAAAAAAgD8AAAAAAAAAAAAAAAAAAIA/AAAAAAAAAAAAAAAAAACAPwAAAAAAAAAAAAAAAAAAgD8AAAAAAAAAAAAAAAAAAAAAj3CptEPFhcAAAAAAj3CptEPFhcAAAAAAj3CptEPFhcAAAIA//v9/P/7/fz8AAIA//v9/P/7/fz8AAIA//v9/P/7/fz8AAAAATv2FQAAAAAAAAAAATv2FQAAAAAAAAAAATv2FQAAAAAAAAIA/AACAPwEAgD8AAIA/AACAPwEAgD8AAIA/AACAPwEAgD8AAAAAlr9Dvwb7JL+Ruhg+PP0/v8j6JL+cYkc+SqF6vy7DdT2N0pU+F9k0v9L6JL9OksM+yRZsv+DCdT3Hf9k+1cIiv976JL8X+A0/IHlUv47DdT1dago/XWoKv9L6JL91sTQ/dbE0v67EdT3VwiI/x3/Zvt76JL8geVQ/F/gNv47DdT0X2TQ/jdKVvtL6JL/JFmw/TpLDvuDCdT0L/D8/n8EYvsL7JL/roHo/UWpHvtDCdT1pwEM/AAAAAAj6JL/uiX8/AAAAAL/DdT08/T8/kboYPsj6JL/roHo/UWpHPtDCdT0X2TQ/jdKVPtL6JL/JFmw/TpLDPuDCdT3VwiI/x3/ZPt76JL8geVQ/F/gNP47DdT1dago/XWoKP9L6JL91sTQ/dbE0P67EdT3Hf9k+1cIiP976JL8X+A0/IHlUP47DdT2N0pU+F9k0P9L6JL9OksM+yRZsP+DCdT2Ruhg+PP0/P8j6JL+cYkc+SqF6Py7DdT0AAAAAlr9DPwb7JL8AAAAA7ol/P7/DdT1owhi+A/0/P5f6JL9Rake+66B6P9DCdT2N0pW+F9k0P9L6JL9OksO+yRZsP+DCdT2uftm+AsIiPwr8JL8X+A2/IHlUP47DdT1dagq/XWoKP9L6JL94sjS/drA0P07DdT3VwiK/x3/ZPt76JL8geVS/F/gNP47DdT0X2TS/jdKVPtL6JL/JFmy/TpLDPuDCdT08/T+/kboYPsj6JL9KoXq/nGJHPi7DdT2YvkO/AAAAADD8JL/uiX+/AAAAAL/DdT0D/T+/aMIYvpf6JL/roHq/UWpHvtDCdT0X2TS/jdKVvtL6JL/JFmy/TpLDvuDCdT0CwiK/rn7Zvgr8JL9dagq/XWoKv9L6JL92sDS/eLI0v07DdT3Hf9m+1cIiv976JL8X+A2/IHlUv47DdT2N0pW+F9k0v9L6JL9OksO+yRZsv+DCdT2Ruhi+PP0/v8j6JL8AAAAA7ol/v7/DdT2cYke+SqF6vy7DdT3z0RA+cwQ2P2BWMD9zBDa/89EQPmBWMD9zBDY/89EQvmBWMD/z0RC+cwQ2v2BWMD8AAAAA35U5v8hVMD9hCY6+rHUrv7lVMD/LNs6+GE4av2RWMD8geVS/F/gNv47DdT33OQO/9zkDv6VWMD8YThq/yzbOvmRWMD+SdCu/IwqOvqdWMD9zBDa/89EQvmBWMD/flTm/AAAAAMhVMD+mcyu/XQmOPrJXMD8YThq/yzbOPmRWMD/3OQO/9zkDP6VWMD/LNs6+GE4aP2RWMD8jCo6+knQrP6dWMD/z0RC+cwQ2P2BWMD8AAAAA35U5P8hVMD9hCY4+rHUrP7lVMD/LNs4+GE4aP2RWMD/3OQM/9zkDP6VWMD8YTho/yzbOPmRWMD+SdCs/IwqOPqdWMD9zBDY/89EQPmBWMD/eljk/AAAAALpUMD+mcys/XQmOvrJXMD8YTho/yzbOvmRWMD/3OQM/9zkDv6VWMD/LNs4+GE4av2RWMD9hCY4+rHUrv7lVMD/z0RA+cwQ2v2BWMD8AAAAA+f9/vwhnksDAxUc+thR7vwhnksAIiMM9LcD1vgAAAAAX78M+V4NsvwhnksA5xj8+933nvgAAAADbOQ4/KttUvwhnksDhNIs+XVbQvgAAAAD0BDU/7QQ1vwhnksAjLbE+Jy2xvgAAAAAz21Q/0zkOvwhnksBdVtA+5DSLvgAAAABeg2w/B+/DvghnksD3fec+QMY/vgAAAAC/FHs/psVHvghnksApwPU+GIjDvQAAAAAAAIA/izKuNAhnksCvkPo+metDtAAAAAC/FHs/1cVHPghnksApwPU+54fDPQAAAABgg2w/G+/DPghnksD3fec+JcY/PgAAAAAz21Q/4DkOPwhnksBdVtA+2jSLPgAAAAD0BDU/+gQ1PwhnksAjLbE+HS2xPgAAAADZOQ4/OdtUPwhnksDhNIs+U1bQPgAAAAAR78M+aINsPwhnksAyxj8+8H3nPgAAAACzxUc+xhR7PwhnksD4h8M9I8D1PgAAAAA/7660AACAPwhnksAAAAAAqJD6PgAAAADbxUe+xBR7PwhnksAYiMO9I8D1PgAAAAAl78O+Y4NsPwhnksBAxj++6X3nPgAAAADiOQ6/M9tUPwhnksDkNIu+UFbQPgAAAAD8BDW/9AQ1PwhnksAnLbG+Fi2xPgAAAAA421S/2DkOPwhnksBdVtC+0DSLPgAAAABlg2y/B+/DPghnksD3fee+EcY/PgAAAADBFHu/n8VHPghnksApwPW+t4fDPQAAAAAAAIC/AdYXtQhnksCskPq+PukltQAAAAC7FHu/6cVHvghnksAjwPW+V4jDvQAAAABXg2y/LO/DvghnksDpfee+YcY/vgAAAAAl21S/5TkOvwhnksDkBDW//AQ1vwhnksATLbG+Ny2xvgAAAADHOQ6/ONtUvwhnksDJNIu+albQvgAAAADp7sO+YYNsvwhnksAExj++AX7nvgAAAABcxUe+uxR7vwhnksAAAAAAspD6vgAAAACXh8O9M8D1vgAAAACn07M9LgPiPghnkkA+A+K+MNOzPQhnkkBCA+I++NOzvQhnkkBI07O9VgPivghnkkAAAAAA2XDmvghnkkDzXjC+UubUvghnkkCOBoC+05q/vghnkkBMVtC+9TSLvgAAAAAf8qK+UvKivghnkkComr++wwaAvghnkkAt5tS+Xl8wvghnkkA7A+K+N9SzvQhnkkDFcOa+KAyFtQhnkkA+5tS+314wPghnkkC1mr++hwaAPghnkkA38qK+GfKiPghnkkClBoC+npq/PghnkkAiXzC+I+bUPghnkkC307O9LgPiPghnkkAAAAAAtHDmPghnkkAbXzA+JubUPghnkkCiBoA+oZq/PghnkkA08qI+H/KiPghnkkC1mr8+jgaAPghnkkA65tQ+814wPghnkkBCA+I+V9OzPQhnkkDIcOY+MY4etQhnkkA65tQ+Q18wvghnkkC1mr8+swaAvghnkkA08qI+RPKivghnkkClBoA+xpq/vghnkkAiXzA+SObUvghnkkC307M9TwPivghnkkAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAABAAAAAAABAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAAAAQAAAAAAAQAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAQAAAAAAAACeqio9WFWFP1RVBUCeqio9WFWFP1RVBUAAAAEAAgABAAMABAADAAUABgAFAAcACAAHAAkACgAJAAsADAALAA0ADgANAA8AEAAPABEAEgARABMAFAATABUAFgAVABcAGAAXABkAGgAZABsAHAAbAB0AHgAdAB8AIAAfACEAIgAhACMAJAAjACUAJgAlACcAKAAnACkAKgApACsALAArAC0ALgAtAC8AMAAwAC8AMQAyADEAMwA0ADMANQA1ADYANwA2ADgAOQA4ADoAOwAjABMAMwA8AAAAPQA6ADwAPgA/AEAAQQA7AD4AQgA+AD0AQwA5ADsARAA3ADkARQBGADcARwA0AEYASAAyADQASQAwADIASgAuADAASwAsAC4AQAAqACwATAAoACoATQAmACgATgAkACYATwAiACQAUAAgACIAUQAeACAAUgAcAB4APwAaABwAUwAYABoAVAAWABgAVQAUABYAVgASABQAVwAQABIAWAAOABAAWQAMAA4AQQAKAAwAWgAIAAoAWwAGAAgAXAAEAAYAXQACAAQAXgA9AAIAXwA9AAAAAgACAAEABAAEAAMABgAGAAUACAAIAAcACgAKAAkADAAMAAsADgAOAA0AEAAQAA8AEgASABEAFAAUABMAFgAWABUAGAAYABcAGgAaABkAHAAcABsAHgAeAB0AIAAgAB8AIgAiACEAJAAkACMAJgAmACUAKAAoACcAKgAqACkALAAsACsALgAuAC0AMAAyADAAMQA0ADIAMwBGADQANQBGADUANwA3ADYAOQA5ADgAOwADAAEAAAAAADwAAwA6ADgANgA2ADUAMwAzADEALwAvAC0AMwArACkAJwAnACUAIwAjACEAHwAfAB0AGwAbABkAFwAXABUAEwATABEADwAPAA0AEwALAAkABwAHAAUAAwADADwAOgA6ADYAMwAzAC0AKwArACcAIwAjAB8AEwAbABcAEwATAA0ACwALAAcAAwADADoAMwAzACsAIwAfABsAEwATAAsAAwADADMAEwA+ADwAPQA7ADoAPgBCAEMAXwBfAF4AXQBdAFwAWwBbAFoAQQBBAFkAWABYAFcAQQBWAFUAPwBUAFMAPwA/AFIATwBRAFAATwBPAE4ATQBNAEwAQABAAEsASgBKAEkAQABIAEcARQBFAEQAQgBCAF8AQQBdAFsAQQBBAFcAVgBVAFQAPwBSAFEATwBPAE0AQABAAEkASABIAEUAQABfAF0AQQBBAFYAPwA/AE8AQABAAEUAQgBCAEEAQABEADsAQgBCAD4AQwBFADkARABHADcARQBIAEYARwBJADQASABKADIASQBLADAASgBAAC4ASwBMACwAQABNACoATABOACgATQBPACYATgBQACQATwBRACIAUABSACAAUQA/AB4AUgBTABwAPwBUABoAUwBVABgAVABWABYAVQBXABQAVgBYABIAVwBZABAAWABBAA4AWQBaAAwAQQBbAAoAWgBcAAgAWwBdAAYAXABeAAQAXQBfAAIAXgBDAD0AXwA="
        }
    ]
}

The scene consists of one node which has two children. The first child is a transform hierarchy without a mesh. It needs to be included in the scene graph this way although it also referenced as the root joint by the referenced skin. It needs to be in the scene graph to have a defined world transform. The second child is skinned mesh. The skin skeleton has two joints. The second joint is a child of the first joint.

accessors to binary buffer

0 - indices

        {
            "bufferView": 0,
            "byteOffset": 0,
            "componentType": 5123,
            "count": 564,
            "max": [
                95
            ],
            "min": [
                0
            ],
            "type": "SCALAR"
        },

0 1 2 1 3 4 3 5 6 5 7 8 7 9 10 9 11 12 11 13 14 13 15 16 15 17 18 17 19 20 19 21 22 21 23 24 23 25 26 25 27 28 27 29 30 29 31 32 31 33 34 33 35 36 35 37 38 37 39 40 39 41 42 41 43 44 43 45 46 45 47 48 48 47 49 50 49 51 52 51 53 53 54 55 54 56 57 56 58 59 35 19 51 60 0 61 58 60 62 63 64 65 59 62 66 62 61 67 57 59 68 55 57 69 70 55 71 52 70 72 50 52 73 48 50 74 46 48 75 44 46 64 42 44 76 40 42 77 38 40 78 36 38 79 34 36 80 32 34 81 30 32 82 28 30 63 26 28 83 24 26 84 22 24 85 20 22 86 18 20 87 16 18 88 14 16 89 12 14 65 10 12 90 8 10 91 6 8 92 4 6 93 2 4 94 61 2 95 61 0 2 2 1 4 4 3 6 6 5 8 8 7 10 10 9 12 12 11 14 14 13 16 16 15 18 18 17 20 20 19 22 22 21 24 24 23 26 26 25 28 28 27 30 30 29 32 32 31 34 34 33 36 36 35 38 38 37 40 40 39 42 42 41 44 44 43 46 46 45 48 50 48 49 52 50 51 70 52 53 70 53 55 55 54 57 57 56 59 3 1 0 0 60 3 58 56 54 54 53 51 51 49 47 47 45 51 43 41 39 39 37 35 35 33 31 31 29 27 27 25 23 23 21 19 19 17 15 15 13 19 11 9 7 7 5 3 3 60 58 58 54 51 51 45 43 43 39 35 35 31 19 27 23 19 19 13 11 11 7 3 3 58 51 51 43 35 31 27 19 19 11 3 3 51 19 62 60 61 59 58 62 66 67 95 95 94 93 93 92 91 91 90 65 65 89 88 88 87 65 86 85 63 84 83 63 63 82 79 81 80 79 79 78 77 77 76 64 64 75 74 74 73 64 72 71 69 69 68 66 66 95 65 93 91 65 65 87 86 85 84 63 82 81 79 79 77 64 64 73 72 72 69 64 95 93 65 65 86 63 63 79 64 64 69 66 66 65 64 68 59 66 66 62 67 69 57 68 71 55 69 72 70 71 73 52 72 74 50 73 75 48 74 64 46 75 76 44 64 77 42 76 78 40 77 79 38 78 80 36 79 81 34 80 82 32 81 63 30 82 83 28 63 84 26 83 85 24 84 86 22 85 87 20 86 88 18 87 89 16 88 65 14 89 90 12 65 91 10 90 92 8 91 93 6 92 94 4 93 95 2 94 67 61 95

1 - joints per vertex

            "bufferView": 1,
            "byteOffset": 0,
            "componentType": 5123,
            "count": 96,
            "max": [
                1,
                1,
                0,
                0
            ],
            "min": [
                0,
                0,
                0,
                0
            ],
            "type": "VEC4"
vertex index added
     0	    0     0     0     0 
     1	    0     0     0     0 
     2	    0     1     0     0 
     3	    0     0     0     0 
     4	    0     1     0     0 
     5	    0     0     0     0 
     6	    0     1     0     0 
     7	    0     0     0     0 
     8	    0     1     0     0 
     9	    0     0     0     0 
    10	    0     1     0     0 
    11	    0     0     0     0 
    12	    0     1     0     0 
    13	    0     0     0     0 
    14	    0     1     0     0 
    15	    0     0     0     0 
    16	    0     1     0     0 
    17	    0     0     0     0 
    18	    0     1     0     0 
    19	    0     0     0     0 
    20	    0     1     0     0 
    21	    0     0     0     0 
    22	    0     1     0     0 
    23	    0     0     0     0 
    24	    0     1     0     0 
    25	    0     0     0     0 
    26	    0     1     0     0 
    27	    0     0     0     0 
    28	    0     1     0     0 
    29	    0     0     0     0 
    30	    0     1     0     0 
    31	    0     0     0     0 
    32	    0     1     0     0 
    33	    0     0     0     0 
    34	    0     1     0     0 
    35	    0     0     0     0 
    36	    0     1     0     0 
    37	    0     0     0     0 
    38	    0     1     0     0 
    39	    0     0     0     0 
    40	    0     1     0     0 
    41	    0     0     0     0 
    42	    0     1     0     0 
    43	    0     0     0     0 
    44	    0     1     0     0 
    45	    0     0     0     0 
    46	    0     1     0     0 
    47	    0     0     0     0 
    48	    0     1     0     0 
    49	    0     0     0     0 
    50	    0     1     0     0 
    51	    0     0     0     0 
    52	    0     1     0     0 
    53	    0     0     0     0 
    54	    0     0     0     0 
    55	    0     1     0     0 
    56	    0     0     0     0 
    57	    0     1     0     0 
    58	    0     0     0     0 
    59	    0     1     0     0 
    60	    0     0     0     0 
    61	    0     1     0     0 
    62	    0     1     0     0 
    63	    1     0     0     0 
    64	    1     0     0     0 
    65	    1     0     0     0 
    66	    1     0     0     0 
    67	    1     0     0     0 
    68	    1     0     0     0 
    69	    1     0     0     0 
    70	    0     1     0     0 
    71	    1     0     0     0 
    72	    1     0     0     0 
    73	    1     0     0     0 
    74	    1     0     0     0 
    75	    1     0     0     0 
    76	    1     0     0     0 
    77	    1     0     0     0 
    78	    1     0     0     0 
    79	    1     0     0     0 
    80	    1     0     0     0 
    81	    1     0     0     0 
    82	    1     0     0     0 
    83	    1     0     0     0 
    84	    1     0     0     0 
    85	    1     0     0     0 
    86	    1     0     0     0 
    87	    1     0     0     0 
    88	    1     0     0     0 
    89	    1     0     0     0 
    90	    1     0     0     0 
    91	    1     0     0     0 
    92	    1     0     0     0 
    93	    1     0     0     0 
    94	    1     0     0     0 
    95	    1     0     0     0 

2 - normal per vertex

            "bufferView": 2,
            "byteOffset": 0,
            "componentType": 5126,
            "count": 96,
            "max": [
                0.998198390007019,
                0.998198390007019,
                0.6888381242752075
            ],
            "min": [
                -0.998198390007019,
                -0.998198390007019,
                -0.6444730758666992
            ],
            "type": "VEC3"
    0.00000    -0.76464    -0.64446 
    0.14915    -0.74996    -0.64445 
    0.19471    -0.97902     0.06000 
    0.29262    -0.70644    -0.64445 
    0.38198    -0.92222     0.06000 
    0.42480    -0.63579    -0.64445 
    0.55457    -0.82997     0.06000 
    0.54069    -0.54069    -0.64445 
    0.70583    -0.70583     0.06000 
    0.63579    -0.42480    -0.64445 
    0.82997    -0.55457     0.06000 
    0.70644    -0.29262    -0.64445 
    0.92222    -0.38198     0.06000 
    0.74994    -0.14918    -0.64447 
    0.97902    -0.19474     0.06000 
    0.76465     0.00000    -0.64444 
    0.99820     0.00000     0.06000 
    0.74996     0.14915    -0.64445 
    0.97902     0.19474     0.06000 
    0.70644     0.29262    -0.64445 
    0.92222     0.38198     0.06000 
    0.63579     0.42480    -0.64445 
    0.82997     0.55457     0.06000 
    0.54069     0.54069    -0.64445 
    0.70583     0.70583     0.06000 
    0.42480     0.63579    -0.64445 
    0.55457     0.82997     0.06000 
    0.29262     0.70644    -0.64445 
    0.38198     0.92222     0.06000 
    0.14915     0.74996    -0.64445 
    0.19471     0.97902     0.06000 
    0.00000     0.76464    -0.64446 
    0.00000     0.99820     0.06000 
   -0.14918     0.74995    -0.64445 
   -0.19474     0.97902     0.06000 
   -0.29262     0.70644    -0.64445 
   -0.38198     0.92222     0.06000 
   -0.42479     0.63577    -0.64447 
   -0.55457     0.82997     0.06000 
   -0.54069     0.54069    -0.64445 
   -0.70585     0.70582     0.06000 
   -0.63579     0.42480    -0.64445 
   -0.82997     0.55457     0.06000 
   -0.70644     0.29262    -0.64445 
   -0.92222     0.38198     0.06000 
   -0.74996     0.14915    -0.64445 
   -0.97902     0.19471     0.06000 
   -0.76463     0.00000    -0.64447 
   -0.99820     0.00000     0.06000 
   -0.74995    -0.14918    -0.64445 
   -0.97902    -0.19474     0.06000 
   -0.70644    -0.29262    -0.64445 
   -0.92222    -0.38198     0.06000 
   -0.63577    -0.42479    -0.64447 
   -0.54069    -0.54069    -0.64445 
   -0.70582    -0.70585     0.06000 
   -0.42480    -0.63579    -0.64445 
   -0.55457    -0.82997     0.06000 
   -0.29262    -0.70644    -0.64445 
   -0.38198    -0.92222     0.06000 
   -0.14915    -0.74996    -0.64445 
    0.00000    -0.99820     0.06000 
   -0.19471    -0.97902     0.06000 
    0.14143     0.71101     0.68882 
   -0.71101     0.14143     0.68882 
    0.71101    -0.14143     0.68882 
   -0.14143    -0.71101     0.68882 
    0.00000    -0.72494     0.68881 
   -0.27742    -0.66976     0.68881 
   -0.40276    -0.60275     0.68882 
   -0.82997    -0.55457     0.06000 
   -0.51260    -0.51260     0.68882 
   -0.60275    -0.40276     0.68882 
   -0.66975    -0.27742     0.68882 
   -0.71101    -0.14143     0.68882 
   -0.72494     0.00000     0.68881 
   -0.66973     0.27742     0.68884 
   -0.60275     0.40276     0.68882 
   -0.51260     0.51260     0.68882 
   -0.40276     0.60275     0.68882 
   -0.27742     0.66975     0.68882 
   -0.14143     0.71101     0.68882 
    0.00000     0.72494     0.68881 
    0.27742     0.66976     0.68881 
    0.40276     0.60275     0.68882 
    0.51260     0.51260     0.68882 
    0.60275     0.40276     0.68882 
    0.66975     0.27742     0.68882 
    0.71101     0.14143     0.68882 
    0.72496     0.00000     0.68879 
    0.66973    -0.27742     0.68884 
    0.60275    -0.40276     0.68882 
    0.51260    -0.51260     0.68882 
    0.40276    -0.60275     0.68882 
    0.27742    -0.66976     0.68881 
    0.14143    -0.71101     0.68882 

3 - vertex positions

            "bufferView": 2,
            "byteOffset": 1152,
            "componentType": 5126,
            "count": 96,
            "max": [
                1.0,
                1.0,
                4.575077056884766
            ],
            "min": [
                -1.0,
                -0.9999995827674866,
                -4.575077056884766
            ],
            "type": "VEC3"
    0.00000    -1.00000    -4.57508 
    0.19509    -0.98078    -4.57508 
    0.09547    -0.47998     0.00000 
    0.38268    -0.92388    -4.57508 
    0.18728    -0.45213     0.00000 
    0.55557    -0.83147    -4.57508 
    0.27189    -0.40691     0.00000 
    0.70711    -0.70711    -4.57508 
    0.34605    -0.34605     0.00000 
    0.83147    -0.55557    -4.57508 
    0.40691    -0.27189     0.00000 
    0.92388    -0.38268    -4.57508 
    0.45213    -0.18728     0.00000 
    0.98079    -0.19509    -4.57508 
    0.47998    -0.09547     0.00000 
    1.00000     0.00000    -4.57508 
    0.48939    -0.00000     0.00000 
    0.98079     0.19509    -4.57508 
    0.47998     0.09547     0.00000 
    0.92388     0.38268    -4.57508 
    0.45213     0.18728     0.00000 
    0.83147     0.55557    -4.57508 
    0.40691     0.27189     0.00000 
    0.70711     0.70711    -4.57508 
    0.34605     0.34605     0.00000 
    0.55557     0.83147    -4.57508 
    0.27189     0.40691     0.00000 
    0.38268     0.92388    -4.57508 
    0.18728     0.45213     0.00000 
    0.19509     0.98079    -4.57508 
    0.09547     0.47998     0.00000 
   -0.00000     1.00000    -4.57508 
    0.00000     0.48938     0.00000 
   -0.19509     0.98079    -4.57508 
   -0.09547     0.47998     0.00000 
   -0.38268     0.92388    -4.57508 
   -0.18728     0.45213     0.00000 
   -0.55557     0.83147    -4.57508 
   -0.27189     0.40691     0.00000 
   -0.70711     0.70711    -4.57508 
   -0.34605     0.34605     0.00000 
   -0.83147     0.55557    -4.57508 
   -0.40691     0.27189     0.00000 
   -0.92388     0.38268    -4.57508 
   -0.45213     0.18728     0.00000 
   -0.98079     0.19509    -4.57508 
   -0.47998     0.09547     0.00000 
   -1.00000    -0.00000    -4.57508 
   -0.48939    -0.00000     0.00000 
   -0.98079    -0.19509    -4.57508 
   -0.47998    -0.09547     0.00000 
   -0.92388    -0.38268    -4.57508 
   -0.45213    -0.18728     0.00000 
   -0.83147    -0.55557    -4.57508 
   -0.70711    -0.70711    -4.57508 
   -0.34605    -0.34605     0.00000 
   -0.55557    -0.83147    -4.57508 
   -0.27189    -0.40691     0.00000 
   -0.38268    -0.92388    -4.57508 
   -0.18728    -0.45213     0.00000 
   -0.19509    -0.98079    -4.57508 
    0.00000    -0.48939     0.00000 
   -0.09547    -0.47998     0.00000 
    0.08781     0.44143     4.57508 
   -0.44143     0.08781     4.57508 
    0.44143    -0.08781     4.57508 
   -0.08781    -0.44143     4.57508 
    0.00000    -0.45008     4.57508 
   -0.17224    -0.41582     4.57508 
   -0.25005    -0.37423     4.57508 
   -0.40691    -0.27189     0.00000 
   -0.31825    -0.31826     4.57508 
   -0.37423    -0.25005     4.57508 
   -0.41582    -0.17224     4.57508 
   -0.44143    -0.08781     4.57508 
   -0.45008    -0.00000     4.57508 
   -0.41582     0.17224     4.57508 
   -0.37423     0.25005     4.57508 
   -0.31825     0.31825     4.57508 
   -0.25005     0.37423     4.57508 
   -0.17224     0.41582     4.57508 
   -0.08781     0.44143     4.57508 
    0.00000     0.45008     4.57508 
    0.17224     0.41582     4.57508 
    0.25005     0.37423     4.57508 
    0.31825     0.31825     4.57508 
    0.37423     0.25005     4.57508 
    0.41582     0.17224     4.57508 
    0.44143     0.08781     4.57508 
    0.45008    -0.00000     4.57508 
    0.41582    -0.17224     4.57508 
    0.37423    -0.25005     4.57508 
    0.31825    -0.31825     4.57508 
    0.25005    -0.37423     4.57508 
    0.17224    -0.41582     4.57508 
    0.08781    -0.44143     4.57508 

4 - weights per vertex

            "bufferView": 3,
            "byteOffset": 0,
            "componentType": 5126,
            "count": 96,
            "max": [
                1.0,
                0.26139819622039797,
                0.0,
                0.0
            ],
            "min": [
                0.738601803779602,
                0.0,
                0.0,
                0.0
            ],
            "type": "VEC4"
vertex index added
     0	    1.00000     0.00000     0.00000     0.00000 
     1	    1.00000     0.00000     0.00000     0.00000 
     2	    0.73860     0.26140     0.00000     0.00000 
     3	    1.00000     0.00000     0.00000     0.00000 
     4	    0.73860     0.26140     0.00000     0.00000 
     5	    1.00000     0.00000     0.00000     0.00000 
     6	    0.73860     0.26140     0.00000     0.00000 
     7	    1.00000     0.00000     0.00000     0.00000 
     8	    0.73860     0.26140     0.00000     0.00000 
     9	    1.00000     0.00000     0.00000     0.00000 
    10	    0.73860     0.26140     0.00000     0.00000 
    11	    1.00000     0.00000     0.00000     0.00000 
    12	    0.73860     0.26140     0.00000     0.00000 
    13	    1.00000     0.00000     0.00000     0.00000 
    14	    0.73860     0.26140     0.00000     0.00000 
    15	    1.00000     0.00000     0.00000     0.00000 
    16	    0.73860     0.26140     0.00000     0.00000 
    17	    1.00000     0.00000     0.00000     0.00000 
    18	    0.73860     0.26140     0.00000     0.00000 
    19	    1.00000     0.00000     0.00000     0.00000 
    20	    0.73860     0.26140     0.00000     0.00000 
    21	    1.00000     0.00000     0.00000     0.00000 
    22	    0.73860     0.26140     0.00000     0.00000 
    23	    1.00000     0.00000     0.00000     0.00000 
    24	    0.73860     0.26140     0.00000     0.00000 
    25	    1.00000     0.00000     0.00000     0.00000 
    26	    0.73860     0.26140     0.00000     0.00000 
    27	    1.00000     0.00000     0.00000     0.00000 
    28	    0.73860     0.26140     0.00000     0.00000 
    29	    1.00000     0.00000     0.00000     0.00000 
    30	    0.73860     0.26140     0.00000     0.00000 
    31	    1.00000     0.00000     0.00000     0.00000 
    32	    0.73860     0.26140     0.00000     0.00000 
    33	    1.00000     0.00000     0.00000     0.00000 
    34	    0.73860     0.26140     0.00000     0.00000 
    35	    1.00000     0.00000     0.00000     0.00000 
    36	    0.73860     0.26140     0.00000     0.00000 
    37	    1.00000     0.00000     0.00000     0.00000 
    38	    0.73860     0.26140     0.00000     0.00000 
    39	    1.00000     0.00000     0.00000     0.00000 
    40	    0.73860     0.26140     0.00000     0.00000 
    41	    1.00000     0.00000     0.00000     0.00000 
    42	    0.73860     0.26140     0.00000     0.00000 
    43	    1.00000     0.00000     0.00000     0.00000 
    44	    0.73860     0.26140     0.00000     0.00000 
    45	    1.00000     0.00000     0.00000     0.00000 
    46	    0.73860     0.26140     0.00000     0.00000 
    47	    1.00000     0.00000     0.00000     0.00000 
    48	    0.73860     0.26140     0.00000     0.00000 
    49	    1.00000     0.00000     0.00000     0.00000 
    50	    0.73860     0.26140     0.00000     0.00000 
    51	    1.00000     0.00000     0.00000     0.00000 
    52	    0.73860     0.26140     0.00000     0.00000 
    53	    1.00000     0.00000     0.00000     0.00000 
    54	    1.00000     0.00000     0.00000     0.00000 
    55	    0.73860     0.26140     0.00000     0.00000 
    56	    1.00000     0.00000     0.00000     0.00000 
    57	    0.73860     0.26140     0.00000     0.00000 
    58	    1.00000     0.00000     0.00000     0.00000 
    59	    0.73860     0.26140     0.00000     0.00000 
    60	    1.00000     0.00000     0.00000     0.00000 
    61	    0.73860     0.26140     0.00000     0.00000 
    62	    0.73860     0.26140     0.00000     0.00000 
    63	    1.00000     0.00000     0.00000     0.00000 
    64	    1.00000     0.00000     0.00000     0.00000 
    65	    1.00000     0.00000     0.00000     0.00000 
    66	    1.00000     0.00000     0.00000     0.00000 
    67	    1.00000     0.00000     0.00000     0.00000 
    68	    1.00000     0.00000     0.00000     0.00000 
    69	    1.00000     0.00000     0.00000     0.00000 
    70	    0.73860     0.26140     0.00000     0.00000 
    71	    1.00000     0.00000     0.00000     0.00000 
    72	    1.00000     0.00000     0.00000     0.00000 
    73	    1.00000     0.00000     0.00000     0.00000 
    74	    1.00000     0.00000     0.00000     0.00000 
    75	    1.00000     0.00000     0.00000     0.00000 
    76	    1.00000     0.00000     0.00000     0.00000 
    77	    1.00000     0.00000     0.00000     0.00000 
    78	    1.00000     0.00000     0.00000     0.00000 
    79	    1.00000     0.00000     0.00000     0.00000 
    80	    1.00000     0.00000     0.00000     0.00000 
    81	    1.00000     0.00000     0.00000     0.00000 
    82	    1.00000     0.00000     0.00000     0.00000 
    83	    1.00000     0.00000     0.00000     0.00000 
    84	    1.00000     0.00000     0.00000     0.00000 
    85	    1.00000     0.00000     0.00000     0.00000 
    86	    1.00000     0.00000     0.00000     0.00000 
    87	    1.00000     0.00000     0.00000     0.00000 
    88	    1.00000     0.00000     0.00000     0.00000 
    89	    1.00000     0.00000     0.00000     0.00000 
    90	    1.00000     0.00000     0.00000     0.00000 
    91	    1.00000     0.00000     0.00000     0.00000 
    92	    1.00000     0.00000     0.00000     0.00000 
    93	    1.00000     0.00000     0.00000     0.00000 
    94	    1.00000     0.00000     0.00000     0.00000 
    95	    1.00000     0.00000     0.00000     0.00000  

5 - animation input, key

            "bufferView": 4,
            "byteOffset": 12,
            "componentType": 5126,
            "count": 3,
            "max": [
                2.083333015441895
            ],
            "min": [
                0.04166661947965622
            ],
            "type": "SCALAR"
    0.04167 
    1.04167 
    2.08333 

6 - animation output, rotation quaternion key value

            "bufferView": 5,
            "byteOffset": 48,
            "componentType": 5126,
            "count": 3,
            "max": [
                0.2933785021305084,
                -9.947898149675895e-8,
                -0.0002783441450446844,
                -0.9559963345527648
            ],
            "min": [
                -0.0020521103870123626,
                -0.00008614854596089572,
                -0.00029137087403796613,
                -0.999997854232788
            ],
            "type": "VEC4"
   -0.00205    -0.00000    -0.00029    -1.00000 
    0.29338    -0.00009    -0.00028    -0.95600 
   -0.00205    -0.00000    -0.00029    -1.00000 

7 - inverse bind matrix per joint

            "bufferView": 6,
            "byteOffset": 0,
            "componentType": 5126,
            "count": 2,
            "max": [
                1.0,
                0.0,
                0.0000013948100558991428,
                0.0,
                0.000002896920022976701,
                0.006681859027594328,
                -0.9999778270721436,
                0.0,
                0.0005827349959872663,
                0.9999966025352478,
                0.006681739818304777,
                0.0,
                0.0,
                4.18023681640625,
                0.02795993909239769,
                1.0
            ],
            "min": [
                0.9999998807907105,
                -0.0005827400018461049,
                0.0,
                0.0,
                0.0,
                0.002577662002295256,
                -0.9999967217445374,
                0.0,
                0.0,
                0.999977707862854,
                0.002577601931989193,
                0.0,
                -0.000004012620138382772,
                -0.006818830035626888,
                0.027931740507483484,
                1.0
            ],
            "type": "MAT4"
    1.00000     0.00000     0.00000     0.00000 
    0.00000     0.00668    -0.99998     0.00000 
    0.00000     0.99998     0.00668     0.00000 
    0.00000     4.18024     0.02793     1.00000 

    1.00000    -0.00058     0.00000     0.00000 
    0.00000     0.00258    -1.00000     0.00000 
    0.00058     1.00000     0.00258     0.00000 
   -0.00000    -0.00682     0.02796     1.00000 

X3D

experimental xml

<Scene>
<Transform DEF='node_0' rotation='1 0 0 1.57'>
<HAnimHumanoid DEF='gltf_import' info='"authorName=Adam Smith" "authorEmail=aa" "copyright=(C) 2019 Adam Smith - aa" "humanoidVersion=2.0"' name='nonHumanoid' version='2.0'>
  <Coordinate DEF='SKINCOORD' containerField='skinCoord' point='
    0.00000    -1.00000    -4.57508 
    0.19509    -0.98078    -4.57508 
    0.09547    -0.47998     0.00000 
    0.38268    -0.92388    -4.57508 
    0.18728    -0.45213     0.00000 
    0.55557    -0.83147    -4.57508 
    0.27189    -0.40691     0.00000 
    0.70711    -0.70711    -4.57508 
    0.34605    -0.34605     0.00000 
    0.83147    -0.55557    -4.57508 
    0.40691    -0.27189     0.00000 
    0.92388    -0.38268    -4.57508 
    0.45213    -0.18728     0.00000 
    0.98079    -0.19509    -4.57508 
    0.47998    -0.09547     0.00000 
    1.00000     0.00000    -4.57508 
    0.48939    -0.00000     0.00000 
    0.98079     0.19509    -4.57508 
    0.47998     0.09547     0.00000 
    0.92388     0.38268    -4.57508 
    0.45213     0.18728     0.00000 
    0.83147     0.55557    -4.57508 
    0.40691     0.27189     0.00000 
    0.70711     0.70711    -4.57508 
    0.34605     0.34605     0.00000 
    0.55557     0.83147    -4.57508 
    0.27189     0.40691     0.00000 
    0.38268     0.92388    -4.57508 
    0.18728     0.45213     0.00000 
    0.19509     0.98079    -4.57508 
    0.09547     0.47998     0.00000 
   -0.00000     1.00000    -4.57508 
    0.00000     0.48938     0.00000 
   -0.19509     0.98079    -4.57508 
   -0.09547     0.47998     0.00000 
   -0.38268     0.92388    -4.57508 
   -0.18728     0.45213     0.00000 
   -0.55557     0.83147    -4.57508 
   -0.27189     0.40691     0.00000 
   -0.70711     0.70711    -4.57508 
   -0.34605     0.34605     0.00000 
   -0.83147     0.55557    -4.57508 
   -0.40691     0.27189     0.00000 
   -0.92388     0.38268    -4.57508 
   -0.45213     0.18728     0.00000 
   -0.98079     0.19509    -4.57508 
   -0.47998     0.09547     0.00000 
   -1.00000    -0.00000    -4.57508 
   -0.48939    -0.00000     0.00000 
   -0.98079    -0.19509    -4.57508 
   -0.47998    -0.09547     0.00000 
   -0.92388    -0.38268    -4.57508 
   -0.45213    -0.18728     0.00000 
   -0.83147    -0.55557    -4.57508 
   -0.70711    -0.70711    -4.57508 
   -0.34605    -0.34605     0.00000 
   -0.55557    -0.83147    -4.57508 
   -0.27189    -0.40691     0.00000 
   -0.38268    -0.92388    -4.57508 
   -0.18728    -0.45213     0.00000 
   -0.19509    -0.98079    -4.57508 
    0.00000    -0.48939     0.00000 
   -0.09547    -0.47998     0.00000 
    0.08781     0.44143     4.57508 
   -0.44143     0.08781     4.57508 
    0.44143    -0.08781     4.57508 
   -0.08781    -0.44143     4.57508 
    0.00000    -0.45008     4.57508 
   -0.17224    -0.41582     4.57508 
   -0.25005    -0.37423     4.57508 
   -0.40691    -0.27189     0.00000 
   -0.31825    -0.31826     4.57508 
   -0.37423    -0.25005     4.57508 
   -0.41582    -0.17224     4.57508 
   -0.44143    -0.08781     4.57508 
   -0.45008    -0.00000     4.57508 
   -0.41582     0.17224     4.57508 
   -0.37423     0.25005     4.57508 
   -0.31825     0.31825     4.57508 
   -0.25005     0.37423     4.57508 
   -0.17224     0.41582     4.57508 
   -0.08781     0.44143     4.57508 
    0.00000     0.45008     4.57508 
    0.17224     0.41582     4.57508 
    0.25005     0.37423     4.57508 
    0.31825     0.31825     4.57508 
    0.37423     0.25005     4.57508 
    0.41582     0.17224     4.57508 
    0.44143     0.08781     4.57508 
    0.45008    -0.00000     4.57508 
    0.41582    -0.17224     4.57508 
    0.37423    -0.25005     4.57508 
    0.31825    -0.31825     4.57508 
    0.25005    -0.37423     4.57508 
    0.17224    -0.41582     4.57508 
    0.08781    -0.44143     4.57508 
'/>
  <HAnimJoint DEF='glTFrootnode' containerField='skeleton' name='HumanoidRoot' skinCoordIndex='' skinCoordWeight=''> 
    <HAnimJoint DEF='node_2' name='firstglTFjoint' skinCoordIndex='' skinCoordWeight=''
     translation='0.0
                -3.156060017772689e-7
                -4.1803297996521'
     rotation='-1 0 0 4.712389' 
     rotquat='  -0.7047404050827026,
                -0.0,
                -0.0,
                -0.7094652056694031'>
      <HAnimJoint DEF='node_2_IBM' name='IBMfirstglTFjoint' 
          translation='0.00000     4.18024     0.02793'
          rotation=' 1 0 0 1.5707963'
          matrix='
    1.00000     0.00000     0.00000     0.00000 
    0.00000     0.00668    -0.99998     0.00000 
    0.00000     0.99998     0.00668     0.00000 
    0.00000     4.18024     0.02793     1.00000 '
          skinCoordIndex=' 0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,70'
          skinCoordWeight=' 1.00000,1.00000,0.73860,1.00000,0.73860,1.00000,0.73860,1.00000,0.73860,1.00000,0.73860,1.00000,0.73860,1.00000,0.73860,1.00000,0.73860,1.00000,0.73860,1.00000,0.73860,1.00000,0.73860,1.00000,0.73860,1.00000,0.73860,1.00000,0.73860,1.00000,0.73860,1.00000,0.73860,1.00000,0.73860,1.00000,0.73860,1.00000,0.73860,1.00000,0.73860,1.00000,0.73860,1.00000,0.73860,1.00000,0.73860,1.00000,0.73860,1.00000,0.73860,1.00000,0.73860,1.00000,1.00000,0.73860,1.00000,0.73860,1.00000,0.73860,1.00000,0.73860,0.73860,0.73860' />
      <HAnimJoint DEF='node_3' name='secondglTFjoint' skinCoordIndex='' skinCoordWeight=''
       translation='
                0.0
                4.18717098236084
                0.0' >
        <HAnimJoint DEF='node_3_IBM' name='IBMsecondglTFjoint'
           translation='-0.00000    -0.00682     0.02796'
           rotation='1 0 0 1.5707963'
           matrix='
    1.00000    -0.00058     0.00000     0.00000 
    0.00000     0.00258    -1.00000     0.00000 
    0.00058     1.00000     0.00258     0.00000 
   -0.00000    -0.00682     0.02796     1.00000 '
           skinCoordIndex=' 2,4,6,8,10,12,14,16,18,20,22,24,26,28,30,32,34,36,38,40,42,44,46,48,50,52,55,57,59,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95'
           skinCoordWeight=' 0.26140,0.26140,0.26140,0.26140,0.26140,0.26140,0.26140,0.26140,0.26140,0.26140,0.26140,0.26140,0.26140,0.26140,0.26140,0.26140,0.26140,0.26140,0.26140,0.26140,0.26140,0.26140,0.26140,0.26140,0.26140,0.26140,0.26140,0.26140,0.26140,0.26140,0.26140,1.00000,1.00000,1.00000,1.00000,1.00000,1.00000,1.00000,0.26140,1.00000,1.00000,1.00000,1.00000,1.00000,1.00000,1.00000,1.00000,1.00000,1.00000,1.00000,1.00000,1.00000,1.00000,1.00000,1.00000,1.00000,1.00000,1.00000,1.00000,1.00000,1.00000,1.00000,1.00000,1.00000'/>
      </HAnimJoint>
    </HAnimJoint>
  </HAnimJoint>
  <Group containerField='skin'>
    <Shape DEF='skinMesh'>
      <Appearance>
        <Material diffuseColor='
                    0.27963539958000185
                    0.6399999856948853
                    0.21094389259815217' transparency='0.0'/>
      </Appearance> 
      <IndexedTriangleSet solid='true' ccw='false' index='
    0 1 2 1 3 4 3 5 6 5 7 8 7 9 10 9 11 12 11 13 14 13 15 16 15 17 18 17 19 20 19 21 22 21 23 24 23 25 26 25 27 28 27 29 30 29 31 32 31 33 34 33 35 36 35 37 38 37 39 40 39 41 42 41 43 44 43 45 46 45 47 48 48 47 49 50 49 51 52 51 53 53 54 55 54 56 57 56 58 59 35 19 51 60 0 61 58 60 62 63 64 65 59 62 66 62 61 67 57 59 68 55 57 69 70 55 71 52 70 72 50 52 73 48 50 74 46 48 75 44 46 64 42 44 76 40 42 77 38 40 78 36 38 79 34 36 80 32 34 81 30 32 82 28 30 63 26 28 83 24 26 84 22 24 85 20 22 86 18 20 87 16 18 88 14 16 89 12 14 65 10 12 90 8 10 91 6 8 92 4 6 93 2 4 94 61 2 95 61 0 2 2 1 4 4 3 6 6 5 8 8 7 10 10 9 12 12 11 14 14 13 16 16 15 18 18 17 20 20 19 22 22 21 24 24 23 26 26 25 28 28 27 30 30 29 32 32 31 34 34 33 36 36 35 38 38 37 40 40 39 42 42 41 44 44 43 46 46 45 48 50 48 49 52 50 51 70 52 53 70 53 55 55 54 57 57 56 59 3 1 0 0 60 3 58 56 54 54 53 51 51 49 47 47 45 51 43 41 39 39 37 35 35 33 31 31 29 27 27 25 23 23 21 19 19 17 15 15 13 19 11 9 7 7 5 3 3 60 58 58 54 51 51 45 43 43 39 35 35 31 19 27 23 19 19 13 11 11 7 3 3 58 51 51 43 35 31 27 19 19 11 3 3 51 19 62 60 61 59 58 62 66 67 95 95 94 93 93 92 91 91 90 65 65 89 88 88 87 65 86 85 63 84 83 63 63 82 79 81 80 79 79 78 77 77 76 64 64 75 74 74 73 64 72 71 69 69 68 66 66 95 65 93 91 65 65 87 86 85 84 63 82 81 79 79 77 64 64 73 72 72 69 64 95 93 65 65 86 63 63 79 64 64 69 66 66 65 64 68 59 66 66 62 67 69 57 68 71 55 69 72 70 71 73 52 72 74 50 73 75 48 74 64 46 75 76 44 64 77 42 76 78 40 77 79 38 78 80 36 79 81 34 80 82 32 81 63 30 82 83 28 63 84 26 83 85 24 84 86 22 85 87 20 86 88 18 87 89 16 88 65 14 89 90 12 65 91 10 90 92 8 91 93 6 92 94 4 93 95 2 94 67 61 95
      '>
        <Coordinate USE='SKINCOORD'/>
        <Normal vector='
    0.00000    -0.76464    -0.64446 
    0.14915    -0.74996    -0.64445 
    0.19471    -0.97902     0.06000 
    0.29262    -0.70644    -0.64445 
    0.38198    -0.92222     0.06000 
    0.42480    -0.63579    -0.64445 
    0.55457    -0.82997     0.06000 
    0.54069    -0.54069    -0.64445 
    0.70583    -0.70583     0.06000 
    0.63579    -0.42480    -0.64445 
    0.82997    -0.55457     0.06000 
    0.70644    -0.29262    -0.64445 
    0.92222    -0.38198     0.06000 
    0.74994    -0.14918    -0.64447 
    0.97902    -0.19474     0.06000 
    0.76465     0.00000    -0.64444 
    0.99820     0.00000     0.06000 
    0.74996     0.14915    -0.64445 
    0.97902     0.19474     0.06000 
    0.70644     0.29262    -0.64445 
    0.92222     0.38198     0.06000 
    0.63579     0.42480    -0.64445 
    0.82997     0.55457     0.06000 
    0.54069     0.54069    -0.64445 
    0.70583     0.70583     0.06000 
    0.42480     0.63579    -0.64445 
    0.55457     0.82997     0.06000 
    0.29262     0.70644    -0.64445 
    0.38198     0.92222     0.06000 
    0.14915     0.74996    -0.64445 
    0.19471     0.97902     0.06000 
    0.00000     0.76464    -0.64446 
    0.00000     0.99820     0.06000 
   -0.14918     0.74995    -0.64445 
   -0.19474     0.97902     0.06000 
   -0.29262     0.70644    -0.64445 
   -0.38198     0.92222     0.06000 
   -0.42479     0.63577    -0.64447 
   -0.55457     0.82997     0.06000 
   -0.54069     0.54069    -0.64445 
   -0.70585     0.70582     0.06000 
   -0.63579     0.42480    -0.64445 
   -0.82997     0.55457     0.06000 
   -0.70644     0.29262    -0.64445 
   -0.92222     0.38198     0.06000 
   -0.74996     0.14915    -0.64445 
   -0.97902     0.19471     0.06000 
   -0.76463     0.00000    -0.64447 
   -0.99820     0.00000     0.06000 
   -0.74995    -0.14918    -0.64445 
   -0.97902    -0.19474     0.06000 
   -0.70644    -0.29262    -0.64445 
   -0.92222    -0.38198     0.06000 
   -0.63577    -0.42479    -0.64447 
   -0.54069    -0.54069    -0.64445 
   -0.70582    -0.70585     0.06000 
   -0.42480    -0.63579    -0.64445 
   -0.55457    -0.82997     0.06000 
   -0.29262    -0.70644    -0.64445 
   -0.38198    -0.92222     0.06000 
   -0.14915    -0.74996    -0.64445 
    0.00000    -0.99820     0.06000 
   -0.19471    -0.97902     0.06000 
    0.14143     0.71101     0.68882 
   -0.71101     0.14143     0.68882 
    0.71101    -0.14143     0.68882 
   -0.14143    -0.71101     0.68882 
    0.00000    -0.72494     0.68881 
   -0.27742    -0.66976     0.68881 
   -0.40276    -0.60275     0.68882 
   -0.82997    -0.55457     0.06000 
   -0.51260    -0.51260     0.68882 
   -0.60275    -0.40276     0.68882 
   -0.66975    -0.27742     0.68882 
   -0.71101    -0.14143     0.68882 
   -0.72494     0.00000     0.68881 
   -0.66973     0.27742     0.68884 
   -0.60275     0.40276     0.68882 
   -0.51260     0.51260     0.68882 
   -0.40276     0.60275     0.68882 
   -0.27742     0.66975     0.68882 
   -0.14143     0.71101     0.68882 
    0.00000     0.72494     0.68881 
    0.27742     0.66976     0.68881 
    0.40276     0.60275     0.68882 
    0.51260     0.51260     0.68882 
    0.60275     0.40276     0.68882 
    0.66975     0.27742     0.68882 
    0.71101     0.14143     0.68882 
    0.72496     0.00000     0.68879 
    0.66973    -0.27742     0.68884 
    0.60275    -0.40276     0.68882 
    0.51260    -0.51260     0.68882 
    0.40276    -0.60275     0.68882 
    0.27742    -0.66976     0.68881 
    0.14143    -0.71101     0.68882 '/>
      </IndexedTriangleSet>
    </Shape>
  </Group>
  <!-- top-level joint references --> 
  <HAnimJoint USE='glTFrootnode' containerField='joints'/> 
  <HAnimJoint USE='node_2' containerField='joints'/>
  <HAnimJoint USE='node_2_IBM' containerField='joints'/>
  <HAnimJoint USE='node_3' containerField='joints'/>
  <HAnimJoint USE='node_3_IBM' containerField='joints'/>
</HAnimHumanoid>
</Transform>
<TimeSensor DEF='ani0clock' cycleInterval='2' loop='true'/>
<OrientationInterpolator DEF='ani0rotator' key='0 0.5 1' 
  keyValue='
    -0.9901418, 0, -0.1400688, 6.2790445
     0.9999995, -0.0003068, -0.0009544, 5.6876664
    -0.9901418, 0, -0.1400688, 6.2790445'/>
<ROUTE fromNode='ani0clock' fromField='fraction_changed' toNode='ani0rotator' toField='set_fraction'/>
<ROUTE fromNode='ani0rotator' fromField='value_changed' toNode='node_3' toField='set_rotation'/>
</Scene>

see http://andreasplesch.github.io/Library/Models/HAnim/glTF/RiggedSimple.html

skinCoordIndex

In glTF, each vertex index is affected by all joints. Many joints may have a 0 weight for a vertex. So all indices need to be listed in skinCoordIndex for a joint. It is possible to optimize by omitting those indices which have a 0 weight.

  • combine joint ids, weights and vertex indices into triplets and all into a single list
  • filter out triplets which use joint 0 and which have a non zero weight
  • split filtered triplet into index list and weight list

skinCoordWeight

In glTF, the weights are listed per vertex in the same order as the joints are listed. So if a vertex has a '1 0 0 0' Joint_0 value and a '0.25 0.75 0 0' Weight_0 value, joint 0 has a weight of 0.75 and joint 1 has weight of 0.25. Therefore it is necessary to look up each weight for the skinCoordWeight field.

W0=`1.00000     0.00000     0.00000     0.00000 
    1.00000     0.00000     0.00000     0.00000 
    0.73860     0.26140     0.00000     0.00000 
    1.00000     0.00000     0.00000     0.00000 
    0.73860     0.26140     0.00000     0.00000 
    1.00000     0.00000     0.00000     0.00000 
    0.73860     0.26140     0.00000     0.00000 
    1.00000     0.00000     0.00000     0.00000 
    0.73860     0.26140     0.00000     0.00000 
    1.00000     0.00000     0.00000     0.00000 
    0.73860     0.26140     0.00000     0.00000 
    1.00000     0.00000     0.00000     0.00000 
    0.73860     0.26140     0.00000     0.00000 
    1.00000     0.00000     0.00000     0.00000 
    0.73860     0.26140     0.00000     0.00000 
    1.00000     0.00000     0.00000     0.00000 
    0.73860     0.26140     0.00000     0.00000 
    1.00000     0.00000     0.00000     0.00000 
    0.73860     0.26140     0.00000     0.00000 
    1.00000     0.00000     0.00000     0.00000 
    0.73860     0.26140     0.00000     0.00000 
    1.00000     0.00000     0.00000     0.00000 
    0.73860     0.26140     0.00000     0.00000 
    1.00000     0.00000     0.00000     0.00000 
    0.73860     0.26140     0.00000     0.00000 
    1.00000     0.00000     0.00000     0.00000 
    0.73860     0.26140     0.00000     0.00000 
    1.00000     0.00000     0.00000     0.00000 
    0.73860     0.26140     0.00000     0.00000 
    1.00000     0.00000     0.00000     0.00000 
    0.73860     0.26140     0.00000     0.00000 
    1.00000     0.00000     0.00000     0.00000 
    0.73860     0.26140     0.00000     0.00000 
    1.00000     0.00000     0.00000     0.00000 
    0.73860     0.26140     0.00000     0.00000 
    1.00000     0.00000     0.00000     0.00000 
    0.73860     0.26140     0.00000     0.00000 
    1.00000     0.00000     0.00000     0.00000 
    0.73860     0.26140     0.00000     0.00000 
    1.00000     0.00000     0.00000     0.00000 
    0.73860     0.26140     0.00000     0.00000 
    1.00000     0.00000     0.00000     0.00000 
    0.73860     0.26140     0.00000     0.00000 
    1.00000     0.00000     0.00000     0.00000 
    0.73860     0.26140     0.00000     0.00000 
    1.00000     0.00000     0.00000     0.00000 
    0.73860     0.26140     0.00000     0.00000 
    1.00000     0.00000     0.00000     0.00000 
    0.73860     0.26140     0.00000     0.00000 
    1.00000     0.00000     0.00000     0.00000 
    0.73860     0.26140     0.00000     0.00000 
    1.00000     0.00000     0.00000     0.00000 
    0.73860     0.26140     0.00000     0.00000 
    1.00000     0.00000     0.00000     0.00000 
    1.00000     0.00000     0.00000     0.00000 
    0.73860     0.26140     0.00000     0.00000 
    1.00000     0.00000     0.00000     0.00000 
    0.73860     0.26140     0.00000     0.00000 
    1.00000     0.00000     0.00000     0.00000 
    0.73860     0.26140     0.00000     0.00000 
    1.00000     0.00000     0.00000     0.00000 
    0.73860     0.26140     0.00000     0.00000 
    0.73860     0.26140     0.00000     0.00000 
    1.00000     0.00000     0.00000     0.00000 
    1.00000     0.00000     0.00000     0.00000 
    1.00000     0.00000     0.00000     0.00000 
    1.00000     0.00000     0.00000     0.00000 
    1.00000     0.00000     0.00000     0.00000 
    1.00000     0.00000     0.00000     0.00000 
    1.00000     0.00000     0.00000     0.00000 
    0.73860     0.26140     0.00000     0.00000 
    1.00000     0.00000     0.00000     0.00000 
    1.00000     0.00000     0.00000     0.00000 
    1.00000     0.00000     0.00000     0.00000 
    1.00000     0.00000     0.00000     0.00000 
    1.00000     0.00000     0.00000     0.00000 
    1.00000     0.00000     0.00000     0.00000 
    1.00000     0.00000     0.00000     0.00000 
    1.00000     0.00000     0.00000     0.00000 
    1.00000     0.00000     0.00000     0.00000 
    1.00000     0.00000     0.00000     0.00000 
    1.00000     0.00000     0.00000     0.00000 
    1.00000     0.00000     0.00000     0.00000 
    1.00000     0.00000     0.00000     0.00000 
    1.00000     0.00000     0.00000     0.00000 
    1.00000     0.00000     0.00000     0.00000 
    1.00000     0.00000     0.00000     0.00000 
    1.00000     0.00000     0.00000     0.00000 
    1.00000     0.00000     0.00000     0.00000 
    1.00000     0.00000     0.00000     0.00000 
    1.00000     0.00000     0.00000     0.00000 
    1.00000     0.00000     0.00000     0.00000 
    1.00000     0.00000     0.00000     0.00000 
    1.00000     0.00000     0.00000     0.00000 
    1.00000     0.00000     0.00000     0.00000 
    1.00000     0.00000     0.00000     0.00000 `;
WFlat=W0.trim().split(/\s+/);
J0 = `    0     0     0     0 
    0     0     0     0 
    0     1     0     0 
    0     0     0     0 
    0     1     0     0 
    0     0     0     0 
    0     1     0     0 
    0     0     0     0 
    0     1     0     0 
    0     0     0     0 
    0     1     0     0 
    0     0     0     0 
    0     1     0     0 
    0     0     0     0 
    0     1     0     0 
    0     0     0     0 
    0     1     0     0 
    0     0     0     0 
    0     1     0     0 
    0     0     0     0 
    0     1     0     0 
    0     0     0     0 
    0     1     0     0 
    0     0     0     0 
    0     1     0     0 
    0     0     0     0 
    0     1     0     0 
    0     0     0     0 
    0     1     0     0 
    0     0     0     0 
    0     1     0     0 
    0     0     0     0 
    0     1     0     0 
    0     0     0     0 
    0     1     0     0 
    0     0     0     0 
    0     1     0     0 
    0     0     0     0 
    0     1     0     0 
    0     0     0     0 
    0     1     0     0 
    0     0     0     0 
    0     1     0     0 
    0     0     0     0 
    0     1     0     0 
    0     0     0     0 
    0     1     0     0 
    0     0     0     0 
    0     1     0     0 
    0     0     0     0 
    0     1     0     0 
    0     0     0     0 
    0     1     0     0 
    0     0     0     0 
    0     0     0     0 
    0     1     0     0 
    0     0     0     0 
    0     1     0     0 
    0     0     0     0 
    0     1     0     0 
    0     0     0     0 
    0     1     0     0 
    0     1     0     0 
    1     0     0     0 
    1     0     0     0 
    1     0     0     0 
    1     0     0     0 
    1     0     0     0 
    1     0     0     0 
    1     0     0     0 
    0     1     0     0 
    1     0     0     0 
    1     0     0     0 
    1     0     0     0 
    1     0     0     0 
    1     0     0     0 
    1     0     0     0 
    1     0     0     0 
    1     0     0     0 
    1     0     0     0 
    1     0     0     0 
    1     0     0     0 
    1     0     0     0 
    1     0     0     0 
    1     0     0     0 
    1     0     0     0 
    1     0     0     0 
    1     0     0     0 
    1     0     0     0 
    1     0     0     0 
    1     0     0     0 
    1     0     0     0 
    1     0     0     0 
    1     0     0     0 
    1     0     0     0 
    1     0     0     0 `;
JFlat=J0.trim().split(/\s+/);
JWIFlat = JFlat.map((v,i) => ( {'joint': v, 'weight': WFlat[i], 'index': (i-i%4)/4} ));
JWI = [];
JWI[0] = JWIFlat.filter( v => v.joint == 0 && v.weight != 0 );
JWI[1] = JWIFlat.filter( v => v.joint == 1 && v.weight != 0 );
skinCoordIndex = [];
skinCoordIndex[0] = JWI[0].map(v => v.index);
skinCoordIndex[1] = JWI[1].map(v => v.index);
skinWeights = [];
skinWeights[0] = JWI[0].map(v => v.weight);
skinWeights[1] = JWI[1].map(v => v.weight);