Running Blender from the Command Line

Blender is a very useful professional open source 3D modelling software for 3D graphics and animation among many other tools. Many things in Blender can be automated with Python and I often use Blender directly from the command line with Python scripts. Here are some quick commands and snippets that I frequently use.

First thing you need is a Python script which creates or works with a scene in Blender. In this Blender Scripts Cookbook are a few examples to get you started. In order to run a Python script in Blender you can simply execute the following command

blender -b -P myscript.py

This runs Blender in the background and executes myscript.py. Blender creates the basic scene preset with the cube, the lamp and the camera when you run the command. If you want to use an existing Blender scene, you can run the following command

blender myscene.blend -b -P myscript.py

In order to use arguments in the script which should be ignored by Blender, you can append -- to your command and append the arguments for the script. You just need to clean the arguments in Python of all the previous arguments before -- like in the next code snippet.

import sys

if "--" not in sys.argv:
	argv = []  # as if no args are passed
else:
	argv = sys.argv[sys.argv.index("--") + 1:]  # get all args after "--"

Sometimes it is handy to access other Python scripts or packages with relative paths from the folder of the script. This can be done by appending the absolute path to the sys.path variable as follows

import bpy

# Check if script is opened in Blender program
if(bpy.context.space_data == None):
	cwd = os.path.dirname(os.path.abspath(__file__))
else:
	cwd = os.path.dirname(bpy.context.space_data.text.filepath)
		
sys.path.append(cwd)

where the bpy package is the access to the Blender/Python API. In order to acces files with relative paths from the script folder you need to append their path to cwd like filepath = os.path.join(cwd, RELATIVE_PATH_TO_FILE).

Here are further Resources for running Blender in the command line terminal. And in the Blender Scripts Cookbook are many good examples for Python scripting in Blender.