SHADER nodes & BCON! - Blender Today LIVE #265
Changelog between September 02, 2025 - September 16, 2025 at 12h
403 commits in total, of which 93 are fixes and 81 cleanup.
Anim
- Anim: fix crash when loading F-Curve with unknown modifier - Sybren A. Stüvel
- Anim: Remove deprecated property from POSELIB_OT_create_pose_asset - Christoph Lendenfeld
- 🔸 Anim: drop versioning code for pre-2.50 animation - Sybren A. Stüvel
-
Anim: remove deprecated
SpaceAction::actionpointer - Sybren A. Stüvel -
Anim: Remove
PBONE_SELECTABLEmacro - Christoph Lendenfeld - 🔸 Anim: fps dependent frame display in animation editors - Christoph Lendenfeld
Audaspace
- 🔸 Audaspace: port changes from upstream. - Jörg Müller
Authors
- Authors: de-duplicate - Thomas Dinges
BLF/BLI
- BLF: assert alpha doesn't exceed 1.0 for icon outlines - Campbell Barton
- BLI: reduce binary size for non-performance sensitive virtual arrays - Jacques Lucke
Build environment
CMake
- CMake: Win: Disable fastlink for VS2026 - Ray Molenkamp
- CMake: Win: Properly report VS2026 when detected - Ray Molenkamp
Cleanup
- Cleanup: String formatting - Jeroen Bakker
- Cleanup: VSE: Rename uses of "sequence" with "strip" - Falk David
- Cleanup: minor changes to target_project_edge error checking - Campbell Barton
- Cleanup: group package imports - Campbell Barton
- Cleanup: repeated word - Campbell Barton
- Cleanup: sort file lists in CMake - Campbell Barton
- Cleanup: oneAPI: Fix warnings about unused variables - Nikita Sirgienko
- Cleanup: use more common abbreviation for ToolSettings - Campbell Barton
- Cleanup: Formatting - Hans Goudey
- Cleanup: Fix typo in FalloffPanel - Sean Kim
- Cleanup: unused argument warning - Campbell Barton
- Cleanup: quiet unused argument warnings on macOS - Campbell Barton
- Cleanup: correct comments, add all to bl_pyapi_prop_array.py - Campbell Barton
- Cleanup: Remove legacy Grease Pencil python code - Sean Kim
- Cleanup: update ufbx to latest version - Aras Pranckevicius
- Cleanup: pass const context to CTX_py_init_get - Campbell Barton
- Cleanup: VSE: Add read/write callbacks to strip modifiers - Falk David
- Cleanup: Redundant template parameterization - илья _
- Cleanup: Pass variable by ref - Jeroen Bakker
- Cleanup: Remove outdated clog comments in the header - Brecht Van Lommel
- Cleanup: Fix various typos in source/blender/geometry - luz paz
- Cleanup: UI: Make some uiLayout members private - Guillermo Venegas
- Cleanup: Formatting - Hans Goudey
- Cleanup: Fix typos in source/blender/io - luz paz
- Cleanup: correct typos in GNUmakefile & CMakeLists.txt - luz paz
- Cleanup: spelling in comments & string - Campbell Barton
- Cleanup: use const arguments in BLF funcitons - Campbell Barton
- Cleanup: UI_alert, pass const references to strings - Campbell Barton
- Cleanup: use str.format for bl_rna_manual_reference test - Campbell Barton
- Cleanup: use str.format type specifiers, ascii characters in menu text - Campbell Barton
- Cleanup: define all for node_add_menu.py - Campbell Barton
- Cleanup: fix typos in release subdirectory - luz paz
- Cleanup: fix typos in doc subdirectory - luz paz
- Cleanup: Rename various multires functions - Sean Kim
- Cleanup: UI: Make some uiLayout members private - Guillermo Venegas
- Cleanup: Pass StringRef instead of const std::string & - Hans Goudey
- Cleanup: Nodes: Remove unnecessary temporary string - Guillermo Venegas
- Cleanup: Fix the misspelling of "collection" in some function names - Alaska
- Cleanup: Grease Pencil: Remove legacy UI code - Pratik Borhade
- Cleanup: Remove instance rate vertex - Jeroen Bakker
- Cleanup: minor edits for island arrange - Campbell Barton
- Cleanup: Fix typos in bmo_join_triangles.cc - luz paz
- Cleanup: Fix typos in source/blender/gpu - luz paz
- Cleanup: remove unnecessary code from dopesheet editor RNA - Sybren A. Stüvel
- Cleanup: fix unused parameter in release builds - Sybren A. Stüvel
- Cleanup: resolve pylint warnings - Campbell Barton
- Cleanup: remove unused variable - Campbell Barton
- Cleanup: Fix typos in source/blender/depsgraph - luz paz
- Cleanup: Fix typos in source/blender/draw - luz paz
- Cleanup: EEVEE: Typo in interlieved_gradient_noise - Clément Foucault
- Cleanup: GPU: Avoid warning in shader parser code - Clément Foucault
- Cleanup: Metal: Avoid MSL warning in curves interpolation shader - Clément Foucault
- Cleanup: use view2d prefix for consistency - Campbell Barton
- Cleanup: sort files - Campbell Barton
- Cleanup: follow our API naming conventions - Campbell Barton
- Cleanup: Various organizational changes for brush.cc - Sean Kim
- Cleanup: use a boolean for BMesh::use_toolflags - Campbell Barton
- Cleanup: correct misleading PyArg_Parser formatting - Campbell Barton
- Cleanup: GPUFence parameter names - Jeroen Bakker
- Cleanup: Fix typos in source/blender/nodes - luz paz
- Cleanup: Fix typos in scripts subdirectory - luz paz
- Cleanup: Fix typos in source/blender/freestyle - luz paz
- Cleanup: Vulkan: Remove references to Renderpass and Framebuffer - Jeroen Bakker
- Cleanup: use doxygen comments to end groups - Campbell Barton
- Cleanup: sort file lists - Campbell Barton
- Cleanup: Fix typos in source/blender/animrig - luz paz
- Cleanup: Fix the misspelling of "anisotropy" in some variable names - luz paz
- Cleanup: quiet array-bounds compiler warning for GCC - Campbell Barton
- Cleanup: UI: Remove unused interface_align code - Guillermo Venegas
- Cleanup: quiet some array-bounds warnings with GCC 15 - Campbell Barton
- Cleanup: use assume attribute to quiet array bounds warning for GCC 15 - Campbell Barton
- Cleanup: Remove incorrect comment - Pablo Vazquez
- Cleanup: Reduce size of DupliObject data - Jesse Yurkovich
- Cleanup: use of doxygen params in doc-strings - Campbell Barton
- Cleanup: only use "r_" prefix for return arguments - Campbell Barton
- Cleanup: only use "r_" prefix for return arguments - Campbell Barton
- Cleanup: GPU: Remove prefix 'e' from enum types - Clément Foucault
- Cleanup: Use attribute API for "Reset UVs" function - Hans Goudey
- Cleanup: use braces in mathutils switch statements - Campbell Barton
- Cleanup: use std::trunc(..) - Campbell Barton
- Cleanup: Initialize closure weight to silence warning on Windows - Brecht Van Lommel
Color Management
- 🔸 Color Management: Builtin support for ACEScg and Rec.2020 linear spaces - Brecht Van Lommel
- 🔸 Color Management: Warn when OpenColorIO config for blend file is likely missing - Brecht Van Lommel
- Color Management: Change byte color attributes to always be sRGB - Brecht Van Lommel
- 🔸 Color Management: Add working color space for blend files - Brecht Van Lommel
- Color Management: Tweaks to OpenColorIO config - Brecht Van Lommel
- Color Management: Assign interop ID to non-color data - Brecht Van Lommel
- 🔸 Color Management: Read and write interop ID for OpenEXR - Brecht Van Lommel
- 🔸 Color Management: Add BLENDER_OCIO environment variable - Brecht Van Lommel
- Color Management: Add API to get interop ID for working space - Brecht Van Lommel
- Color Management: Use working space from custom OCIO config in startup blend - Brecht Van Lommel
- Color Management: Use preprocessor for gamma 2.2 vs piecewise sRGB - Christoph Neuhauser
- Color Management: Improve handling of missing working spaces - Brecht Van Lommel
Compositor
- 🔸 Compositor: Turn menu options to sockets for pixel nodes - Omar Emara
- 🔸 Compositor: Turn Double Edge Mask node menus into inputs - Omar Emara
Core
- Core: Add hashing support to Array data structure - Eitan Traurig
- Core: add type checks to ID property accessors - Campbell Barton
-
🔸
Core: Reduce cost of DupliObject
random_idgeneration - Jesse Yurkovich
Curves
- 🔸 Curves: Parallelize nurbs custom knots offsets cache calculation - Hans Goudey
- 🔸 Curves: Simplify calculation of NURBS basis functions - Mattias Fredriksson
- 🔸 Curves: Pen Tool - Casey Bianco-Davis
Cycles
- 🔸 Cycles: Flip image vertically before passing to OptiX denoiser to improve result quality - Patrick Mours
- 🔸 Cycles: Pack uint3/int3 structs for oneAPI - Xavier Hallade
- Cycles: Switch to HIP SDK 6.4.3 on Linux - Sergey Sharybin
- 🔸 Cycles: Remove Alembic procedural - Brecht Van Lommel
- 🔸 Cycles: Remove Use Tiling option - Sergey Sharybin
Docs
- Docs: clarify intended use of build defines regarding --help - Campbell Barton
-
Docs: Update
bpy.propsdocs/examples for getters and setters. - Bastien Montagne - Docs: Update RNA to user manual URL mapping - Aaron Carlisle
EEVEE
- EEVEE: Fix pointcloud rendering for Vulkan - Jeroen Bakker
- 🔸 EEVEE: Split eevee_shader_shared.hh into multiple files - Clément Foucault
- 🔸 EEVEE: Move AOV clearing to its own separate pass - Clément Foucault
ffmpeg
- 🔸 ffmpeg: cap maximum thread count to 16 - Aras Pranckevicius
Fix
- Fix: viewer shortcut description mentions compositor only - Habib Gahbiche
- Fix: Last row in file browser showing sometimes clipped out of view - Julian Eisel
- Fix: Python memory leak when deferred property registration fails - Campbell Barton
- Fix: Strips are moved when adjusting properties in redo panel - Richard Antalik
- Fix: VSE: Slip always cancels - John Kiril Swenson
- Fix: VSE: Mirror operations invoking instead of immediately executing - John Kiril Swenson
- Fix: compile warning when building without ffmpeg - Aras Pranckevicius
- Fix: missing newlines loading 3D text from older blend files - Campbell Barton
- Fix: Geometry Nodes: anoymous attributes are not always propagated in Trim Curve node - илья _
- Fix: Geometry nodes reorders attributes in some cases - Hans Goudey
- Fix: typos in source/blender/makesrna - luz paz
- Fix: Incorrect test for WITH_GHOST_X11 - Jeroen Bakker
- Fix: Vulkan: Validation error on Qualcomm GPU - Jeroen Bakker
- Fix: Python error creating new reference renders for tests - Brecht Van Lommel
- Fix: Wrong color space for gizmo, fluid grid line and stamp colors - Brecht Van Lommel
- Fix: Cycles blackbody renders wrong with OSL and ACEScg - Brecht Van Lommel
- Fix: Cycles: Invalidate caches when scene linear colorspace changes - Brecht Van Lommel
- Fix: Vulkan: Unused attachments - Jeroen Bakker
- Fix: Vulkan: Workbench rendertest were not reported - Jeroen Bakker
- Fix: MaterialX export can end up with duplicate node names - Brecht Van Lommel
- Fix: 3D text line end misses last character - Campbell Barton
- Fix: Color picker does not refresh properly when changing working space - Brecht Van Lommel
- Fix: Working space menu shows blank entry with custom OCIO config - Brecht Van Lommel
- Fix: Strips are added to wrong position when dragging movies - Richard Antalik
- Fix: 'Reset Curve' on brush falloff curve applies incorrect default - Sean Kim
- Fix: Nodes: muted nodes shows all unused inputs - Jacques Lucke
- Fix: typo calculating the maximum width/height of a region - Campbell Barton
- Fix: Operator cheatsheet error due to property items not available - Damien Picard
- Fix: GL: Missing version parsing for Linux AMD Pro GL implementation - Clément Foucault
- Fix: Overlay: Outline of subpixel Curves produce high aliasing - Clément Foucault
- Fix: Build error with MSVC - Ray Molenkamp
- Fix: Nodes: inactive panel toggle is not grayed out - Jacques Lucke
- Fix: Cycles HIP: Runtime compile missing flags and C++17, improve logging - Sahar A. Kashi
- Fix: Geometry Nodes: false warning when passing gizmo data through instance-only nodes - Jacques Lucke
- Fix: Build using WITH_OPENCOLORIO=OFF fails after recent changes - Brecht Van Lommel
- Fix: GPU: Avoid accessing GLContext after it is destroyed - Clément Foucault
- Fix: GPU: Implicit cast from int to bool in assert() - Clément Foucault
- Fix: Python code style - Sergey Sharybin
- Fix: Build error in lite build without USD and Alembic - Brecht Van Lommel
-
Fix: Grease Pencil: Assert when converting to
Catmull RomorPoly- Casey Bianco-Davis - Fix: VSE: Memory leak with slip operator - John Kiril Swenson
- Fix: Curves: Pen tool virtual destructor compiler warning - Casey Bianco-Davis
- Fix: Build error with BLI_virtual_array.hh - Ray Molenkamp
- Fix: Remove unused "Active Modifier Outline" setting - Falk David
-
Fix: Use new
USER_DEVELOPER_TOOL_TESTmacro where appropriate - Sean Kim - Fix: Cycles linear curves on Metal-RT - Sergey Sharybin
- Fix: Spacing doesn't work with non-default size curve - Sean Kim
- Fix: Curve and Line stroke types can have incorrect spacing behavior - Sean Kim
- Fix: Avoid potential crash when reading old blendfiles - Sean Kim
- Fix: CLG context is not initialized for some tests - илья _
- Fix: Vulkan: VMA validation errors - Jeroen Bakker
-
Fix: Curves:
Select Alternateoperator not selecting handles - Casey Bianco-Davis - Fix: Cycles: Incorrect thin film IOR for backfacing Glass with OSL - Lukas Stockner
- Fix: Grease Pencil: Draw tool default aspect_ratio and u_scale to zero - Casey Bianco-Davis
- Fix: Grease Pencil: Points with zero aspect ratio not displayed - Casey Bianco-Davis
- Fix: Geometry Nodes output attributes hidden - Hans Goudey
- Fix: Cycles: Metal error in unrelated test after Sky Texture change - Lukas Stockner
- Fix: Artifacting in experimental texture paint on non-manifold meshes - T0MIS0N
- Fix: Cycles: volume octree should estimate extrema in the current segment - Weizhen Huang
- Fix #121408: "Online Manual" button doesn't work with add-on preferences - Alex Zhornyak
- Fix #126909: checker deselect fails with cyclic topologies - tariqsulley
- Fix #134920: File Output writes frame for single render - Omar Emara
- Fix #138340: Vertex group names not transferred when erasing or trimming - Janne Nylander
- Fix #141142: UI: Emboss status not restored in uiLayout - Damien Picard
- Fix #141293: Lock Pinned Islands in UV packing not working with UDIMs - Eitan Traurig
- Fix #141547: Python API: Filebrowser crash in background mode - Campbell Barton
- Fix #142670: Crash when opening search menu after file save - Julian Eisel
-
Fix #142691: Grease Pencil:
Reset Vertex Colorobstructs materials - Casey Bianco-Davis - Fix #143617: Do Not Draw Tiny Regions - Harley Acheson
- Fix #144096: Undo history unknown action on editing curve map - Pratik Borhade
- Fix #144213: Overlay: Transparency ordering issue in texture paint - Clément Foucault
- Fix #144258: Cycles: Subsurface scattering doesn't work with shadow linking - Amogh Shivaram
- Fix #144786: Cycles curve thickness missing transform in viewport - Brecht Van Lommel
- Fix #144887: Vulkan: Crash when downloading large images - Jeroen Bakker
- Fix #144980 - glTF - Fix importing empty glTF files, without nodes or scenes - Julien Duroure
- Fix #145028: Regression: 3D cursor misaligned with axes - Clément Foucault
- Fix #145133: Invalid node link node pointer in certain file - Hans Goudey
- Fix #145190: Armature Symmetrize not symmetrizing Viewport Display - Philipp Oeser
- Fix #145203: Switching armatures in pose mode fails when behind mesh - Clément Foucault
- Fix #145244: FBX importer does not import textures from some files - Aras Pranckevicius
- Fix #145254: Cycles normal map node strength wrong results with displacement - Brecht Van Lommel
- Fix #145263: Cycles normal map with generated texture coordinates fails - Brecht Van Lommel
- Fix #145266: Curves: Radius gets stuck at 0 - Philipp Oeser
- Fix #145340: Object.to_mesh API change with subdivision and shape keys - Brecht Van Lommel
- Fix #145427: Last entry in file browser may not be displayed - Julian Eisel
- Fix #145439: Artifacts in Movie Distortion with half precision - Omar Emara
- Fix #145449: Workaround wrongly generated Intel Linux driver version - Nikita Sirgienko
- Fix #145498: Cryptomatte assets are not selectable by name - Omar Emara
- Fix #145557: Memory leak on exit with custom wayland cursor shapes - Campbell Barton
- Fix #145560: Invalid curve flag set in legacy curve pen tool - Hans Goudey
- Fix #145566: Crash in GPU_shader_builtin_warm_up when unbound GL context - Bart van der Braak
- Fix #145590: translations causing driver expressions to fail - Campbell Barton
- Fix #145594: Tests: Check Windows command line length for batched tests - Christoph Neuhauser
- Fix #145600: UV Editor crash with Text objects - Mattias Fredriksson
- Fix #145607: Stabilize 2D node has no clip selector - Omar Emara
- Fix #145629: Crash when pasting strip with driver - Richard Antalik
- Fix #145633: Revert "Fix #144526: Crash on exit with Video_Editing template" - Habib Gahbiche
- Fix #145635: Tree View: Selection not working - Sybren A. Stüvel
- Fix #145651: GPU: Memoryleak drawing node links - Clément Foucault
- Fix #145666: Crash separating all curves - Hans Goudey
- Fix #145667: Nearest interpolation is ignored in Vulkan - Omar Emara
- Fix #145675: Crash when opening file with undefined node - Habib Gahbiche
- Fix #145691: Geometry Nodes: anonymous attributes not always propagated in Set Mesh Normal node - илья _
- Fix #145703: Set clamp mode to on by default during vertex slide - Pratik Borhade
- Fix #145711: Packed images may fail to export with USD - Jesse Yurkovich
- Fix #145714: mesh.validate() asserts editing immutable layers - Campbell Barton
- Fix #145715: Right click select doesn't work with Blade Tool - John Kiril Swenson
- Fix #145719: Crash when using Capture Screenshot Preview - Jorn Visser
- Fix #145733: Multires undo doesn't work - Sean Kim
- Fix #145743: EEVEE: Instance leak when Stereoscopy is enabled - Clément Foucault
- Fix #145753: Crash deleting a keyframe for another slot when tweaking - Sybren A. Stüvel
- Fix #145770: UV sync select hides unselected faces - Campbell Barton
- Fix #145783: Edit Mesh: Crash when selecting edge in some setup - Clément Foucault
- Fix #145785: Snake Hook strength pressure curve is visible - Sean Kim
- Fix #145808: Video Editing workspace does not set default tool - John Kiril Swenson
- Fix #145817: Crash while pasting audio strips - Ramon Klauck
- Fix #145848: Crash when switching view layer after undoing ID deletion. - Bastien Montagne
- Fix #145853: Crash using Blade or Slip tool in VSE with new scene - John Kiril Swenson
- Fix #145856: Obey the relative_path operator property for USD import - Jesse Yurkovich
- Fix #145879: UV Sculpt settings missing from new scene - Sean Kim
- Fix #145890: Crash using playhead snapping in VSE in new scene - Philipp Oeser
- Fix #145891: Crash scrubbing VSE using Shift-RMB in scene with no channels - Sergey Sharybin
- Fix #145932: Relax Face Set brush can corrupt mesh - Sean Kim
- Fix #145957: Outliner Indirect Only option is greyed out on sub collections - Pratik Borhade
- Fix #145959: Hiding from the outliner triggers an assert - Sybren A. Stüvel
- Fix #145960: VSE: Modifier panel shows up in preview region - Falk David
- Fix #145980: ACES 2.0 sRGB colorspace should not be hidden - Brecht Van Lommel
- Fix #146003: Autosave keeps re-saving even when file is already saved - Pratik Borhade
- Fix #146020: bad assert for supported socket types - Jacques Lucke
- Fix #146042: Fix when view transform is set to non-existing color space - Sergey Sharybin
- Fix #146045: wrong modifier list in audio strips, crash when selected - Philipp Oeser
- Fix #146051: incorrect parent zone compute contexts when inlining shader nodes - Jacques Lucke
- Fix #146057: Crash when using Convolve node with GPU - Omar Emara
- Fix #146077: Pointers to Duplicated Scenes in Duplicated IDs are not updated. - Bastien Montagne
- Fix #146086: Regression: OpenSubdiv: GPU Shaders gets recompiled for each evaluation - Sergey Sharybin
- Fix #146122: Grease Pencil: Duplicate cursor panel in draw mode - Pratik Borhade
- Fix #146132: EEVEE: Use uniform to additional data layer - Clément Foucault
- Fix #146133: Render Layers doesn't work in viewport - Omar Emara
- Fix #146138: UI: Preferences tabs lost grouping - Guillermo Venegas
- Fix #146139: Corrective smooth rest source property crash - Hans Goudey
- Fix #146153: Sculpt tools do not work after duplicating scene - Sean Kim
- Fix #146171: Pack Islands from Python fails if Escape has been pressed - Oxicid
- Fix #146192: Wrong HDR mastering display max luminance in videos - Brecht Van Lommel
- Fix #146233: Dyntopo sample detail size crashes with cursor not on mesh - Sean Kim
- Fix #146252: Grease Pencil: Tag ID update after convert from text - Philipp Oeser
- Fix #146284: Missing Navigation Bar in Preferences - Pablo Vazquez
- Fix #146288: Crash displaying frames without a scene - Philipp Oeser
- Fix #146313: Vulkan: Memory leak HDR backbuffer shader - Jeroen Bakker
- Fix #71593: Changes to PropertyGroup in add-on preferences aren't saved - Campbell Barton
- Fix broken build. - Bastien Montagne
- Fix build error in previous commit - Richard Antalik
- Fix typos in source/blender/blenkernel - luz paz
- Fix#145961: Vulkan: Pixelbuffer are Never Exported - Jeroen Bakker
GNUMakefile
- GNUMakefile: include additional CMakeLists files in spelling check - Campbell Barton
GPU
- GPU: Shader: Use parser for loop unrolling - Clément Foucault
-
GPU: Shader: Remove section of code guarded by
#ifdirectives - Clément Foucault - GPU: Shader: Add support for loop unroll using macros - Clément Foucault
- GPU: Simplify Codegen dependency injection - Clément Foucault
- GPU: Simplify matrix lib to reduce dead code - Clément Foucault
- GPU: Split GLSL, C++ and metal shader defines - Clément Foucault
Geometry Nodes
- Geometry Nodes: COW Elision for attribute default filling - илья _
- 🔸 Geometry Nodes: new String to Value node - David-Sebald
- 🔸 Geometry Nodes: optimize group input logging - Jacques Lucke
- 🔸 Geometry Nodes: improve Viewer Attribute Text Readability - W_Cloud
Grease Pencil
-
🔸
Grease Pencil: Use handles for
Extrude,SubdivideandDuplicate- Casey Bianco-Davis -
🔸
Grease Pencil: Support
BézierandCatmull Romfor interpolation tool - Casey Bianco-Davis
I18N
- I18N: Updated UI translations from git/weblate repository (54671c10c58ad901). - Bastien Montagne
- I18N: Updated UI translations from git/weblate repository (db6a6b44ac5a). - Bastien Montagne
- I18n: Translate color icons using the Color context - Damien Picard
- I18n: Disambiguate "Array" as data type - Damien Picard
- I18n: Extract UI_MENU_ARROW_SEP from translated string - Damien Picard
- I18n: Disambiguate "Marker" in tracking editor - Damien Picard
- I18n: Extract new line from messages - Damien Picard
- I18n: Allow translation of some messages using string formatting - Damien Picard
- I18n: Disambiguate "Split" in the context of the sequencer - Damien Picard
- I18n: Disambiguate "Bundle" in movie clip editor - Damien Picard
- I18n: Disambiguate "Value" in colors - Damien Picard
ImBuf
- 🔸 ImBuf: multi-thread IMB_byte_from_float / IMB_float_from_byte - Aras Pranckevicius
Images
- 🔸 Images: OpenEXR: Write "Software" metadata with Blender name and version - Brecht Van Lommel
Mesh
- 🔸 Mesh: Optimize sparse face to vertex attribute interpolation - Jacques Lucke
Modeling
- 🔸 Modeling: "Auto Merge" support for Symmetrize - Eitan Traurig
Modifiers
- 🔸 Modifiers: Use implicit sharing for some bind data - Hans Goudey
Nodes
- 🔸 Nodes: remove "Use Nodes" in Shader Editor for Object Materials - Habib Gahbiche
- 🔸 NodeTree: Add 'real' custom properties to Nodes. - Bastien Montagne
- 🔸 Nodes: Node Wrangler: Use socket icons for Lazy Connect menu - quackarooni
- 🔸 Nodes: Node Wrangler: Support for string sockets in merge operator - Ido-Shahar
- Nodes: remove writing legacy node group interface - Jacques Lucke
- 🔸 Nodes: add selection output for each item in Menu Switch node - Jacques Lucke
- 🔸 Nodes: Add tools for "Mute Links" and "Add Reroute" operator - Leon Schittek
- 🔸 Nodes: Deactivate viewer if shortcut exists and viewer is active - Habib Gahbiche
- 🔸 Nodes: Move value to Combine XYZ from link-drag-search - Hans Goudey
- 🔸 Nodes: Add missing tooltip descriptions for various nodes - quackarooni
- Nodes: Recursively apply usage inference - Omar Emara
OBJ
- 🔸 OBJ IO: Import NURBS as Curves directly (not legacy) - Mattias Fredriksson
OpenXR
- OpenXR: Display error enum string in debug mode - Jonas Holzman
Paint
Preferences
PyAPI
- PyAPI: rename undo memory usage method, improve doc-string - Namit Bhutani
- PyAPI: use the vectorcall protocol for mathutils types - Oxicid
- Python: VSE: Remove deprecated "sequence" context API - Falk David
- Python: Nodes: deactivate_viewer() affects active viewer only - Habib Gahbiche
Refactor
- Refactor: Move paint cursor fields to runtime struct - Sean Kim
- Refactor: Color Management: Pass ImageFormatData to movie writing - Brecht Van Lommel
- Refactor: Color Management: Add API functions for color space interop ID - Brecht Van Lommel
- Refactor: GHOST_ContextVK - Jeroen Bakker
- Refactor: Move linear color space matrices from imbuf to blenlib - Brecht Van Lommel
- Refactor: Split off lighter BLI_color_types.hh from BLI_color.hh - Brecht Van Lommel
- Refactor: VSE, remove STRIP_TYPE_EFFECT, split effect type and blend mode enums - Aras Pranckevicius
- Refactor: Operator: Support properties dialog with message - Brecht Van Lommel
- Refactor: Color Management: Add function to change scene linear role - Brecht Van Lommel
- Refactor: Add foreach_working_space_color to ID type - Brecht Van Lommel
- Refactor: Convert Copy Mirror UV Coordinates operator from Python to C++ - Eitan Traurig
- Refactor: EEVEE: Simplify Gbuffer packing - Clément Foucault
- Refactor: UI: Make layout estimate functions as virtual methods - Guillermo Venegas
- Refactor: IDProperty: accelerate looking up properties by name - Jacques Lucke
- Refactor: Geometry Nodes: use faster IDProperty group lookup instead of custom VectorSet - Jacques Lucke
Render
- 🔸 Render: Add start and end frames to render.render() - Omar Emara
- 🔸 Render: Add Multiple Scattering Sky Texture - marcopavanello
Revert
- Revert "CLI: only show "--qos" on WIN32" - Campbell Barton
- Revert "Draw: Use ResourceHandleRange" - Clément Foucault
Sculpt
- 🔸 Sculpt: Compress position undo step data - Namit Bhutani
- 🔸 Sculpt: Support compression for multires undo steps - Hans Goudey
- Sculpt: Avoid setting vertex normal to the zero vector - Sean Kim
- 🔸 Sculpt: Improve and optimize undo data compression - Hans Goudey
- 🔸 UI: Status Bar Improvements for Sculpt Expand Operator - Harley Acheson
Shader Nodes
- 🔸 Shader Nodes: support repeat zones, closures and bundles - Jacques Lucke
- Shader Nodes: add Python API for inlined shader nodes - Jacques Lucke
Silence DNA
- Silence DNA deprecated warning in versioning_260.cc. - Bastien Montagne
Tests
- Tests: add VSE mask ID modifier render test - Aras Pranckevicius
UI
- UI: Allow renaming view items in popups - Julian Eisel
- 🔸 UI: Add descriptions for UV Select Similar options - Eitan Traurig
- 🔸 UI: Don't Show Region AZone for Tiny Areas - Harley Acheson
- UI: Improved Enforcement of Minimum Area Height - Harley Acheson
- 🔸 UI: Touch-Capable Area Maintenance - Harley Acheson
- 🔸 UI: Dyntopo Confirmation Improvements - Harley Acheson
- 🔸 UI: Nodes: Rename Shader / Compositing RGB nodes to Color - Jonas Holzman
- 🔸 UI: Save Temp Window Sizes & Positions - Harley Acheson
- 🔸 UI: Correction & Improvements to File Browser Font Tooltips - Harley Acheson
- 🔸 UI: Accessibility: Reduce Motion - Pablo Vazquez
- 🔸 UI: Changes to Animation Playhead Design - Harley Acheson
- 🔸 UI: Preference to Always Show Number Arrows - Harley Acheson
- 🔸 UI: Fix and improve a few messages - Damien Picard
- 🔸 UI: Shape key properties in Dopesheet - Pratik Borhade
- 🔸 UI: Timeline: Improve Keying popover label - Pablo Vazquez
- 🔸 UI: VSE: Use correct icon for enable modifier - Pablo Vazquez
- UI: VSE: Update White Balance modifier icon - Pablo Vazquez
- 🔸 UI: Add 'Developer Tools' section to user preferences - Sean Kim
- 🔸 UI: Theme: Shared regions - Nika Kutsniashvili
- 🔸 UI: Theme: Common colors for animation channels - Nika Kutsniashvili
- 🔸 UI: Theme: Scrubbing/Markers shared region - Nika Kutsniashvili
- UI: Preferences: Move sections to a regular sidebar region - Pablo Vazquez
- 🔸 UI: Add ability to collapse paint pressure curves - Sean Kim
- 🔸 UI: Geometry Nodes: Use icon for node-tree subtype - Pablo Vazquez
- 🔸 UI: Move OpenGL render operators to sub-menu - Pablo Vazquez
UV
- UV: Add forwards compatibility conversion for brush size - Sean Kim
- 🔸 UV: arrange and align selected UV islands - Eitan Traurig
- 🔸 UV: Add Minimum and Maximum to Align Vertically/Horizontally - Eitan Traurig
- 🔸 UV: add pack to custom region option to "Pack Islands" operator - Eitan Traurig
VSE
- 🔸 VSE: Implement Select Circle - Ramon Klauck
- 🔸 VSE: Implement Lasso Select - Ramon Klauck
- 🔸 VSE: paste strips at mouse in preview - Ramon Klauck
- 🔸 VSE: UI: New strip modifier "Add" menu - Falk David
- 🔸 VSE: Update Strip Modifier UI - Falk David
- 🔸 VSE: Strip Modifier Icons - Falk David
- 🔸 VSE: Update Video Editing App Template - Pablo Vazquez
- VSE: Python: Add RNA type for mask modifier - Falk David
Video
- 🔸 Video: Save colorspace metadata based on display, remove HDR option - Brecht Van Lommel
- 🔸 Video: Add mastering display metadata to HDR videos - Brecht Van Lommel
Vulkan
- Vulkan: Pass EEVEE render tests - Jeroen Bakker
- Vulkan: Acquire/release swapchain images - Jeroen Bakker
- Vulkan: Submission timeline value - Jeroen Bakker
- Vulkan: Enable wide gamut colors on Windows when HDR mode is off - Brecht Van Lommel
- Vulkan: Add Memory Pool for External Pixel Buffers - Jeroen Bakker
- Vulkan: Disable Stencil Export when Forcing Workarounds - Jeroen Bakker
Win
- Win: Improve crash reporting - Ray Molenkamp
- Win: Preliminary VS 2026 support - Ray Molenkamp
macOS
- macOS: Correct Info.plist CFBundleVersion version string - Jonas Holzman
11 Comments
Amazing new stuff coming to Blender 5.0! Well done guys!
Hi Pablo! Do you think Cycles will ever move toward full spectral rendering instead of staying limited to RGB? I feel like being constrained to an RGB-based system is holding it back in terms of realism like for effects like dispersion, interference, or accurate light interactions.
believe it or not... devtalk.blender.org/t/thoughts-on-making-cycles-into-a-spectral-renderer/2192/2051 it might be the biggest topic ever made on the forum. over 2000 posts, going strong till last year.
Hi Pablo, with William Reynish coming back to developement for tablets , will the old cool projects that he had plans to work on should be revived like the keymap editor and such?
Oi, Pablo! I've been thinking a lot about the donation thing. someone in chat mentioned lowering the barrier a lot. especially in the UK/US/CAD, due to... reasons , many people must cut back on spending by canceling subscriptions. the person in chat mentioned adding an even lower tier, like a $1 tier. Personally, I think it would be fair to have a splash screen nag the first time the software loads in a day, so long as it doesn't draw focus and auto-closes. we still get the command prompt flashing anyway.
also, people are gonna use the shader repeat for really heavy parallax, as the current method is just copying a group 16 to 128 times. I think it's time we get native parallax occlusion mapping working... somehow. now THAT would be an insane 5.0/5.3 feature. So long as we have normal maps in cycles, we should accept not all shaders should or can be physically accurate.
Hi Pablo! Thank you for an amazing show! This is not directed directly to this episode but it's still probably a good idea to ask.
I stumbled upon this old but open issue projects.blender.org/blender/blender/issues/71403 I am an experienced programmer and I love blender so I want to take a go at fixing the issue. The question may sound silly but that's all the more reason to ask it. What is the proper place to look for documentation on how to actually contribute changes so it can be reviewed? Google is not very clear on this and is full of outdated results.
developer.blender.org/docs/ everything you need (or at least what I needed) to start is here. note the new developer handbook. chat.blender.org/ I will put this here, because as a beginning programmer, I made loads of mistakes and they could help me in realtime. (Thanks, Alaska and Brecht!)
Hi🖐 Pablo, watch this : youtu.be/wFxERIZE5WQ
oi! don't just throw links at streamers!
to others- it's a method of generating sound in 3D engines. interesting. The simulation could be doable with volumes, theoretically.
When working with large node setups, connections often end up stretching across the whole graph, making things messy. What if there was a “Relay Node” that you could plug anything into?
Duplicating this node would create a corresponding output node somewhere else in the graph, which acts as a local “shortcut” to the original output. That way, instead of dragging noodle connections all the way across the setup, you could just drop a "Relay Node" and keep things visually clean and organized.
Do you think this is possible ?
Thx !
hi Pablo, is there a way to make some node in Geometry node that can be use in animation like for example a node that can do smear frame or add muscle or some way to simulate cloth etc.