SuperAPI AI Directory

blender-physics

Design & creation

View repository

Updated 10-16 08:35

About this skill

blender-physics

Typed physics and dynamics tools for AI-assisted scene assembly. Host-specific cache limitations are explicit; this is not a claim of complete API coverage.

Capabilities

Domain Tools
Rigid body add_rigid_body, set_rigid_body_properties, remove_rigid_body, list_rigid_bodies, set_rigid_body_world_settings, bake_rigid_body_simulation, clear_rigid_body_bake
Rigid body constraints add_rigid_body_constraint, remove_rigid_body_constraint, list_rigid_body_constraints
Soft body add_soft_body_modifier, set_soft_body_settings
Cloth add_cloth_modifier, set_cloth_settings
Collision add_collision_modifier, set_collision_settings
Force fields add_force_field, remove_force_field, list_force_fields
Particle systems add_particle_system, set_particle_system_settings, list_particle_systems
Cache / bake bake_simulation, clear_simulation_cache, get_simulation_status, list_simulation_modifiers

Maya parity

Maya Blender equivalent
nCloth add_cloth_modifier
nParticle add_particle_system
nHair set_particle_hair + set_particle_children
nParticle instancing set_particle_instance
nConstraint add_rigid_body_constraint
Bifrost fluid add_fluid_modifier + set_fluid_settings
Paint effects / wetmaps add_dynamic_paint_modifier + add_dynamic_paint_surface
Fields (gravity, wind, turbulence) add_force_field

Mantaflow fluid and Dynamic Paint

list_simulation_modifiers already reported FLUID and DYNAMIC_PAINT modifiers, but nothing could create or tune them. Use these tools to close that gap:

Tool Description
add_fluid_modifier Add a Mantaflow DOMAIN, FLOW, or EFFECTOR modifier
set_fluid_settings Tune modifier properties plus domain_settings (resolution, viscosity, noise)
add_dynamic_paint_modifier Add a Dynamic Paint CANVAS (receives paint) or BRUSH (emits paint)
set_dynamic_paint_settings Tune the canvas or brush settings block
add_dynamic_paint_surface Add a PAINT, DISPLACE, WEIGHT, or WAVE surface to a canvas
list_dynamic_paint_surfaces Inspect the surfaces configured on canvas modifiers

Domain options live on modifier.domain_settings, so set_fluid_settings takes a separate domain_settings object; only a DOMAIN modifier exposes it. Use resolution_max for domain resolution — resolution_divisions was removed in Blender 2.82 and exists on no supported version. The domain, flow, and effector settings blocks are all None while fluid_type is NONE; they appear once the matching type is set.

Settings that do not take effect are named in message, not just in the response context. A wrong or version-specific property name is skipped rather than rejected, so a response can be a success without having done everything asked. Those names go into the message (for example "Not applied (unsupported by Blender 4.5.13): resolution_divisions") and into the not_applied field; skipped is kept as an alias. Check not_applied after any call that passes a settings dict. The property lists stay a pass-through deliberately: a hard-coded allowlist would break the moment Blender renames or adds a property.

Fluid and Dynamic Paint baking is not exposed by these tools. bake_simulation only targets cloth, soft-body, and particle point caches and rejects anything else, so it cannot bake a fluid or paint cache. Bake those from the Blender UI or through bpy.ops via blender-scripting.

Mantaflow has no OBSTACLE, INFLOW, or OUTFLOW fluid type. Set fluid_type to FLOW and configure modifier.flow_settings.flow_behavior (INFLOW / OUTFLOW / GEOMETRY) and modifier.flow_settings.flow_type (SMOKE / FIRE / BOTH / LIQUID); obstacles are EFFECTOR with modifier.effector_settings.effector_type = 'COLLISION'. Passing one of the legacy names returns exactly which property to set instead of failing blind.

add_dynamic_paint_surface needs canvas_surfaces.new(), which some Blender builds do not expose. When it is missing the tool says so explicitly; add the surface with bpy.ops.dpaint.surface_slot_add() instead.

Particle hair, children, and instancing

Tool Description
set_particle_hair Switch a system between EMITTER and HAIR and set hair properties
set_particle_children Set child type and the rendered child count
set_particle_instance Instance a scene object per particle and control emitter visibility
bake_particle_system Bake or free the point cache of one particle system

add_particle_system already accepted instance_object_name and show_emitter; use set_particle_instance to change them later or to set render_type and particle_size.

Use rendered_child_count for the number of children to render: live RNA confirms it on every version from 3.6.5 to 5.2.1. child_nbr is the display amount, a different knob, and Blender 4.x removed it — passing it there fails with a message naming the replacement rather than writing to a different property. Point caches live on particle_system, not on the modifier.

Baking and cache-clearing tools mutate scene state; pass dry_run=true when you only need target discovery and frame-range validation.

bake_simulation and clear_simulation_cache operate on matching cloth, soft-body, and particle point caches in the current scene only. Use both exact object and modifier names to narrow the target. With no names, all supported matching caches are selected; any unsupported target aborts preflight before mutation. Collision-only, fluid, and dynamic-paint caches require their own host-specific workflows and never trigger a global cache fallback.

Dry runs do not change cache ranges, scene frames, selection, or baked state. Actual operations require Blender's context.temp_override and per-cache operator support, retain the scene range and selection, and return before/after cache state. Clear an already baked target explicitly before rebaking it. Native baking is monolithic: no mid-call cancellation is promised. On failure, inspect targets, completed_count, and mutation_state through the response and get_simulation_status before considering a retry.

The distinction between per-cache and scene-wide operators follows Blender's official point-cache API.