The Omniverse connector element is used to configure the connection between the AnyLogic model and the NVIDIA Omniverse scene.
An AnyLogic model may only have one Omniverse connector element; the presence of more is considered an error.
To configure the connection between the model and the USD scene, drag and drop the Omniverse connector element from the Presentation palette onto the graphical diagram of any agent of the model. Do not add the connector element to the experiment diagram, it won’t work that way.
In addition to the connector itself, this section also describes the Omniverse properties of other AnyLogic elements that are enabled when the connector is present in the model. See Miscellaneous elements below.
- General
-
Name — The name of the element. It is used to identify and access the element from code.
Ignore — If selected, the element is excluded from the model.
Visible on upper agent — If selected, the element will also be visible on the upper agent where this agent lives.
Visible — The visibility of the element. The element is visible if the specified expression evaluates to true, otherwise it is not visible.
Scene path — The path to the primary USD scene on the Omniverse server. For this to work properly, the scene should be rendered in AnyLogic beforehand.
Should include both the protocol (omniverse://) and the USD file extension, for example: omniverse://localhost/scenes/airport.usd.
The server can be both on the same machine or anywhere on your network. If the server is on the same machine, enter localhost in the path.Start connector at model startup — If selected, the Omniverse connector will connect to the Omniverse server specified in Scene path when the model run is started.
Connector password — [Visible if Start connector at model startup is disabled] The password used to connect to the computer running the model with the connector. For more information, see Launching the connector from another computer.
Use rendered 3D objects — If selected, the model will use the 3D models for objects pre-rendered separately (enabled by selecting the corresponding option in the Render model dialog).
Open the scene in Composer at startup — If selected, AnyLogic will open a ComposerAn Omniverse application which is used to assemble, light, simulate, and render 3D scenes in Omniverse. window containing the primary scene when the model run is started. This option works if Composer is installed on the same computer.
- Advanced
-
Show name — If selected, the element name will be displayed on the presentation diagram.
Connector port — Specify the output network port AnyLogic will use to connect to the Omniverse server. The port should not be busy when the connection is established. By default, the 4566 port is used.
Y-axis inversion — If selected, the Y-axis inversion for the model representation in Omniverse is enabled.
Transform coordinates globally — This section allows you to apply transformation functions to the scene when changing the coordinates, rotation, or proportions between the Anylogic model and the Omniverse scene.
In all these fields, the position variable (of the built-in AnyLogic Position class that contains the coordinates and rotation angles) can be used to obtain the original coordinates of the objects.dX — The function that returns the change in the X coordinate, in pixels.
dY — The function that returns the change in the Y coordinate, in pixels.
dZ — The function that returns the change in the Z coordinate, in pixels.
Rotation X, rad — The function that returns the rotation around the X axis, in radians.
Rotation Y, rad — The function that returns the rotation around the Y axis, in radians.
Rotation Z, rad — The function that returns the rotation around the Z axis, in radians.
Scale X — The function that returns the change in the object’s scale in the X axis.
Scale Y — The function that returns the change in the object’s scale in the Y axis.
Scale Z — The function that returns the change in the object’s scale in the Z axis.
When Omniverse connection is enabled (simply put, when the Omniverse connector element is present in the model), the Omniverse section becomes available in the properties of many elements in AnyLogic; specifically, it affects any kind of element that has a graphical representation (markup shapes, geometric elements, walls, networks, and so on), with slight difference when it comes to 3D objects and agents.
This section covers these properties and their specifics.
- Agent types
-
Bind to USD — Configures how exactly the graphical representation of an agent (a primShort for “primitive”, the prim is the basic unit of Omniverse. Everything that is imported or created into a USD scene is a prim. This includes, cameras, sounds, lights, meshes, and so on. Technically, a primitive is a container of metadata and properties that can also contain other prims. ) will be generated in Omniverse.
None — No association will be between this agent and a prim in Omniverse. This is the recommended behavior for top-level agents used during rendering, since they are, in fact, serve as the base Omniverse scene anyway.
Create new prim — If selected, the specified prim from outside the base scene will be used to graphically represent the agent during model runtime. This is used when an agent is not present during the initial state of the model (before startup) and does not have anything linking to it from a top-level agent (such as a presentation), but is generated and appears there at runtime (such as a pedestrian from the PedSource block). Since the graphical representation of the agent is not present in the initial scene, it should be rendered separately and included in the model using this setting.USD path — [Visible if Bind to USD: None] The path to the external prim which will be used for the element. Should include both protocol (omniverse://) and the USD file extension.
Attributes and variants — [Visible if Bind to USD: Existing prim or Create new prim] Select this to access additional settings for the prim, allowing you to pass values to modify attributes and variants within Omniverse.
A separate rule can be added by clicking the Add button.Name — The name of the modified attribute or variant.
Value — The new value for the attribute or variant.
Is variant — Determines whether the modified setting is a variant or an attribute (a variant if selected, an attribute otherwise).Instanceable prim — Determines whether the resulting prim will be instanceable. This means that only one “main” version of the element will be fully rendered, and any additional versions will simply be instances, which are lighter in terms of processing power. This is very useful for AnyLogic models because it improves performance by allowing multiple copies of the same element without the need to fully process each one individually.
However, you may need to treat an element as non-instanceable if you want to customize each instance. If you want each version of an element to have different properties or behaviors (for example, if you want people animated in the model to have skeletal animation for walking and the like), it makes more sense to treat them as separate (non-instanceable) objects. In such cases, you can use code to handle the specific customizations.
This option affects the objects in Omniverse, not AnyLogic objects. - 3D objects
-
Bind to USD — Configures how exactly the graphical representation of a 3D object (a primShort for “primitive”, the prim is the basic unit of Omniverse. Everything that is imported or created into a USD scene is a prim. This includes, cameras, sounds, lights, meshes, and so on. Technically, a primitive is a container of metadata and properties that can also contain other prims. ) will be generated in Omniverse.
None — No association will be between this object and a prim in Omniverse.
Existing prim — If selected, the object will be associated with one of the embedded prims on the base scene.
Create new prim — If selected, the specified prim from outside the base scene will be used to graphically represent the object during model runtime.USD path — [Visible if Bind to USD: Existing prim or Create new prim] The path to the embedded prim in the base scene, or the external prim that will be used for the element. If Bind to USD: Create new prim, should include the USD file extension and the protocol (omniverse://).
Attributes and variants — [Visible if Bind to USD: Existing prim or Create new prim] Select this to access additional settings for the prim, allowing you to pass values to modify attributes and variants within Omniverse.
A separate rule can be added by clicking the Add button.Name — The name of the modified attribute or variant.
Value — The new value for the attribute or variant.
Is variant — Determines whether the modified setting is a variant or an attribute (a variant if selected, an attribute otherwise).Instanceable prim — Determines whether the resulting prim will be instanceable. This means that only one “main” version of the element will be fully rendered, and any additional versions will simply be instances, which are lighter in terms of processing power. This is very useful for AnyLogic models because it improves performance by allowing multiple copies of the same element without the need to fully process each one individually.
However, you may need to treat an element as non-instanceable if you want to customize each instance. If you want each version of an element to have different properties or behaviors (for example, if you want people animated in the model to have skeletal animation for walking and the like), it makes more sense to treat them as separate (non-instanceable) objects. In such cases, you can use code to handle the specific customizations.
This option affects the objects in Omniverse, not AnyLogic objects.Ignore rendered 3D object — If selected, the model will ignore the 3D model for this object created during pre-render. See more about this feature in Rendering the model.
- Jib cranes
-
Bind to USD — Configures how exactly the graphical representation of an element (a primShort for “primitive”, the prim is the basic unit of Omniverse. Everything that is imported or created into a USD scene is a prim. This includes, cameras, sounds, lights, meshes, and so on. Technically, a primitive is a container of metadata and properties that can also contain other prims. ) will be generated in Omniverse.
None — No association will be between this element and a prim in Omniverse.
Existing prim — If selected, the element will be associated with one of the embedded prims on the base scene.
Create new prim — If selected, the specified prim from outside the base scene will be used to graphically represent the element during model runtime.USD path — [Visible if Bind to USD: Existing prim or Create new prim] The path to the embedded prim in the base scene, or the external prim that will be used for the element. If Bind to USD: Create new prim, should include the USD file extension and the protocol (omniverse://).
Attributes and variants — [Visible if Bind to USD: Existing prim or Create new prim] Select this to access additional settings for the prim, allowing you to pass values to modify attributes and variants within Omniverse.
A separate rule can be added by clicking the Add button.Name — The name of the modified attribute or variant.
Value — The new value for the attribute or variant.
Is variant — Determines whether the modified setting is a variant or an attribute (a variant if selected, an attribute otherwise).Instanceable prim — Determines whether the resulting prim will be instanceable. This means that only one “main” version of the element will be fully rendered, and any additional versions will simply be instances, which are lighter in terms of processing power. This is very useful for AnyLogic models because it improves performance by allowing multiple copies of the same element without the need to fully process each one individually.
However, you may need to treat an element as non-instanceable if you want to customize each instance. If you want each version of an element to have different properties or behaviors (for example, if you want people animated in the model to have skeletal animation for walking and the like), it makes more sense to treat them as separate (non-instanceable) objects. In such cases, you can use code to handle the specific customizations.
This option affects the objects in Omniverse, not AnyLogic objects.Jib prim path — [Visible if Bind to USD: Existing prim or Create new prim] The path to the prim that will be used for the crane’s jib.
Trolley prim path — [Visible if Bind to USD: Existing prim or Create new prim] The path to the prim that will be used for the crane’s trolley.
Hook prim path — [Visible if Bind to USD: Existing prim or Create new prim] The path to the prim that will be used for the crane’s hook.
- Overhead cranes
-
Bind to USD — Configures how exactly the graphical representation of an element (a primShort for “primitive”, the prim is the basic unit of Omniverse. Everything that is imported or created into a USD scene is a prim. This includes, cameras, sounds, lights, meshes, and so on. Technically, a primitive is a container of metadata and properties that can also contain other prims. ) will be generated in Omniverse.
None — No association will be between this element and a prim in Omniverse.
Existing prim — If selected, the element will be associated with one of the embedded prims on the base scene.
Create new prim — If selected, the specified prim from outside the base scene will be used to graphically represent the element during model runtime.USD path — [Visible if Bind to USD: Existing prim or Create new prim] The path to the embedded prim in the base scene, or the external prim that will be used for the element. If Bind to USD: Create new prim, should include the USD file extension and the protocol (omniverse://).
Attributes and variants — [Visible if Bind to USD: Existing prim or Create new prim] Select this to access additional settings for the prim, allowing you to pass values to modify attributes and variants within Omniverse.
A separate rule can be added by clicking the Add button.Name — The name of the modified attribute or variant.
Value — The new value for the attribute or variant.
Is variant — Determines whether the modified setting is a variant or an attribute (a variant if selected, an attribute otherwise).Instanceable prim — Determines whether the resulting prim will be instanceable. This means that only one “main” version of the element will be fully rendered, and any additional versions will simply be instances, which are lighter in terms of processing power. This is very useful for AnyLogic models because it improves performance by allowing multiple copies of the same element without the need to fully process each one individually.
However, you may need to treat an element as non-instanceable if you want to customize each instance. If you want each version of an element to have different properties or behaviors (for example, if you want people animated in the model to have skeletal animation for walking and the like), it makes more sense to treat them as separate (non-instanceable) objects. In such cases, you can use code to handle the specific customizations.
This option affects the objects in Omniverse, not AnyLogic objects.Bridge prim path — [Visible if Bind to USD: Existing prim or Create new prim] The path to the prim that will be used for the crane’s bridge. Should include the USD file extension.
Trolley prim path — [Visible if Bind to USD: Existing prim or Create new prim] The path to the prim that will be used for the crane’s trolley. Should include the USD file extension.
Hook prim path — [Visible if Bind to USD: Existing prim or Create new prim] The path to the prim that will be used for the crane’s hook. Should include the USD file extension.
- Other elements
-
Bind to USD — Configures how exactly the graphical representation of an element (a primShort for “primitive”, the prim is the basic unit of Omniverse. Everything that is imported or created into a USD scene is a prim. This includes, cameras, sounds, lights, meshes, and so on. Technically, a primitive is a container of metadata and properties that can also contain other prims. ) will be generated in Omniverse.
None — No association will be between this element and a prim in Omniverse.
Existing prim — If selected, the element will be associated with one of the embedded prims on the base scene.
Create new prim — If selected, the specified prim from outside the base scene will be used to graphically represent the element during model runtime.USD path — [Visible if Bind to USD: Existing prim or Create new prim] The path to the embedded prim in the base scene, or the external prim that will be used for the element. If Bind to USD: Create new prim, should include the USD file extension and the protocol (omniverse://).
Attributes and variants — [Visible if Bind to USD: Existing prim or Create new prim] Select this to access additional settings for the prim, allowing you to pass values to modify attributes and variants within Omniverse.
A separate rule can be added by clicking the Add button.Name — The name of the modified attribute or variant.
Value — The new value for the attribute or variant.
Is variant — Determines whether the modified setting is a variant or an attribute (a variant if selected, an attribute otherwise).Instanceable prim — Determines whether the resulting prim will be instanceable. This means that only one “main” version of the element will be fully rendered, and any additional versions will simply be instances, which are lighter in terms of processing power. This is very useful for AnyLogic models because it improves performance by allowing multiple copies of the same element without the need to fully process each one individually.
However, you may need to treat an element as non-instanceable if you want to customize each instance. If you want each version of an element to have different properties or behaviors (for example, if you want people animated in the model to have skeletal animation for walking and the like), it makes more sense to treat them as separate (non-instanceable) objects. In such cases, you can use code to handle the specific customizations.
This option affects the objects in Omniverse, not AnyLogic objects.
-
How can we improve this article?
-