2025-01-30 Pipeline & I/O Module Meeting

Everyone is welcome on the Google Meet linked below every other Thursday, at 17:00 CEST.

Present:

The meeting covers the Pipeline & I/O module topics (USD integration, other external fileformats support…).

Links

USD

4.4 Targets

Collection Import/Instancing

  • Nothing new on this topic, works keep on going.

Blender 5.0 ?

  • Python/RNA API and blendfile breakages should be defined by modules now.
    • Removal of collada is confirmed for 5.0. Aras will take care of it when the time comes.

Other

  • Thomas reminds the module to think about potential GSoC Projects for that year.
    • USD could be a source of ideas? Armature or animation e.g.
    • Adding support to expose USD schemas to users? Or semantic APIs?
    • Adding a public/exposed JSon I/O? E.g. glaze. Main target beeing configuration I/O. Would overwrite the startup or userpref files. Could be part of the Blender Setup project? Not clear though if there would be benefits compared to using Python JSon support, and/or python script execution at startup. Maybe from a security perspective (not having to trust executing code at startup).
  • UFBX: Aras is working on a protoype based on the design task.
    • Has been working on the hardest features (animations and armatures).
    • In general, it’s probably better to follow UFBX behavior rather than existing Python importer, when they diverge.

Next Meeting

The next meeting will be on Thursday 13th February, 17:00 CET/Amsterdam time (your local time: 2025-02-13T16:00:00Z).

The provisional meeting agenda will be linked in the Pipeline & I/O Meetings Overview thread before the meeting.

4 Likes

For these kind of setup files I would recommend something declarative (like JSON, YAML, whatever), and against something imperative (like a Python script). Having a declaration of what settings should be applied is easier to work with.

A JSON/YAML/TOML file can be used in different ways, whereas with Python code, the only thing you can do is run it. This means that you can only bring Blender to the desired configuration, but you cannot tell whether Blender’s currently using the declared settings.

This you can also see in Blender’s preset system (presets are Python scripts). You can choose the MP4/h264/AAC preset to configure Blender to render to such a video file, but the UI cannot show that preset as “active” based on the current output settings. It’s strictly a one-way street.

3 Likes

It’s also worth emphasizing that, when your plumbing is set up to consume 2-3 configuration objects (e.g. base config, project config, and user config), it’s fairly easy to extend that into a system that can handle more; at the end of the day you’re just flattening an array of objects, and those objects can come from anywhere. It makes it easy to support things like projects inside of projects and non-destructive python-based configurations, as you can accommodate them without introducing new complications.

1 Like