Blender Dev 0.6.0
Released: 4-26-2026
- uv-Powered Python Integration: Implemented a mandatory
uvintegration for ultra-fast virtual environment management and linter installation.- Added automated
uvinstallation for the user and support for specific Python versions per Blender release. - Deep integration with PyCharm’s native
uvmetadata. - Enhanced
uvvenv creation with the--seedflag to ensurepip,setuptools, andwheelare always present, resolving packaging tool failures.
- Added automated
- Project Traits Management: Added new capabilities to the Blender tool window to generate essential project files for existing projects.
- Supports generation of Junie Agent Guidelines, default Run Configurations,
.gitignoretemplates, and GPL V3 LICENSE files.
- Supports generation of Junie Agent Guidelines, default Run Configurations,
- Background Task Management: Centralized all long-running operations (linter setup, downloads, reloads) into a new
BlenderTaskManagerto ensure a smooth, non-blocking IDE experience. - Execution Validation: Implemented proactive detection of filesystem execution restrictions (e.g.,
noexecon Linux). The plugin now identifies restricted partitions and provides actionable troubleshooting guides. - User Permission Prompt: Added explicit confirmation dialogs before the plugin performs invasive operations like Python SDK management or environment recreation.
- Improved Python version tracking to use full semantic versions (e.g., 3.11.7) for better compatibility with specific Blender releases.
- Unified Path Utility: Consolidated
BlenderProjectPaths,FileUtil, andPathUtilsinto a single, well-organizedPathUtils.ktclass. This eliminates architectural technical debt and provides a single, logical authority for path definitions, filesystem operations, and discovery. - Improved Deletion Safety: Implemented
PathUtils.safelyDeleteRecursivelyas a centralized, protected entry point for all recursive file operations, ensuring source and system files are never deleted by accident. - Architectural Refactoring: Split
PathUtilsinto a multi-file submodule undercommon.utils.pathsfor better maintainability and clearer logical separation of concerns (Constants, Project Paths, Discovery, Analysis, etc.). - Enhanced Blender Discovery: Improved
BlenderScannerandPathUtilsfor more reliable detection of system-wide installations across all platforms. - Robust Downloader: Overhauled
BlenderDownloaderandArchiveUtilto improve extraction reliability and properly handle Unix execution permissions. - Internationalization (i18n): Audited and cleaned up the
LangManagermessage bundles.- Removed redundant and unused keys and standardized terminology (using “Module” consistently for Blender components).
- Synchronized all 11 supported language bundles.
- Created unified
button.yesandbutton.nokeys and updated confirmation dialogs across the UI for better consistency. - Migrated all hardcoded UI strings from the project generators (Extension and Single-File Add-on) — checkbox labels, row labels, tooltips, and validation messages — into
LangManager.propertiesunder a newproject.generator.*namespace, and removed an additional 18 unused keys.
- Version Updates: Updated supported Blender and Python version metadata to include the latest releases.
Changed
Section titled “Changed”- UI Modernization: Updated the Virtual Environment recreation prompt to display the project name instead of the absolute file path for a cleaner, more user-friendly interface.
- Refactored the Tool Window, Settings, and Run Configuration editors using modern Kotlin DSL components for a cleaner, more responsive interface.
- Repository & CI Migration: Migrated the project templates and CI workflows to the repository’s then-current forge configuration.
- Fixed the
release.ymlworkflow to use the correctinputs.versionsyntax forworkflow_dispatch.
- Fixed the
- Process Management: Refactored Blender process launching to use
KillableProcessHandler, improving responsiveness and termination handling. - Run Configuration Flow: Improved path resolution and validation to ensure managed versions are correctly handled before launch.
- Enhanced Build & Validate: Added dedicated inputs for source and output directories in Build and Validate run configurations, allowing for more flexible extension packaging.
- Reactive Error Handling: Refactored permission checks to be reactive, triggering detailed diagnostics only when a “Permission denied” error occurs.
- Sandbox Management: Relocated the Sandbox directory from
.venv/blender_sandboxto.blender_sandboxat the project root level.- This preserves sandbox data when switching Python virtual environments or recreating the
.venv. - The folder is now automatically marked as “excluded” in the IDE to prevent indexing and tracking.
- This preserves sandbox data when switching Python virtual environments or recreating the
- Filesystem Safety & Protection: Implemented robust protections to prevent accidental deletion of source files or system directories.
- Added strict
isVenvvalidation that excludes system paths and requires the presence ofpyvenv.cfg. - Introduced
isSafeToDeletechecks for all recursive deletion operations, ensuring they are contained within project boundaries or managed download directories. - Added explicit blacklisting for critical system paths and common user folders (Documents, Desktop, etc.).
- Added strict
- Thread Safety & EDT Compliance: Fixed an issue where “Access is allowed from Event Dispatch Thread (EDT) only” would occur during Python SDK initialization and linter setup by ensuring all model-modifying calls (like
PythonSdkUpdater.update, SDK creation, and virtual environment management) are correctly synchronized on the EDT. - Codebase Modernization: Audited the codebase and replaced several deprecated IntelliJ APIs with modern recommended implementations.
- Replaced deprecated
SdkType.getAllTypes()with the modernSdkType.EP_NAME.extensionListfor SDK type discovery. - Replaced
Messages.showYesNoDialogwithMessageDialogBuilderfor improved dialog management. - Refactored
BlenderNotificationto use the standardNotificationGroupManagerretrieval pattern. - Modernized various UI components and SDK initialization logic to align with the latest IntelliJ Platform guidelines.
- Replaced deprecated
Project.baseDirwithProject.guessProjectDir()for more reliable project root resolution. - Fixed build errors in
BlenderProjectService.ktby adding missingProjectimport and standardizing path resolution. - Replaced deprecated
ProgressManager.runProcessWithProgressSynchronouslywith modernTask.Modalpattern viaBlenderTaskManager.
- Replaced deprecated
- Enhanced Debugging: Updated
BlenderLoggerto print debug messages directly to the console (println) when running the IDE, ensuring immediate visibility of logs during development without extra platform configuration. - Archive & Download Reliability: Implemented robust extraction using temporary directories, atomic moves, file size verification, and improved top-level directory stripping to prevent corrupted installations.
- Thread Safety & Synchronization: Resolved race conditions and
ConcurrentModificationExceptionin shared caches. Added synchronization locks inBlenderServiceto ensure atomic process initialization. - Communication Server Leak: Implemented a robust cleanup mechanism in
BlenderCommunicationServiceto prevent resource leaks and ensure only one active client connection. - Linter & Setup Stability: Ensured valid version string usage during linter setup and improved New Project Wizard validation for sandbox settings.
- Command & Reload Safety: Implemented proper shell-style quoting for project paths with spaces and robust JSON serialization for extension reload commands.
- Cancellation Responsiveness: Improved responsiveness by adding
checkCanceled()calls throughout long-running processes, allowing users to abort operations. - Linux Execution (Error 13): Resolved issues where Blender failed to launch on Linux partitions with restrictive mount flags by providing clear diagnostic feedback.
- Sandbox Extension Path: Fixed a path mismatch in sandbox mode by correctly aligning the linker path with
BLENDER_USER_SCRIPTS. - Process Execution: Replaced inefficient busy-wait loops with a listener-based approach and improved resource cleanup.
Want to improve these docs? Open a pull request on GitHub.