Skip to main content

A library that can be used to easily convert a collada file (.dae) to a wavefront file (.obj).

Project description

collada2obj

This Python library can be used to easily convert collada (i.e., .dae) files to wavefront (i.e., .obj ) files. This transformation between file formats for 3d models is useful for a variety of applications, though this library was motivated by the need for this transformation in some robotics applications.

At the moment, this library is a work in progress and is not yet fully functional. However, the basic functionality is there and the library can be used to convert simple collada files to obj files.

See the examples directory for example usages of the library.

Installation

To install this library, you can use pip:

pip install collada2obj

Local Installation

If you want to install this library locally, you can clone this repository and install it using pip in the following way: Change to the root directory of this repo and then run the following command:

pip install -e .

Usage

import ipdb
import typer
import xml.etree.ElementTree as ET
import numpy as np

from collada2obj import MeshConverter

def main(input_filename: str = "./base.dae", output_filename: str = "./out.obj"):
    # Setup

    # PARSE XML
    tree = ET.ElementTree(file=input_filename)

    # FIX xmlns problem
    # http://stackoverflow.com/questions/13412496/python-elementtree-module-how-to-ignore-the-namespace-of-xml-files-to-locate-ma
    for el in tree.iter():
        if '}' in el.tag:
            el.tag = el.tag.split('}', 1)[1]  # strip all namespaces

    # geometry_0
    meshes = tree.findall('library_geometries/geometry/mesh')

    models = []
    for ii, mesh_ii in enumerate(meshes):
        # Setup
        print(f"Processing mesh {ii}...")
        converter_ii = MeshConverter(mesh_ii)

        # model = reduce(MeshConverter.reduce, models)

        # Export
        converter_ii.export_obj(output_filename)

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

collada2obj-0.0.1.tar.gz (5.6 kB view details)

Uploaded Source

Built Distribution

collada2obj-0.0.1-py3-none-any.whl (6.4 kB view details)

Uploaded Python 3

File details

Details for the file collada2obj-0.0.1.tar.gz.

File metadata

  • Download URL: collada2obj-0.0.1.tar.gz
  • Upload date:
  • Size: 5.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/5.1.0 CPython/3.12.5

File hashes

Hashes for collada2obj-0.0.1.tar.gz
Algorithm Hash digest
SHA256 1408ee5912bdb88e144fa9c0b781a1830fa8b8209d6d0440e217b934cfb927f8
MD5 398540534b14796885f58608cb7698af
BLAKE2b-256 e3d0547c61ff800f75352b731003b771eb2a667f238833ecabc9cf070d373542

See more details on using hashes here.

File details

Details for the file collada2obj-0.0.1-py3-none-any.whl.

File metadata

  • Download URL: collada2obj-0.0.1-py3-none-any.whl
  • Upload date:
  • Size: 6.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/5.1.0 CPython/3.12.5

File hashes

Hashes for collada2obj-0.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 ff09f81b2cd2106cb2b7ee36f37c8e9b6d036cd6c8c769c0c36df9e053f4f91b
MD5 a8a5b26c87e71995b4168f035d94cbd9
BLAKE2b-256 8a5f2ab8370e4e8f91cf7806ff6aafa54fd98c2697a16c6b8d4f6986854cd269

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page