Skip to content

Blender Dev 0.6.0

Released: 4-26-2026

  • uv-Powered Python Integration: Implemented a mandatory uv integration for ultra-fast virtual environment management and linter installation.
    • Added automated uv installation for the user and support for specific Python versions per Blender release.
    • Deep integration with PyCharm’s native uv metadata.
    • Enhanced uv venv creation with the --seed flag to ensure pip, setuptools, and wheel are always present, resolving packaging tool failures.
  • 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, .gitignore templates, and GPL V3 LICENSE files.
  • Background Task Management: Centralized all long-running operations (linter setup, downloads, reloads) into a new BlenderTaskManager to ensure a smooth, non-blocking IDE experience.
  • Execution Validation: Implemented proactive detection of filesystem execution restrictions (e.g., noexec on 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, and PathUtils into a single, well-organized PathUtils.kt class. This eliminates architectural technical debt and provides a single, logical authority for path definitions, filesystem operations, and discovery.
  • Improved Deletion Safety: Implemented PathUtils.safelyDeleteRecursively as a centralized, protected entry point for all recursive file operations, ensuring source and system files are never deleted by accident.
  • Architectural Refactoring: Split PathUtils into a multi-file submodule under common.utils.paths for better maintainability and clearer logical separation of concerns (Constants, Project Paths, Discovery, Analysis, etc.).
  • Enhanced Blender Discovery: Improved BlenderScanner and PathUtils for more reliable detection of system-wide installations across all platforms.
  • Robust Downloader: Overhauled BlenderDownloader and ArchiveUtil to improve extraction reliability and properly handle Unix execution permissions.
  • Internationalization (i18n): Audited and cleaned up the LangManager message bundles.
    • Removed redundant and unused keys and standardized terminology (using “Module” consistently for Blender components).
    • Synchronized all 11 supported language bundles.
    • Created unified button.yes and button.no keys 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.properties under a new project.generator.* namespace, and removed an additional 18 unused keys.
  • Version Updates: Updated supported Blender and Python version metadata to include the latest releases.
  • 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.yml workflow to use the correct inputs.version syntax for workflow_dispatch.
  • 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_sandbox to .blender_sandbox at 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.
  • Filesystem Safety & Protection: Implemented robust protections to prevent accidental deletion of source files or system directories.
    • Added strict isVenv validation that excludes system paths and requires the presence of pyvenv.cfg.
    • Introduced isSafeToDelete checks 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.).
  • 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 modern SdkType.EP_NAME.extensionList for SDK type discovery.
    • Replaced Messages.showYesNoDialog with MessageDialogBuilder for improved dialog management.
    • Refactored BlenderNotification to use the standard NotificationGroupManager retrieval pattern.
    • Modernized various UI components and SDK initialization logic to align with the latest IntelliJ Platform guidelines.
    • Replaced deprecated Project.baseDir with Project.guessProjectDir() for more reliable project root resolution.
    • Fixed build errors in BlenderProjectService.kt by adding missing Project import and standardizing path resolution.
    • Replaced deprecated ProgressManager.runProcessWithProgressSynchronously with modern Task.Modal pattern via BlenderTaskManager.
  • Enhanced Debugging: Updated BlenderLogger to 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 ConcurrentModificationException in shared caches. Added synchronization locks in BlenderService to ensure atomic process initialization.
  • Communication Server Leak: Implemented a robust cleanup mechanism in BlenderCommunicationService to 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.