# KinematicMU (Pro)

The `KinematicMU` component enables **purely kinematic movement** of [Moving Unity (MUs) ](/components-and-scripts/mu-movable-unit.md)along a [`GuidedTransport`](/components-and-scripts/motion/guided-transport.md). This is essential in scenarios where **position-controlled transport surfaces** are used (e.g., from a PLC), and traditional physics-based transport would violate physical constraints due to rapid or unpredictable position updates.

`KinematicMU` allows sensor interaction but **disables collisions** with other colliders or MUs during guided motion. This makes it ideal for precision transport systems or integration with external control systems like PLCs.

## Use Case

Standard [`GuidedMU`](/components-and-scripts/motion/guided-transport.md) movement applies forces and obeys Unity physics. This works well in most guided transport scenarios but fails for **position-driven conveyor belts** that update positions in cycles. In these cases, using physics-based motion can lead to instability or incorrect behavior.

<figure><img src="/files/DKtHdjxaDCLusiHtdEH8" alt=""><figcaption><p>KinematicMU demo model</p></figcaption></figure>

#### Setup Instructions

1. **Prefab**: Use the standard `TransportGuided` prefab\
   Path: `Assets/realvirtual/TransportGuided.prefab`
2. **Scene**: Try the demo scene to see it in action\
   Path: `Assets/realvirtual/Professional/KinematicMU/DemoKinematicMU.unity`
3. **Material Unit (MU) Setup**:
   * Add the `KinematicMU` script to your MU GameObject.
   * Remove the `GuidedMU` script (if present).
   * Keep the `MU` and `Source` components.
   * Ensure a `Rigidbody` is present (used for switching modes).
   * Assign appropriate layers to the **Raycast Layer** (typically `rvTransport`, `rvSimStatic`).

<figure><img src="/files/FFabeWvhPoROfQXuS5mC" alt=""><figcaption></figcaption></figure>

#### Inspector Properties

| Property           | Description                                                                                |
| ------------------ | ------------------------------------------------------------------------------------------ |
| **Active**         | Controls whether the MU should behave kinematically (`Always`, `Never`, or conditionally). |
| **Raycast Length** | Distance for downward raycast to detect the transport surface. Default is `0.3`.           |
| **Raycast Layer**  | Layers that are considered for detecting transport surfaces.                               |
| **Debug Mode**     | Enables debug visualization of raycasts.                                                   |


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://doc.realvirtual.io/components-and-scripts/motion/kinematicmu-pro.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
