Skip to content

💧 Systems

Description

OmniGibson's Systems represents scene singletons that encapsulate a single particle type. These systems provide functionality for generating, tracking, and removing any number of particles arbitrarily located throughout the current scene.

Usage

Creating

For efficiency reasons, systems are created dynamically on an as-needed basis. A system can be dynamically created (or referenced, if it already exists) via scene.get_system(name), where name defines the name of the system. If you do not wish to initialize a system when refrencing it, e.g. for performance reasons, use the force_init flag: scene.get_system(name, force_init=False). For a list of all possible system names, see scene.available_systems.keys().

Runtime

A given system can be accessed at any time via scene.get_system(...). Systems can generate particles via system.generate_particles(...), track their states via system.get_particles_position_orientation(), and remove them via system.remove_particles(...). Please refer to the System's API Reference for specific information regarding arguments. Moreover, specific subclasses may implement more complex generation behavior, such as VisualParticleSystems generate_group_particles(...) which spawn visual (non-collidable) particles that are attached to a specific object.

Types

OmniGibson currently supports 4 types of systems, each representing a different particle concept:

GranularSystem


Represents particles that are fine-grained and are generally less than a centimeter in size, such as brown rice, black pepper, and chia seeds. These are particles subject to physics.

Collides with...
  • Rigid bodies: Yes
  • Cloth: No
  • Other system particles: No
  • Own system particles: No (for stability reasons)
rgb
FluidSystem


Represents particles that are relatively homogeneous and liquid (though potentially viscous) in nature, such as water, baby oil, and hummus. These are particles subject to physics.

Collides with...
  • Rigid bodies: Yes
  • Cloth: No
  • Other system particles: No
  • Own system particles: Yes
rgb
MacroPhysicalParticleSystem


Represents particles that are small but replicable, such as pills, diced fruit, and hair. These are particles subject to physics.

Collides with...
  • Rigid bodies: Yes
  • Cloth: Yes
  • Other system particles: Yes
  • Own system particles: Yes
rgb
MacroVisualParticleSystem


Represents particles that are usually flat and varied, such as stains, lint, and moss. These are particles not subject to physics, and are attached rigidly to specific objects in the scene.

Collides with...
  • Rigid bodies: No
  • Cloth: No
  • Other system particles: No
  • Own system particles: No
rgb