Clash Detection


The goal of clash detection is to prevent costly and time-consuming conflicts during the construction phase of a project. By identifying and resolving clashes early in the design process, project stakeholders can minimize rework, avoid delays, and improve overall project efficiency. It is an essential aspect of modern construction and design processes, especially in complex projects with numerous interconnected systems and components.

Resolving clashes often involves adjusting the positions of clashing components, modifying the design, or reconfiguring the layout.

Learn about the types of clashes.

Hard clashes occur when physical components occupy the same space within a project. Examples include walls intersecting with doors or windows, structural elements conflicting with plumbing or electrical systems, or equipment interfering with pathways.

Soft clashes are clearance clashes. Such clashes occur when there is insufficient space between components, potentially leading to operational or safety issues. For instance, a piece of machinery might not have enough overhead clearance, or pipes might be too close to walls.

A static clash refers to a clash between two or more building components or systems that are in fixed positions. For example a wall intersecting with a pipe.

A dynamic clash involves clashes that might occur during the operational phase of a project when components are in motion or change position. An example of a dynamic clash could be a situation where two robots are programmed to move along certain paths but would collide with each other if their paths cross at a certain point.

Clash Detection Video Tutorial

Using Clash Detection Extensions

There are multiple extensions that work together to deliver flexible clash detection functionality. Extensions also expose APIs that allow customization of the process.

Using Clash Detection begins with enabling the Clash Detection Bundle extension, which bundles all clash detection extensions together in a single easy-to-enable dependency.

Learn about all of the clash detection extensions.

There are currently seven (7) extensions that work together to deliver flexible clash detection functionality.

  • omni.physx.clashdetection.bundle: Bundles all extensions together in a single easy-to-enable dependency.

  • omni.physx.clashdetection: Contains clash detection C++ engine and low-level API to start the process and access results.

  • omni.physx.clashdetection.core: Primary Python-based clash detection extension that leverages the clash detection engine by introducing essential data structures for holding clash information and queries, as well as incorporating support for serialization and deserialization.

  • omni.physx.clashdetection.ui: Extension responsible for user interface and workflow elements. It defines all UI components (except for specialized clash detection viewport) and the user interaction flow.

  • omni.physx.clashdetection.viewport: Implements 3D visualization in the main viewport and in a dedicated Clash Detection Viewport.

  • omni.physx.clashdetection.telemetry: Clash Detection Telemetry facilities for performance and usage measurements to improve the product.

  • omni.usd.schema.physx.clashdetection: Provides ability to save clash detection database as a USD layer. NOTE: When enabling it or upgrading it, it requires reboot of the kit application.


Enabling omni.physx.clashdetection.bundle is enough to enable all needed extensions.

Step 1: Check If Extension is Enabled

You can see if the extension is loaded by checking if the Clash Detection and Clash Detection Viewport menu items exist.

The Window drop-down menu.

If the Clash Detection or Clash Detection Viewport menu items are missing, then it means that the required extensions are not enabled.

Step 2: Enable the Clash Detection Bundle

Enable clash detection extensions

To enable the extensions:

  1. Navigate to window > extensions.

  2. In the search bar, enter Clash.

  3. Locate the Clash Detection Bundle extension and select it.

  4. Select the Enabled toggle to enable the extension.

  5. Select the Check Mark next to Autoload to load all of required extensions automatically on application start, if desired.

  6. Close the Extensions Panel.

Step 3: Verify the Extension is Active

At this point, the extension should be enabled. Click Window -> Simulation -> Clash Detection and Window -> Simulation -> Clash Detection Viewport menu items and you should now see the Clash Detection window (1) docked below and the Clash Detection Viewport window (2) docked to the right of the property panel.


Learn More