4
$\begingroup$

I'd like to use Blender's physics engine/rendering capabilities headlessly (so it would have to be via command line). I'd like to run a lot of little physics experiments (thousands) on a server. Python scripting will be involved in this, naturally-not sure how to do this without using the logic editor, though...I need some way to be able to run these scripts and have Blender output some sort of physics "movie" without having to deal with the GUI. Is this possible?

$\endgroup$
7
  • $\begingroup$ Yes, this is quite possible. Some related questions: blender.stackexchange.com/q/3061/599 and blender.stackexchange.com/q/724/599 $\endgroup$
    – gandalf3
    Commented Jul 29, 2015 at 0:33
  • $\begingroup$ I'm not sure about running the game engine without a gui, but you could use the built in rigid body sim. See blender.stackexchange.com/q/34400/599 $\endgroup$
    – gandalf3
    Commented Jul 29, 2015 at 0:45
  • $\begingroup$ Just a note, the physics engine in Blender is not physically-acurate nor energy conserving. I would evaluate the simulation results carefully. $\endgroup$
    – Mike Pan
    Commented Jul 29, 2015 at 6:17
  • $\begingroup$ The physics engine used by the BGE is the Bullet engine. I suggest to check if you can find an application that uses Bullet too but provides you with a gui-less processing. The BGE is designed to serve games. Typically they need video output. An application focusing on physics simulation might fit your needs better. $\endgroup$
    – Monster
    Commented Jul 29, 2015 at 11:34
  • $\begingroup$ I'd like video output (hence the use of blender), I just want to run it without the GUI $\endgroup$
    – 29374819
    Commented Jul 29, 2015 at 19:17

1 Answer 1

3
$\begingroup$

Have you tried blender --background -P your_script.py -- py_argv1 py_argvN?

% blender --help|grep background
-b or --background
    Run in background (often used for UI-less rendering).
    Enable time profiling for background jobs.
    Playback <file(s)>, only operates this way when not running in background.
    # blender --background test.blend --render-frame 1 --render-output '/tmp'
    # blender --background --render-output /tmp test.blend --render-frame 1
    # blender --background test.blend --render-output /tmp --render-frame 1
$\endgroup$
1
  • $\begingroup$ how do you enable time profiling for background jobs in 2.83 from the command line? $\endgroup$ Commented Jun 4, 2020 at 20:11

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .