Skip to main content

Blender Addon

The Modelibr Blender addon enables direct integration with the server for browsing, importing, and uploading 3D models.

Purpose

Allow Blender users to:

  • Browse and import models from Modelibr server
  • Upload new versions of imported models
  • Upload current scene as new model
  • Open models via modelibr:// URI from web app

Where to Look

ComponentLocation
Main addon codeblender-addon/modelibr/
API clientblender-addon/modelibr/api_client.py
UI panelsblender-addon/modelibr/panels.py
Browse windowblender-addon/modelibr/browse_window.py
Operatorsblender-addon/modelibr/operators/
Texture handlingblender-addon/modelibr/texture_utils.py
URI handlerblender-addon/install_uri_handler.py
Tests (unit)blender-addon/tests/unit/
Tests (e2e)blender-addon/tests/e2e/
Documentationblender-addon/README.md

API Endpoints Used

EndpointMethodDescription
/modelsGETList all models
/models/{id}GETGet model details
/models/{id}/versionsGET/POSTGet or create versions
/files/{id}GETDownload file
/models/{id}/thumbnail/fileGETDownload thumbnail

Key Behaviors

  • Import: Downloads active version file (priority: GLB > FBX > OBJ > .blend)
  • Upload Version: Exports scene, uploads to existing model
  • Upload New: Exports scene, creates new model in server
  • URI Handler: Registers modelibr:// protocol for "Open in Blender" buttons

Effects of Changes

  • API changes → Update api_client.py
  • UI changes → Update panels.py or browse_window.py
  • Texture handlingtexture_utils.py (21KB - handles UV conventions)
  • File format changes → Update operators and import/export logic

Testing

cd blender-addon/tests
python run_tests.py

Unit tests cover: api_client, async_handler, config, texture_utils, tracking