Domain Randomisation for particles

I’m trying to randomise the properties of particles for a robot learning task. What I’m interested in are particle size and particle friction. The following code creates a particle system and a particle material based on a passed configuration. The ranges I’m looking at are between [0.9, 1.1]mm for the particle diameter and [0.1, 2] for the particle coefficient. The mass is 0.0000000033 kg. All others material properties but friction and mass are set as None. The code works fine until I hit friction coefficients larger than 1.4, after which the particles explode. I have tried adjusting the particle neighbourhood size as well as increasing and decreasing the factor between the particleContactOffset and the solidRestOffset, but so far without luck. Any help would be appreciated.

Isaac Sim version used is 2022.2.0 together with Isaac Orbit.

self.solidRestOffset = self.cfg.particleDiameter/2
      self.restOffset = self.solidRestOffset
      self.fluidRestOffset = 0.6 * self.solidRestOffset
      self.particleContactOffset = self.solidRestOffset * 2
      self.contactOffset=self.particleContactOffset
        
        self.particle_system = prims.ParticleSystem(self.path_prefix+"/particleSystem", simulation_owner='/physicsScene', 
            particle_contact_offset=self.particleContactOffset,
            contact_offset=self.contactOffset,
            rest_offset=self.restOffset,
            solid_rest_offset=self.solidRestOffset,
            fluid_rest_offset=self.fluidRestOffset,
            # enable_ccd=True,
            # max_neighborhood=2048
            )
        # Create a pbd particle material and set it on the particle system
        particle_material = materials.ParticleMaterial(self.path_prefix+"/particleMaterial", 
            friction=self.cfg.friction,
            particle_friction_scale=self.cfg.particle_friction_scale ,
            damping=self.cfg.damping,
            viscosity=self.cfg.viscosity, 
            vorticity_confinement=self.cfg.vorticity_confinement,
            surface_tension=self.cfg.surface_tension,
            cohesion=self.cfg.cohesion, 
            adhesion=self.cfg.adhesion, 
            particle_adhesion_scale=self.cfg.particle_adhesion_scale ,
            adhesion_offset_scale=self.cfg.adhesion_offset_scale,
            gravity_scale=self.cfg.gravity_scale,
            lift=self.cfg.lift ,
            drag=self.cfg.drag)
        self.particle_system.apply_particle_material(particle_material)

Hi @nradulov - Is there a reason you are using very old Isaac Sim version?

Thanks for your reply. It’s because orbit only supports isaac sim 2022.2.0/ and 2023.1.0/ 2023.1.1 . However the version supporting 2023.1.0 came with API changes that do not allow us to port our project from the older orbit version. Hence the only version left is 2022.2.0. 2022.2.1 might also be a possibility but it was never validated by the orbit team.