Status: early development / alpha. Automated releases are now published to GitHub Releases: every merge to
mainproduces a rolling Alpha prerelease, andmaster(or the manual Run workflow button) produces a regular release. The zip is self-contained — unzip into a Mayamodulesdirectory and restart Maya, no extra packages or setup required. You can still build locally withpython bk_maya/dev.py build.
The Blendkit Maya plugin connects Autodesk Maya to the Blendkit service — search the library, drag&drop assets straight into the viewport, and re-use the same account / Full plan you already have for the Blender add-on.
It is a port of the official Blender add-on built on:
- Maya 2023–2027 (Python 3.9–3.11, PySide2/PySide6 via
qtpy, OpenMaya 2.0) - The shared Go
blenderkit-clientfor downloads, auth and search - A vendored
qtpy/requests/packaging(see bk_maya/lib)
- bk_maya/ — the Maya plugin (core, UI, plugins, vendored libs)
- bk_maya/bk_proxor/ — proxor mesh-preview submodule (
.prx/.prxc) - bk_client/ — Go
blenderkit-clientsubmodule, shared with the Blender add-on - tests/ — pure-Python unit tests runnable without Maya
# 1. clone with submodules
git clone --recursive https://github.com/BlenderKit/bk_maya.git
cd bk_maya
# 2. create a venv and install dev tooling
python -m venv .venv
.\.venv\Scripts\Activate.ps1
python -m pip install -e ".[dev]" # or: pdm install / uv sync --group dev
# 3. enable pre-commit hooks (ruff + pydoclint)
pre-commit install
# 4. run the synthetic test suite
python -m unittest discover testsTo build a distributable bundle:
python bk_maya/dev.py buildTo load the plugin inside Maya, point Maya's plug-in path at bk_maya/plugins/
and load maya_plugin.py from Windows ▸ Settings/Preferences ▸ Plug-in Manager.
-
Version scheme:
major.minor.YYMMDDHHmm, with a-alphasuffix on automatedmainbuilds (e.g.0.1.2506071430-alpha). Themajor.minorpart is the single human-editable knob in bk_maya/_version.py (BASE_VERSION); the timestamped patch + channel are generated at build time. -
Where the version lives at runtime: the build writes a generated
bk_maya/_build_version.pyinto the package. The plugin reads it via bk_maya/_version.py and surfaces it in the Plug-in Manager, the Blendkit ▸ About menu, and the Maya.modmodule version — so users and admins can see exactly which build is installed. -
Automated releases (see .github/workflows/release.yml):
- merge to
main→ rolling Alpha prerelease, - push to
masteror the manual Run workflow button → stable release.
- merge to
-
Zip contents (
blendkit-maya-<version>-py39.zip/-py311.zip): the version is in the filename, and the archive holds theblendkit.modfile next to theblendkit/module folder. Pick the zip matching your Maya's Python —-py39for Maya 2023,-py311for Maya 2024–2027 (they differ only in the vendoredlib/dependency versions). Unzip both files into a Mayamodulesdirectory and restart Maya — see the bundledINSTALL.txt. -
Build channels locally:
python bk_maya/dev.py build # dev build -> 0.1.<stamp>.dev style python bk_maya/dev.py build --channel alpha # alpha -> 0.1.<stamp>-alpha python bk_maya/dev.py build --channel stable python bk_maya/dev.py build --version 0.1.2506071430 # explicit override python bk_maya/dev.py release --python both # emit -py39 + -py311 zips
Client binaries (future change): today the Go client is compiled from
client/on every build. When it moves to its own repo and ships signed binaries, point the build at the downloaded folder with--client-build <folder>(or theBLENDKIT_CLIENT_BINARIESenv-var) — see the comments in bk_maya/dev.py. No other packaging changes are needed.
| Check | Local | CI |
|---|---|---|
| Lint | ruff check . |
.github/workflows/lint.yml → Ruff |
| Format | ruff format --check . |
.github/workflows/lint.yml → Ruff |
| Docstrings | pydoclint . |
.github/workflows/lint.yml → Pydoclint |
| Security | bandit -c _bandit.yaml -r . |
.github/workflows/lint.yml → Bandit |
| Unit tests | python -m unittest discover tests |
.github/workflows/PR.yml → Maya-Port-Unit-Tests |
| Go client | go test ./client/... |
.github/workflows/PR.yml → Client-Unit-Tests |
All checks are also wired up as a pre-commit hook — see .pre-commit-config.yaml.
- Share the word about Blendkit with your friends and colleagues, or on social media.
- Become a Creator and upload your assets to the Blendkit Free or Full Plan database.
- Report a bug or request a feature in the issue tracker.
- Contribute code — see CONTRIBUTING.md.
GPL-3.0. Same license as the upstream Blender add-on.