question-mark
Stuck on an issue?

Lightrun Answers was designed to reduce the constant googling that comes with debugging 3rd party libraries. It collects links to all the places you might be looking at while hunting down a tough bug.

And, if you’re still stuck at the end, we’re happy to hop on a call to see how we can help out.

IndexError: tuple index out of range

See original GitHub issue

I started getting:

converted usd file extension from .usdz to .usdc: /var/app/current/tmp/d1a2b68740f1789264028e52919e1ac625cbd560cd0c894a4701205cefa4b4f4/usdz/dist.usdc
Traceback (most recent call last):
  File "/usr/local/gltf2usd/Source/gltf2usd.py", line 808, in <module>
    convert_to_usd(os.path.expanduser(args.gltf_file), os.path.abspath(os.path.expanduser(args.usd_file)), args.fps, args.scale, args.arkit, args.verbose, args.use_euler_rotation)
  File "/usr/local/gltf2usd/Source/gltf2usd.py", line 757, in convert_to_usd
    usd = GLTF2USD(gltf_file=gltf_file, usd_file=usd_file, fps=fps, scale=scale, verbose=verbose, use_euler_rotation=use_euler_rotation)
  File "/usr/local/gltf2usd/Source/gltf2usd.py", line 74, in __init__
    self.convert()
  File "/usr/local/gltf2usd/Source/gltf2usd.py", line 727, in convert
    self._convert_materials_to_preview_surface_new()
  File "/usr/local/gltf2usd/Source/gltf2usd.py", line 440, in _convert_materials_to_preview_surface_new
    usd_material.convert_material_to_usd_preview_surface(material, self.output_dir)
  File "/usr/local/gltf2usd/Source/_gltf2usd/usd_material.py", line 21, in convert_material_to_usd_preview_surface
    usd_preview_surface = USDPreviewSurface(self._stage, gltf_material, self, output_directory)
  File "/usr/local/gltf2usd/Source/_gltf2usd/usd_material.py", line 41, in __init__
    self._initialize_from_gltf_material(gltf_material)
  File "/usr/local/gltf2usd/Source/_gltf2usd/usd_material.py", line 101, in _initialize_from_gltf_material
    self._set_normal_texture(gltf_material)
  File "/usr/local/gltf2usd/Source/_gltf2usd/usd_material.py", line 113, in _set_normal_texture
    destination = normal_texture.write_to_directory(self._output_directory, GLTFImage.ImageColorChannels.RGB)
  File "/usr/local/gltf2usd/Source/_gltf2usd/gltf2/Material.py", line 33, in write_to_directory
    return self._image.write_to_directory(output_directory, channels, texture_prefix)
  File "/usr/local/gltf2usd/Source/_gltf2usd/gltf2/GLTFImage.py", line 49, in write_to_directory
    img = Image.merge('RGB', (img_channels[0], img_channels[1], img_channels[2]))
IndexError: tuple index out of range

This is the GLTF failing:

{
  "accessors": [
    {
      "name": "Plane_1_0_positions",
      "componentType": 5126,
      "count": 4,
      "min": [
        -0.7204229235649109,
        0,
        -0.7204229235649109
      ],
      "max": [
        0.7204229235649109,
        0,
        0.7204229235649109
      ],
      "type": "VEC3",
      "bufferView": 0,
      "byteOffset": 0
    },
    {
      "name": "Plane_1_0_normals",
      "componentType": 5126,
      "count": 4,
      "min": [
        0,
        1,
        0
      ],
      "max": [
        0,
        1,
        0
      ],
      "type": "VEC3",
      "bufferView": 1,
      "byteOffset": 0
    },
    {
      "name": "Plane_1_0_texcoords",
      "componentType": 5126,
      "count": 4,
      "min": [
        0.010928000323474407,
        0.02456897497177124
      ],
      "max": [
        0.9900990128517151,
        0.9900990128517151
      ],
      "type": "VEC2",
      "bufferView": 2,
      "byteOffset": 0
    },
    {
      "name": "Plane_1_0_indices",
      "componentType": 5123,
      "count": 6,
      "min": [
        0
      ],
      "max": [
        3
      ],
      "type": "SCALAR",
      "bufferView": 3,
      "byteOffset": 0
    },
    {
      "name": "Stoppers_1_0_positions",
      "componentType": 5126,
      "count": 1177,
      "min": [
        -0.25344064831733704,
        0.0000019999999949504854,
        -0.23678182065486908
      ],
      "max": [
        0.2547532320022583,
        0.006404059939086437,
        0.223549023270607
      ],
      "type": "VEC3",
      "bufferView": 4,
      "byteOffset": 0
    },
    {
      "name": "Stoppers_1_0_normals",
      "componentType": 5126,
      "count": 1177,
      "min": [
        -0.9999967813491821,
        -0.9999879002571106,
        -0.9999811053276062
      ],
      "max": [
        1,
        0.35328805446624756,
        1
      ],
      "type": "VEC3",
      "bufferView": 5,
      "byteOffset": 0
    },
    {
      "name": "Stoppers_1_0_texcoords",
      "componentType": 5126,
      "count": 1177,
      "min": [
        0,
        0
      ],
      "max": [
        1.0312999486923218,
        1
      ],
      "type": "VEC2",
      "bufferView": 6,
      "byteOffset": 0
    },
    {
      "name": "Stoppers_1_0_indices",
      "componentType": 5123,
      "count": 2877,
      "min": [
        0
      ],
      "max": [
        1176
      ],
      "type": "SCALAR",
      "bufferView": 7,
      "byteOffset": 0
    },
    {
      "name": "Legs_1_0_positions",
      "componentType": 5126,
      "count": 7037,
      "min": [
        -0.2604827582836151,
        0.0050951396115124226,
        -0.24131372570991516
      ],
      "max": [
        0.26179325580596924,
        0.43977487087249756,
        0.2259734719991684
      ],
      "type": "VEC3",
      "bufferView": 8,
      "byteOffset": 0
    },
    {
      "name": "Legs_1_0_normals",
      "componentType": 5126,
      "count": 7037,
      "min": [
        -0.9999845027923584,
        -0.9999834895133972,
        -0.9999822378158569
      ],
      "max": [
        0.9999923706054688,
        0.9999653697013855,
        0.9999979734420776
      ],
      "type": "VEC3",
      "bufferView": 9,
      "byteOffset": 0
    },
    {
      "name": "Legs_1_0_texcoords",
      "componentType": 5126,
      "count": 7037,
      "min": [
        0.007799999788403511,
        0.20800000429153442
      ],
      "max": [
        0.9868999719619751,
        0.934499979019165
      ],
      "type": "VEC2",
      "bufferView": 10,
      "byteOffset": 0
    },
    {
      "name": "Legs_1_0_indices",
      "componentType": 5123,
      "count": 28650,
      "min": [
        0
      ],
      "max": [
        7036
      ],
      "type": "SCALAR",
      "bufferView": 11,
      "byteOffset": 0
    },
    {
      "name": "Seat_1_0_positions",
      "componentType": 5126,
      "count": 6961,
      "min": [
        -0.29365548491477966,
        0.4196036458015442,
        -0.2498132586479187
      ],
      "max": [
        0.29496803879737854,
        0.8004719614982605,
        0.2498132586479187
      ],
      "type": "VEC3",
      "bufferView": 12,
      "byteOffset": 0
    },
    {
      "name": "Seat_1_0_normals",
      "componentType": 5126,
      "count": 6961,
      "min": [
        -0.9998460412025452,
        -1,
        -0.9999814629554749
      ],
      "max": [
        0.9999666810035706,
        0.999976634979248,
        0.9999750852584839
      ],
      "type": "VEC3",
      "bufferView": 13,
      "byteOffset": 0
    },
    {
      "name": "Seat_1_0_texcoords",
      "componentType": 5126,
      "count": 6961,
      "min": [
        0.000699999975040555,
        0.0012000203132629395
      ],
      "max": [
        0.5627999901771545,
        0.9994999766349792
      ],
      "type": "VEC2",
      "bufferView": 14,
      "byteOffset": 0
    },
    {
      "name": "Seat_1_0_indices",
      "componentType": 5123,
      "count": 40782,
      "min": [
        0
      ],
      "max": [
        6960
      ],
      "type": "SCALAR",
      "bufferView": 15,
      "byteOffset": 0
    }
  ],
  "asset": {
    "generator": "obj2gltf",
    "version": "2.0"
  },
  "buffers": [
    {
      "name": "uzeMRRS8nxw4ltvfzGiB4P9Z7mU_fixed",
      "byteLength": 140,
      "uri": "https://s3.us-east-1.amazonaws.com/sayduck-production/a/shared_assets/files/000/010/852/38e6b194dfbc0811c99357347c559516de36ec8ae5a9fadf7e54c7a8c6df5837-original.bin"
    },
    {
      "name": "DiGjTke8ftERP58o__COrk1__8s_fixed",
      "byteLength": 43420,
      "uri": "https://s3.us-east-1.amazonaws.com/sayduck-production/a/shared_assets/files/000/010/851/af4901f84f06f5e2793053951322ce3c721069f03ecaf109ff589940f69edfe4-original.bin"
    },
    {
      "name": "XGsiwyrHOE4fFc_5WCnIwzd2Pno_fixed",
      "byteLength": 282484,
      "uri": "https://s3.us-east-1.amazonaws.com/sayduck-production/a/shared_assets/files/000/010/855/a66a071623c32d77535d08cbbde7385b2209d535792ad61d63a70977fc0536ca-original.bin"
    },
    {
      "name": "dm56xNreILSsNsvHWx2Lzx4fxes_fixed",
      "byteLength": 304316,
      "uri": "https://s3.us-east-1.amazonaws.com/sayduck-production/a/shared_assets/files/000/010/858/3f8c210e9c849fd2c3fb6f77a98cbd8a542be4675139b6cef7000e8a4f19c539-original.bin"
    }
  ],
  "bufferViews": [
    {
      "name": "bufferView_0",
      "buffer": 0,
      "byteLength": 48,
      "byteOffset": 0,
      "byteStride": 12,
      "target": 34962
    },
    {
      "name": "bufferView_1",
      "buffer": 0,
      "byteLength": 48,
      "byteOffset": 48,
      "byteStride": 12,
      "target": 34962
    },
    {
      "name": "bufferView_2",
      "buffer": 0,
      "byteLength": 32,
      "byteOffset": 96,
      "byteStride": 8,
      "target": 34962
    },
    {
      "name": "bufferView_3",
      "buffer": 0,
      "byteLength": 12,
      "byteOffset": 128,
      "target": 34963
    },
    {
      "name": "bufferView_0",
      "buffer": 1,
      "byteLength": 14124,
      "byteOffset": 0,
      "byteStride": 12,
      "target": 34962
    },
    {
      "name": "bufferView_1",
      "buffer": 1,
      "byteLength": 14124,
      "byteOffset": 14124,
      "byteStride": 12,
      "target": 34962
    },
    {
      "name": "bufferView_2",
      "buffer": 1,
      "byteLength": 9416,
      "byteOffset": 28248,
      "byteStride": 8,
      "target": 34962
    },
    {
      "name": "bufferView_3",
      "buffer": 1,
      "byteLength": 5756,
      "byteOffset": 37664,
      "target": 34963
    },
    {
      "name": "bufferView_0",
      "buffer": 2,
      "byteLength": 84444,
      "byteOffset": 0,
      "byteStride": 12,
      "target": 34962
    },
    {
      "name": "bufferView_1",
      "buffer": 2,
      "byteLength": 84444,
      "byteOffset": 84444,
      "byteStride": 12,
      "target": 34962
    },
    {
      "name": "bufferView_2",
      "buffer": 2,
      "byteLength": 56296,
      "byteOffset": 168888,
      "byteStride": 8,
      "target": 34962
    },
    {
      "name": "bufferView_3",
      "buffer": 2,
      "byteLength": 57300,
      "byteOffset": 225184,
      "target": 34963
    },
    {
      "name": "bufferView_0",
      "buffer": 3,
      "byteLength": 83532,
      "byteOffset": 0,
      "byteStride": 12,
      "target": 34962
    },
    {
      "name": "bufferView_1",
      "buffer": 3,
      "byteLength": 83532,
      "byteOffset": 83532,
      "byteStride": 12,
      "target": 34962
    },
    {
      "name": "bufferView_2",
      "buffer": 3,
      "byteLength": 55688,
      "byteOffset": 167064,
      "byteStride": 8,
      "target": 34962
    },
    {
      "name": "bufferView_3",
      "buffer": 3,
      "byteLength": 81564,
      "byteOffset": 222752,
      "target": 34963
    }
  ],
  "materials": [
    {
      "extras": {
        "sayduck": {
          "uuid": "678c3080-c4da-0136-1b99-762176b07bc8"
        }
      },
      "name": "Shadow Plane",
      "pbrMetallicRoughness": {
        "baseColorFactor": [
          1,
          1,
          1,
          1
        ],
        "roughnessFactor": 1,
        "metallicFactor": 0,
        "baseColorTexture": {
          "index": 0
        }
      },
      "emissiveFactor": [
        0,
        0,
        0
      ],
      "alphaMode": "BLEND",
      "doubleSided": false
    },
    {
      "extras": {
        "sayduck": {
          "uuid": "68325f00-c4da-0136-758f-762176b07bc8"
        }
      },
      "name": "Glossy White",
      "pbrMetallicRoughness": {
        "baseColorFactor": [
          1,
          1,
          1,
          1
        ],
        "roughnessFactor": 0,
        "metallicFactor": 0
      },
      "emissiveFactor": [
        0,
        0,
        0
      ],
      "alphaMode": "BLEND",
      "doubleSided": false
    },
    {
      "extras": {
        "sayduck": {
          "uuid": "6795f3d0-c4da-0136-280e-762176b07bc8"
        }
      },
      "name": "Legs Soap Treated Oak",
      "pbrMetallicRoughness": {
        "baseColorFactor": [
          1,
          1,
          1,
          1
        ],
        "roughnessFactor": 0.7,
        "metallicFactor": 0,
        "baseColorTexture": {
          "index": 1
        }
      },
      "emissiveFactor": [
        0,
        0,
        0
      ],
      "alphaMode": "BLEND",
      "doubleSided": false,
      "normalTexture": {
        "index": 3
      },
      "occlusionTexture": {
        "index": 4
      }
    },
    {
      "extras": {
        "sayduck": {
          "uuid": "67c26100-c4da-0136-6c86-762176b07bc8"
        }
      },
      "name": "Seat White",
      "pbrMetallicRoughness": {
        "baseColorFactor": [
          1,
          1,
          0.9803921568627451,
          1
        ],
        "roughnessFactor": 0.7,
        "metallicFactor": 0
      },
      "emissiveFactor": [
        0,
        0,
        0
      ],
      "alphaMode": "BLEND",
      "doubleSided": false,
      "normalTexture": {
        "index": 6
      },
      "occlusionTexture": {
        "index": 7
      }
    }
  ],
  "meshes": [
    {
      "name": "Plane_1",
      "primitives": [
        {
          "attributes": {
            "POSITION": 0,
            "NORMAL": 1,
            "TEXCOORD_0": 2
          },
          "indices": 3,
          "material": 0,
          "mode": 4
        }
      ],
      "extras": {
        "sayduck": {
          "uuid": "67891470-c4da-0136-0b8c-762176b07bc8"
        }
      }
    },
    {
      "name": "Stoppers_1",
      "primitives": [
        {
          "attributes": {
            "POSITION": 4,
            "NORMAL": 5,
            "TEXCOORD_0": 6
          },
          "indices": 7,
          "material": 1,
          "mode": 4
        }
      ],
      "extras": {
        "sayduck": {
          "uuid": "6782aa10-c4da-0136-5d3c-762176b07bc8"
        }
      }
    },
    {
      "name": "Legs_1",
      "primitives": [
        {
          "attributes": {
            "POSITION": 8,
            "NORMAL": 9,
            "TEXCOORD_0": 10
          },
          "indices": 11,
          "material": 2,
          "mode": 4
        }
      ],
      "extras": {
        "sayduck": {
          "uuid": "677bda40-c4da-0136-6f01-762176b07bc8"
        }
      }
    },
    {
      "name": "Seat_1",
      "primitives": [
        {
          "attributes": {
            "POSITION": 12,
            "NORMAL": 13,
            "TEXCOORD_0": 14
          },
          "indices": 15,
          "material": 3,
          "mode": 4
        }
      ],
      "extras": {
        "sayduck": {
          "uuid": "67775020-c4da-0136-dde5-762176b07bc8"
        }
      }
    }
  ],
  "nodes": [
    {
      "name": "Plane",
      "mesh": 0
    },
    {
      "name": "Stoppers",
      "mesh": 1
    },
    {
      "name": "Legs",
      "mesh": 2
    },
    {
      "name": "Seat",
      "mesh": 3
    }
  ],
  "scene": 0,
  "scenes": [
    {
      "nodes": [
        0,
        1,
        2,
        3
      ]
    }
  ],
  "samplers": [
    {
      "magFilter": 9729,
      "minFilter": 9986,
      "wrapS": 10497,
      "wrapT": 10497
    },
    {
      "magFilter": 9729,
      "minFilter": 9986,
      "wrapS": 10497,
      "wrapT": 10497
    },
    {
      "magFilter": 9729,
      "minFilter": 9986,
      "wrapS": 10497,
      "wrapT": 10497
    },
    {
      "magFilter": 9729,
      "minFilter": 9986,
      "wrapS": 10497,
      "wrapT": 10497
    }
  ],
  "textures": [
    {
      "name": "albedo",
      "sampler": 0,
      "source": 0
    },
    {
      "name": "albedo",
      "sampler": 2,
      "source": 1
    },
    {
      "name": "occlusion",
      "sampler": 2,
      "source": 2
    },
    {
      "name": "normal",
      "sampler": 2,
      "source": 3
    },
    {
      "name": "occlusion_roughness_metallic",
      "sampler": 2,
      "source": 4
    },
    {
      "name": "occlusion",
      "sampler": 3,
      "source": 5
    },
    {
      "name": "normal",
      "sampler": 3,
      "source": 6
    },
    {
      "name": "occlusion_roughness_metallic",
      "sampler": 3,
      "source": 7
    }
  ],
  "images": [
    {
      "name": "albedo",
      "uri": "https://s3.us-east-1.amazonaws.com/sayduck-production/a/shared_assets/files/000/010/826/a3e8bca121afa5a7f1fc67c938a11d4205918fbc0ddcb699708d8999f38ebdce-optimized_texture_jpg_1024.jpg"
    },
    {
      "name": "albedo",
      "uri": "https://s3.us-east-1.amazonaws.com/sayduck-production/a/shared_assets/files/000/010/827/b80c583699c2af15871a6fa893399d961dc3e0fdfb957324539ee8df7fadc1c2-optimized_texture_jpg_2048.jpg"
    },
    {
      "name": "occlusion",
      "uri": "https://s3.us-east-1.amazonaws.com/sayduck-production/a/shared_assets/files/000/010/828/562fac8f9496fcecccf264158f539834b832cf18ae66ab7959c64fc493c9552a-optimized_texture_jpg_2048.jpg"
    },
    {
      "name": "normal",
      "uri": "https://s3.us-east-1.amazonaws.com/sayduck-production/a/shared_assets/files/000/010/829/fda8dd8cb6880ec0e153aa6bc06be273e0a2728fcc1c4e5176471964e10541c1-optimized_texture_jpg_2048.jpg"
    },
    {
      "name": "occlusion_roughness_metallic",
      "uri": "https://s3.us-east-1.amazonaws.com/sayduck-production/a/shared_assets/files/000/010/861/7670097a4e97dcca24e04767d91a2f6c038f5b4976f680946a202b41f4749923-optimized_texture_jpg_2048.jpg"
    },
    {
      "name": "occlusion",
      "uri": "https://s3.us-east-1.amazonaws.com/sayduck-production/a/shared_assets/files/000/010/832/4607e122e124ecff8b099a70ba4d1c4c60209dbed7a89391c00151a0a7493f33-optimized_texture_jpg_2048.jpg"
    },
    {
      "name": "normal",
      "uri": "https://s3.us-east-1.amazonaws.com/sayduck-production/a/shared_assets/files/000/010/833/45959dc29e97ca35f17709bdd318a18a347ec68f0b49bd8d67464fb67e8a29df-optimized_texture_jpg_512.jpg"
    },
    {
      "name": "occlusion_roughness_metallic",
      "uri": "https://s3.us-east-1.amazonaws.com/sayduck-production/a/shared_assets/files/000/010/862/8e4216c11041c38bc421a173577616960195bf12f090e57cc516903655221d5e-optimized_texture_jpg_2048.jpg"
    }
  ]
}

Any idea from where this could come?

Issue Analytics

  • State:closed
  • Created 5 years ago
  • Comments:8 (4 by maintainers)

github_iconTop GitHub Comments

1reaction
ghostcommented, Nov 8, 2018

If someone stumbles upon this problem there is what we did:

After further investigation, we realised that ImageMagick is smart enough to automatically convert an image to grayscale if the image is an actual grayscale:

convert my_image_created_with_photoshop_and_set_to_RGB_with_3_channels.jpg imagemagik_image.jpg

This will result in a grayscale if it detects only grey!!!

To avoid that, we are now using only RGB and use the parameters -type truecolor -colorspace RGB for JPG and -define png:bit-depth=8 -define png:color-type=6 -colorspace RGB for PNG.

0reactions
kcoleycommented, Nov 9, 2018

@sayduck-daniel I merged a change for this to copy the single channel grayscale to the RGB channels: https://github.com/kcoley/gltf2usd/pull/98

Feel free to re-open if this still causes issues

Read more comments on GitHub >

github_iconTop Results From Across the Web

Python IndexError: tuple index out of range Solution
The IndexError: tuple index out of range error occurs when you try to access an item in a tuple that does not exist....
Read more >
IndexError: tuple index out of range in Python | bobbyhadz
The Python "IndexError: tuple index out of range" occurs when we try to access an index that doesn't exist in a tuple. Indexes...
Read more >
IndexError: tuple index out of range ----- Python - Stack Overflow
8. It's saying that the index (position) you are accessing doesn't exist. · what code will i replace to my existing code??? Thank...
Read more >
[Solved]: Python IndexError: tuple index out of range
The IndexError: tuple index out of range error occurs when you try to access an item in a tuple that does not exist....
Read more >
IndexError: tuple index out of range - STechies
They are like lists. The elements of a tuple are accessed the same way a list element is accessed – by mentioning indices....
Read more >

github_iconTop Related Medium Post

No results found

github_iconTop Related StackOverflow Question

No results found

github_iconTroubleshoot Live Code

Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start Free

github_iconTop Related Reddit Thread

No results found

github_iconTop Related Hackernoon Post

No results found

github_iconTop Related Tweet

No results found

github_iconTop Related Dev.to Post

No results found

github_iconTop Related Hashnode Post

No results found