Architecture overview
Blender Development combines IntelliJ Platform extension points with project services and a bundled Python runtime executed inside Blender.
Main surfaces
Section titled “Main surfaces”- The Blender Project generator creates project files through PyCharm’s native Python environment workflow.
- Project Blender Manager edits project-scoped launch and runtime settings.
- Settings > Tools > Blender Development stores application-wide discovery, environment, and logging settings.
- The Blender run configuration starts the external Blender process.
- Runtime actions communicate with an active Debug session.
Service boundaries
Section titled “Service boundaries”| Responsibility | Scope |
|---|---|
| Build commands and launch Blender | Project |
| Discover Blender installations | Project scan with application-level cached results |
| Persist launch and runtime settings | Project |
| Persist global paths and environment variables | Application |
| Extract runtime resources and clean stale scripts | Project startup |
Project state is stored in the project’s .idea configuration. Application state is stored in PyCharm’s configuration area.
Run and debug lifecycle
Section titled “Run and debug lifecycle”- The run configuration validates the Blender path.
- The launcher combines project arguments and environment settings.
- Run mode generates a lightweight refresh script. Debug mode generates a full runtime bootstrap script.
- PyCharm starts Blender as an external process.
- In Debug mode, the Blender runtime reports its
debugpyendpoint and PyCharm attaches through Python DAP. - Runtime commands and optional reload-on-save remain active until Blender exits.
- The plugin releases session state and removes generated scripts.
Bundled runtime
Section titled “Bundled runtime”The build packages the Python sources into blender-runtime.zip. The plugin extracts that archive under the IDE configuration area and refreshes it when the plugin version or archive hash changes.
The runtime provides add-on loading, script execution, reload, stop, logging, and debugger coordination inside Blender. Localhost communication is limited to the lifetime of the active session.