Skip to main content

Objaverse asset importer for THOR

Project description

ObjaTHOR

Objaverse asset annotator and importer for use in THOR.

Installation

Install ai2thor:

pip install --extra-index-url https://ai2thor-pypi.allenai.org ai2thor==0+455cf72a1c8e0759a452422f2128fbc93a3cb06b

Install other dependencies:

pip install objathor[annotation]

Here the following extras are installed: annotation to use openai to generate annotations. Also for annotation functionality you must install nltk Install nltk. To generate renders and convert 'glb' models in the conversion pipeline you must Install Blender .

From source:

pip install -e ".[annotation]"

We recommend setting an environment variable with your OpenAI key:

export OPENAI_API_KEY=[Your key]

If you're planning to annotate objects for which we don't have pre-generated views in S3 (see an example under Annotation below), we also need to install blender either as an extra (as shown above) or as an application:

Blender install instructions

Installing the Blender as a module:

pip install bpy

Installing the Blender as a module, requires a python 3.10 environment.

Or installing blender as an application: Blender install instructions

If application is not in the cannonical directories you may need to pass blender_installation_path to scripts that use Blender.

NLTK dependencies

Install nltk on this commit by running:

pip install git+https://github.com/nltk/nltk@582e6e35f0e6c984b44ec49dcb8846d9c011d0a8

During the first run, NLTK dependencies are automatically installed, but we can also install them ahead:

python -c "import nltk; nltk.download('punkt'); nltk.download('wordnet2022'); nltk.download('brown'); nltk.download('averaged_perceptron_tagger')"

AI2-THOR binary pre-downloading

Assuming we're running on a remote Linux server, we can pre-download the THOR binaries with:

python -c "from ai2thor.controller import Controller; from objathor.constants import THOR_COMMIT_ID; c=Controller(download_only=True, platform='CloudRendering', commit_id=THOR_COMMIT_ID)"

(platform='OSXIntel64' would be used for a MacOS environment).

Usage

Annotation

You must install the annotation extra requirement through pip, ad have blender installed, either standalone or as a module. The following command will generate annotation, via GPT-4, and also generate the conversion to a valid THOR asset.

OUTPUT_DIR=/path/to/output
python -m objathor.main \
--uid 0070ac4bf50b496387365843d4bf5432 \
--output "$OUTPUT_DIR"

GLB to THOR asset conversion

From the repository root run:

python 
-m objathor.asset_conversion.pipeline_to_thor 
--uids=000074a334c541878360457c672b6c2e 
--output_dir=<some_absolute_path>
--extension=.msgpack.gz
 --annotations=<annotations_file_path> 
--live 
--blender_as_module

Where uids is a string of comma separated list of Objaverse ids to process. output_dir is an absolute path indicating where to write the output of the conversion. annotations is optional, and is the path to an annotations file as generated by the process described above.

Run python -m objathor.asset_conversion.pipeline_to_thor --help for other options.

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

objathor-0.0.8.tar.gz (87.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

objathor-0.0.8-py3-none-any.whl (105.4 kB view details)

Uploaded Python 3

File details

Details for the file objathor-0.0.8.tar.gz.

File metadata

  • Download URL: objathor-0.0.8.tar.gz
  • Upload date:
  • Size: 87.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.10.17

File hashes

Hashes for objathor-0.0.8.tar.gz
Algorithm Hash digest
SHA256 f894c957655c6239551dc473bc32b2af462f412c7ebcd19211785e554172e15b
MD5 a738841c0f5e2527d8418a092fe37cda
BLAKE2b-256 e19a453dc21ff9aa9397231013c40e537de964d38735bed0c633818891e831ee

See more details on using hashes here.

File details

Details for the file objathor-0.0.8-py3-none-any.whl.

File metadata

  • Download URL: objathor-0.0.8-py3-none-any.whl
  • Upload date:
  • Size: 105.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.10.17

File hashes

Hashes for objathor-0.0.8-py3-none-any.whl
Algorithm Hash digest
SHA256 a9270088cc0e4352c2e210ec437117dfe15ee9ead165f064201e15c0b731a6b7
MD5 c8b2724671f5b768851daec5c0b1344a
BLAKE2b-256 40dab7075fe105d754e563b24b1a422dd65b08eed0239a5ea0bb229c5d01fe1c

See more details on using hashes here.

Supported by

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