Quality of Life in Blender 4.5! 🧡 Blender Today LIVE #258
Changelog between April 29, 2025 - May 13, 2025 at 12h
503 commits in total, of which 79 are fixes and 100 cleanup.
Announcements
- In memory of Leon Cheung/张宇/ZhangYu blendercn.org/23311.html
- Google Summer of Code developer.blender.org/docs/programs/gsoc/ideas/
- Blender Conference conference.blender.org/
Add assert regarding consistency of ID type info.
- Add assert regarding consistency of ID type info. - Bastien Montagne
Add funding manifest reference
- Add funding manifest reference - Francesco Siddi
Adjust .gitattributes
- Adjust .gitattributes - Sergey Sharybin
Anim
- Anim: Add 'unshare' node to driver evaluation dependency graph - Sybren A. Stüvel
- 🔸 Anim: Bone collection UI changes - Pratik Borhade
- 🔸 Anim: name new action slots after the last-used slot - Sybren A. Stüvel
- 🔸 Anim: Show action slots in the outliner - Christoph Lendenfeld
- 🔸 Anim: add extra poll checks to bone eyedropper - Christoph Lendenfeld
🔸Audaspace
- Audaspace: Cork the PulseAudio audio stream on creation - Sebastian Parborg
- Audaspace: Workaround Core Audio clock quirk - Sebastian Parborg
- Audaspace: Fix Core Audio sound playback - Sebastian Parborg
- Audaspace: Always free up the CoreAudio resources - Sebastian Parborg
- Audaspace: Wait for the PulseAudio stream to be ready when initializing - Sebastian Parborg
BLI
- BLI: Add configurable inline buffer to VectorSet - Hans Goudey
- BLI: use blender::Mutex by default which wraps tbb::mutex - Jacques Lucke
Blenloader
Build
- Build: Add WITH_OPTIMIZED_BUILD_TOOLS - Miguel Pozo
- Build: Fix overzealous line wrap for COMPILER_CODE_COVERAGE_CXXFLAGS - Jesse Yurkovich
- Build: Auto add Git LFS fallback remote in "make update" - Brecht Van Lommel
- Build: Fix wrong CMake target used for the manifold library - Jesse Yurkovich
- Build: Make Linux Lib building reproducible - Sebastian Parborg
CMake
- CMake: Add minimum version to TBB. - Sebastian Parborg
- CMake: Windows: Use release libs of shaderc for debug builds. - Ray Molenkamp
- CMake: Add code coverage support for clang - Ray Molenkamp
Cleanup
- Cleanup: Make format - Jeroen Bakker
- Cleanup: use const arguments for UV checking functions - Campbell Barton
- Cleanup: pass tool-settings instead of scene to UV selection functions - Campbell Barton
- Cleanup: check pointers before visibility tests, reduce right-shift - Campbell Barton
- Cleanup: Remove unused draw_common_shader_shared.hh - Clément Foucault
- Cleanup: Overlay: Rename GlobalsUboStorage to UniformData - Clément Foucault
- Cleanup: Compiler warning - Brecht Van Lommel
- Cleanup: Remove unused VertBuf::duplicate() function - Hans Goudey
-
Cleanup: VSE: Replace remaining
seqandsequencereferences - John Kiril Swenson - Cleanup: spelling in comments, correct comment block formatting - Campbell Barton
- Cleanup: quiet Python linter warnings - Campbell Barton
- Cleanup: sort CMake file lists - Campbell Barton
- Cleanup: use int2 for pointer location & 3D snapping functions - Campbell Barton
- Cleanup: use float2 for wmTabletData::tilt & PaintStroke::tilt - Campbell Barton
- Cleanup: USD: Shrink the USDPrimReader base class - Jesse Yurkovich
- Cleanup: Initialize memory of default materials - Habib Gahbiche
- Cleanup: simplify logic in node tree iterator - Habib Gahbiche
-
Cleanup: Pass pointer to
get_item_as()- Mattias Fredriksson - Cleanup: EEVEE: Remove next from EEVEE-Next from tests suite - Clément Foucault
- Cleanup: Resolve missing declaration warning - Hans Goudey
- Cleanup: suppress null-dereference warning - Campbell Barton
- Cleanup: ensure logically correct sort callback (id_order_compare) - Campbell Barton
- Cleanup: Clarify instances almost unique IDs cache - Hans Goudey
- Cleanup: reduce right-shift in Python iterators - Campbell Barton
- Cleanup: use float2, int2 types for cursor drawing callbacks - Campbell Barton
- Cleanup: Use const arguments for realize instances function - Hans Goudey
- Cleanup: Remove redundant break after return in switch - Hans Goudey
-
Cleanup: Add comment for
tilt_sensitivityconstant - Sean Kim - Cleanup: Unneeded empty line - Sergey Sharybin
-
Cleanup: Cycles: split
volume_sample_channel()into two functions - Weizhen Huang - Cleanup: Cycles: safer division in volume sample channel - Weizhen Huang
- Cleanup: Cycles: Fix typo - Weizhen Huang
-
Cleanup: remove unnecessary
defined(__KERNEL_METAL__)- Weizhen Huang -
Cleanup: remove unused
volume_shadow_homogeneous()function - Weizhen Huang - Cleanup: Missing include for integer type in BLI_generic_key.hh - Hans Goudey
- Cleanup: spelling in comments, strings (make check_spelling_*) - Campbell Barton
- Cleanup: Move dyntopo brush check macro to method - Sean Kim
-
Cleanup: Reorganize
eUnifiedPaintSettingsFlags- Sean Kim - Cleanup: improve naming, simplify logic for UV face-dot check - Campbell Barton
- Cleanup: use underscore suffix for private member in MeshUVs - Campbell Barton
- Cleanup: split private member for showing faces into two values - Campbell Barton
- Cleanup: naming for MeshUVs members - Campbell Barton
- Cleanup: Formatting of make_update.py - Sergey Sharybin
- Cleanup: Add missing include to avoid need for transitive includes - Hans Goudey
-
Cleanup: Fix typo in
detail_percentRNA description - Sean Kim -
Cleanup: use
_newas a suffix for viewport calculation - Campbell Barton - Cleanup: replace inline viewport dist calculation with a function - Campbell Barton
- Cleanup: use new Mutex in file cache - Jacques Lucke
- Cleanup: resolve mypy warnings - Campbell Barton
- Cleanup: use toolsettings variable in scene defaults versioning - Campbell Barton
- Cleanup: Simplify sequencer_ibuf_get() function call - Sergey Sharybin
- Cleanup: Const-correctness in ImBuf metadata drawing - Sergey Sharybin
- Cleanup: Const-correctness in various sequencer utilities - Sergey Sharybin
- Cleanup: Remove unused TaskPool user_mutex - Hans Goudey
- Cleanup: Use blender::Mutex for various static mutexes - Hans Goudey
- Cleanup: fix misleading comment - Jacques Lucke
- Cleanup: move linear allocator description to class - Jacques Lucke
-
Cleanup: UI: Follow Using
this->code style in recent uiLayout refactors - Guillermo Venegas - Cleanup: Resolve missing declaration warning - Hans Goudey
- Cleanup: Use blender::Mutex for image pool - Hans Goudey
- Cleanup: Use blender::Mutex for file list read job - Hans Goudey
- Cleanup: Remove commented out forward declaration - Sean Kim
- Cleanup: add missing static on functions - Jacques Lucke
- Cleanup: pass SelectPick_Params by reference instead of pointer - Campbell Barton
- Cleanup: don't assign the native size to the logical size - Campbell Barton
- Cleanup: Rename versioning_400.cc -> versioning_450.cc - Aras Pranckevicius
- Cleanup: factor out 4.0 versioning code into versioning_400.cc - Aras Pranckevicius
- Cleanup: factor out 4.1 versioning code into versioning_410.cc - Aras Pranckevicius
- Cleanup: factor out 4.2 versioning code into versioning_420.cc - Aras Pranckevicius
- Cleanup: factor out 4.3 versioning code into versioning_430.cc - Aras Pranckevicius
- Cleanup: factor out 4.4 versioning code into versioning_440.cc - Aras Pranckevicius
-
Cleanup: Overlay: Rename
edit_text.hhtotext.hhfor consistency - Clément Foucault - Cleanup: Draw: Use StringRef for function argument - Hans Goudey
- Cleanup: Detect knot mode cyclic - Mattias Fredriksson
- Cleanup: quiet missing parenthesis & unused function warnings - Campbell Barton
- Cleanup: rename str_len to str_maxncpy - Campbell Barton
- Cleanup: unused import - Campbell Barton
- Cleanup: Use libfmt functions in path template code - Nathan Vegdahl
- Cleanup: Use Blender::Mutex in OpenColorIO integration - Sergey Sharybin
- Cleanup: Formatting - Hans Goudey
- Cleanup: Compiler warning - Brecht Van Lommel
- Cleanup: use C++ type for TransCustomDataNode - Jacques Lucke
- Cleanup: Nodes: remove unused group_update_func - Jacques Lucke
- Cleanup: spelling in comments - Campbell Barton
- Cleanup: quiet GCC warnings mixing enum/non-enum types - Campbell Barton
- Cleanup: Nodes: remove stored static sdna type - Jacques Lucke
- Cleanup: Unused variable warning - Sergey Sharybin
- Cleanup: Remove disabled code - Hans Goudey
- Cleanup: Fix custom data type categories in attribute type conversion - Hans Goudey
- Cleanup: use doxygen doc-strings, correct file references in UI headers - Campbell Barton
- Cleanup: Remove outdated todo comment - Hans Goudey
- Cleanup: Formatting - Hans Goudey
- Cleanup: add missing break statement - Campbell Barton
- Cleanup: differentiate object mode viewport selection types - Campbell Barton
- Cleanup: format - Campbell Barton
- Cleanup: Geometry Nodes: simplify property name escaping - Jacques Lucke
- Cleanup: Geometry Nodes: wrong name in node group operator - Jacques Lucke
- Cleanup: Geometry Nodes: extract draw context struct for node group operator - Jacques Lucke
- Cleanup: Geometry Nodes: simplify accessing node group input index - Jacques Lucke
- Cleanup: Nodes: decentralize node specific rna struct generation - Jacques Lucke
Color management
- Color management: Implement shader to convert to scene linear - Sergey Sharybin
Compositor
- 🔸 Compositor: Turn Box Mask options to inputs - Omar Emara
- 🔸 Compositor: Turn Ellipse Mask options to inputs - Omar Emara
- 🔸 Compositor: Turn Sun Beams options to inputs - Omar Emara
- 🔸 Compositor: Turn Directional Blur options to inputs - Omar Emara
- 🔸 Compositor: Turn Bilateral Blur options to inputs - Omar Emara
- Compositor: Remove Variable Size blur option - Omar Emara
- Compositor: Remove unused Defocus node options - Omar Emara
- Compositor: Remove Use Alpha option from Composite and Viewer node - Omar Emara
- Compositor: Remove Premultiplied option from Brightness node - Omar Emara
- Compositor: Remove Premultiplied option from Alpha Over node - Omar Emara
- 🔸 Compositor: Turn Alpha Over options to inputs - Omar Emara
- 🔸 Compositor: Remove Max Blur option from Bokeh Blur node - Omar Emara
- 🔸 Compositor: Turn Bokeh Blur options to inputs - Omar Emara
- Compositor: Remove Offset from Scale node - Omar Emara
- Compositor: Use node discovery for node registration - Omar Emara
- 🔸 Compositor: Remove Gamma from Blur and Defocus nodes - Omar Emara
- Compositor: Add GPU debug groups - Jeroen Bakker
Core
- Core: Fix/refactor invalid logic around handling of 'default materials'. - Bastien Montagne
- Core: add templated version of BKE_id_new_nomain to reduce explicit casting - Jacques Lucke
- Core: use template for BKE_id_new - Jacques Lucke
Correct error in 229ca9b8f0246207468c959058c9908b03c98f93
- Correct error in 229ca9b8f0246207468c959058c9908b03c98f93 - Campbell Barton
Curves
- 🔸 Curves: Add custom knots to split operator - Laurynas Duburas
Cycles
- Cycles: Bump Embree minimum version to 4.0.0 - Brecht Van Lommel
DNA
- DNA: support getting sdna id for static DNA type - Jacques Lucke
DRW
- DRW: Debug: Change debug scope to debug group - Clément Foucault
Depsgraph
Doc
- Doc: Update intro comment of MEM_guardedalloc. - Bastien Montagne
- Docs: clarify usage of wayland output sizes - Campbell Barton
Draw
- 🔸 Draw: Scale checkerboard with pixel size - Sergey Sharybin
EEVEE
- EEVEE: Use enum instead of defines for ClosureType - Clément Foucault
FBX
- 🔸 FBX: Speedup new importer - Aras Pranckevicius
FFmpeg
- 🔸 FFmpeg: Add support for 10/12 bits FFV1 output - Martin-Vignali
- 🔸 FFmpeg: Add support for 16 bits FFV1 output - Martin Vignali
- 🔸 FFmpeg: Use Gray8 when rendering black and white with Quicktime Qtrle and Png - Martin-Vignali
Fixes
- FIX: Select operators in Sequencer Preview - Mukhesh
- Fix: GPU: Tests: Memory leak with vulkan backend tests - Clément Foucault
- Fix: DRW: Tests: Asserts in test_draw_submit_only - Clément Foucault
- Fix: Incorrect sculpt view normal calculation - Nicola
- Fix: Zooming certain editors disabled from recent fix - John Kiril Swenson
- Fix: Curves: wrong behavior in split operator - Laurynas Duburas
- Fix: Rigify: Bone collection typo in Cat Metarig - Gianluca Giampuzzo
- Fix: Add SequenceCache read-attributes flag to defaults - Pratik Borhade
- Fix: Bring back UI translation of node header labels - Damien Picard
- Fix: Overlay: Compilation error on OpenGL - Clément Foucault
- Fix: some cases of bone scale were not handled correctly in new FBX importer - Aras Pranckevicius
- Fix: EEVEE: Missing shadow update during light baking - Clément Foucault
- Fix: EEVEE: Missing shadows in render tests file on Mac - Clément Foucault
- Fix: Broken VectorSet move construction after recent change - Hans Goudey
- Fix: Overlay: Material Preview when !bl_use_eevee_viewport - Miguel Pozo
- Fix: VSE: Adding standalone effect was linked to selected strip - Richard Antalik
- Fix: memory leak when rearranging animation channels - Sybren A. Stüvel
- Fix: incorrect peak sharpen calculation with the ocean modifier - Campbell Barton
- Fix: build error WITH_CYCLES_OSL & GCC 15.1 - Campbell Barton
- Fix: Code comment about ignoring scale/rotate lock flags in global orientation - Pratik Borhade
- Fix: Complier warning - Pratik Borhade
- Fix: potential null pointer de-reference in 2.8x UI versioning - Campbell Barton
- Fix: Grease Pencil: Undo layer drag-and-drop - Sietse Brouwer
- Fix: Vulkan: Revisited samplers - Jeroen Bakker
- Fix: glTF: Fix crash in animation pointer when no SpecularColorFactor can be found - Julien Duroure
- Fix: glTF exporter: Fix exporting Vertex Color for Unlit Materials - Julien Duroure
- Fix: glTF Exporter: Fix Track export when Apply Modifier - Julien Duroure
- Fix: glTF: Fix active/inactive UI for ShapeKeys animation panel - Julien Duroure
- Fix: glTF: Fix regression - bone flat hierarchy export - Julien Duroure
- Fix: glTF: Avoid crash when object is another scene is not in object mode - Julien Duroure
- Fix: Wrong ID type used to create Lookdev world - Sergey Sharybin
- Fix: Curves: "Separate" in point selection mode loses boundary segments - Laurynas Duburas
- Fix: USD material reader uses fixed colorspace names - Brecht Van Lommel
- Fix: Curves split/separate points operators lose vertex group status - Hans Goudey
- Fix: Making a brush local doesn't set user count correctly - Sean Kim
- Fix: Missing UI class registration - Aaron Carlisle
- Fix: Nodes: new empty frame node is always at origin - Jacques Lucke
- Fix: Avoid relative imports in UI code - Nika Kutsniashvili
- Fix: A few small issues with spreadsheet row filters - Hans Goudey
- Fix: Docs: Remove Improper Comma from main README - Jordan Henshaw
- Fix: Description error in uv_layers.remove() - Daniel Salazar
- Fix: ID code not should not be passed as part of name - Jacques Lucke
- Fix: maker test was checking for the old test files location - Sergey Sharybin
- Fix: correct path for overlay test - Weizhen Huang
- Fix: Cycles: Inconsistency in transparent bounces for NEE and forward path - Weizhen Huang
- Fix: Vulkan: Broken shader compilation - Clément Foucault
-
Fix:
brush.asset_edit_metadatatruncatesauthoranddescription- Sean Kim - Fix: UV face-dots not showing in face select mode - Campbell Barton
- Fix: Nodes: missing node tree centering - Jacques Lucke
- Fix: low UV opacity hides UV selection in edge-select mode - Campbell Barton
- Fix: Nodes: bring back node group name in viewer path - Jacques Lucke
- Fix: Nodes: missing viewer path name update - Jacques Lucke
- Fix: Grease Pencil: Crash in Set Spline Resolution node - Falk David
- Fix: make update does not update benchmark data - Sergey Sharybin
- Fix: make format to expand tabs - Sergey Sharybin
- Fix: GPU: Shader Preprocess: Undefined behavior in variable_reference_mutation - Clément Foucault
- Fix: Potential use after free in realize instances node - Hans Goudey
- Fix: GHOST: Accept dropped text with only CF_UNICODETEXT format present - Jorn Visser
- Fix: Nodes: draw frame labels on top of links - Jacques Lucke
- Fix: EEVEE: Warning in shader C++ compilation - Clément Foucault
- Fix: EEVEE: Flickering display of position pass - Clément Foucault
- Fix: Prevent NURBS .obj importer from setting invalid degree/order - Mattias Fredriksson
-
Fix: Clay Thumb
front_anglecan be NaN - Sean Kim - Fix: PyDocs: bpy.ops document behavior on error reports - Andrej730
- Fix: Outliner: Crash renaming GP effect base - Pratik Borhade
- Fix: output rotation checks with WAYLAND - Campbell Barton
- Fix: Graph Editor with View Selected on 1 key - Jordan Henshaw
- Fix: Tools: Commit hashes not shortened in weekly report script - Julian Eisel
- Fix: Use after free after recent image pool lock cleanup - Hans Goudey
- Fix: Workbench: Static Viewport Animation Render - Miguel Pozo
- Fix: EEVEE: Static Viewport Animation Render - Miguel Pozo
- Fix: GPU: C++ GLSL stubs: Swizzle in wrong list - Clément Foucault
- Fix: Build error after recent UI layout refactor - Hans Goudey
-
Fix: Incorrect versioning of brush
tip_scale_x- Sean Kim - Fix: Nodes: missing name escaping when constructing RNA paths - Jacques Lucke
- Fix: Dead-lock when opening image from the Image compositor node - Sergey Sharybin
- Fix: failure to start on Wayland/GNOME with monitors at different scales - Campbell Barton
- Fix: Class memory access on the color management tear-down - Sergey Sharybin
- Fix: Compositor: Incorrect viewer is activated - Habib Gahbiche
- Fix: USD: Don't attempt to export the special sharp_face attribute - Jesse Yurkovich
- Fix: Allow Duplication of Minimized Outliner - Harley Acheson
- Fix: Outliner: Show NLA track count - Pratik Borhade
- Fix: Nodes: missing update after activating different group output - Jacques Lucke
- Fix: Grease Pencil: Prevent infinite drawing when doing separate pass - YimingWu
- Fix: Incorrect submodule hashes in previous commit - Ray Molenkamp
- Fix: Improve OBJ NURBS IO, support exporting custom knots - Mattias Fredriksson
- Fix: UI: Invalid scissors in interface drawing - Clément Foucault
- Fix: Workbench: Image Render AA - Miguel Pozo
- Fix: crash if Curve::str was null when entering edit-mode - Campbell Barton
- Fix: missing null check on Curve::str before freeing - Campbell Barton
- Fix: Render test failures when building without fluid modifier - Alaska
- Fix: Render test failure when building without ocean sim - Alaska
- Fix: Make various mesh properties non-animatable - Nathan Vegdahl
- Fix: String file path interface socket has wrong type - Omar Emara
- Fix #112402: Improve search menu layout - Leon Schittek
- Fix #115714: Change OpenColorIO abort to CLOG_ERROR - Brecht Van Lommel
- Fix #128247: Show warning when applying rotation on invalid matrix - YimingWu
- Fix #134732: NDOF zooming stops far away from the object - Kamil Galik
- Fix #135764: Crash on startup with mutli-monitors on Gnome Wayland - Campbell Barton
- Fix #136091: Grease Pencil: Broken wireframe rendering - Falk David
-
Fix #136397: Line Art: Skip dupli objects with
include_objects- YimingWu -
Fix #136940:
brush.asset_save_ascrashes in background mode - Sean Kim - Fix #137057: Sample Single Point Curves - Mattias Fredriksson
- Fix #137064: Nodes: Some nodes have a blank header when no datablock is selected - илья _
- Fix #137299: Exception with batch rename of nodes outside node editor - Hans Goudey
- Fix #137398: Transforming editbones can propagate wrong envelope radii - Philipp Oeser
- Fix #137407: Action properties not usable as driver variable - Sybren A. Stüvel
- Fix #137456: Select shortest path can double-back on itself - Campbell Barton
- Fix #137680: Knife constraints not accurate in orthographic view - Germano Cavalcante
- Fix #137768: new FBX importer does not import some animations correctly - Aras Pranckevicius
- Fix #137794: Ignore curve radius for legacy curve object bounds - Hans Goudey
- Fix #137843: Crash with invalid NURBS order attribute values - Hans Goudey
- Fix #137913: Grease Pencil: Fallback for looking up material index attribute - Lukas Tönne
- Fix #137918: LineArt: Prevent invalidating the wrong cache - YimingWu
- Fix #137932: compute correct armature bounds - Nathan Vegdahl
- Fix #137973: Add MaterialX version info on USD export - Michael B Johnson
- Fix #137984: Sculpt mode crash with certain mesh - Clément Foucault
- Fix #137990: Grease Pencil: Crash when creating library override - Falk David
- Fix #137998: Crash calling editmode_toggle overriding view_layer.objects.active - Philipp Oeser
- Fix #138000: Retopology overlay broken - Kabinet0
- Fix #138018: VSE zooming left aligned - John Kiril Swenson
- Fix #138032: Vulkan: Loading minimized windows on Windows/NVIDIA - Jeroen Bakker
- Fix #138048: Overlay: Transparent meshes hide overlays in Cycles - Clément Foucault
- Fix #138102: Grease Pencil: Wrong frame used to retrieve visible drawings - Jacques Lucke
- Fix #138140: Vulkan: Disable swapchain maintenance1 - Jeroen Bakker
- Fix #138149: Vulkan: Update descriptor pool sizes - Jeroen Bakker
- Fix #138157: Image Editor Fill tool slight color inaccuracy - Philipp Oeser
- Fix #138159: EEVEE: Crash when rendering points with volume shader - Clément Foucault
- Fix #138162: Crash rearranging ungrouped channels the Dope Sheet - Philipp Oeser
- Fix #138163: Autokey doesn't work when using trackpad to move locked camera - Pratik Borhade
- Fix #138177: Wrong rearranging channel groups in the Dope Sheet - Sybren A. Stüvel
- Fix #138177: Wrong rearranging channel groups in the Dope Sheet - Philipp Oeser
- Fix #138178: Grease Pencil strokes loose vertexgroups after Re-Arrange - Philipp Oeser
- Fix #138180: VSE zoom left-aligned for old files - John Kiril Swenson
- Fix #138201: Read, write, and copy pose marker custom properties - Nathan Vegdahl
- Fix #138206: Pasting nodes is ignoring offset for frame children - Lukas Tönne
- Fix #138236: Vulkan: destroyed pipeline layouts could be reused - Jeroen Bakker
- Fix #138262: Movie file colorspace can't be changed - Brecht Van Lommel
- Fix #138265: Ctrl+shift+left click to Preview socket inconsistency - Philipp Oeser
- Fix #138272: Camera Ortho Scale adjustment wrong Background Image offset - Philipp Oeser
- Fix #138279: Realize instances node with depth input can crash - Hans Goudey
- Fix #138301: Rename GLSL "select" for Intel GPUs - sentharn
- Fix #138304: DRAW: Texture wrapper not releasing texture views - Jeroen Bakker
- Fix #138321: Movieclip strip does not blend with background - Richard Antalik
- Fix #138329: Workbench Material color type broken for meshes with no material. - Bastien Montagne
- Fix #138354: GPU: Race condition with SRGB builtin uniform - Clément Foucault
- Fix #138365: Define and use 'use_filter_orderby_invert' for UIList example - Jesse Yurkovich
- Fix #138378: Grease Pencil: Correct logic of checking render requirement - YimingWu
-
Fix #138398: Physics: Re-init
rbw->shared->runtimeloading old files - YimingWu - Fix #138403: Overlay: Retopology offset not set for Image prepass - Jeroen Bakker
- Fix #138420: Grease Pencil: "Add" Operator Applies 'Show In Front' and 'Use Lights' to all object types - Blastframe
- Fix #138423: Some drivers remain active after deleting single - Philipp Oeser
-
Fix #138439: Annotation: Correct
immVertexwhen drawing stabilizer - YimingWu - Fix #138439: Eraser/stabilizer brush cursor drawing correction - YimingWu
- Fix #138447: Invalid voxel size due to arbitrary threshold - Lukas Tönne
- Fix #138460: Points of Curve node wrong output on point domain - Hans Goudey
- Fix #138478: Node Tools: Incorrect Active layer index outside Edit Mode - Falk David
- Fix #138493: Placeholders and Renders filenames dont match - Philipp Oeser
- Fix #138516: EEVEE: Viewport doesn't update when render pass is changed - Clément Foucault
- Fix #138521: Overlay: Edit Mode Curves display in front of meshes - Clément Foucault
- Fix #138537: Baking to Color Attribute not possible without UV Map - Philipp Oeser
- Fix #138545: Grease Pencil connected proportional editing wrong - Philipp Oeser
- Fix #138613: Template Paths not resolved when using ALT+Click in Output - Philipp Oeser
- Fix #138637: EXR Sequencer preview is broken - Sergey Sharybin
- Fix #138652: Crash editing an ID name after undo - Campbell Barton
- Fix #138661: Ensure Correct SubType After Stacked Fullscreen - Harley Acheson
- Fix #138669: Face dots visible outside Clipped Region - Philipp Oeser
- Fix #138718: Node tools crash on mesh with vertex groups - Hans Goudey
- Fix #138727: Crash translating a strip without an active strip - Philipp Oeser
- Fix #138730: Crash setting 3D texts font to None - Campbell Barton
- Fix #138775: Vulkan: Separate discard pile for rendering - Jeroen Bakker
- Fix #138790: Crash applying empty geometry node modifier on point cloud - Hans Goudey
- Fix #80529: Smoke dissolve rate affected by time steps - Bartosz Kosiorek
- Fix #91188: Change identifier prefix for some sculpt mode operations - Pratik Borhade
- Fix (studio-reported) broken Lattice ID management. - Bastien Montagne
Format
- Format: use fmt::format correctly with runtime format strings - Jesse Yurkovich
GPU
- GPU: Tests: Move context creation to SetUpTestSuite - Clément Foucault
- GPU: Tests: Avoid test not passing on certain platform - Clément Foucault
- GPU: Remove runtime parsing of GLSL source - Clément Foucault
- GPU: Add reserved GLSL keywords to C++ stubs - Clément Foucault
- GPU: Add immediate drawing of textured rectangle - Sergey Sharybin
- GPU: Add API to access render frame buffer - Sergey Sharybin
- GPU: Implement blending mode for piercing a hole in alpha - Sergey Sharybin
- GPU: Make polylines vertex shader use C++ shader compilation - Clément Foucault
- GPU: Shader: Add wrapper to stage agnostic function - Clément Foucault
- GPU: Shader Preprocess: Add string utilities - Clément Foucault
- GPU: Shader: Add support for basic loop unrolling through preprocessor - Clément Foucault
- GPU: Shader Preprocess: Add utility to search for references - Clément Foucault
- GPU: Shader Preprocess: Processing time optimizations - Clément Foucault
- GPU: Shader: Add support for basic template support through preprocessor - Clément Foucault
- GPU: Shader: Add support for references - Clément Foucault
- GPU: Shader: Add support for function default arguments - Clément Foucault
- GPU: Shader: Add support for basic namespace through preprocessor - Clément Foucault
- GPU: Converge ShaderCompiler implementations - Miguel Pozo
- GPU: Add GPU_shader_batch_cancel - Miguel Pozo
Geometry
Geometry Nodes
- Geometry Nodes: add initial links to new closure zone - Jacques Lucke
- 🔸 Geometry Nodes: show node timings for import nodes - Jacques Lucke
- 🔸 Geometry Nodes: support caching imported files - Jacques Lucke
- 🔸 Geometry Nodes: add Import VDB node - Jacques Lucke
- Geometry Nodes: initial Import node regression tests - Jacques Lucke
- 🔸 Geometry Nodes: don't show error when using relative path in Import Nodes - Jacques Lucke
- 🔸 Geometry Nodes: improve muted behavior of switch nodes - Jacques Lucke
- 🔸 Geometry Nodes: support menu type in Menu Switch node - Jacques Lucke
Git
- Git: use lfs for csv files - Jacques Lucke
Grease Pencil
- 🔸 Grease Pencil: Viewport option for showing onion skins of the active object only - Sietse Brouwer
- 🔸 Grease Pencil: Add initial support for Node Tools - Falk David
Harden blendfile reading against fully corrupted input data.
- Harden blendfile reading against fully corrupted input data. - Bastien Montagne
I18N
- I18N: Updated UI translations from git/weblate repository (a2fbba96fa53376). - Bastien Montagne
Icons
- Icons: Match SVG height for Add/Remove icons - Aaron Carlisle
Math
- Math: Use lvalue ref-qualifier for compound assignment operators - Sergey Sharybin
Migrate existing files to Git LFS
- Migrate existing files to Git LFS - Sergey Sharybin
Modeling
- 🔸 Modeling: Add Auto Normalize when Assigning vertex weights - Nathan Vegdahl
Move tests/data and assets to the main repository
- Move tests/data and assets to the main repository - Sergey Sharybin
New Grid Info node for reading grid transforms and background value
Nodes
- 🔸 Nodes: support searching for dynamic node labels - Jacques Lucke
- 🔸 Nodes: take the viewer node label into account in context path - Jacques Lucke
- 🔸 Nodes: support searching for specific math operations in Add menu - Jacques Lucke
- 🔸 Nodes: support expanded menus in node group interface - Jacques Lucke
- 🔸 Nodes: simplify adding new empty node group - Jacques Lucke
- 🔸 Nodes: support searching for color blend modes in Add menu - Jacques Lucke
- 🔸 Nodes: show link errors directly on link - Jacques Lucke
- 🔸 Nodes: show node errors tooltip faster - Jacques Lucke
- 🔸 Nodes: draw frame outline over zone backgrounds - Jacques Lucke
- 🔸 Nodes: use alternating frame colors - Jacques Lucke
- 🔸 Nodes: highlight frame that nodes will be attached to - Jacques Lucke
- 🔸 Nodes: support search weight in menu for searchable enum - Jacques Lucke
- 🔸 Nodes: improve frame label position - Jacques Lucke
- 🔸 Nodes: show warning when a group output is unused - Jacques Lucke
- 🔸 Nodes: Allow dragging Group Inputs from the panel into the nodes editor - Endor H
Overlay
- Overlay: Split theme colors and sizes into different structs - Clément Foucault
- Overlay: Move GlobalsUboStorage to overlay_shader_shared.hh - Clément Foucault
- Overlay: Remove macros for globals uniform buffer access - Clément Foucault
- Overlay: Skip passes not needed - Miguel Pozo
Partial Fix #129592
- Partial Fix #129592: Vulkan: Add support for line size - Jeroen Bakker
Physics
- 🔸 Physics: Improve liquid simulation performance - Bartosz Kosiorek
- 🔸 Physics: Increase precision of 4D vector normalization functions - Bartosz Kosiorek
- 🔸 Physics: Improve fluid viscosity performance by 2.5% - Bartosz Kosiorek
Point Cloud
- 🔸 Point Cloud: Move "Random" default primitive creation to operator - Hans Goudey
- Point Cloud: Simplify creating data-block without attributes - Hans Goudey
PyAPI
PyDoc
Python API
- Python API: Grease Pencil: Add handle helper class to expose more handle attributes - Kevin C. Burke
RNA
- RNA: improve the PPM description - Campbell Barton
Refactor
- Refactor: UI: Replace uiLayoutColumnFlow and uiLayoutGridFlow with uiLayout class methods - Guillermo Venegas
- Refactor: add "filepath" property to CollectionExport to avoid hacks - Campbell Barton
- Refactor: const-correctness in GPU viewport - Sergey Sharybin
- Refactor: Use test fixtures and C++ style initialization - Habib Gahbiche
- Refactor: Assets: Use weak reference comparison to lookup assets - Julian Eisel
- Refactor: Depsgraph: simplify query API further - Jacques Lucke
- Refactor: UI: Replace uiLayoutBox with class method uiLayout::box - Guillermo Venegas
- Refactor: UI: Replace uiLayoutSplit with class method uiLayout::split - Guillermo Venegas
- Refactor: UI: Replace uiLayoutPanel with class method uiLayout::panel - Guillermo Venegas
- Refactor: UI: Replace uiLayoutPanelProp with class method uiLayout::panel_prop - Guillermo Venegas
- Refactor: UI: Replace uiLayoutPanelPropWithBoolHeader with class method - Guillermo Venegas
- Refactor: add a version of EDBM_selectmode_set_multi that takes objects - Campbell Barton
- Refactor: UI: Replace uiLayoutAbsolute and uiLayoutAbsoluteBlock with uiLayout class methods - Guillermo Venegas
- Refactor: Move image runtime out of DNA - Hans Goudey
- Refactor: UI: Replace uiLayoutListBox and uiLayoutOverlap with methods - Guillermo Venegas
- Refactor: UI: Replace uiLayoutRadial with class method uiLayout::menu_pie - Guillermo Venegas
-
Refactor: make
bPoseChannel*parameterconstin some functions - Sybren A. Stüvel - Refactor: Remove layer index from draw attribute request struct - Hans Goudey
- Refactor: UI: Replace uiItemL with class method uiLayout::label - Guillermo Venegas
- Refactor: UI: Replace uiItemR with class method uiLayout::prop - Guillermo Venegas
- Refactor: OpenColorIO integration - Sergey Sharybin
- Refactor: Avoid using CustomData directly for PointCloud RNA - Hans Goudey
- Refactor: UI: Replace uiItemFullR with class method uiLayout::prop - Guillermo Venegas
- Refactor: Use attribute API to convert between mesh and point cloud - Hans Goudey
- Refactor: Nodes: decentralize detecting internal links - Jacques Lucke
- Refactor: Vulkan: Use hash function - Jeroen Bakker
- Refactor: Remove domain from draw attribute request struct - Hans Goudey
- Refactor: UI: Replace uiItemO with class method uiLayout::op - Guillermo Venegas
- Refactor: Nodes: frame node drawing - Jason C. Wenger
- Refactor: Nodes: decentralize node storage blend read/write - Jacques Lucke
- Refactor: Remove data type from draw attribute request struct - Hans Goudey
Release note tools
- Release note tools: Read Blender website crawl delay from robots.txt - Alaska
- Release note tools: Don't cache commits with unknown modules - Alaska
Release notes tools
Revert "Overlay
- Revert "Overlay: Skip passes not needed" - Miguel Pozo
Revert "[1/4] UI Experiment
Sculpt
- 🔸 Sculpt: Convert all Scrape, Fill, Flatten brushes to Plane brush - Sean Kim
- 🔸 Sculpt: Lower Mesh BVH leaf limit to 2500 - Sean Kim
- 🔸 Sculpt: Use box test to select BVH nodes affected by Clay Strips - Nicola
- 🔸 Sculpt: Use capability check for dyntopo panel options - Sean Kim
Sequencer
- 🔸 Sequencer: Remove backdrop drawing in timeline - Sergey Sharybin
- 🔸 Sequencer: Support HDR in Sequencer Preview - Sergey Sharybin
Shader
- 🔸 Shader: New Volume Coefficients Shader - Alexandre-Cardaillac
Shape Keys
- 🔸 Shape Keys: Add operator to update keys from selected objects - Hans Goudey
Sound
- 🔸 Sound: Make Blender control when we open and close sound devices - Sebastian Parborg
-
Sound: Fix compiling without
WITH_AUDASPACE- Sebastian Parborg
Templates for render output paths
- 🔸 Templates for render output paths - Nathan Vegdahl
Tests
- Tests: add tests for node tree iterator - Habib Gahbiche
- Tests: USD: Run the compliance validator for the MaterialX export test - Jesse Yurkovich
- Tests: Updated Grease Pencil render tests - Falk David
- Tests: Add non-rotation regression test for glare_simple_star filter - Ian Yoo
🔸UI
- UI: In paint modes, don't overwrite a modal cursor with the paint cursor - Sietse Brouwer
- UI: Simplify Volumentric Data settings for Fluids - Bartosz Kosiorek
- UI: Enum Tooltip Item Order - Harley Acheson
- UI: Add missing periods to Overwrite file dialogue message - Jordan Henshaw
- UI: Keymap: Show alert when operator or property not found - Pablo Vazquez
- UI: Add shortcut to show active sidebar tab - Guillermo Venegas
- UI: Add labels for local and essentials assets in tooltip - Sean Kim
- UI: Further tweak fluid settings labels - Bartosz Kosiorek
- UI: Consistent File/Asset Drag Size - Harley Acheson
- UI: include rip in the UV menu - Campbell Barton
- UI: Add "Remove All Materials" operator - Eitan Traurig
- UI: Status Bar Page Up/Down Event Icons "P" -> "Pg" - Harley Acheson
- UI: Status Bar Merge Proportional Size Keymap Entries - Harley Acheson
- UI: Status Bar Event Icons for Trackpad Gestures - Harley Acheson
- UI: Status Bar Proportional Size Include MsPan - Harley Acheson
- UI: Correct Width of Hyper Status Bar - Harley Acheson
- UI: Hover Increment/Decrement For Strings & Toggles - Harley Acheson
- UI: Adjust Hitsize for Properties NavBar Region Edge - Harley Acheson
- UI: Allow drag multiple files from Blender File Browser - Guillermo Venegas
- UI: Outliner: Show Grease Pencil vertex groups - Pratik Borhade
- UI: rename Tooltip Label to Quick Tooltip - Jacques Lucke
- UI: Allow Disabling Ortho Axes Lines - Harley Acheson
- UI: Turn Off Ability to Drag Properties NavBar Away - Harley Acheson
- UI: support detecting good width for searchbox - Jacques Lucke
- UI: Add Hide to Properties NavBar Item Context Menu - Harley Acheson
UV
- 🔸 UV: support sticky modes when face sync-select is enabled - Campbell Barton
- 🔸 UV: support sticky modes when edge sync-select is enabled - Campbell Barton
VSE
- 🔸 VSE: Show warning on slip if not enough content to clamp - John Kiril Swenson
- 🔸 VSE: Add option to translate pivot point - Richard Antalik
Vulkan
- Vulkan: Inline small data conversion function - Hans Goudey
- Vulkan: Inline more trivial methods - Hans Goudey
- Vulkan: Add debug name for pipeline layouts - Jeroen Bakker
- Vulkan: Add debug info for pipeline caches - Jeroen Bakker
WM
- WM: revert change to the hot-spot size (use the value from 4.4v) - Campbell Barton
WinX64_VM
- WinX64_VM: Bump HIP to 6.3.42560 - Ray Molenkamp
Workbench
- 🔸 Workbench: Lazy subpasses initialization - Miguel Pozo
[1/4] UI Experiment
- [1/4] UI Experiment: Hover Increment/Decrement More Button Types - Harley Acheson
🔸glTF
- glTF: Cleanup function name - Julien Duroure
- glTF: Better error handling when image is not found - Julien Duroure
glTF Exporter
- glTF Exporter: AO color can now be used as BaseColor - Julien Duroure
- glTF Exporter: Restore animation hook after slots management - Julien Duroure
- glTF exporter: Export Viewport Material - Julien Duroure
- glTF exporter: Cache Sampler Output - Julien Duroure
- glTF exporter: Clamp Normalized Vertex Color values - Julien Duroure
- glTF exporter: Refactor image uri management - Julien Duroure
- glTF exporter: Add mapping parameter in gather_image_hook - Julien Duroure
glTF importer
- glTF importer: New option to import unused materials & images - Julien Duroure
- glTF importer: add option to import scenes as Collection(s) or Scene(s) - Julien Duroure
win_x64
- win_x64: Re-enable hiprt - Ray Molenkamp
10 Comments
I'd love any sort of update regarding MultiRes Design Validation (Issue issues/84864), since major sculpting issues depend on it, even something as simple as "we're working on it" <3
Edit: Thank you Pablo, I'm very glad to hear that the development team is well aware of it and that the issue is being worked on. I've fallen in love with quality of life features of Blender (UI, usability, customizability, hotkeys, objects, collections, the list goes on and on), especially compared to ZBrush. And I have faith that Multi-Resolution issues will be solved sooner or later, one way or other.
Hi Pablo! Thank you for this Blender Today, you're amazing! Regarding the dynamic search, for the math node precisely, what if you look for 'Multiply' but the Vector Math option precisely, how would that work. Do you think being able to change from Float math to Vector math through a drop down menu will be an option at some point ?
Thanks again! Have a good day Pablo and thanks to all developpers
Hey Pablo,
I saw in Blender Studio Log nr. 19 that the game (DogWalk!) is wrapped out now. Are there any plans to release the game on steam or any other platform like flathub?
It would may also be interesting to have a payed version on steam that could be used to donate/found the project.
For a specific (commercial) project I wanted to use blender. However, there are some small features missing in blender that not only drive me nuts by take up so much time (eg. set multiple keyframes for multiple stripes at once). Do you know if I can pay a developer at the Blender Foundation so that these features are included with a higher priority?
Holle Pablo, Today I downloaded the last Alpha and using Bezier curves I see the option "Active Spline" in the Data panel is missing, should I report the bug or is this already known and being fixed?
Oi, Pablo!
I've been trying to test rig nodes, and I'm going to be brutally honest, it's not too useful right now. I was expecting more things like weight/vertex painting, driver math, and constraints, not bone hierarchy and IK ordering. Rigs are typically very individualized to a model, so it doesn't make too much sense to automate bone creation, and it would make more sense to make the most common parts of rigging nondestructive before working on the creation of new rigs that still have to be manually linked... or are those things being worked on? my computer's been dead for a couple weeks, and I just got the new one set up. (I lost my WIP repo TnT)
on a less critical note- Have you seen the youtube video on raytraced audio? The new sound commits made me think of it, and blender might be uniquely positioned to implement it. Imagine, putting a sound effect in 3D space, and path-tracing the audio to generate realistic echoes and muffling. It'd probably sound terrible, but it's a fascinating thought!
Hello Pablo,
I haven't updated blender since 3.5, the reason is because in geometry nodes "Mesh to Volume" node in the newer versions is missing features specifically the "Exterior Bandwidth" option.
While I'm aware that removal is intentional and for a reason, it's unfortunate because It's a massive feature to easily make grids from collections for Voxel Creators and sadly, the workarounds for it is more complex, less accurate, and much heavier to run.
This is the feature that keeps me from updating to the newest ones and it's a bummer, so I really wish it's reconsidered.
Joey C-quel also another voxel creator who made a video talking about it: youtube.com/watch
Hey Pablo! Thanks for giving us all these weekly updates, it's really become a big part of my week over the years. ^^
In the latest 2025-05-09 Projects Update the NPR project was briefly mentioned and it says that the design was chosen. I am wondering if there is any more detail on this? Does this mean that the NPR branch prototype that you could test out is going to be the way forward for the final implementation? Or has another design been chosen? NPR has been my biggest personal passion so I'm always excited for any news related to it! Thank you!
Hello Pablo,
have you considered splitting Blender Today into two streams? Blender Today for the news and Ask Blender for the questions and maybe Developer guests. I feel like putting the questions at the end might be un-necessarily stressful because it prolongs the already long stream and maybe some questions don't get sufficient answers or need to be clarified by the person asking the question.
Hey Pablo I noticed the blender merch store is back. However there is unfortunately no UV checker socks, do you know if they'll ever return?
Oh also one other thing I just thought of that's bugged me about the UI for a long time. You know how you can't remove material slots on objects while in edit mode? Why is it like that? It would be nice if the button was greyed rather than throwing an error when you click it.
Hey Pablo,
Will we ever get native ACES support in Blender? AgX might be better than ACES in every way but pretty much every other 3D DCC, compositing, editing, color grading software have switched to ACES and lack of native ACES support in Blender makes it really cumbersome to use Blender with other software.
Thanks.