5.1.0
Operating System
Windows 11
GPU Information
- Model: rtx2060
- Driver Version:
No particle system extension
I am unable to find the particle system extension in isaacsim 5.0. how do I simulate particles in this new version? please help!
5.1.0
Windows 11
I am unable to find the particle system extension in isaacsim 5.0. how do I simulate particles in this new version? please help!
Hi, Isaac Sim supports PhysX particle-based simulation for fluids, cloth, and granular materials. Here’s how to set it up:
1: Enable PhysX Particle System
First, enable the particle simulation feature in your settings:
import carb.settings
settings = carb.settings.get_settings()
settings.set("/physics/physxParticles", True)
2: Create a Particle System
Create a particle system that will manage particle simulation parameters:
from isaacsim.core.prims import SingleParticleSystem
_Create particle_ system at specified path
particle_system = SingleParticleSystem(
prim_path="/World/ParticleSystem",
name="my_particle_system",
particle_system_enabled=True,
contact_offset=0.05, _Collision detection_ distance
rest_offset=0.04, # Particle spacing at rest
particle_contact_offset=0.04, # Particle-particle collision distance
solid_rest_offset=0.02, # Solid particle spacing
fluid_rest_offset=0.03, # Fluid particle spacing
solver_position_iteration_count=16, # Solver iterations for stability
max_depenetration_velocity=100.0, # Max velocity for collision response
max_velocity=1000.0 # Maximum particle velocity
)
_Initialize the_ system
particle_system.initialize()
3: Create Particle Material
Define material properties for your particles (friction, viscosity, cohesion, etc.):
from isaacsim.core.api.materials import ParticleMaterial
#_Create particle material for_ fluid-like behavior
particle_material = ParticleMaterial(
prim_path="/World/Materials/FluidMaterial",
name="fluid_material",
friction=0.1, _Surface friction_
particle_friction_scale=0.5, # Particle-particle friction multiplier
damping=0.0, # Velocity damping
viscosity=0.001, # Fluid viscosity (0 = no viscosity)
vorticity_confinement=0.0, # Vortex preservation (for fluids)
surface_tension=0.0074, # Surface tension force
cohesion=0.025, _Particle attraction force_
adhesion=0.0, _Adhesion to_ rigid bodies
gravity_scale=1.0, # Gravity multiplier
lift=0.0, # Aerodynamic lift coefficient
drag=0.0 # Aerodynamic drag coefficient
)
#_Apply material to particle system_
particle_system.apply_particle_material(particle_material)
4: Create Particle Geometry
Now create actual particles using a mesh geometry:
from pxr import UsdGeom, Gf
from isaacsim.core.utils.stage import get_current_stage
import omni.physx.scripts.particleUtils as particleUtils
stage = get_current_stage()
#_Create particles from a mesh (e.g., fluid in container)
fluid_mesh_path = "/World/FluidMesh"
fluid_mesh = UsdGeom.Mesh.Define(stage, fluid_mesh_path)
#_Define_ mesh geometry (simple cube of fluid particles)
points = []
for x in range(10):
for y in range(10):
for z in range(10):
points.append(Gf.Vec3f(x * 0.05, y * 0.05, z * 0.05))
fluid_mesh.GetPointsAttr().Set(points)
#_Convert mesh_ to particles
particleUtils.add_physx_particle_system(
stage=stage,
particle_system_path=particle_system.prim_path,
contact_offset=0.05,
rest_offset=0.04,
particle_contact_offset=0.04,
solid_rest_offset=0.02,
fluid_rest_offset=0.03
)
#_Configure_ as fluid particles
particleUtils.add_physx_particleset_pointinstancer(
stage=stage,
path="/World/FluidParticles",
positions=points,
velocities=None,
particle_system_path=particle_system.prim_path,
self_collision=True,
fluid=True, _Enable fluid behavior_
particle_group=0,
particle_mass=0.01
)
5: Configure Physics Scene
Ensure your physics scene is properly configured:
from pxr import PhysxSchema, UsdPhysics
#_Get or create physics scene_
physics_scene = UsdPhysics.Scene.Define(stage, "/World/PhysicsScene")
#_Configure Ph_ysX scene parameters
physx_scene = PhysxSchema.PhysxSceneAPI.Apply(physics_scene.GetPrim())
physx_scene.CreateEnableGPUDynamicsAttr(True) # GPU acceleration
physx_scene.CreateBroadphaseTypeAttr("MBP") # Multi-box pruning
physx_scene.CreateSolverTypeAttr("TGS") # _Temporal Gauss-Seidel_ solver
You can also create the particle system using the menu: Create → Physics → Particle System to add a PhysX particle system prim to the scene and configure it.