Everyone is welcome on the Google Meet linked below every other Thursday, alternating between 10:00 CET and 16:00 CET.
Present:
The meeting covers the core module topics (DNA/RNA, ID management, Depsgraph, Blendfile I/O, etc.).
Links
- Google Meet
- Core Meetings Overview
- Core module
- #Core module chat channel
Updates on Blender 5.0 Projects for 4.5 Release
- 2GB BHead limit: Has been merged. Work for a few python scripts is still needed for Blender 5.0 before moving this option out of experimental (once 4.5 is branched out and cleaned up).
- IDProperties storage split: The PR had positive initial reviews, Bastien prepared the reduced set of changes to allow forward compatibility in Blender 4.5.
- Embedded Linked IDs: Still very WIP. Jacques and Bastien have worked on it a bit the past two weeks, and have a list of TODOs before it can be considered as an MVP ready for review, but it remains the most-behind project so far. Compatibility changes required for 4.5 will likely have to land after the branching out (i.e. move to Beta) at that point.
- Attributes Storage Modernization: The PR has been merged.
- ID Name Size Increase: It has a design task now. Michal has been working on the initial implementation, Bastien will helpwrap up things to get ready for 4.5 Beta asap.
Future of Core systems (DNA, RNA)
Bastien: There has been recent various works and dicussions regarding the future of DNA, runtime data, BKE C++ wrappers for DNA data, and how to adapt RNA to all these new types of data.
- Jacques’s proposal to sanitize naming between DNA structs and their matching BKE C++ class wrappers.
- Brecht’s design for making DNA C++ headers.
- Jacques’s prototype to support typed ListBase in DNA.
It feels like the module should first focus on discussing and agreeing on a broader design/roadmap about all these topics, before spreading too much into smaller (or not so small) refactors, to ensure that they all actually contribute to reaching the general goals.
Python Threading in Blender
Campbell raises the question of supporting Python threading in Blender scripts. This is currently officially not supported.
However, even some core addons (like the FBX exporter) make use of some form of python threading, seemingly without any significant issues.
Campbell does not fully remember what exactly was the issue with Python threading (it was investigated some 15 years ago), but there are still some recent bug reports that ends up being traced down to that problem.
This needs further investigation to fully understand the problem, but it might be that threading used as part of a fully UI-blocking process (e.g. during an Operator’s exec
callback) might be fine (this is how Python threading is used in the FBX exporter currently e.g.).
Having persitent background Python threads running togther with Blender main thread might be the problem. This is likely not something we should support anyway, as having tens of python-defined background threads would likely be a problem for general Blender performances anyway.
Other Topics
- Jacques has added the support for horizontal scrolling for 2D editors to Ghost.
- Jacques has added the support for getting sdna id from static DNA type.
- Jacques has worked on detecting and preventing mismatches between pointers and pointer-pointers at compile time.
- Campbell has worked on adding support for comments within DNA array size definie in DNA. This will allow some validation tooling to check that numeric sizes do match their declared defines.
- Campbell notes that there has been some recent issues in scripts, caused by the fact that many WindowManager data was moved to its runtime sub-data, and that the background mode does not initialize this runtime data currently. Looks like there is no real good reason not to initialize this runtime data in background mode as well, even though some runtime data related to actual UI would not be available.
- Campbell suggests to generalize using exceptions when some file operation fails, in the Python API. This looks reasonable, since these random occasional errors are otherwise impossible to handle correctly.
- Campbell noted that some recent new OSL script templates had a license header. usually templates do not have any (to allow fully free usage of them). This is more a discussion for the Admins though, we likely need to document this special case somewhere too.
Next Meeting
The next meeting will be on Thursday 5th June, 16:00 CEST/Amsterdam time (your local time: 2025-06-05T14:00:00Z).
The provisional meeting agenda will be linked in the Core Meetings Overview thread before the meeting.