Reacting to Events with Actor Triggers#
This example shows how Event Generation (isaacsim.replicator.incident) and Actor Synthetic Data Generation (SDG) (isaacsim.replicator.agent) can be wired together end-to-end without writing a single line of Python. You edit two YAML config files and drive the two extensions from their Omniverse windows.
At runtime, Event Generation fires a fire event in the warehouse, which dispatches a carb event; Actor SDG characters subscribe to that carb event through event_trigger and swap their behavior: pause briefly, walk to a safe point, stand still, and finally resume their wander routine.
Prerequisites#
Both extensions are enabled. Refer to Enable Extensions for the Actor SDG side; the Event Generation extension is enabled automatically by the same Action and Event Data Generation app launch.
Familiarity with the standalone tutorials is helpful, but not required:
How the Two Extensions Connect#
The two extensions have no direct API coupling. They connect through the carb event bus that every extension in a Kit app instance shares. Event Generation dispatches a named carb event when an incident fires, and Actor SDG’s event_trigger listens for that same name. A matching string is the only contract between them.
The dispatched event name is always:
isaacsim.replicator.incident.core.events/<event_name>
Replace <event_name> with whatever you put under FireEvent.name (or SpillEvent.name) in the Event Generation YAML. The extension interpolates the event name into the dispatched string exactly as written. Use underscores instead of spaces; a space in name causes the actor’s event_trigger lookup to silently fail.
Only FireEvent and SpillEvent dispatch carb events. ToppleEvent currently signals only within Event Generation and cannot drive an actor trigger. For the complete list of trigger types incidents support (including chaining one incident from another), refer to Triggers.
Step 3 - Launch the App#
From the Isaac Sim install directory:
./isaac-sim.action_and_event_data_generation.sh --/rtx/hydra/supportMultiTickRate=false
This opens isaacsim.exp.action_and_event_data_generation.full.kit, which enables both Actor SDG and Event Generation UIs. Two menu entries appear under Tools > Action and Event Data Generation:
Actor SDG – Actor SDG’s config window.
Event Config File – Event Generation’s config window.
Open both from the Tools menu and they dock side by side.
Note
The --/rtx/hydra/supportMultiTickRate=false override is required for fire effects
to render correctly during the FireEvent. Refer to
the multi-tick rendering warning
for background and alternative ways to apply the setting.
Step 4 - Set Up Actor SDG#
In the Actor SDG window:
Click the Select A Configuration File field (or paste the path to
agent_config.yaml).Once the path is set, click Set Up Simulation.
Internally this opens the warehouse stage, instantiates two warehouse_workers characters with their wander routine, and attaches a carb-event listener to each character already subscribed to isaacsim.replicator.incident.core.events/warehouse_fire. The subscription is live before you touch anything else.
Do not start the timeline yet. Avoid both Start Data Generation and the Play button, because Event Generation’s time countdown begins as soon as the timeline plays. Complete Step 5 first.
Step 5 - Set Up Event Generation#
Open the Event Config File window from Tools > Action and Event Data Generation > Event Config File if it is not already open. The menu entry only appears when the isaacsim.replicator.incident.ui extension is enabled, which the action_and_event_data_generation app launched in Step 3 does automatically. Then:
Use the Config File Path picker to select
incident_config.yaml.In the Stage window, select any box prim on a shelf (for example,
/Root/Box_21069from the Simple Warehouse stage).In the Property panel for the selected prim, click + Add > IncidentTagging > FlammableItem > Box.
Click Set Up Incident.
If you adapt this example to use SpillEvent or ToppleEvent, choose LeakableItem or LooseItem under + Add > IncidentTagging instead, before clicking Set Up Incident.
Internally, Event Generation reads the YAML, waits for navmesh baking, picks the tagged prim as the flammable target, and arms a time trigger that will fire at t = 4 s after the timeline plays. Nothing has fired yet.
The Global section’s Seed field should populate to 42, and the event list should show warehouse_fire.
Step 6 - Play and Watch#
You have two ways to start the simulation:
Play button – in the Toolbar on the left side of the viewport. It plays the timeline only and writes no data. Useful for previewing the event and behavior sequence.
Start Data Generation (Actor SDG window) – plays the timeline and runs the Replicator writers configured in the
replicatorsection to capture synthetic data.simulation_duration: 25.0stops playback automatically when the run completes;IRABasicWriteroutput appears under~/out_event_reactive_actors/in your home directory.
Either way, verify that you receive: