Page MenuHome

Dependency graph cycles report only in the console
Confirmed, LowPublicKNOWN ISSUE


Blender Version
Broken: 2.79, 2.81, ...

Short description of error
When creating or loading files with dependency cycles issues there is no way of knowing of their existence without pro-actively checking the console.

Exact steps for others to reproduce the error
Open file:

Original report

Dynamic Paint seemingly breaks Shrinkwrap constraint

Blender Version
Broken: 2.81, 892c3891ed0b (2019-10-24 19:00)

Short description of error
Using a Shrinkwrap constraint on an empty with the target mesh having Dynamic Paint enabled makes the constraint "flicker" on and off visually.

Exact steps for others to reproduce the error

There's a plane with Dynamic Paint enabled and a DP brush object made of 3 cubes:

  • A normal 1 meter cube
  • A 0.5 meter cube, hooked to an empty Floor-constrainted directly to the plane. This one works as normal and stays on the plane.
  • Another 0.5 meter cube, but colored red. This one is hooked to an empty which is Floor-constrained to another empty Shrinkwrapped to the plane.

If you play the animation in this file, the red cube should go through the plane and maybe flicker.
If you remove the Dynamic Paint property from the plane and play the animation, the red cube should stay on top of the plane, like the other cube.

Event Timeline

This is still very disruptive...

What are the steps to reproduce the problem?

What are the steps to reproduce the problem?

Only way I found out how to reproduce this issue was with the method in the supplied file, described below:

  1. Create a Plane and a Cube. Move the cube above the plane.
  2. Create an empty and give it a "Shrinkwrap" Constraint. Parent it to the Cube, so that it's always right under the Cube.
  3. Add a "Floor" constraint to the Cube and pick the Empty. Set the Offset to 1.
  4. Make the Plane a Dynamic Paint Canvas, and make the cube a Dynamic Paint Brush.
  5. Select the Cube and go in Edit Mode. Make a duplicate cube by selecting the whole mesh and pressing Shift-D, thenselect just the duplicate cube and "Hook to a New Object" using Ctrl-H.

If you go back to Object Mode and move the entire cube object to under the plane, you'll find that the hooks start going upwards for no good reason.
If you remove the DP Canvas that's on the plane, the hooks will remain where they should be.

Firepal64 updated the task description. (Show Details)Dec 11 2019, 3:00 PM
Germano Cavalcante (mano-wii) changed the task status from Needs Triage to Needs Information from User.Jan 15 2020, 2:44 PM

Please provide the steps to reproduce the problem from the attached file.
I still can't reproduce the problem even baking and rebaking the dinamic paint.
Has the problem been fixed in one of the daily builds?

Philipp Oeser (lichtwerk) claimed this task.

I can confirm the behavior, it is present in the latest build, but this is a dependency cycle:

Dependency cycle detected:
  OBCube/Geometry Component/GEOMETRY_EVAL() depends on
  OBLeft/Transform Component/TRANSFORM_FINAL() via 'Hook Modifier'
  OBLeft/Transform Component/TRANSFORM_CONSTRAINTS() via 'ObConstraints -> Done'
  OBLeftFLOOR/Transform Component/TRANSFORM_FINAL() via 'Floor'
  OBLeftFLOOR/Transform Component/TRANSFORM_CONSTRAINTS() via 'ObConstraints -> Done'
  OBPlane/Geometry Component/GEOMETRY_EVAL() via 'Shrinkwrap'
  OBCube/Geometry Component/GEOMETRY_EVAL() via 'Dynamic Paint Brush'
Detected 1 dependency cycles

DP Brush could displace the plane (it doesnt in this file, but dependency graph is not as fine-grained to distinguish that), which would feed into the dependency chain and back to the position of the DP Brush... which is... a dependency cycle...

Afraid we have to close this (as this is working as intended -- it could be improved once, but this is outside the scope of this bugtracker... thx for the report anyways, feel free to comment again if issues persist...

Dalai Felinto (dfelinto) renamed this task from Dynamic Paint seemingly breaks Shrinkwrap constraint to Dependency graph cycles report only in the console.Jan 23 2020, 11:25 AM
Dalai Felinto (dfelinto) reopened this task as Confirmed.
Dalai Felinto (dfelinto) removed Philipp Oeser (lichtwerk) as the assignee of this task.
Dalai Felinto (dfelinto) triaged this task as Low priority.
Dalai Felinto (dfelinto) updated the task description. (Show Details)
Dalai Felinto (dfelinto) changed the subtype of this task from "Report" to "Known Issue".