{"library":"pycollada","title":"pycollada","description":"pycollada is a Python library for reading, writing, and creating COLLADA (COLLAborative Design Activity) documents, an interchange file format for interactive 3D applications. It allows users to load a COLLADA file and interact with it as a Python object, supporting creation from scratch and in-place editing. The current version is 0.9.3, released on January 24, 2026, with a fairly active release cadence addressing compatibility and performance improvements.","language":"python","status":"active","last_verified":"Thu May 14","install":{"commands":["pip install pycollada"],"cli":null},"imports":["from collada import Collada","from collada import *"],"auth":{"required":false,"env_vars":[]},"quickstart":{"code":"import os\nfrom collada import Collada, material, geometry, source\nimport numpy as np\n\n# 1. Create a new COLLADA document\nmesh = Collada()\n\n# 2. Define geometry: a simple triangle\n# Vertices\nverts = np.array([\n    0.0, 0.0, 0.0,\n    1.0, 0.0, 0.0,\n    0.0, 1.0, 0.0\n])\nnormals = np.array([\n    0.0, 0.0, 1.0,\n    0.0, 0.0, 1.0,\n    0.0, 0.0, 1.0\n])\n\nvert_src = source.FloatSource('my_verts-positions', verts, ('X', 'Y', 'Z'))\nnorm_src = source.FloatSource('my_normals-normals', normals, ('X', 'Y', 'Z'))\n\n# Indices for a single triangle\ntriangles = np.array([0, 0, 1, 1, 2, 2]) # vertex index, normal index, ...\n\ngeom = geometry.Geometry(mesh, 'geometry0', 'my_triangle_geometry',\n                       [geometry.Triangles(vert_src, norm_src, triangles, 'material0')])\n\nmesh.geometries.append(geom)\n\n# 3. Create a material\neffect = material.Effect('effect0', [], 'phong', diffuse=(1, 0, 0, 1))\nmat = material.Material('material0', 'red_material', effect)\nmesh.materials.append(mat)\nmesh.effects.append(effect)\n\n# 4. Save the COLLADA document\noutput_file = 'my_first_collada.dae'\nmesh.write(output_file)\nprint(f\"Created '{output_file}'\")\n\n# 5. Load an existing COLLADA document (or the one we just created)\n# For demonstration, we'll try to load the file we just saved.\nif os.path.exists(output_file):\n    loaded_mesh = Collada(output_file)\n    print(f\"Loaded '{output_file}' with {len(loaded_mesh.geometries)} geometries.\")\n    # Example: Accessing a geometry\n    if loaded_mesh.geometries:\n        print(f\"First geometry ID: {loaded_mesh.geometries[0].id}\")\nelse:\n    print(f\"Could not load '{output_file}'. Make sure the file exists.\")\n","lang":"python","description":"This quickstart demonstrates how to create a simple COLLADA document containing a single red triangle and then save it. It also shows how to load an existing COLLADA file and access its basic properties. Requires numpy to be installed.","tag":null,"tag_description":null,"last_tested":null,"results":[]},"compatibility":{"tag":null,"tag_description":null,"last_tested":"2026-05-14","installed_version":"0.9.3","pypi_latest":"0.9.3","is_stale":false,"summary":{"python_range":"3.10–3.9","success_rate":100,"avg_install_s":3.6,"avg_import_s":0.49,"wheel_type":"wheel"},"results":[{"runtime":"python:3.10-alpine","python_version":"3.10","os_libc":"alpine (musl)","variant":"pycollada","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":null,"import_time_s":0.36,"mem_mb":11.8,"disk_size":"91.5M"},{"runtime":"python:3.10-alpine","python_version":"3.10","os_libc":"alpine (musl)","variant":"pycollada","exit_code":0,"wheel_type":null,"failure_reason":null,"import_side_effects":null,"install_time_s":null,"import_time_s":0.73,"mem_mb":11.8,"disk_size":"91.5M"},{"runtime":"python:3.10-slim","python_version":"3.10","os_libc":"slim (glibc)","variant":"pycollada","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":3.6,"import_time_s":0.25,"mem_mb":11.8,"disk_size":"88M"},{"runtime":"python:3.10-slim","python_version":"3.10","os_libc":"slim (glibc)","variant":"pycollada","exit_code":0,"wheel_type":null,"failure_reason":null,"import_side_effects":null,"install_time_s":null,"import_time_s":0.26,"mem_mb":11.8,"disk_size":"88M"},{"runtime":"python:3.11-alpine","python_version":"3.11","os_libc":"alpine (musl)","variant":"pycollada","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":null,"import_time_s":0.47,"mem_mb":12.5,"disk_size":"99.4M"},{"runtime":"python:3.11-alpine","python_version":"3.11","os_libc":"alpine (musl)","variant":"pycollada","exit_code":0,"wheel_type":null,"failure_reason":null,"import_side_effects":null,"install_time_s":null,"import_time_s":1.03,"mem_mb":12.5,"disk_size":"99.4M"},{"runtime":"python:3.11-slim","python_version":"3.11","os_libc":"slim (glibc)","variant":"pycollada","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":3.6,"import_time_s":0.4,"mem_mb":12.5,"disk_size":"95M"},{"runtime":"python:3.11-slim","python_version":"3.11","os_libc":"slim (glibc)","variant":"pycollada","exit_code":0,"wheel_type":null,"failure_reason":null,"import_side_effects":null,"install_time_s":null,"import_time_s":0.54,"mem_mb":12.5,"disk_size":"95M"},{"runtime":"python:3.12-alpine","python_version":"3.12","os_libc":"alpine (musl)","variant":"pycollada","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":null,"import_time_s":0.42,"mem_mb":12.3,"disk_size":"87.8M"},{"runtime":"python:3.12-alpine","python_version":"3.12","os_libc":"alpine (musl)","variant":"pycollada","exit_code":0,"wheel_type":null,"failure_reason":null,"import_side_effects":null,"install_time_s":null,"import_time_s":0.61,"mem_mb":12.3,"disk_size":"87.8M"},{"runtime":"python:3.12-slim","python_version":"3.12","os_libc":"slim (glibc)","variant":"pycollada","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":3.4,"import_time_s":0.44,"mem_mb":12.3,"disk_size":"83M"},{"runtime":"python:3.12-slim","python_version":"3.12","os_libc":"slim (glibc)","variant":"pycollada","exit_code":0,"wheel_type":null,"failure_reason":null,"import_side_effects":null,"install_time_s":null,"import_time_s":0.44,"mem_mb":12.3,"disk_size":"83M"},{"runtime":"python:3.13-alpine","python_version":"3.13","os_libc":"alpine (musl)","variant":"pycollada","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":null,"import_time_s":0.35,"mem_mb":12.6,"disk_size":"87.3M"},{"runtime":"python:3.13-alpine","python_version":"3.13","os_libc":"alpine (musl)","variant":"pycollada","exit_code":0,"wheel_type":null,"failure_reason":null,"import_side_effects":null,"install_time_s":null,"import_time_s":0.9,"mem_mb":12.6,"disk_size":"87.2M"},{"runtime":"python:3.13-slim","python_version":"3.13","os_libc":"slim (glibc)","variant":"pycollada","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":3.4,"import_time_s":0.42,"mem_mb":12.6,"disk_size":"83M"},{"runtime":"python:3.13-slim","python_version":"3.13","os_libc":"slim (glibc)","variant":"pycollada","exit_code":0,"wheel_type":null,"failure_reason":null,"import_side_effects":null,"install_time_s":null,"import_time_s":0.5,"mem_mb":12.6,"disk_size":"83M"},{"runtime":"python:3.9-alpine","python_version":"3.9","os_libc":"alpine (musl)","variant":"pycollada","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":null,"import_time_s":0.28,"mem_mb":10.9,"disk_size":"99.3M"},{"runtime":"python:3.9-alpine","python_version":"3.9","os_libc":"alpine (musl)","variant":"pycollada","exit_code":0,"wheel_type":null,"failure_reason":null,"import_side_effects":null,"install_time_s":null,"import_time_s":0.68,"mem_mb":10.9,"disk_size":"99.3M"},{"runtime":"python:3.9-slim","python_version":"3.9","os_libc":"slim (glibc)","variant":"pycollada","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":4.2,"import_time_s":0.35,"mem_mb":10.9,"disk_size":"98M"},{"runtime":"python:3.9-slim","python_version":"3.9","os_libc":"slim (glibc)","variant":"pycollada","exit_code":0,"wheel_type":null,"failure_reason":null,"import_side_effects":null,"install_time_s":null,"import_time_s":0.34,"mem_mb":10.9,"disk_size":"98M"}]}}