Developer Meeting Notes

This is not nVidia specific as scene updates affect all the devices. The patch is about preparing the data for the kernel a bit faster, by skipping unnecessary work. With this, there is also less data transferred to the GPU between updates (depending on what’s in your scene), regardless of the GPU vendor.

There used to be some OptiX specific improvements (for BVH building) which are no longer possible, but will make a come back at some point.

4 Likes

That could be a Cube with all “Ray Visibility” flags turned off, shaped as a bounding box and also displayed in BBox mode. I guess it would be an easy addon to code.

It’s there. And you can also choose to display only parents

1 Like

I can’t figure this one out

Neither I do!..
My bad, I actually never used “Object Children” outline filter. I always thought it hides children, but it doesn’t: it removes indentation and hierarchy lines for children objects (quite un-useful btw)


Announcements

2.92

  • 2.92 bug sprint this week.
    • ~15 high priority issues
    • They need to be tagged as 2.92 or 2.93 when not relevant
  • If a module thinks any of the high priority issues won’t be tackled in time reach out for help.

Other

  • James Monteath is looking at the documentation building/deploying process.
  • Particle issues are still considered valid reports when strictly a bug
    • A relevant issue that takes 1h, 2h to fix.
  • Dalai Felinto proposes to bring the 18:00 CET meetings 1 hour forward.
    • The new time would be 17:00 CET / UTC 16:00.
    • This will be presented also in the next Monday meeting aiming at starting at the meeting 3 weeks from now.
    • This proposal is so that the meeting + notes + email would be over by 18:00 CET, a better time to leave the office for whoever has to chair the meeting and take notes.
  • New task for creation of unittest for operators
    • This is a good first issue for new contributors.
    • Any developer is welcome to contribute.
    • Himanshi Kalra (Calra) and Habib Gahbiche (zazizizou) are coordinating that.

New Features and Changes

Blender 2.93

  • Geometry Nodes
    • New Attribute Sample Texture node (commit ) (Jacques Lucke)
    • Object Info node option to apply the object transform to the geometry (commit ) (Dalai Felinto)
  • Asset Browser (Julian Eisel)
    • Support dragging object-data into 3D viewport, masks into compositors, images into node editors (commit ) (commit ) (commit )
    • Avoid showing drop hint on drag & drop if dropping won’t succeed (commit)
    • Deselect other objects when dragging into 3D View (commit )
  • Cycles:
    • Various optimizations for faster updates when editing or changing frames (commit ) (Kévin Dietrich)
  • Grease Pencil (Antonio Vazquez)
    • Option to duplicate layers with empty keyframes (commit )
    • Option to trace current frame (commit )
  • Video Sequencer
    • Inherit blend mode with single input effects (commit ) (Peter Fog)
  • User Interface
  • UV Editor:
    • Improve face and island selection behavior (commit ) (commit ) (Campbell Barton)

Weekly Reports

Summary
10 Likes

Notes: User Inference module meeting 20.01.21

Notes: Blender Rendering Meeting 26.01.21
8 Likes
Notes Summary

Organization

Experimental features:
    For the Add Object tool this was used, but could’ve worked better.
    Most feedback was still given after it became non-experimental.
    In the alpha phase, experimental features can be enabled by default more often.
Campbell asked about how we feel about the workboard; if we find it useful.
    Release column is very useful.
    In general the workboard can be useful, but of course there are many tasks, it’s not too organized.
    Julian suggests that’s probably fine for now. Active tasks can be organized well, besides that, it’s more important to have an honest view of the state of the module than to have a clean workboard. (Don’t sweep issues under the rug.)
    For bigger projects, create (sub-)projects and milestones more often. Like done for Geometry Nodes and the Asset Browser.
    Try to assign the “Good First Issue” task more often. We can promote such issues to contributors then.
    Papercuts
        We could make more use of the papercuts workboard too.
        Preparing a list of easy to solve papercuts could help getting contributors interested.
        On the other hand, that would require more patch review and helping.
        For now the papercuts simply aren’t our focus. It’s still a good idea to collect them, hopefully we can give them more attention before too long.

2.92 Release

Bug sprint
    Work on classifying reports (60+ at beginning of the bug sprint)
    Module members are welcome to help with this.
Add object tool
    Use “Default” orientation when not mouse hovering and object. Otherwise, “Surface”.
    Make axis switching an option (off by default).
    Pablo can check if further design tweaks (size, color, opacity, etc.) should be done.

2.93 Release

Asset Browser
    Categories could be created dynamically, e.g. IDTypeInfo could have a data-member or callback to define a category. Non-ID assets could provide it in a similar way.
    The Blender Institute organized things so the project can be worked on for 6-8 weeks by a squad of 5+ people, starting Feb 1.
    Milestone 1 and pose libraries should be talked this way.
    More information should soon be published by the Institute.
Tool System
    Campbell will be involved with the Asset Browser the coming weeks, has less time for the tool system.
    He will try to squeeze time for keymap work in (alternative keymap using the gizmos by default; hold Alt to activate gizmo from anywhere).
    All sorts of polish could be done, mostly gizmos to be added or improved, not so much on the tool system side.
    Help welcome.
    Extended Camera Gizmos (T57234 6):
        Better not implement 2D widget support (number buttons, menus, etc.) for gizmos yet, but we could do it in future.
        For now button-like gizmos can stay simple (no keyframing, text input, etc.)
    Add Object Tool: Plane & Circle will be added as “Good First Issue”.

notes summary

User Interface

Participant: Julian Eisel.

Sculpt, Paint, Texture

Participant: Pablo Dobarro.

  • Any updates from Campbell on the sculpt annotation crash ?
    • No updates other than poking Campbell in the tracker.
  • Still no updates on the dyntopo work by Joe Eagar.
  • Draw manager patch/branch for EEVEE + sculpting is waiting the multi-res discussion .
  • Pablo Dobarro to get Julien Kaspar’s buy in for texture based sculpting
    • He will show him a working prototype.
    • Dalai will check it out as well.

VFX & Video

Participants: Richard Antalík, Sergey Sharybin.

  • Motion tracking:
    • Small fixes and improvements.
    • Sebastian Koenig, Aaron Carlisle are working on UI updates, new tools-based workflows - D10198 .
    • Camera intrinsics design awaits review - T82645 .
  • Compositor
    • Relative space patch awaits final accept - D8952 .
    • Fix for mask node in compositor needs design review, sounds related to D8952 , but need to dig deeper - D10126 .
  • Module
    • Workboard needs to be organized.
    • There are more patches and designs to review.
    • More developers can be more involved as module members (e.g., Monique).
  • VSE
    • Sergey needs to catch up with bigger patches, and the state of the VSE 2.0 project.
    • Project is yet to reach the territory of massive perceived value for the users.

Grease Pencil

Participants: Antonio Vazquez, Falk David.

  • Antonio is finalizing the patch to libharu
    • The work is already in the temp-gpencil-io branch.
    • The only missing bit are IFDEFs to build blender without libharu.
  • Filling grease pencil for disconnected strokes.
  • Curve editing in grease pencil has no manual (!)
    • Falk David is working with Aaron Carlisle for 2.92 already.
  • Draw mode will support multi-frame
  • Bezier Curve native stroke:
    • Only Edit mode will exist and will allow edit curves and/or strokes.
    • Operators to convert Stroke to Curve and Curve to Stroke.
    • Brush advanced setting to create automatically curve data using any tool.
  • Add visual feedback in Dopesheet
    • Need talk with Hans Goudey.
    • Matias Mendiola will prepare a mockup to show the idea.
    • Antonio will also reach to Sybren to keep the animation module in the loo

notes Summary

Notes

Cycles

  • Job posting for Cycles senior software engineer at the Blender Foundation
  • Alembic procedural patch updated by Kévin to work more like proxies, Brecht will review.
  • Stefan notes the Cycles standalone repo has no been updated, he will look into it himself and ask Brecht for help if needed.
  • Stefan also proposes to track the Blender LTS in a Cycles standalone repo branch, for studios that are using Blender LTS along with another Cycles implementation like usdHydra. Brecht agrees with the idea, but to keep amount of work under control perhaps such a branch would be updated once per release along with master, rather than the more frequent Blender LTS releases.

Eevee

  • New depth of field implemented by Clément under review
  • Clément focuses on bugfixing for the 2.92 release
  • Thomas reports AMD has fixed the normal bug in the driver, expected to be in the next driver release. We already have a workaround in the latest LTS and upcoming release, but this driver update will help users with other Blender versions.

Render Pipeline

9 Likes

Somebody knows why?
And where we could find now updates in such nice package?

I wouldn’t be surprised if the reason is to not overload the devs. with meetings. They already have Tuesday Talks, module meetings, and now the sprint/scrum meetings. There is a line where over-management starts to occur and productivity plummets.

1 Like

Bcon3, so no much is happening except small thing from other developers

and:


:d

1 Like

Not overloading devs with meetings is great, but I was always looking forward to the meeting notes every Monday. Much as I like Blender Today, I don’t have an hour to listen to it in my day.

In lieu of actually holding meetings, it’d be nice if there was a summary of the week for us users every Monday. Something short and sweet you can read in two minutes.

5 Likes

There will still be the weekly summary, just no formal meetings. We still have to do weekly reports, and developers are free to add relevant announcements in the summary. (Some info here.)

8 Likes

Announcements

2.92

  • 2.92 bcon4 on 17 February.
    • We will go back to using release_candidate tags.
  • High-frequency Wintab tablet input will be removed since it introduced many problems for old drivers. Windows Ink can be used instead when available. In 2.93 we plan to only support Windows Ink.

2.93

  • 2.93 bcon2 on 17 February.
  • Python 3.9 support has landed for 2.93 alpha.
    • This has ended Blender support for Windows 7 and 8.
    • The new minimum requirement is Windows 8.1.

Modules

Grease Pencil

  • New features for grease pencil fill tool and draw mode:

GREASE PENCIL IMPROVEMENTS | Blender 2.93

VFX & Video

  • Sebastian Koenig and Sean Kennedy have accepted a task of being technical artists in the Compositor area of the module!
  • Richard is working on improve proxy building performance D10394 .
  • Habib Gahbiche is working on the anti-alias node for compositor D2411 . Compositor artists and developers are welcome to provide design review and do tests. Habib started discussion here .

Projects

Geometry Nodes

  • Last week the focus was on “everything nodes design”.
  • Final design docs will be prepared and shared later.
  • This week starts the sprint with the focus is on attribute workflow.

Asset Browser & Pose Library

  • Design discussions continued last week.
  • Final design docs will be prepared and shared later.

New Features and Changes

(From the last 3 weeks)

Geometry Nodes

  • Collection Info Node (commit ) (Sebastian Parborg)
  • Volume to Mesh node (commit ) (Jacques Lucke)
  • Attribute Proximity Node (commit ) (Victor-Louis De Gusseme)
  • Attribute Combine and Separate XYZ nodes (commit ) (Wannes Malfait)
  • Attribute Randomize node: add operation setting (commit) (Hans Goudey)
  • Attribute Math node: support all operations (commit) (Hans Goudey)
  • Align Rotation to Vector node: support fixed pivot axis (commit ) (Jacques Lucke)
  • Join Geometry node: use multi-input socket (commit ) (Fabian Schempp)
  • Allow attribute nodes to use different domains (commit ) (Hans Goudey)
  • Attribute interpolation between domains (commit ) (Jacques Lucke)
  • Make instances real on-demand (commit ) (Hans Goudey)
  • Multi-Input sockets (commit ) (Fabian Schempp)

Rendering

  • Eevee: improved Depth of field (commit ) (Clément Foucault)
  • Cycles: Dwivedi guiding for path-traced subsurface scattering (commit ) (Lukas Stockner)
  • Cycles: shared AOV settings with Eevee (commit ) (Jeroen Bakker)
  • OpenColorIO: upgrade to version 2.0.0 (commit ) (Brecht Van Lommel)
  • Baking: support vertex color baking of normal material, UV discontinuities (commit ) (Brecht Van Lommel)
  • Sky Texture: change Nishita Altitude to use unit system (commit ) (Marco)

Grease Pencil

  • Fill tool improvements (commit ) (Antonio Vazquez)
  • Multiframe support in Draw mode (commit ) (Antonio Vazquez)
  • Basic block display in Dopesheet (commit) (Antonio Vazquez)
  • Move Autofit parameter from topbar to advanced panel (commit) (Antonio Vazquez)

User Interface

  • Windows: always show child windows on top of main window (commit ) (Harley Acheson)
  • macOS: use system generated document icon (commit ) (Johannes Jakob)
  • Keymap:
  • Add ‘Confirm On Release’ option for radial control (commit) (Juanfran Matheu)
  • Expose Precision Key for transform (commit ) (Germano Cavalcante)
  • Outliner: enable render visibility column by default (commit ) (Nathan Craddock)
  • 3D viewport: expose the 3D views active object in all modes, even when hidden (commit ) (Campbell Barton)
  • Node Editor: multi-input node socket spacing and interaction (commit ) (Fabian Schempp)
  • Add Object Tool: make automatic axis selection an option (commit ) (Campbell Barton)

Python API

  • Python was upgraded to version 3.9.1 (new features ).
  • Option for render engines to delegate Freestyle render to Eevee (commit ) (Miguel Pozo)

Other

  • Subdivision Surfaces
    • Expose all UV interpolation options (commit ) (Sergey Sharybin)
    • Use better default UV interpolation (commit ) (Sergey Sharybin)
  • FFmpeg: improve multi-threading settings ((commit ) (commit ) (Sergey Sharybin, Peter Fog)
  • Images: Flip image operator (commit ) (Pablo Dobarro)

Weekly Reports

Weekly report links
14 Likes

New blendercoders article from Ton:

6 Likes

In short, don’t fix what isn’t broken, but identify the improvements that can be made to the current development model.

It is a move that is lower risk and potentially leads to lower reward, but it also means a higher chance of avoiding a development blunder that could take months or even years to climb out of (which in turn negates any benefit a new model might have).

Announcements

  • Habib Gahbiche (zazizizou) was granted commit access to help the unittest framework project. Welcome!
  • Module teams for core Blender Development blog post
    • New Core module.
    • New Rendering module with EEVEE and Cycles.
    • Better defined responsibilities for the module owners and members.
  • Render Modules blog post .
    • There is now a single Rendering module.
    • Brecht focuses on Cycles again instead of overall Blender architecture.
    • Cycles module is looking for artists to join.
  • Building with Python 3.10 is now supported, the official 2.93 release will remain on Python 3.9.

Python API

Modules

VFX & Video

  • Work was concentrated on making proxy building performance patch (D10394 ) to be ready for artists testing.
  • There are some new patches from the community which needs to be reviewed.

Projects

Geometry Nodes

  • Sprint #9 wrap up:
    • Error messages.
    • Cycles attributes rendering.
    • Convert geometry nodes to regular mesh at the end of the modifier.
    • String input node (community patch).
    • Simple subdivision node (community patch).
  • Sprint #10 extended sprint with the “attribute” workflow theme:
    • That will make it 3 weeks in total, one extra from original planning.
    • Attribute search to be finished with a polished UI.
    • Spreadsheet editor (minimum to be master-ready).
  • EEVEE attributes rendering is still pending.
    • Clément doesn’t have time to help but will give some guidance.
    • Target is Blender 2.93.
  • New sample files in the download page .

New Features and Changes

Weekly Reports

Summary

Meeting Notes:

Summary

Sculpt Expand

  • Pablo did an overview and demo of Expand. The initial impression is positive.
  • Julien and Daniel will try it for the following days. Pablo will start cleaning up the code to get it ready for merge.
  • We agree on merging it as soon as possible (2.93) with limited functionality and features for Multires and Dyntopo.
  • Some of the UI namings of its options (Geodesic distances, Topology diagonals…) can be confusing as they refer to implementation details. We will revisit this in the patch review.

Matcaps

Matcaps were included in 2.80 using a call for content from the community. These matcaps only include a diffuse pass. In 2.81, separate specular pass support was added to matcap rendering, but none of the current matcaps was using this feature because we don’t have access to all the contributed source files. In order to solve this and continue improving matcap rendering, we decided to handle the design of the matcaps ourselves.

  • Daniel created a file recreating all current matcaps so we could extract diffuse and specular as separate layers.
  • We went through all current matcaps to discuss a new default set to ship with Blender, focused on functionality. We agree on the current set of matcaps to be the default:
    • Gray diffuse
    • Gray with high specular light
    • White diffuse for painting colors
    • White for painting colors with high specular
    • Tinted with more saturated rim lights
    • Black gradient
    • Surface debugging gradient
    • Surface debugging gradient fresnel
    • Vertical light with specular

Other topics

  • Multires Displacmenet Baking: Pablo will investigate the commit pointed by Germano in blender.chat (https://developer.blender.org/rBe7811ce0c41652525545989bb1dfce1c8ab2b46b ) to see what the status of that is. No other news regarding its development.
  • We agree on adding a global smooth strength factor property as part of Sculpt to control the intensity of smoothing without changing to the smooth brush. Pablo will make a patch for this soon.
  • Daniel reported some bugs in the Scene Project tool related to incorrect and noisy projection. All those bugs (and some more) are now fixed in the branch. The tool should now be ready for master.
  • Daniel suggested an overlay/cursor option to show the sculpt pivot when using the transform tools. Pablo will try to implement a prototype in sculpt-dev.
  • Daniel suggested a way to implement lasso projection for the gesture. Pablo will try to implement a limited version of that in sculpt-dev, as the proposed behavior requires too many hacks in the code.
  • Daniel suggested a tool for adding separate volumes by replicating a mesh along the stroke and then remesh all new geometry. Pablo will try to implement a prototype for this, but probably will have too many limitations and UI issues to be good enough for master
  • Julien suggested a tool for sculpting and replicating shapes along curves. Pablo will make a prototype of a tube creation brush, but probably more advanced functionality related to curves should be implemented in the curve object.
  • Julien suggested cleaning up the mask pie menu by creating a Mask Filter. Pablo will work on this.
  • Julien showed a proposal for cleaning up the UI and show only the most used features. We agree that it needs a broader discussion with the UI team to handle these kinds of changes.
  • Pablo suggested discussing the patch for cleaning up the keymap (https://developer.blender.org/D10230 ). We agree on addressing only the part related to context menus and obsolete operators in that patch, without removing any brush entries. We still need to decide how to handle brushes, but that should be part of the brush management project. Pablo pointed out that brush management and switching should not be part of the general keymap.
  • Pablo mentioned the technical documents he wrote last week about Multires limitations and mesh data representation design. He pointed out that before making any decisions regarding these topics, we should have a clear idea (both for sculpting and texture painting) of which techniques, workflows, and styles we want to focus on. After that, we can start making coherent technical decisions for updating the foundations of these modes for the following years. There will be further discussions about this as it is the main blocking topic for new development.
Summary

Notes

Cycles

  • macOS: Embree and OpenImageDenoise are now available for ARM builds, based on work by Apple, Stefan and Brecht. SIMD optimizations to Blender and Cycles using sse2neon will be committed next.
  • Patrick asks about ARM optimizations for Linux. Brecht explains nearly all of the change are independent of the operating system, so getting all the same changes working there should be possible. make deps script will likely need some fixes to work on ARM Linux. In general patches to make these optimizations work on Linux are welcome.
  • Kévin is working on optimizations for transfer data from the CPU to the GPU (for OptiX), based on compressing data on the CPU and then decompressing it on the GPU. Kévin also works on prefetching support for the Alembic procedural, to prefetch a specified number of frames to balance memory usage / startup time and playback performance.
  • AMD Radeon Image Filter patch was updated. Brecht will review, code generally looks good but has not tested yet.
  • Stefan did a merge of the Blender repo into the standalone Cycles repo, Brecht will review. Some discussion about how to do branching and tagging. Suggestion is to have branches for LTS matching Blender branch names. master can be updated as it is now, once for every Blender release from the release branch. For version number we’ll switch to match Blender versions, to make the connection obvious.

Eevee

Render Pipeline

  • OpenColorIO 2.0 upgrade was committed. Still remaining is some work to take advantage of the new features.
  • Jeroen continues work on improving Crytpomatte workflow in compositor.
Summary

Since the Last Meeting / Announcements

  • Announcement: Sculpt, Paint & Texture module is going to make a generic attribute painting system. This will also impact weight painting, which will become official part of that module. Once generic attribute painting is implemented, the weight paint specific responsibilities can go to Animation & Rigging.
    • Sebastian: When did Topology Mirroring last work? He suggests to use UV maps for this, and mirror in UV space. This could be made multi-threaded & fast. Currently it uses a mapping structure from the whole mesh, which is failing (and has been for a while). This in light of T84520 , in his investigation he found lots of other things not working well. Still uncertain how much time he can spend on fixing these, though.
    • Weight Paint operators that use symmetry settings should expose this more clearly to users. For example in redo panel. T85789

Short-term goals

  • T57003: Copy visual pose and paste over frame range
    • On hold due to Sybren’s work on the Asset Browser / Pose Library. It is a part of the envisioned workflow with the Pose Library, though, as it should be possible to copy-paste poses between blend files.
    • Bassam: will the Asset system take external and non-blender libraries into account? Sybren: yes, in the sense that the currently envisioned design allows for this. Implementation will come later.
  • T83068: Motion Paths: Refresh all
    • Only feedback so far: it’s going to be slow. Since refreshing all motion paths one by one manually will be even slower, all present see this as not a problem.
  • T84520: Confusing Symmetry settings in Weight Painting : Sebastian Parborg is working on this.
    • He wants more feedback from riggers and other artists using the feature.
    • Bassam: put it in a branch & give a test build? From a superficial looks of the descriptions it in the chat it’s good.
    • Sybren & Sebastian: test builds for patches/branches are going to be automatic at some point; James Monteath (employed by Blender Institute) is working on this.

Other Topics

  • Google Summer of Code
    • Should be technical, non-docs, and something new.
    • Bassam: It could be interesting for a student on Rigify improvements. Sybren: could be, but easy to make the work too fuzzily defined, making it too large a project for a GSoC.
    • Bassam: integrate Rigify with asset system? Probably too early, maybe next year.
    • Sebastian: implicit skinning, has been tried a few times in the past but people dropped out.
    • Sebastian: students are working half-time, so smaller projects.
  • Action Baking: how far can we stretch the current code, and how can we implement a future-proof version?
    • Wayde is working on several patches. He says the current code is not too bad in terms of complexity, once you get a hang of it.
    • For improving it to make it more future-proof, he needs more info from animators on what they’d want from the system.

Help Needed

  • T82932: Mirror Pose: Custom center of symmetry
    • Sebastian: we should have is customizable, pick anything and it’ll mirror around that point. For bones the bone name stays relevant for mirroring, but bones should also be pickable as mirror center.
    • Bassam: you could 3D cursor or active object, depending on what’s chosen in the 3D Viewport as pivot option. Luciano told him earlier that he didn’t like that, but he’s not available to join the meeting today.
    • Demeter: Pablo Fournier also asked him for something like this.
    • Sebastian: could be a per-bone option, like “these bones mirror around that bone”, so becomes more addon-ish scripting than core feature.
    • Bassam: maybe Blender could expose some generic mirroring code that add-ons could use to simplify the implementation of custom mirroring add-ons?
    • Sebastian: yes, something like that is already on the radar, where the operator is given a transform it can use for mirroring.
    • Bassam: maybe not enough, as f.e. 8 selected bones actually could consist of two groups each with their own custom pivot point.
  • Side-discussion when talking about the pivot point:
    • Sybren: this touches on Active vs. Selected + using an unselected Active as pivot point. Sebastian: very fragile, as one mis-click changes the active selection.
    • Bassam: box-select is faster than click-select (heard from other animator, also confirmed by Jeremy and Sebastian), maybe box-select should also set the active bone?
    • Sebastian: box-select also selects everything, while click-selects has logic to toggle between overlapping elements. Might be two things combined, StarCraft style box-select being faster for users AND click-select being slower to respond in Blender.
    • Bassam: OpenGL Depth Picking was reported as influencing this a lot, but unknown in which direction.
    • Jeremy confirmed click-select is slow.
    • Demeter: How about alt-click to select from a list of overlapping bones, similar to overlapping objects? Demeter will create task for this, Sebastian can implement.

Other

  • Christoph: discuss the idea of Time Selection. It could be interesting to try out in smaller context to see what works.
  • Jeremy Bot: bone pivot point should get in Blender. Mostly a matter of deciding where in the UI the option for pivot point position is placed.
    • Jeremy: Should not be option per bone, but global option. If you need it per bone, custom bone shapes are preferred then. All agree.
    • Bassam: The option to display axes is on the armature already, and wherever that option is, the slider could go next to that. With the current “Display Axes” option, this means that the pivot point becomes an option armature.
12 Likes

Is there a reason why Blender moves its Python-Version from VFX Reference platform?

There is discussion here and here.

2 Likes