SCULPT Improvements! — Blender Today LIVE #277
Changelog between March 03, 2026 - March 20, 2026 at 12h
488 commits in total, of which 226 are fixes, 22 refactors, and 70 cleanup.
Animation
- Anim: add loop modes to the playback popover - Sybren A. Stüvel
- 🔸 Animation: Parallelize check of existence keyframe at frame for data block with many actions - илья _
- 🔸 Anim: Convert to correct rotation mode when applying pose - Christoph Lendenfeld
- 🔸 Anim: Explicit option to allow preroll - Christoph Lendenfeld
Assets
Attributes
- Attributes: Add missing threading to mix_groups function - Hans Goudey
- 🔸 Attributes: Optimize mixing in some cases - Hans Goudey
Benchmark
- Benchmark: Add device name to EEVEE tests - Jeroen Bakker
BLI
- BLI: add unit test for Set - Jacques Lucke
- BLI: Use calloc for Array allocation for zeroed values - Hans Goudey
- BLI: specify iteration order of ChunkedList container - Jacques Lucke
- BLI: optimize memory usage in ResourceScope - Jacques Lucke
- BLI: introduce UString type for more efficient string handling - Jacques Lucke
- BLI: extract AnyDerived class from virtual array implementation - Jacques Lucke
Build
- Build: Rename ll (llvm) target to external_llvm and openvdb to external_openvdb - Sebastian Parborg
- Build: Only do linker symbol hiding for blender and bpy module - Brecht Van Lommel
- Build: resolve cast-function-type warning with GCC on Linux - Campbell Barton
- Build: macOS: Suppress linker __common symbol section exceeding alignment warning - Jonas Holzman
Cleanup
-
Cleanup: Cycles: remove unused
SHADER_AREA_LIGHTflag - Weizhen Huang -
Cleanup: remove unused function
pack_triangle()- Weizhen Huang -
Cleanup: Cycles: rename
shader_flagtovisibility_flag- Weizhen Huang - Cleanup: Cycles: remove unnecessary light linking function - Weizhen Huang
- Cleanup: Remove unused fmt::runtime when format string is literal - Damien Picard
- Cleanup: Various changes for active brush cursor drawing - Sean Kim
- Cleanup: Various changes for inactive mesh cursor drawing - Sean Kim
- Cleanup: correct typo in filename - Campbell Barton
- Cleanup: Const-correctness in Cycles path - Sergey Sharybin
- Cleanup: Unnecessary repeated lines in Node Wrangler - Ido Shahar
- Cleanup: Typo in interface code - Guillermo Venegas
- Cleanup: resolve missing-braces GCC warning - Campbell Barton
- Cleanup: Fix typo - Falk David
- Cleanup: Fix warnings in BLI_array.hh after recent change - Hans Goudey
-
Cleanup: Add default values for
PaintCursorContextstruct - Sean Kim - Cleanup: typos in help messages - Campbell Barton
- Cleanup: typo in comment ("bot" >> "both") - Philipp Oeser
- Cleanup: UI: Remove redundant ui_ prefix - Guillermo Venegas
- Cleanup: UI: rename UIList functions - Guillermo Venegas
- Cleanup: Fix typo in SnapSourceCustomData struct name - Jaewon Choi
- Cleanup: Redundant line - Pratik Borhade
- Cleanup: Make "memory is zero" check constexpr, move to header - Hans Goudey
- Cleanup: Rename attribute "id" to "name" - Hans Goudey
- Cleanup: Remove redundant domain size sanitization - Omar Emara
- Cleanup: Consider GPU components in channels_count method - Omar Emara
- Cleanup: Use const for iterators when evaluating action - Christoph Lendenfeld
- Cleanup: Vulkan: Clang-Tidy - Jeroen Bakker
- Cleanup: Vulkan: Remove compilation warning - Jeroen Bakker
- Cleanup: Fix compiler warning on CLang/Win - Jeroen Bakker
- Cleanup: remove rna_MeshUVLoopLayer_uv_begin - Philipp Oeser
- Cleanup: Benchmark: Prefer blender_args for gpu backend selection - Jeroen Bakker
- Cleanup: Cycles: Make the notation of Sun Light and Distant Light consistent - Weizhen Huang
- Cleanup: Remove redundant ARegionType callbacks - Pratik Borhade
- Cleanup: unused paramter warning after 6f7ae3372ac2 - Philipp Oeser
- Cleanup: Use gather to copy attributes in dual mesh node - Hans Goudey
- Cleanup: Reduce to_static_type usage in curve sample node - Hans Goudey
- Cleanup: Use attribute_math::mix_indices utility in subdiv_mesh.cc - Hans Goudey
- Cleanup: Remove unnecessary namespace specification - Hans Goudey
- Cleanup: Remove else after return - Hans Goudey
- Cleanup: remove wrong comment - Philipp Oeser
-
Cleanup: Remove unnecessary
static_castinpbvh_pixelsfiles - Sean Kim -
Cleanup: Add include guard to
pbvh_pixels_copy.hh- Sean Kim - Cleanup: resolve warnings from pylint - Campbell Barton
- Cleanup: add missing license header - Campbell Barton
- Cleanup: spelling (make check_spelling_*) - Campbell Barton
- Cleanup: format - Campbell Barton
- Cleanup: VSE: Replace all deprecated properties in internal scripts - John Kiril Swenson
-
Cleanup: Remove unnecessary const in
imbuffunction declarations - Sean Kim - Cleanup: de-duplicate CurveMap & CurveProfile X/Y slider callbacks - Campbell Barton
- Cleanup: use PyObject_HEAD for fixed-size types - Campbell Barton
- Cleanup: resolve unused variable warning for CMake - Campbell Barton
- Cleanup: move constant inline as it doesn't need to be shared - Campbell Barton
-
Cleanup: Rename
IMB_colormanagement_get_rect_colorspace- Sean Kim -
Cleanup: Fix typo in
IMB_colormanagement_copy_settings- Sean Kim - Cleanup: Remove unnecessary remote asset listing constructors/operators - Julian Eisel
-
Cleanup: Fix typo in
sculpt_expand.cc- Sean Kim - Cleanup: remove unused WM_OT_url_open_preset methods args - Guillermo Venegas
- Cleanup: VSE: Remove scene dependency for strip iterator functions - John Kiril Swenson
- Cleanup: suppress build warning for X11 - Campbell Barton
- Cleanup: spelling in code & comments (make check_spelling_*) - Campbell Barton
- Cleanup: make format - Xavier Hallade
- make format - Bastien Montagne
- Cleanup: Cycles: Use const pointers in a few places - Hans Goudey
- Cleanup comment - Julien Duroure
- Cleanup: GPU: Shader Tool: Avoid warnings on GCC - Clément Foucault
- Cleanup: Remove GPU_mipmap_enabled - Jeroen Bakker
- Cleanup: Remove now unnecessary CustomData conversion on write - Hans Goudey
- Cleanup: resolve missing-declarations warning - Campbell Barton
- Cleanup: spelling in comments (make check_spelling_*) - Campbell Barton
- Cleanup: remove copy_vn_*, use std::fill_n instead - Campbell Barton
CMake
- CMake: Windows: Pass WIN32_LEAN_AND_MEAN as a global flag - Ray Molenkamp
- CMake: Win: Provide default for CUDA_HOST_COMPILER - Ray Molenkamp
- CMake: Fix clang warnings on windows. - Ray Molenkamp
- CMake: rename add_c_flag to add_cc_flag, add new add_c_flag for C-only - Campbell Barton
- CMake: fix add_cc_flags_custom_test not propagating PARENT_SCOPE - Campbell Barton
- CMake: fix optimize_debug_target passing target name to remove_cc_flag - Campbell Barton
- CMake: fix path_is_prefix not checking for path separator boundary - Campbell Barton
- CMake: fix path_ensure/strip_trailing_slash regex on WIN32 - Campbell Barton
- CMake: don't call remove_strict_c_flags_file from remove_strict_cxx_flags_file - Campbell Barton
- CMake: remove unused _file_to_path variables - Campbell Barton
- CMake: use STREQUAL/EQUAL instead of MATCHES for exact comparisons - Campbell Barton
- CMake: fix malformed CACHE arguments in find_python_module_file - Campbell Barton
- CMake: quote variables where appropriate - Campbell Barton
- CMake: fix version validation regex in get_blender_version - Campbell Barton
- CMake: simplify compiler version check in check_compilers - Campbell Barton
- CMake: remove no-op assignment OPENSUBDIV_LIBRARIES, clarify regex use - Campbell Barton
- CMake: fix unset_cached_variables_containing skipping matches at position 0 - Campbell Barton
Color Management
- 🔸 Color Management: Add camera input color spaces - SivapriyaVenkateswarar
Compositor
- 🔸 Compositor: Support integer vector socket - Omar Emara
- 🔸 Compositor: Use integer vector sockets where possible - Omar Emara
- 🔸 Compositor: add Minimum and Maximum outputs to Levels node - Habib Gahbiche
- 🔸 Compositor: Support matrix sockets - Omar Emara
- 🔸 Compositor: Support relevant ID sockets - Omar Emara
- 🔸 Compositor: Port Active Camera and Camera Info nodes - Omar Emara
- 🔸 Compositor: Port matrix math nodes - Omar Emara
- 🔸 Compositor: Port Input Object node - Omar Emara
- 🔸 Compositor: Support creating new masks from Mask node - quackarooni
Core
- Core: support optional symbol override to "datatoc" - Campbell Barton
- Core: Add very basic global/memfile undo 'smoke tests'. - Bastien Montagne
Cycles
- 🔸 Cycles: Smoothly blend denoising features to avoid artifacts - Brecht Van Lommel
- Cycles: oneAPI: Implement proper checks for ocloc binary - Nikita Sirgienko
- 🔸 Cycles: Fix orthographic camera motion and motion pass toggle - Patrick Mours
- 🔸 Cycles: Support automatic differentiation of shader nodes in SVM - Weizhen Huang
- Cycles: Add inlining hint back on shader_setup_from_ray - Xavier Hallade
deps
- deps: Fix leaking rubberband exports - Ray Molenkamp
DRW
- DRW: Bump Draw call structure instance limit - Clément Foucault
EEVEE
- EEVEE: Port Horizon Scan (Fast GI) to BSL - Clément Foucault
- 🔸 EEVEE: Anisotropic filtering - Jeroen Bakker
- EEVEE: Port SubSurface Scattering shaders to BSL - Clément Foucault
- EEVEE: Reset on playback - Miguel Pozo
- EEVEE: Port Shadow Page Mask shader to BSL - Clément Foucault
Fixes
- Fix #155109: Crash on tree socket looking with incorrect input/output type - Lukas Tönne
- Fix: tooltip for auto keying - Christoph Lendenfeld
- Fix #152778: Divide by zero in integer random value node - Hans Goudey
- Fix #139933: Using "Set Action" does not rebuild the depsgraph - Christoph Lendenfeld
- Fix #155106: blender_theme_as_c.py uses wrong header includes - Brecht Van Lommel
- Fix: Cycles: uninitialized bounding box in BVH2 - Weizhen Huang
- Fix #154414: misleading property descriptions regarding node dimensions - Hai
- Fix #154760: Geometry Nodes: incorrect socket usage for warning node - Jacques Lucke
- Fix: Geometry Nodes: socket usage of top level warning nodes - Jacques Lucke
- Fix: UI: Apply popup aspect to popup scroll handlers - Guillermo Venegas
- Fix #155103: Revert File Browser Selection Behavior - Harley Acheson
- Fix: USD: Don't write out empty curve width interpolation value - Jesse Yurkovich
- Fix #139528: Datablock Selection After Search - Harley Acheson
- Fix #121087: Selecting Blank Space in ID Selector - Harley Acheson
- Fix #155107: Loading a blend file from a drop handler crashes - Campbell Barton
- Fix #155021: attributes.new() can create attributes with empty name - Philipp Oeser
- Fix #154590: In/Decreasing Grease Pencil fill gap closure is backwards - Philipp Oeser
- Fix #155162: Invalid out of bounds check reading SGI images - Campbell Barton
- Fix #155130: Render result disappear when compositor executes - Omar Emara
- Fix #154899: Clicking shape key icon in outliner doesn't change to data properties tab - Abdulrahman
- Fix: error saving grayscale SGI images, including Alpha instead of Red - Campbell Barton
- Fix (LLM-reported): potential bug in handling of collection in link/append. - Bastien Montagne
- Fix: SGI 2bpp RLE reader only decoded first scanline in good-order path - Campbell Barton
- Fix: UI: Match layout panels header alignment to panel headers - Guillermo Venegas
- Fix: over allocation in IRIS image I/O - Campbell Barton
- Fix: make deps fails if there are certain system-wide libraries present - Sergey Sharybin
- Fix: Cycles crash when stats are enabled and render is cancelled - Sergey Sharybin
- Fix: XR: Restore last window GPU context after XR surface drawing - Jonas Holzman
- Fix #155186: BMesh to Mesh conversion single value string attribute - Hans Goudey
- Fix: GPU: Shader: Assert on startup caused by empty string view - Clément Foucault
- Fix #154678: Boundary brush produces incorrect deformation with symmetry - Sean Kim
- Fix: USD: Don't write redundant UV indices during animation export - Jesse Yurkovich
- Fix #114953: Asset shelf breaks when region overlap is disabled - Julian Eisel
- Fix: drop fails on Wayland with SMITHAY based compositors - Campbell Barton
- Fix #135797: wheel tags to match target Python version - Julien Blanchon
- Fix #155207: Linear Burn brush color mode only applies black - Sean Kim
- Fix #154981: Incorrect docs for bpy.msgbus.subscribe_rna & publish_rna - Kévin Dietrich
- Fix #106423: wrong position of HSV circle in geometry nodes color input node - Kévin Dietrich
- Fix #152322: Select Similar -> Material in UV Editor wrong - Campbell Barton
- Fix: Node Wrangler: Align Nodes not working correctly with framed nodes - quackarooni
- Fix #154627: Assert when clearing Object.instance_collection on a collection instance - Tariq-Sulley
- Fix #155217: NLA editor doesn't refresh after chaning world shader - Pratik Borhade
- Fix #141841: Removing a bone does not remove its drivers - Christoph Lendenfeld
- Fix (Hopefully) PY API docs building after changes in py templates paths. - Bastien Montagne
- Fix PyAPI doc script: own mistake in previous commit. - Bastien Montagne
- Fix #155226: Crash when selecting essentials library in asset shelf - Julian Eisel
- Fix: Crash when displaying asset preview at icon size - Julian Eisel
- Fix #155171: Cycles renders flat faces with custom normals wrong - Brecht Van Lommel
- Fix #95396: Double transformation with relative mirror and translation - Christoph Lendenfeld
- Fix #152132: Crash in versioning when accessing unchecked socket typeinfo - Lukas Tönne
- Fix #155087: Packed assets lose animated drivers. - Bastien Montagne
- Fix: EEVEE: Non-deterministic lightprobe sample - Clément Foucault
- Fix #152132: Crash in versioning when accessing unchecked socket typeinfo - Lukas Tönne
- Fix #154540: Write depth for grid only on first iteration - Mark van de Ruit
- Fix: Mesh naming in Cycles - Sergey Sharybin
- Fix #153921: Point Cloud Wireframe Overlay hidden in Solid Mode - Miguel Pozo
- Fix #155053: VSE crash after undo - Aras Pranckevicius
- Fix #154814: Vertex creases are interpolated in loop cuts - Tariq-Sulley
- Fix: CMake: Avoid turning on WITH_GPU_SHADER_CPP_COMPILATION on MSVC - Clément Foucault
- Fix: CMake: Avoid turning on WITH_GPU_SHADER_CPP_COMPILATION on MSVC - Clément Foucault
- Fix #155112: New bone via click-extruding not in a bone collection - Philipp Oeser
- Fix #155159: attribute value lookup by index is very slow - Philipp Oeser
- Fix: Mesh naming in Cycles - Sergey Sharybin
- Fix: Wrong UV layer name conflict detection in customdata versioning - Brecht Van Lommel
- Fix #155173: Copying large string from string buttons crashes - Guillermo Venegas
- Fix: Viewitem rename operator invoked outside the view block - Pratik Borhade
- Fix potential crash calling BKE_movieclip_get_size without MovieClipUser - Philipp Oeser
- Fix #155039: "Separate" may create a second Basis shape key - Philipp Oeser
- Fix #155250: Blender crashes when checking use duplicates on the spin tool - Tariq-Sulley
- Fix: Metal: Shader log line broken after new preprocessor - Clément Foucault
- Fix: Vulkan: Shader log line broken after new preprocessor - Clément Foucault
- Fix #155318: Assert in array_utils::gather after recent refactor - Hans Goudey
- Fix: Cycles: GPU rendering error with more than 1024 shaders - Sean Stirling
- Fix #155312: Node Wrangler error spawning operator search - Philipp Oeser
- Fix #127398 : Transform tool not working correctly with non-uniform scaling - shokuyansh
- Fix: Tree View: Case sensitive sorting - Pratik Borhade
- Fix #154829: glTF: Avoid crash reloading scripts - Julien Duroure
- Fix: Fix reloading scripts with default configuration - Julien Duroure
- Fix #139014: Alt+Q fails to transfer modes in armature edit mode - Abdulrahman
- Fix: Benchmark: Select executable with installed files - Jeroen Bakker
- Fix #155256: Camera offset in viewport compositor - Omar Emara
- Fix #153110: Disabling menu hover still opens sublevel - Pratik Borhade
- Fix #155302: Crash for huge images in the compositor - Omar Emara
- Fix #155138: Hydra GetCullStyle and GetDoubleSided crash for non-mesh objects - Brecht Van Lommel
- Fix #155119: UI: Inconsistent multi-value slider vertical drag behavior - Jonas Holzman
- Fix #155124: Errors when viewing Texture Animation panel - Sybren A. Stüvel
- Fix #154588: Grease Pencil Fill tool gap closure size limits too strict - Philipp Oeser
- Fix #153019: Make shapekey new basis doesn't reset transforms - Aryan Verma
- Fix: Link errors with ld, lld and lite builds - Brecht Van Lommel
- Fix: Work around MSVC codegen bug in CPPType::to_static_type_try - Ray Molenkamp
- Fix #155345: EEVEE: Environment rotated incorrectly - Clément Foucault
- Fix #155341: Draw: Memory leak when rendering fluids - Jeroen Bakker
- Fix #155340: EEVEE: Planar Light Probes break when there's more than one - Miguel Pozo
- Fix #155079: Motion Path off by one error - Christoph Lendenfeld
- Fix #155375: Overlay: grid axis regressions - Mark van de Ruit
- Fix #102802: Implement GPU circle select for pose bones - Christoph Lendenfeld
- Fix: Build error from missing include after UString addition - Hans Goudey
- Fix #155331: Clip curve sculpt end point only for visible objects - Lukas Tönne
- Fix #154770: UI: Force OS DPI scale of 1 in UI tests - Christoph Neuhauser
- Fix: USD: Allow primvars to contain ':' characters - Jesse Yurkovich
- Fix: BLI: use UString::ref method instead of implicit conversion to fix compilation - Jacques Lucke
- Fix #155263: "Custom Property Values as Default" raises an exception - Campbell Barton
- Fix #155185: asset "PACK" import method lost on file read - Kévin Dietrich
- Fix: crash using bpy.context.temp_override with a null context.window - Campbell Barton
- Fix: Uploading to SINT_16_16 textures fails in OpenGL - Omar Emara
- Fix (Unreported): LineArt: Handle potential integer overflow - YimingWu
- Fix #129723: Clarify foreach_get/foreach_set arguments - Aditya Y Jeppu
-
Fix #153418: Outliner: Tag geometry update for
id_local_fn- YimingWu - Fix #155333: Curves Sculpt 'Slide Brush' doesn't work properly with symmetry - Tibo Stans
- Fix #155034: Dynamic defaults for menu switch and menu group inputs - Lukas Tönne
- Fix: Excessive warnings coming out of extern_vulkan_memory_allocator - Ray Molenkamp
- Fix typos in freedesktop file. - Thomas Dinges
- Fix: XR: Missing view smooth turning analog interpolation - Jonas Holzman
- Fix #152087: Crash when undoing object.subdivision_set - Sean Kim
- Fix #155353: Lack of way to warn unsupported shape in case of dynamic shape - Iliya Katushenock
- Fix #155253: Entering edit mode on Track Depth Object crashes - Philipp Oeser
- Fix #155083: New bone via filling not in a bone collection - Philipp Oeser
- "Fix" #155387: Performance regression on undo in mesh-heavy scenes. - Bastien Montagne
- Fix: Animation: Use-after-free in parallelized keyframe existence check - Brecht Van Lommel
- Fix: VSE: Python error invoking context menu - Pratik Borhade
- Fix: VSE: Redundant footer region when sequencer scene doesn't exist - Pratik Borhade
- Fix #155479: Input keyframes not retained in old compositor files - Omar Emara
-
Fix #155471: Add
.pdfinto the list ofFILE_TYPE_OBJECT_IO- YimingWu - Fix: XR: Navigation scale property usability regression - Jonas Holzman
- Fix #155497: Overlay: Grid follows unit system scaling in top/bottom/... views - Mark van de Ruit
- Fix: BLI: compiler warning in AnyDerived test - Jacques Lucke
- Fix #155482: Asserts in array_utils::gather are too strict - Lukas Tönne
- Fix #153488: Cycles OpenVDB renders black on certain Metal machines - Weizhen Huang
- Fix #155517: Broken link drag search for Grid Dilate & Erode node - Hans Goudey
- Fix #155458: Cycles displacement with flat and smooth normals artifacts - Brecht Van Lommel
- Fix: Missing int vector socket handling in multi-function operation - Omar Emara
- Fix: VSE: Crash editing strip text after pasting unicode text - Brecht Van Lommel
- Fix #155528: Versioning code not working with legacy actions - Christoph Lendenfeld
- Fix #130188 : Track changes to builtin and unsaved images on the cycles side - Martijn Versteegh
- Fix: NlaTrack RNA path missing - Philipp Oeser
- Fix: Vulkan: Missing VMA_VULKAN_VERSION - Jeroen Bakker
- Fix #155490: Overlay: Wrong loose mesh vertices position in object mode. - Miguel Pozo
- Fix #154166: Cycles: Raycast + Bump artifacts - Miguel Pozo
- Fix: glTF: Test Report outdir de-duplication - Julien Duroure
- Fix: GPU: Shader Tool: Support proper static function in namespace - Clément Foucault
- Fix: GPU: Shader Tool: Support negative value in template args - Clément Foucault
- Fix: FCurve Settings RNA paths broken - Philipp Oeser
- Fix: wrong GS() usage in rna_display_settings_from_view_settings - Philipp Oeser
- Fix: Reduce attribute copy overhead in particle instance modifier - Hans Goudey
- Fix #155549: Unable to change 'Add Primitive' options in Sculpt Mode - Sean Kim
- Fix #154739: Crash When Editing Mesh with Geometry Nodes and Armature - Campbell Barton
- Fix: double free if image packing failed to write an ImBuf to memory - Campbell Barton
- Fix #155504: VSE: Reset retiming operator does not work - Ay1nDas
- Fix #155561: New Texture Paint Slot does not create a working nodetree - Philipp Oeser
- Fix: Cycles: Do not deference used nodes in Light constructor - Weizhen Huang
- Fix #155591: LineArt: Correct sensor fit for ortho camera - YimingWu
- Fix #155511: EEVEE Viewport Motion Blur too strong - Philipp Oeser
- Fix #155555: Subdiv: Avoid redundant processing of vertex groups - Hans Goudey
- Fix #155612: RNA colorspace settings incomplete for some types - Philipp Oeser
- Fix: Compile error in previous commit - Sean Kim
- Fix #155611: Crash when using position node tool in Sculpt Mode - Sean Kim
- Fix: IRIS grayscale+alpha saving wrote green channel instead of alpha - Campbell Barton
- Fix: imbuf.filepath failing to accept bytes assignment - Campbell Barton
- Fix #155669: Assigning values to vector attribute is extremely slow - Tariq-Sulley
- Fix #152505: VSE: Sync scene time doesn't work with hard split scene strips - Ay1nDas
- Fix #155651: Missing translation in curves data panel - Pratik Borhade
- Fix #154696: Grease Pencil: Assert when entering Stroke Selection with everything selected - Pratik Borhade
- Fix #155323: Grease Pencil: Vertex Paint does not follow fill islands - Casey Bianco-Davis
- Fix #155588: Cycles Metal state allocation OOM issues - Michael Jones
- Fix #155418: Editing custom prop of 'Temp' type in °C/F crashes Blender - Guillermo Venegas
- Fix #155627: Socket label function may require topology cache update - Lukas Tönne
- Fix: assertion starting with GHOST/SDL - Campbell Barton
- Fix #155698: Spreadsheet shows stale vertex group after Python removal - Philipp Oeser
- Fix #155676: Skip string attributes in merge by distance mixing - Tariq-Sulley
- Fix #154685: Grease Pencil: Noise modifier creates discontinuity - Casey Bianco-Davis
- Fix: correct path for foreach_path callback of object's particle systems - Sybren A. Stüvel
- Fix: Python module build failure due to new linker flags - Brecht Van Lommel
- Fix #151951: VSE: Crossfade sounds zeroes out the audio - John Kiril Swenson
- Fix #119596: Multiple points operations of Curvemap and Curveprofile - XDzZyq
- Fix #155733: Incorrect font filling when curve extrude is enabled - Campbell Barton
- Fix #155605: Shift precision not working when adjusting camera focal length from context menu - mundele2004
- Fix #153580: Graph Editor Frame Selected for small value changes - Christoph Lendenfeld
- Fix: Spreadsheet shows stale vertex group after Python removal part II - Philipp Oeser
- Fix: View: Don't delete items that are filtered out - Pratik Borhade
- Fix #155723: Pasting pose not working with packed assets - Christoph Lendenfeld
- Fix: Unnecessary recalculation of face propagation map in dual mesh node - Hans Goudey
- Fix #155764: Attribute mixing uses incorrect source indices - Hans Goudey
- Fix: Unnecessary recalculation of face propagation map in dual mesh node - Hans Goudey
- Fix #155792: Complex Solidify use after free - Hans Goudey
- Fix: VSE: Select Grouped Effect/Linked with Extend off - John Kiril Swenson
-
Fix #155748: Use factor instead of distance for
texture_sample_bias- YimingWu - Fix #155802: GHOST: Use "Blender" as the window class name on X11 - YimingWu
- Fix #155795: Amount input of Scatter on Surface Modifier allows negative values - Simon Thommes
- Fix #155828: Freestyle error with Face Smoothness and subdivision - Brecht Van Lommel
- Fix #155831: Linking: Linking Objects with Shape Keys leads to error. - Bastien Montagne
- Fix #155846: Mesh attributes not zero initialized by add functions - Hans Goudey
- Fix #155817: Cycles transparent curve shadows disappear on scene update - Brecht Van Lommel
- Fix #155851: Cycles crash with background scene - Brecht Van Lommel
- Fix #155830: Invalid freestyle attributes on CustomData - Hans Goudey
- Fix #155775: mov_av_codec_id_get reaches unreachable code - Richard Antalik
- Fix: Failing UI tests after recent change - Sean Kim
- Fix: Bake: Assert baking to vertex colors - Brecht Van Lommel
- Fix: Duplicate Linear Rec.709 entries in the menu - Sergey Sharybin
- Fix: typo in glTF test report - Julien Duroure
- Fix crash in BLI_mmap.cc on WIN32 - Martin Loga
- Fix: Grease Pencil Draw mode gets incorrect size & strength values via BKE API - Sean Kim
- Fix #155371: Materials render black with EEVEE - Patrick Mours
- Fix: glTF: fix node group traversal when multiple sockets have same name - Julien Duroure
- Fix #155753: Vulkan: Crash when selecting particle hair - Jeroen Bakker
- Fix #154768: GPU: Workaround for VKImageCache crash on AMD+Mesa - Mark van de Ruit
- Fix #155125: Memleaks when freeing temporary placeholders linked IDs. - Bastien Montagne
- Fix #152919: Linking fails to create a Collection instance in some cases. - Bastien Montagne
- Fix #155816: Inverted bool condition breaks attribute search - Lukas Tönne
- Fix: BSL: Namespace lowering when using ternary operator - Mark van de Ruit
- Fix #155524: Making node groups adds multi-input links at bottom - Lukas Tönne
-
Fix: removed empty
Resourcesinitialization in overlaybslfiles - Mark van de Ruit - Fix: Cycles: HIP render errors after removing noinline hint - Brecht Van Lommel
- Fix: Build error without unity builds after recent commit - Hans Goudey
- Fix: GPU: Silence GCC warnings in union member calls - Clément Foucault
- Fix #155670: Duplicated scenes are marked as unused data. - Bastien Montagne
- Fix #155821: Preserve the "muted" flag of node links when ungrouping - Lukas Tönne
- Fix: Quiet CLOG warning - Guillermo Venegas
- Fix #155855: Industry Compatible keybind conflict in Sculpt mode - Sean Kim
- Fix: glTF: Fix importing multiple custom attributes - Julien Duroure
- Fix: GPU: Shader Tool: Non-working static branch in methods - Clément Foucault
- Fix #155822: Out of bounds buffer read when writing AVIF image format - Campbell Barton
- Fix #155996: Crash calling operators with non-string keywords - Campbell Barton
- Fix #155928: Undo argument can no longer be passed to the operator - Campbell Barton
- Fix: PyDocs: orphans_purge missing parameters in signature - Andrej730
- Fix: GPU: Shader Tool: Broken default argument in class method - Clément Foucault
- Fix: incorrect buffer size in object_foreach_path_particles - Bastien Montagne
Geometry Nodes
- 🔸 Geometry Nodes: support finding last occurrence in Find in String node - Jacques Lucke
- 🔸 Geometry Nodes: Mix more socket values in bakes - Hans Goudey
- 🔸 Geometry Nodes: Rename node "Set Curve Order" to "Set NURBS Order" - Romain Guimbal
- 🔸 Geometry Nodes: Add "Set NURBS Weight" node - Romain Guimbal
- 🔸 Geometry Nodes: new experimental Split String node - Jacques Lucke
- 🔸 Geometry Nodes: new Trim String node - Jacques Lucke
GHOST/Wayland
- GHOST/Wayland: support xdg-toplevel-icon-v1 for window icons - Campbell Barton
- GHOST/Wayland: treat icons size as logical pixels - Campbell Barton
Git
- Git: Renormalize LFS .icns macOS document icon file - Jonas Holzman
Gitea
- 🔸 Gitea: add Contributor Agreement status check for PRs - Oleg Komarov
glTF
- glTF: use lazy import to prevent unnecessary numpy import on startup - Campbell Barton
- glTF: use inline material when possible - Julien Duroure
- glTF: Bump version to 5.2.7 - Julien Duroure
- 🔸 glTF: Manage KHR_* attributes in primitives - Julien Duroure
- glTF: Bump version to 5.2.8 - Julien Duroure
- 🔸 glTF: Point Cloud import - Julien Duroure
- glTF: Bump addon version to 5.2.9 - Julien Duroure
GPU
- 🔸 GPU: Shader Preprocessor: Optimize and cleanup implementation - Clément Foucault
- GPU: Enable C++ Shader compilation by default - Clément Foucault
- GPU: Shader Tool: Remove duplicated API with Lexit - Clément Foucault
- GPU: Shader Tool: Rewrite semantic parser - Clément Foucault
- GPU: Merge bsl shader C++ compilation units - Clément Foucault
- GPU: Shader Tool: Make sure struct are followed by semicolon - Clément Foucault
- GPU: Shader Tool: Improve enum errors - Clément Foucault
Grease Pencil
- 🔸 Grease Pencil: Draw: Make fills cyclic by default - Falk David
-
🔸
Grease Pencil: Add icons for the
Stroke Mode- Falk David -
🔸
Grease Pencil: SVG and PDF Exporter support
linejointypes (i.e. Corner types) - Casey Bianco-Davis - 🔸 Grease Pencil: Use size of draw tool when invoking eraser temporarily - Falk David
I18N
-
I18N: Cleanup: Fix reference to non-exitant tool in
bl_extract_message.py- Bastien Montagne - I18N: Updated UI translations from git/weblate repository (f0ea580b25d10d3b9). - Bastien Montagne
- I18N: Updated UI translations from git/weblate repository (b3d576069bfce2a623). - Bastien Montagne
- I18N: Add back multi-processing of translations in i18n tools. - Bastien Montagne
- I18N: Updated UI translations from git/weblate repository (86091315485a3695). - Bastien Montagne
- I18N: Add back Croatian language to UI translations. - Bastien Montagne
Image Buffer
- ImBuf: avoid buffer manipulation during save for the IRIS format - Campbell Barton
-
IMB: Add span version of
IMB_blend_color_float- Sean Kim - ImBuf: add file type metadata and capability flags - Campbell Barton
macOS
- 🔸 macOS: Liquid Glass App Icon - Alexander Käßner
Mesh
- 🔸 Mesh: Add operator to clear sculpt face sets - Aryan Verma
- Mesh: Simplify mesh_new_no_attributes - Hans Goudey
- 🔸 Mesh: Optimize split edges vertex group handling - Hans Goudey
Modeling
- 🔸 Modeling: support "topology" symmetry for symmetry snap - Campbell Barton
Node Wrangler
Nodes
- 🔸 Nodes: Create "Constant" submenu for inputs in Shader Node Editor - quackarooni
- 🔸 Nodes: Add integer vector socket - Omar Emara
- 🔸 Nodes: Reassign selection when extending Group Input/Output nodes - quackarooni
- 🔸 Nodes: NoOp defaults for Math node when added through link drag search - Habib Gahbiche
Overlay
- Overlay: Add proper support for AA in skin root shader - Clément Foucault
- Overlay: cleanup and port anti-aliasing and xray-fade shaders to BSL - Mark van de Ruit
Paint
Platform
-
Platform: Deprecate
--alloption ofinstall_linux_packages.py. - Bastien Montagne
Python
- Python Module: workaround test failure: script_validate_on_system_python - Campbell Barton
- PyDoc: correct path after template rename - Campbell Barton
- Python: Added support for GPU python module in background mode - Jeroen Bakker
- PyDoc: Scene.ray_cast - document evaluated/original output mismatch - Andrej730
- Python: add size limit to HTTP downloader - Sybren A. Stüvel
- Python: Force immediate exit on sys.exit() for Windows ARM - Brecht Van Lommel
- 🔸 PyAPI: add ImBuf.write_to_buffer for in-memory image encoding - Campbell Barton
- 🔸 PyAPI: expose ImBuf quality and compress properties - Campbell Barton
- PyAPI: add planes argument to imbuf.new & improve planes docstring - Campbell Barton
- PyAPI: add ImBuf buffer methods & context manager for pixel data access - Campbell Barton
- PyAPI: add ImBuf buffer methods & context manager for pixel data access - Campbell Barton
- PyAPI: add ImBuf.file_type read/write access - Campbell Barton
- 🔸 PyAPI: ImBuf expose "NONE" as a file type - Campbell Barton
Refactor
- Refactor: Cycles: Use object index to map to light tree - Weizhen Huang
- Refactor: Grease Pencil: Use utility to mix merged layer attributes - Hans Goudey
-
Refactor: EEVEE: replace
thicknessfloat withThicknesswrapper object - Mark van de Ruit -
Refactor: Paint: Avoid setting
shapekey_activeif Dyntopo is active - Sean Kim - Refactor: OpenColorIO: Add family/description to API, remove is_invertible - Mark Boorer
- Refactor: UI: Add prop_with_menu with property name - Mark Boorer
- Refactor: Color Management: Use ACES2065-1 as reference space in config - Brecht Van Lommel
- Refactor: Restrict edit mode object skipping to the transfer mode operator - Tariq-Sulley
- Refactor: simplify meta-ball selection drawing code-path - Campbell Barton
- Refactor: Core: use C++ API when writing raw arrays to blend-file - Jacques Lucke
- Refactor: Functions: extract graph executor implementation into separate file - Jacques Lucke
- Refactor: Add default allocation utility method - Omar Emara
- Refactor: Cycles: Implement light base class and derived subclasses - Weizhen Huang
- Refactor: Cycles: Implement utility function for copying light to kernel - Weizhen Huang
- Refactor: Cycles: Split device light update functions - Weizhen Huang
- Refactor: Use gather to propagate attributes in set_curve_type.cc - Hans Goudey
- Refactor: Use common utilities in Grease Pencil attribute propagation - Hans Goudey
-
Refactor: Paint: Split apart
UVPrimitivePaintInputstruct - Sean Kim -
Refactor: Paint: Cache
ImBufinStrokeCache- Sean Kim - Refactor: Generalize node evaluation dependencies - Omar Emara
- Refactor: Construct compositor depsgraph from scene - Omar Emara
- Refactor: Cycles: Remove reserve and "push_back" for geometry arrays - Hans Goudey
Release
- Release: Update freedesktop notes for 5.1 - Thomas Dinges
- Release: Update installer graphic for 5.1 - Thomas Dinges
- Release: Bump 5.1 to release candidate - Thomas Dinges
Revert
- Revert "Fix: Mesh naming in Cycles" - Sean Kim
-
Revert "Cycles: guard volume fix behind
ifdefto make it safer for 5.1" - Weizhen Huang - Revert "Cycles: Improve Metal state allocation logic for RAM-constrained systems" - Brecht Van Lommel
- Revert "PyAPI: add ImBuf buffer methods & context manager for pixel data access" - Sybren A. Stüvel
RNA
- RNA: Remove DNA dependency in rna_def_property_lookup_int_func - Philipp Oeser
Sculpt
- 🔸 Sculpt: Remove extra user confirmation for entering Dyntopo - Sean Kim
- 🔸 Sculpt: Warn and prevent sculpting when shape keys are muted - Sean Kim
- 🔸 Sculpt: Add "Add Primitive" tool defaults - kunal
- 🔸 Sculpt: Scene Project Brush - Nicola
- 🔸 Sculpt: Add 'Scene Project' brush asset - Sean Kim
- 🔸 Sculpt: Improve color filter quick fill behavior - Lavnish Pandey
- 🔸 Sculpt: Add 'Set Vertex Color' entry into 'Sculpt' menu dropdown - Sean Kim
Shrinkwrap
- 🔸 Shrinkwrap: Reduce threading threshold, use C++ API - Hans Goudey
Tests
- Tests: VSE render test coverage for various color spaces - Aras Pranckevicius
- Tests: Enable attribute existance check and update files, fix many tests - Hans Goudey
- Tests: Add Python API tests for the imbuf module - Campbell Barton
- Tests: Move Map UV test to anisotropic tests - Omar Emara
- Tests: disable recently added imbuf_py_api test - Campbell Barton
- Tests: re-enable imbuf_py_api test with AVIF disabled - Campbell Barton
- Performance tests: Add two memfile undo cases. - Bastien Montagne
- Tests: add tests for sub-classing & calling operators from Python - Campbell Barton
Transform
- 🔸 Transform: use a modal keymap and show status bar for "Look at Surface" - Eqkoss / T1NT1N
UI
- 🔸 UI: Paste hex code to color button - Pratik Borhade
- 🔸 UI: Add 'Save Modified Images' dialog when saving blend file - T0MIS0N
- 🔸 UI: subdirectory support for Menu.menu_path, use for text templates - quackarooni
- 🔸 UI: Python: Hide (most) core add-ons - Campbell Barton
- 🔸 UI: Add Copy Constraints To CTRL+L (Link/Transfer Data) Menu - Jackson Zheng
- 🔸 UI: Add Icon name in the tooltips when Developers Extra is enabled - Dalai Felinto
- 🔸 UI: Add icons to Set Parent menu - Pablo Vazquez
- 🔸 UI: Grey out and add tooltips for disabled buttons in color ramp template - quackarooni
- 🔸 UI: Color Management: Organize color spaces into menus - Mark Boorer
- 🔸 UI: Show linked/overridden/asset state icon in data-block enum selectors - Julian Eisel
- 🔸 UI: Show linked/overridden/asset state icon in data-block enum selectors - Julian Eisel
- UI: Enable Vulkan tests by default - Christoph Neuhauser
- UI: Fix SVG Icon Rotation - Harley Acheson
- 🔸 UI: Improved CJK Unicode Ranges - Harley Acheson
- 🔸 UI: Fix Area Snapping Above With Playback Controls - Harley Acheson
- 🔸 UI: Add link button - Guillermo Venegas
- 🔸 UI: Fix Vertical Jiggling of Category Tabs at Some Sizes - Nazir Galimov
- 🔸 UI: Use different layout panel state storage per Collection Exporter - Guillermo Venegas
VSE
- 🔸 VSE: Add "All Channels" snap option - John Kiril Swenson
XR
- XR: Fix copy-paste error in Swap Hands section comment - Abinjith-Tk
- 🔸 XR: Controller bindings deadzone threshold improvements - Jonas Holzman
- XR: Implement a separate XR-specific Blender context, accessible from XR draw handlers - Jonas Holzman
11 Comments
Hey Pablo, expanding on John's question from earlier, here's a few links for auto remesher, it's a quad type topology remesher, open source github.com/huxingyi/autoremesher blenderartists.org/t/autoremesher-open-source-auto-retopology-tool/1245131/167
Hello Pablo! Is there any plans from Blender to open a platform that allows the community to share assets such as geometry nodes, compositor and shader node groups assets, just like the Extension Platform for addons ? If so, I'd be super excited to know more about it. Have a nice weekend ;)
Heya Pablo! hope you all are doing well. Question, When are you guys coming to Toronto Canada for a Blender Con or a big Blender Event? I know BC Canada has been getting a lot of love, but any plans for you guys try Toronto? Thanks!
Hi pablo!! have there been any discussions about improving texture painting? I remember there was a discussion about attempting to make brush sizes be consistent when zooming in and out of an object(to keep the brush size consistent no matter the position or zoom of the camera so it's not screen based) but this was sometime last year and i haven't seen any more discussion on it since.
Hi Pablo and thanks for the regular updates! :) 3 questions:
Hola Pablo desde Breda! A few questions/comments for you today:
<3 <3 <3
Hello Pablo! I'm finally giving a lot of time to geometry nodes, and I found that is not possible to create nodes with python. Are there plans to add this feature? Are there big issues with this?
hi pablo , would you consider adding jeremy hu's auto remesher and fully support it and improve it for future uses?
hi pablo, nice to see you, I was wondering since we are going for node base tool for blender what if we could have a mode for geometry node that are similar to edit mode but for geometry node, or am I asking too much
Have you seen Preview-it? It's a visual preview for your geo nodes. There is also one for materials, same dev.
Hi Pablo, always enjoy watching your show. I don't know if you're much of a gamer but have you ever checked out No Man's Sky and the Blender base-builder plugin? Something just for fun of course. nexusmods.com/nomanssky/mods/984