SO MANY Quality of Life Improvements! — Blender Today LIVE #273
Announcements
- Blender for 3D Printing studio.blender.org/training/3d-printing/
- BCON Austin, TX - April 13-14 bconna.org/2026/
Changelog
Changelog between January 06, 2026 - January 20, 2026 at 12h
393 commits in total, of which 92 are fixes, 41 refactors, and 69 cleanup.
Add init file missing from ./_bpy_internal/platform/
- Add init file missing from ./_bpy_internal/platform/ - Campbell Barton
Anim
- 🔸 Anim: more elaborate info when pasting a pose - Sybren A. Stüvel
- 🔸 Anim: Improve shapekey evaluation performance with threading - Christoph Lendenfeld
Asset Shelf
- 🔸 Asset Shelf: Allow smaller thumbnails - Pablo Vazquez
Assets
- Assets: add a C++ wrapper for the Disk File Hash Service - Sybren A. Stüvel
Attributes
BLI
- 🔸 BLI: optimize RLE encoding for random data spans - Campbell Barton
- BLI: support return values in threading::isolate_task - Jacques Lucke
- BLI: avoid unnecessary array copy when constructing GVArray - Jacques Lucke
Build
- Build: Upgrade Xcode toolchain version from 16.3 to 26.0.1 - Jonas Holzman
- Build: resolve build errors with Python 3.13 caused by recent refactors - Campbell Barton
- Build: result build error with Python 3.14 - Campbell Barton
- Build: Allow TBB-malloc in sanitizer builds. - Bastien Montagne
- Build: fix missing include WITH_TBB_MALLOC_PROXY=ON & WITH_TBB=OFF - Campbell Barton
- Build: disable WITH_TBB_MALLOC_PROXY for lite builds - Campbell Barton
Buildbot
-
Buildbot: Use Visual Studio 2022 with
clang-clon Windows x64 - Bart van der Braak
CMake
- CMake: Show test flags configuration options - Bart van der Braak
CODEOWNERS
- CODEOWNERS: Tweak regexes for blendloader to exclude more versioning files. - Bastien Montagne
- CodeOwners: Update - Jeroen Bakker
- Codeowners: Add more 'Core module' areas. - Bastien Montagne
Cleanup
- Cleanup: quiet unused argument warning - Campbell Barton
- Cleanup: extract RLE encoding function for detecting random span length - Campbell Barton
- Cleanup: macOS: Remove whitespaces in framework linkflags list - Jonas Holzman
- Cleanup: makesdna typo in platform_apple.cmake - Jonas Holzman
- Cleanup: Centralize common brush curve initialization - Sean Kim
-
Cleanup: Remove unnecessary
constin BKE_image_save.hh - Sean Kim -
Cleanup: Document intent of XR draw callback nullptr check in
bpy_context_set- Jonas Holzman - Cleanup: Nodes: Remove Derived Node Tree - Omar Emara
- Cleanup: Functions: avoid confusing method name - Jacques Lucke
- Cleanup: Fix ASAN error after recent Cycles refactor to remove RNA API - Brecht Van Lommel
- Cleanup: Fix clang-tidy hint about POINTER_OFFSET and remove_reference_t - Brecht Van Lommel
- Cleanup: Remove dead / unnecessary GP smooth toggle code - Sean Kim
- Cleanup: Move XR/VK functions to global struct - Jeroen Bakker
- Cleanup: Don't put Python compatibility functions in blender namespace - Brecht Van Lommel
- Cleanup: VSE: Tidy retiming code - John Kiril Swenson
- Cleanup: Node Wrangler: Avoid defining operator labels twice - quackarooni
- Cleanup: quiet undeclared function warning - Campbell Barton
- Cleanup: Remove unnecessary cast in UI view item code - Julian Eisel
- Cleanup: Compositor: Remove cached input processors - Omar Emara
- Cleanup: UI: Simplify loops and remove indentation in interface_layout.cc - Guillermo Venegas
- Cleanup: Compositor: Remove dead-code from COM_compositor - Omar Emara
- Cleanup: Compositor: Remove redundant preview initialization - Omar Emara
- Cleanup: quiet build warning WITH_AUDASPACE=OFF - Campbell Barton
- Cleanup: BLI: unnecessary private specifier - Jacques Lucke
- Cleanup: Functions: add missing const - Jacques Lucke
- Cleanup: Functions: support accessing evaluation mask in evaluator - Jacques Lucke
- Cleanup: improve include order - Jacques Lucke
- Cleanup: Geometry Nodes: simplify adding items to bundle signature - Jacques Lucke
- Cleanup: Compositor: Remove Movie Distortion cache - Omar Emara
- Cleanup: Nodes: Remove local_merge callback - Omar Emara
- Cleanup: Spelling OpenXR extension name - Jeroen Bakker
- Cleanup: Compositor: Remove old need_exec code - Omar Emara
- Cleanup: Mesh: Small naming/whitespace tweaks - Hans Goudey
- Cleanup: Remove redundant mesh conversion calls in explode modifier - Hans Goudey
- Cleanup: Use LegacyMeshInterpolator in mask modifier - Hans Goudey
- Cleanup: order the event type last in BKE_callback_exec_string - Campbell Barton
- Cleanup: spelling in comments & strings (make check_spelling_*) - Campbell Barton
- Cleanup: glTF: Format with pep8 - Julien Duroure
- Cleanup: Nodes: Remove execution callbacks from node tree runtime - Omar Emara
- Cleanup: Compositor: Remove COM_execute function - Omar Emara
- Cleanup: glTF: Remove the pep8 io_scene_gltf2 exclusion - Julien Duroure
- Cleanup: Mesh: Remove useless tessface calculation argument - Hans Goudey
- Cleanup: Mesh: Remove redundant tessface calculation arguments - Hans Goudey
- Cleanup: Use explicit constructor for GPUAttachment macros - Miguel Pozo
- Cleanup: check FPS preference flag before function calls - Campbell Barton
- Cleanup: duplicate words, typo - Campbell Barton
- Cleanup: add a _bpy_internal.platform sub-module for freedesktop - Campbell Barton
-
Cleanup: Remove
VertProjHandleand related functions - Sean Kim - Cleanup: Unused variables after recent commit - Sean Kim
- Cleanup: fix typos/wording - luz paz
- Cleanup: Add comments for UndoType callbacks - Sean Kim
-
Cleanup: Simplify
MultiresModifierDatastorage onSculptSession- Sean Kim - Cleanup: move BLF curve conversion into its own file - Campbell Barton
- Cleanup: GPU: Remove unreachable code - Clément Foucault
- Cleanup: use constexpr int instead of enum - Jacques Lucke
- Cleanup: avoid comparing double to enum - Jacques Lucke
- Cleanup: explicit capture this in lambda - Jacques Lucke
- Cleanup: avoid deprecated behavior with volatile value - Jacques Lucke
- Cleanup: remove unused variable - Jacques Lucke
- Cleanup: RNA: explicitly allow combining for PropertySubType and PropertyUnit - Jacques Lucke
- Cleanup: UI: allow bitwise operations between public and internal button flags - Jacques Lucke
- Cleanup: avoid comparing double to enum - Jacques Lucke
- Cleanup: avoid comparing different enums - Jacques Lucke
- Cleanup: remove unused static variable - Jacques Lucke
- Cleanup: use explicit cast when merging different enum - Jacques Lucke
-
Cleanup: Convert
last_paint_canvas_keyto std::string from char * - Sean Kim - Cleanup: Remove unused function declaration - Sean Kim
- Cleanup: unused statement after recent commit - Jesse Yurkovich
- Cleanup: VSE: Tidy retiming draw code - John Kiril Swenson
Compositor
- 🔸 Compositor: Add Mask To SDF node - Omar Emara
- 🔸 Compositor: Update default workspace - Habib Gahbiche
- 🔸 Compositor: Support display window in Image node - Omar Emara
- 🔸 Compositor: Propagate images meta-data to File Output - Omar Emara
- 🔸 Compositor: Allow directories in File Output item names - Omar Emara
- 🔸 Compositor: Support display window in Movie Distortion - Omar Emara
Core
- 🔸 Core: LibOverride: Improve handling of broken hierarchy data on resync. - Bastien Montagne
Cycles
- Cycles: oneAPI: use ocloc 101.8331 on Windows - Nikita Sirgienko
- Cycles: Fix runtime kernel compilation of OptiX kernels with CUDA 13+ - Patrick Mours
- 🔸 Cycles: Fix mismatch between rendered viewport and overlays - Patrick Mours
- Cycles: Closer alignment of CPU and GPU OIDN integration - Stefan Werner
Docs
- Docs: Update RNA to user manual URL mapping - Aaron Carlisle
- Docs: Add Action Slot example code to PyAPI docs - Nick Alberelli
- Docs: note that --python-expr supports full multi-line scripts - Campbell Barton
Fix
- Fix (unreported) Core: Assert when merging Main with linked data. - Bastien Montagne
-
Fix (unreported) RNA/UI: crash on access to null
typeRegion pointer. - Bastien Montagne - Fix #107942: Color Correction node produces out of gamut colors - Omar Emara
- Fix #138360: Batch-Generate Previews fails to save - Philipp Oeser
- Fix #146062: Incorrect reference tot the default key-map - dupoxy
- Fix #147500: Save and Restore Previous Width of Sidebar Regions - Harley Acheson
- Fix #149631: Storm Vulkan Headless Rendering - Jeroen Bakker
- Fix #150389 - glTF: Fix export with def bones & remove armature - Julien Duroure
- Fix #150635: Click to extrude bone now includes bone roll - Wayne Dixon
- Fix #150641: crash when setting NodeSocket.bl_idname from Python - Nithurshen Karthikeyan
- Fix #150712: UI: Tree View: select state disappear - Pratik Borhade
- Fix #150786: Packing could fail to remap some dependencies to their packed versions. - Bastien Montagne
- Fix #150861: Cryptomatte slowdown in non-first frame - Omar Emara
- Fix #150886: VSE: Muting sound modifiers does not work - Bipin Yadav
- Fix #151169: Unclear behavior for "Orbit Around Selection" - Philipp Oeser
- Fix #151181: keyboard arrows doesn't add undo step for 'Vertex Groups' - Pratik Borhade
- Fix #151284: Adjust Mouse Cursor as Brush Size Decreases - Harley Acheson
- Fix #151290: FBX and glTF export throw exception when linked material is missing - Habib Gahbiche
- Fix #151436 - glTF: Fix management of default socket on input group - Julien Duroure
- Fix #151532: VSE: Add strips does not deselect retiming keys during exec - John Kiril Swenson
- Fix #151586: EEVEE: Wrong projection when using Render Region + Fly/Walk Navigation - Miguel Pozo
- Fix #151597: Reset Language with Load Factory - Harley Acheson
- Fix #151755: VSE: Reuse sound datablock for same filepaths - Bipin Yadav
- Fix #151787: UV Editor freezes with skin & subdivision surface modifiers - Tariq-Sulley
- Fix #151908: Crash when onion skin frame uses unavailable material - Falk David
- Fix #151982: Fix MMB can add points in polygon annotation. - Chiaki_meow
- Fix #152005: Crash with material preview mesh when redoing dyntopo - Sean Kim
- Fix #152040: Triangles to Quads ignores float colors when comparing - Philipp Oeser
- Fix #152045: Crash when selecting UV islands while in edge selection mode - Campbell Barton
- Fix #152050: Geometry Nodes: Enable Output node dont keep List socket shape - илья _
- Fix #152059: Draw UI List elements proportionally with width - by_ma
- Fix #152067: Apply Subdivision Surface modifier converting Mesh to Curve - Nazir
- Fix #152071: Don't call pyrna_context_ functions if context is null to prevent XR Python draw handler crash - cmdr2
- Fix #152095: Nodes: Unreadable frame node labels - Aryan Verma
- Fix #152097: Make "Use Centroid" option effective in merge by distance - YimingWu
- Fix #152121: Blender 5.0 dependency cycle on pose bone visibility - Sybren A. Stüvel
- Fix #152125: Vertex Bevel, scrambled UV with an odd segment count - Campbell Barton
- Fix #152138: "Loading Factory Settings" asserts with CSD - Campbell Barton
- Fix #152145: Assert when running "Set Attribute" for a color attribute - Tariq-Sulley
- Fix #152146: Invalid selection count after splitting face by edges - Tariq-Sulley
- Fix #152228: Unable to additively select curves with selection brush - Sean Kim
- Fix #152235: Crash deleting curve spline with driven point properties - Tariq-Sulley
- Fix #152242, #149477: Vulkan: Empty subpass transition skips clearops - Jeroen Bakker
- Fix #152249: Collapse edges tears UV coordinates - Campbell Barton
- Fix #152253: Rigify Human armature isn't perfectly symmetrical - Trung Phạm
- Fix #152265: Add retiming key initialization step for python API - David Min
- Fix #152277: Shading errors with harden normals in bevel operator - Tariq-Sulley
- Fix #152325: Continuation of #152340 for shader type fix - YimingWu
- Fix #152403: Crash when opening file browser for path with template expressions - Nathan Vegdahl
- Fix #152451: Normalization threshold for quaternion is different from assert - Lukas Tönne
- Fix #152458: Dragging data-block icons will show "Asset not found" - Philipp Oeser
- Fix #152460: Properly import exposed Material prim inputs - Jesse Yurkovich
- Fix #152498: Convolve node ignores translation in GPU - Omar Emara
- Fix #152500: Poll Functions for Operators on Temp Screens - Harley Acheson
- Fix #152509: Geometry Nodes gizmos interactive when hidden - Aryan Verma
- Fix #152517: FBX import Blender 5.1 UV maps are not active - Philipp Oeser
- Fix #152525: Compositor shows wrong pinned node tree - Omar Emara
- Fix #152525: Crash if Group Input has more than one output - Omar Emara
- Fix #152536: Cryptomatte fails if more than 32 assets selected - Omar Emara
- Fix #152537: Tooltips are translated with wrong translation option - Pardhav Maradani
- Fix #152542: Incorrect snap alignment after switching modes - Tariq-Sulley
- Fix #152554: Snap base does not work when rotating from the menu - Tariq-Sulley
-
Fix #152609: LineArt: Prevent
depth_offsetslider from moving too fast - YimingWu - Fix #152624: Copy driver to selected on non-array properties - Christoph Lendenfeld
- Fix #152626: Missing raw cache update when changing scene resolution - Richard Antalik
- Fix #152632: Stack Overflow When Joining Areas - Harley Acheson
- Fix #152638: Packing API: do not repack when already packed and unchanged. - Bastien Montagne
- Fix #152664: Crash after undo due to null sharing info - Tariq-Sulley
- Fix #152669: EEVEE: Volume shader compilation error with pointclouds and curves - Miguel Pozo
- Fix #152680: Crash when undoing add/remove curve points while hovering inputs - Guillermo Venegas
- Fix #152681: Ensure ".blend" is added to Saved File Name - Harley Acheson
- Fix #152690: Grease Pencil: Select similar on curves domain - YimingWu
- Fix #152691: File Browser doesn't recognize .toml files - phantomsoldierking
- Fix #152720: Crash with extreme compositor sizes - Omar Emara
- Fix #152724: Support empty Curve objects on export - Jesse Yurkovich
- Fix #152771: OpenXR: Line missing when drawing VR camera - Jeroen Bakker
- Fix #152790: FBX import crash due to duplicate F-Curves - Aryan Verma
- Fix #152801: Inverting vertex selection fails with UV selection data - Campbell Barton
- Fix #152807: Make "threshold" property a distance in Symmetrize operator - YimingWu
- Fix #152823: Point cloud "Face Project" snapping does not work - Philipp Oeser
- Fix #152839: Color property rendering as gray box in popup menus - phantomsoldierking
- Fix #152842: Crash when undoing sequencer sound modifiers - Bipin Yadav
- Fix #152870: VSE Keyframe in Preview window causes a crash - Philipp Oeser
- Fix #152900: Crash when selecting non-brush tool in Sculpt Mode - Sean Kim
- Fix #152975: Compositing still reported while render is done - Omar Emara
- Fix #152998: Cancel animation in VSE does not restore start frame - Philipp Oeser
- Fix #153026: Grease Pencil: Operator name typo in time offset modifier - YimingWu
- Fix #153033: Walk navigation causes EEVEE camera view to render incorrectly - Miguel Pozo
- Fix #153053: crash when connecting extent socket to viewer - Jacques Lucke
- Fix #71397: Cannot "batch" edit a Lattice resolution u, v, w at once - Philipp Oeser
- Fix #78848: Skin modifier creates holes when frame vertices coincide with hull - Campbell Barton
- Fix invalid topology cache when setting frame node location - Lukas Tönne
- Fix missing includes. - Bastien Montagne
- Fix: #141114: UI: Center linux application icons in viewBox and remove excess padding - Charbel Nicolas
- Fix: #151943: Focus mode does not hide FPS counter in video sequencer - Tobias Kummer | Overmind Studios
- Fix: Add missing includes in draw_view_reconstruction_lib - Miguel Pozo
- Fix: Adding effect strips always gives an error - John Kiril Swenson
- Fix: Another build error when building without asserts - Brecht Van Lommel
- Fix: Attribute to index search within sub-group wrong - Hans Goudey
- Fix: Avoid crash when setting nurbs order to < 2 - Osares
- Fix: Build error when building without asserts - Brecht Van Lommel
- Fix: comparing wrong value to enum - Jacques Lucke
- Fix: Compile error in previous commit - Omar Emara
- Fix: Compile error in recent commit - Sean Kim
- Fix: compiler warning for ENUM_FLAGS when used in .cc file - Aras Pranckevicius
- Fix: Crash occurs when interacting with UI popups - T0MIS0N
- Fix: Crash with ACEScg working space after recent shader tool change - Brecht Van Lommel
- Fix: Disable Edit and Continue for MSVC_CLANG - Miguel Pozo
- Fix: DRW: Broken compilation after recent namespace changes - Clément Foucault
- Fix: error accessing UV_OT_unwrap.weight_group default value - Campbell Barton
- Fix: error adding multiple GPU batch shader references - Campbell Barton
- Fix: Failing io_usd_import test when WITH_PYTHON_SAFETY is on - Brecht Van Lommel
- Fix: Fallback name for new curves/points attributes missing - Hans Goudey
- Fix: fix b-bone keying set property identifiers - Wayne Dixon
- Fix: Geometry Nodes: check for leading/trailing whitespace in bundle keys - Jacques Lucke
- Fix: Geometry Nodes: missing check for empty bundle paths - Jacques Lucke
- Fix: glTF: Add missing initialization for animation - Julien Duroure
- Fix: glTF: Check undefined group nodes - Julien Duroure
- Fix: glTF: Fix export variant with same names - Julien Duroure
- Fix: glTF: Fix exporting variant with same names - Julien Duroure
- Fix: glTF: Fix leaf bone generation - Julien Duroure
- Fix: glTF: Restore ID properties export, after Blender changes - Julien Duroure
- Fix: GPU: Broken compilation of OCIO shader - Clément Foucault
- Fix: GPU: Broken Shader C++ compilation - Clément Foucault
- Fix: Grease Pencil: SVG Importer creates duplicate end points - Casey Bianco-Davis
- Fix: Grease Pencil: SVG Importer creates excessive materials - Casey Bianco-Davis
- Fix: Inconsistent input drag color pick in Circle HSV input - Guillermo Venegas
- Fix: Inconsistent input drag color pick in Square HSV input - Guillermo Venegas
- Fix: Incorrect default color for new color attributes - Hans Goudey
- Fix: incorrect exceptions with BMesh vert/edge creation - Campbell Barton
- Fix: Make sure added UV map is set active - dupoxy
- Fix: memory leak calling pack() for vfont & sound data-blocks - Campbell Barton
-
Fix: Memory leak in
Copy Constraints To Selected Objectsoperator - Jackson Zheng - Fix: memory leak when IDProperty UI enum validation fails - Campbell Barton
- Fix: Missing context null pointer checks in enum item callbacks - Brecht Van Lommel
- Fix: Namespace issues in creator.cc after recent changes - Brecht Van Lommel
- Fix: Nodes: UI scale ignored for image nodes created by drag and drop - Habib Gahbiche
- Fix: Nodes: wrong subversion check in recent commit - Jacques Lucke
- Fix: Populate name field with "Bone" when creating a new bone - Wayne Dixon
- Fix: Pose brush modes ignore strength - Sean Kim
- Fix: Potential crash in pose brush with jitter enabled - Sean Kim
- Fix: Potential out-of-bounds read and UTF8 truncating of view-item name - Julian Eisel
- Fix: Python/C API reference counts in BPY_python_backtrace - Campbell Barton
- Fix: re-create thumbnail folders in case they got deleted - Philipp Oeser
- Fix: renaming pose bones via F2 does not refresh the Outliner - Philipp Oeser
- Fix: Shader Nodes Inliner: Boolean sockets - Miguel Pozo
- Fix: Shapekey kernel code with unequal element counts - Christoph Lendenfeld
- Fix: version correct sequencer overlay flags - Jacques Lucke
- Fix: Warning in shapekey code - Christoph Lendenfeld
- Fix: Worlds might get created without a node tree - Habib Gahbiche
- Fix: wrong enum comparisons - Jacques Lucke
- Fix: wrong enum value - Jacques Lucke
- Fix: Wrong version number for userdef versioning - Habib Gahbiche
Functions
- Functions: support comparing field constants internally - Jacques Lucke
GPU
- GPU: TexturePool supports persistent resources - Mark van de Ruit
- GPU: TexturePool separated into per-backend object - Mark van de Ruit
- GPU: VKTexturePool with format aliasing - Mark van de Ruit
- GPU: Shader Tool: Add support for enum and small int in template arguments - Clément Foucault
- GPU: Shader: Add fast shader source Preprocessor - Clément Foucault
-
GPU: Add
--gpu-debug-no-texture-pooland texture pool selection log - Mark van de Ruit
Geometry Nodes
- 🔸 Geometry Nodes: new Font socket and turn Curve to String node inputs to sockets - Jacques Lucke
- 🔸 Geometry Nodes: new Store/Get Bundle Item Nodes - Cartesian Caramel
- 🔸 Geometry Nodes: icons of domains in enums - Iliya Katushenock
- 🔸 Geometry Nodes: use multi-threading in Offset Point in Curve node - Jacques Lucke
Gitea
- Gitea: add Geometry Nodes and blenlib to CODEOWNERS file - Jacques Lucke
- Gitea: Add Platforms & Builds - Thomas Dinges
Gitea / Codeowners
- Gitea / Codeowners: Adjustments for Platforms & Builds - Thomas Dinges
I18N
- I18N: tooling: set default persistent settings storage filename to empty string. - Bastien Montagne
- I18N: Updated UI translations from git/weblate repository (f15b449821221c8064). - Bastien Montagne
- I18N: Updated UI translations from git/weblate repository (5d4eb2df90312). - Bastien Montagne
LineArt
- LineArt: Weight transfer optimizations - YimingWu
Linux
- Linux: replace JEMALLOC with TBB_MALLOC_PROXY - Campbell Barton
Metal
- Metal: Disable matrix comparison operators in most shaders - Clément Foucault
Modeling
Node Editor
- 🔸 Node Editor: Reduce padding on View All/Selected - Pablo Vazquez
Nodes
- Nodes: Automated tests for group operators - Lukas Tönne
- Nodes: Tests for group operators applied to nested frames - Lukas Tönne
- Nodes: Add more node group operator tests for external socket links - Lukas Tönne
- Nodes: New tests for node group operator edge cases - Lukas Tönne
- Nodes: Change group operator test for pass-through node groups - Lukas Tönne
- Nodes: initial support for built-in icons for built-in enum sockets - Jacques Lucke
- 🔸 Nodes: Support multi-item operations in interface tree view - W_Cloud
- 🔸 Nodes: Preserve zone sockets for Swap Zone operator - quackarooni
- 🔸 Nodes: Copy-paste nodes between Blender instances - Habib Gahbiche
Object
Paint
-
🔸
Paint: Add Color accumulation to
Sample Coloroperator - Casey Bianco-Davis - 🔸 Paint: Implement vertex loop selection - shokuyansh
PyAPI
- PyAPI: support for context logging to suppress missing member access - Nick Alberelli
PyDoc
- PyDoc: correct function/method directive use - Campbell Barton
- PyDoc: correct bpy.utils.previews.load(..), which missed 'OBJECT_IO' - Campbell Barton
- PyDoc: correct typos, types & parameter names - Campbell Barton
- PyDoc: correct use of function / method in doc-strings - Campbell Barton
Python
- Python: add function to run a script with specific local variables - Sybren A. Stüvel
-
Python: make
ConditionalHTTPDownloadersafe(r) for multiple processes - Sybren A. Stüvel -
🔸
Python: add
bpy.app.cachedir- Sybren A. Stüvel - 🔸 Python API: Add bpy.app.handler for just before exiting Blender - Nathan Vegdahl
RNA
- RNA: UI: Improve UILayout RNA warnings - Guillermo Venegas
Refactor
-
Refactor: Allow calling of BVH raycast function without
Sculpt- Sean Kim - Refactor: Check null data instead of sharing info for edit mesh undo - Tariq-Sulley
- Refactor: Compositor: Cleanup compositor job - Omar Emara
- Refactor: Compositor: Generalize evaluation - Omar Emara
- Refactor: Compositor: Merge previews upon job completion - Omar Emara
- Refactor: Compositor: Move pass preprocessing to context - Omar Emara
- Refactor: Compositor: Remove global compositor mutex - Omar Emara
- Refactor: Compositor: Remove should_compute_output method - Omar Emara
- Refactor: Compositor: Remove use of node tree break callback - Omar Emara
- Refactor: Compositor: Remove use of SDH and PRH callbacks - Omar Emara
- Refactor: Compositor: Remove use of update_draw callback - Omar Emara
- Refactor: Compositor: Skip node tree localization - Omar Emara
- Refactor: Convert many C style casts to C++ style and id_cast - Brecht Van Lommel
- Refactor: Cycles: Changes to image loading to prepare for texture cache - Brecht Van Lommel
- Refactor: Cycles: Colorspace changes to prepare for texture cache - Brecht Van Lommel
- Refactor: Cycles: More consistent naming of image functions and structs - Brecht Van Lommel
- Refactor: Cycles: use more complete random access iterator for unique_ptr_vector - Jacques Lucke
- Refactor: Don't accept null pointers in CTX_* functions - Brecht Van Lommel
- Refactor: Idempotent attribute storage versioning - Hans Goudey
- Refactor: Let asset shelf do soft-activation of items on dragging - Julian Eisel
- Refactor: Mesh: Use attribute API in tessface calculation - Hans Goudey
-
Refactor: Move
SculptSessiontoObjectRuntime- Sean Kim - Refactor: Move code in source/ into blender namespace - Brecht Van Lommel
- Refactor: Move weight paint SculptSession data to WPaintData - Sean Kim
- Refactor: Node group operators - Lukas Tönne
- Refactor: Nodes: Remove node_add_init node tree callback - Omar Emara
- Refactor: OpenXR: Allow enabling multiple extensions per binding - Jeroen Bakker
- Refactor: OpenXR: Store extension function pointers in instance - Jeroen Bakker
- Refactor: Remove legacy action code from kernel - Christoph Lendenfeld
- Refactor: Remove legacy action functions - Christoph Lendenfeld
- Refactor: Remove most usage of bContext in sculpt paint stroke code - Sean Kim
- Refactor: Remove most usage of bContext in vertex & weight paint stroke - Sean Kim
- Refactor: remove remaining legacy action code - Christoph Lendenfeld
- Refactor: remove Scene from dupli-list API - Jesse Yurkovich
- Refactor: Remove unused legacy action functions - Christoph Lendenfeld
- Refactor: RNA: Non-static allocation for FunctionRNA, use Vector - Hans Goudey
- Refactor: RNA: Non-static StructRNA allocation - Hans Goudey
- Refactor: Shapekey evaluate absolute function - Christoph Lendenfeld
-
Refactor: Simplify
deform_cosassignment insculpt_update_object- Sean Kim - Refactor: Use inhertance for PropertyRNA types - Hans Goudey
- Refactor: Use more modern bf::dependencies and bf::extern in CMake - Brecht Van Lommel
Release note tools
Sculpt
- 🔸 Sculpt: Add new brush type for color blurring - kunal
- 🔸 Sculpt: Add ability to temporarily toggle to mask brush - ReaalSATYAM
- 🔸 Sculpt: UI: Update Stabilize Normal / Stabilize Center parameter tooltip - Sean Kim
Shader Nodes
- 🔸 Shader Nodes: support Join Bundle node - Jacques Lucke
Tests
- Test: glTF: Add system ID prop export test - Julien Duroure
- Tests: Compositor: Test cases for node groups - Habib Gahbiche
- Tests: VSE: More compositor modifier tests - Habib Gahbiche
- Tests: Order independent attribute comparion in IO tests - Hans Goudey
- Tests: USD: Fix attribute ordering failure - Jesse Yurkovich
- Tests: Switch benchmark charts from Google Charts to Chart.js - Brecht Van Lommel
- Tests: Add time range filter for benchmark charts - Brecht Van Lommel
- Tests: Add log scale and linear with outlier clipping to benchmark charts - Brecht Van Lommel
- Tests: Add click in legend to isolate test in benchmark charts - Brecht Van Lommel
- Tests: Add UI test for common mask operations in sculpt mode - Sean Kim
- Tests: Curves: Unit test for zero order NURBS - Osares
- Tests: Fix access to deleted data in bl_animation_shapekey - Brecht Van Lommel
- Tests: Raise tolerance for video output tests on Linux arm64 - Brecht Van Lommel
- Tests: Disable some sequencer tests when building without libmv and ffmpeg - Brecht Van Lommel
- Tests: Increase samples in light_path_ray_depth.blend - Brecht Van Lommel
UI
- 🔸 UI: Preferences Search - Harley Acheson
- 🔸 UI: Improve Color Picker Hex color code auto-completion - kh4f
- 🔸 UI: Fix incorrect tooltips in Color Picker widget - kh4f
- 🔸 UI: Rename 'Frame Last Stroke' to 'Center Last Stroke' for paint modes - Nick Steiner
- 🔸 UI: Tree View: Copy/Paste name of the viewitem under mouse - Pratik Borhade
- 🔸 UI: Add socket icons in Shader AOVs list - quackarooni
- 🔸 UI: Extensions: Add "Update All" convenience button - Pablo Vazquez
- UI: MacOS SVG Cursors - Harley Acheson
- 🔸 UI: Resize Aligned Regions - Harley Acheson
- 🔸 UI: Improved File Overwrite Feedback - Harley Acheson
- 🔸 UI: Hide datablocks with dot-prefixed names by default - Habib Gahbiche
- 🔸 UI: Nodes: expose mass property unit type for node sockets and interfaces - Alberto Pilotto
- 🔸 UI: Persistent collapse/expand state of panels inside popovers - Guillermo Venegas
- 🔸 UI: Allow drawing semi scrolled buttons in popups menus - Guillermo Venegas
- 🔸 UI: Use regular scroll in menus - Guillermo Venegas
- 🔸 UI: Sort alphabetically in some UI elements - Philipp Oeser
USD
- 🔸 USD: Handle glass setups for the UsdPreviewSurface - Jesse Yurkovich
- 🔸 USD: Reduce peak memory usage of mesh imports - Jesse Yurkovich
VSE
- 🔸 VSE: Simplify, speedup and fix image proxy building - Aras Pranckevicius
- 🔸 VSE: avoid out running out of memory when adding many movie strips - Jacques Lucke
- 🔸 VSE: show total proxy build progress when building multiple proxies - Jacques Lucke
- 🔸 VSE: Reduce memory consumption when building proxies for many videos - Aras Pranckevicius
Vulkan
- Vulkan: Log access to SpirV cache - Jeroen Bakker
- Vulkan: Skip incorrect test. - Jeroen Bakker
- Vulkan: Add TDR check in VKDevice::wait_for_timeline - Christoph Neuhauser
- Vulkan: Introduce wait for submission flag - Jeroen Bakker
- Vulkan: Submit when flushing to avoid OOM and TDRs in background mode - Christoph Neuhauser
XR
- XR: Explicitly target OpenXR API version 1.0 - Jonas Holzman
extern/curve_fit_nd
- extern/curve_fit_nd: update the curve fitting library - Campbell Barton
- extern/curve_fit_nd: update the curve fitting library - Campbell Barton
- extern/curve_fit_nd: update the curve fitting library - Campbell Barton
glTF
- glTF: Revert "Fix: glTF: Fix exporting variant with same names" - Julien Duroure
9 Comments
Is it possible to get this tris to quads addon native to Blender as a more advanced mode to the current Alt J algorithm.
github.com/Rulesobeyer/Optimized-Tris-to-Quads-Converter
It's so much more better than the current method.
I've been able to de-tri full meshes to pefect quads and if you do a mesh in parts of selections it works well, especially for game or meshes that were imorted as tris.
Salute. Waiting for #274. Changelog of the commits helps to translate newly added lines for UI. Thanks for them.
He Pablo. Thank you for that show. Take care and stay healthy. ;)
The preferences search seems to search the keymap section just fine. It just doesn't highlight the header or pop open the section.
Hi Pablo 👋 Praying yall add my right click feature request 🙏🤞 GO 🤧!
Hello Pablo! I just noticed something yesterday so thought I'd bring it up here, perhaps I should make a bug report too. I was making a scene involving volume materials from stuff generated in Geo Nodes, and I used Light Linking so that each object is just affected by different individual lights in the scene. It worked as expected in Cycles, but in EEVEE while it worked as expected for the mesh parts of the object, the volume parts seemed to still be affected by all other lights that they weren't linked to no matter what I tried with material settings and everything else I could think of trying. Just wondering if this is still being worked on for Light Linking to affect volume in EEVEE and if it's a known issue or I'm just stupid in some way here lol
Hola Pablo, hope you're feeling better, lots of January germs about! Had several questions this week:
Cheers! :)
Hi Pablo, How are you?
One of the things would be my dream would be to switch from Photoshop to blender too. I always thought the node-base of the compositor to have way more potential and versatility then the Layer-base in PS.
But for that, I think all we need is a proper 2D canvas where you can paste copied images and move stuff around/rotate/scale with ease without needing to resort to the Transform node or going to 3D viewport and positioning things in front of the camera and stuff. Maybe we could select each image or painting on this canvas for transformation by selecting It's equivalent nodes (Image Texture Node) perhaps.
I know It's probably not something that is planned right now, but do you think It's a realistic development expectation/something we could end up seeing some day?
Hello Pablo!
Instead of question, I have suggestion for GSOC project for someone. An issue that has been bothering me for more than decade.
Copying the image from the image editor to clipboard. Speaking as concept artist, it's sorely missed. Ideally we would get paste into Blender as well for texturing but getting the image out of Blender is good enough.
In one of the meetings, Devs were talking about looking for GSOC ideas that are easy enough to do. This one is and would have massive impact.
(EDIT: holy heck, I didn't know this was already implemented, I am gonna be honest I missed it It's because it doesn't have assigned shortcut.)