This is a template for creating Blender add-ons. It uses uv to manage dependencies and virtual environments.
- Change names and info in the following files (don't forget the copyright headers):
pyproject.toml
(including the path in the[tool.hatch.version]
section)my_addon/__init__.py
my_addon/auto_load.py
(copyright header only)my_addon/panel_mypanel.py
-
Rename the
my_addon
directory to the name of your add-on. It should match the name inpyproject.toml
-
Install uv and run
uv sync
to initialize the virtual environment and install the dependencies:
uv sync
- Activate the virtual environment:
source .venv/bin/activate
- Open your editor and start developing your add-on. Preferably, start your editor from inside of the virtualenv shell so that your editor's LSP is aware of the virtual environment and dependencies.
- For Neovim, the
blender.nvim
plugin is recommended. - For VSCode, the
blender_vscode
extension is recommended.
When you are ready to package your add-on for distribution, run the following command:
./scripts/build.sh
This will create a zip file in the dist
directory which users can install in Blender.
- The
my_addon/auto_load.py
file is a helper which automatically discovers, registers, and unregisters your add-on classes. If you prefer a simpler approach, you can remove this file and manually register/unregister your add-on classes in theregister
andunregister
functions inmy_addon/__init__.py
.
Blender Add-on Template © 2024 Maddison Hellstrom
GNU General Public License v2.0 or later