Physics

Part of the physics skill: these tools appear once it is loaded — by blender_enable_skill with physics, or by find_tool when a search returns one of them.

blender_add_physics

Adds a simulation to an object: rigid body, cloth, soft body, collision, fluid or dynamic paint, with settings. Rigid bodies need the animation played or the cache baked to move.

only adds · every call adds · stays inside Blender.

Parameter Type Required Default Description
name string yes — Name of the object as shown in the outliner.
type string yes — rigid_body (falls and collides), rigid_body_passive (static obstacle), cloth, soft_body, collision (obstacle for cloth, soft bodies and particles), fluid_domain, fluid_flow, fluid_effector, dynamic_paint.
settings object? — null Settings by Python name on the physics block, e.g. rigid_body {"mass": 2, "collision_shape": "MESH"}, cloth {"quality": 8, "mass": 0.3}, fluid_domain {"domain_type": "LIQUID", "resolution_max": 64}, fluid_flow {"flow_type": "LIQUID", "flow_behavior": "INFLOW"}.
JSON Schema
{
  "type": "object",
  "properties": {
    "name": {
      "description": "Name of the object as shown in the outliner.",
      "type": "string"
    },
    "type": {
      "description": "rigid_body (falls and collides), rigid_body_passive (static obstacle), cloth, soft_body, collision (obstacle for cloth, soft bodies and particles), fluid_domain, fluid_flow, fluid_effector, dynamic_paint.",
      "type": "string"
    },
    "settings": {
      "description": "Settings by Python name on the physics block, e.g. rigid_body {\u0022mass\u0022: 2, \u0022collision_shape\u0022: \u0022MESH\u0022}, cloth {\u0022quality\u0022: 8, \u0022mass\u0022: 0.3}, fluid_domain {\u0022domain_type\u0022: \u0022LIQUID\u0022, \u0022resolution_max\u0022: 64}, fluid_flow {\u0022flow_type\u0022: \u0022LIQUID\u0022, \u0022flow_behavior\u0022: \u0022INFLOW\u0022}.",
      "type": [
        "object",
        "null"
      ],
      "default": null
    }
  },
  "required": [
    "name",
    "type"
  ]
}

blender_remove_physics

Removes a simulation or the particle systems from an object.

may overwrite or delete · every call adds · stays inside Blender.

Parameter Type Required Default Description
name string yes — Name of the object as shown in the outliner.
type string yes — Which physics to remove: a kind from blender_add_physics, or particles.
JSON Schema
{
  "type": "object",
  "properties": {
    "name": {
      "description": "Name of the object as shown in the outliner.",
      "type": "string"
    },
    "type": {
      "description": "Which physics to remove: a kind from blender_add_physics, or particles.",
      "type": "string"
    }
  },
  "required": [
    "name",
    "type"
  ]
}

blender_add_particles

Adds an emitter or hair particle system to a mesh with count, timing, length and further settings.

only adds · every call adds · stays inside Blender.

Parameter Type Required Default Description
name string yes — Name of the mesh object.
type string — EMITTER EMITTER or HAIR.
count integer? — null Number of particles or hairs.
hairLength number? — null HAIR: length in metres.
frameStart integer? — null EMITTER: first frame of emission.
frameEnd integer? — null EMITTER: last frame of emission.
lifetime integer? — null EMITTER: frames a particle lives.
systemName string? — null Name for the particle system.
settings object? — null Further particle settings by Python name, e.g. {"render_type": "OBJECT", "instance_object": "Leaf", "particle_size": 0.1, "normal_factor": 2}.
JSON Schema
{
  "type": "object",
  "properties": {
    "name": {
      "description": "Name of the mesh object.",
      "type": "string"
    },
    "type": {
      "description": "EMITTER or HAIR.",
      "type": "string",
      "default": "EMITTER"
    },
    "count": {
      "description": "Number of particles or hairs.",
      "type": [
        "integer",
        "null"
      ],
      "default": null
    },
    "hairLength": {
      "description": "HAIR: length in metres.",
      "type": [
        "number",
        "null"
      ],
      "default": null
    },
    "frameStart": {
      "description": "EMITTER: first frame of emission.",
      "type": [
        "integer",
        "null"
      ],
      "default": null
    },
    "frameEnd": {
      "description": "EMITTER: last frame of emission.",
      "type": [
        "integer",
        "null"
      ],
      "default": null
    },
    "lifetime": {
      "description": "EMITTER: frames a particle lives.",
      "type": [
        "integer",
        "null"
      ],
      "default": null
    },
    "systemName": {
      "description": "Name for the particle system.",
      "type": [
        "string",
        "null"
      ],
      "default": null
    },
    "settings": {
      "description": "Further particle settings by Python name, e.g. {\u0022render_type\u0022: \u0022OBJECT\u0022, \u0022instance_object\u0022: \u0022Leaf\u0022, \u0022particle_size\u0022: 0.1, \u0022normal_factor\u0022: 2}.",
      "type": [
        "object",
        "null"
      ],
      "default": null
    }
  },
  "required": [
    "name"
  ]
}

blender_bake_physics

Bakes every physics cache of the scene up to a frame, or frees them; needed before rendering simulations.

only adds · every call adds · stays inside Blender.

Parameter Type Required Default Description
frameEnd integer? — null Last frame to simulate; the scene end otherwise.
free boolean — false Discard every cache instead of baking.
timeoutSeconds integer — 600 Seconds to wait for Blender, 1 to 600.
JSON Schema
{
  "type": "object",
  "properties": {
    "frameEnd": {
      "description": "Last frame to simulate; the scene end otherwise.",
      "type": [
        "integer",
        "null"
      ],
      "default": null
    },
    "free": {
      "description": "Discard every cache instead of baking.",
      "type": "boolean",
      "default": false
    },
    "timeoutSeconds": {
      "description": "Seconds to wait for Blender, 1 to 600.",
      "type": "integer",
      "default": 600
    }
  }
}