Baking smoke on headless machine I have a linux vps that has some spare resources left from main activity. I can not get the GUI working, but I was thinking if there is a way to use it for baking with python script.

I see that there is an operator: 

bpy.ops.ptcache.bake(bake=True) 


But what is the right context for it?

Also if anyone has ideas to get the GUI working under Ubuntu VPS, that would be much appreciated.
Baking smoke is very similar to baking fluid, so I will quote brecht's answer:


  It's a bit more complicated than it could be because fluid simulating baking is only exposed as an operator. That means it expects an active object in the context, which is usually provided by the user interface that is not available in background mode.


However, it is possible to override context manually, see the api docs.

So for a smoke simulation:

import bpy

for scene in bpy.data.scenes:
    for object in scene.objects:
        for modifier in object.modifiers:
            if modifier.type == 'SMOKE':
                if modifier.smoke_type == 'DOMAIN':
                    override = {'scene': scene, 'active_object': object, 'point_cache': modifier.domain_settings.point_cache}
                    bpy.ops.ptcache.bake(override, bake=True)
                    break


This will bake the selected cache for all domain objects in the file.

You can then run this python script in blender with

blender --background /path/to/file.blend --python /path/to/script.py


Or the short way:

blender -b /path/to/file.blend -P /path/to/script.py