Blender Stack Exchange is a question and answer site for people who use Blender to create 3D graphics, animations, or games. It's 100% free, no registration required.

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I have had a look at Baking smoke on a headless machine, however, I cannot figure out my way from there to bake dynamic paint on a headless machine. This is what I have come up with by now:

import bpy

for scene in
    for object in scene.objects:
        for modifier in object.modifiers:
            if modifier.type == 'DYNAMIC_PAINT':
                override = {'scene': scene, 'object': object}

However, I get:

PyContext 'window' not found
PyContext 'window' not found
PyContext 'window' not found
Error: Bake failed: invalid canvas
Error: Bake failed: invalid canvas

Traceback (most recent call last):
  File "/home/horazont/", line 8, in <module>
  File "/usr/share/blender/2.69/scripts/modules/bpy/", line 186, in __call__
    ret = op_call(self.idname_py(), C_dict, kw, C_exec, C_undo)
RuntimeError: Error: Bake failed: invalid canvas

Blender quit

Which parameters do I have to pass to the operator?

share|improve this question
up vote 5 down vote accepted
import bpy['Cube']
modifier=obj.modifiers['Dynamic Paint']



Objects can be both a brush and a canvas. The baking is done by the surfaces of the canvas. So an additional iteration is necessary.

for modifier in obj.modifiers:
    if modifier.type=='DYNAMIC_PAINT':
        #additional iteration
        for canvas_surface in modifier.canvas_settings.canvas_surfaces:
share|improve this answer
Made an edit. modifier.ui_type is used by the user interface to remember the state of the tab and does not indicate wether the object is a brush or a canvas. in fact it can be both. – pink vertex Feb 4 '14 at 15:44

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.