# How DR Sim Manager Works

DR Sim Manager (DRSM) sits between your game and your motion hardware, reading real-time data from the game and converting it into precise actuator movements. This page explains the overall data flow and key concepts.

***

## The Big Picture

The complete data flow looks like this:

**Game → Source → Telemetry Data → Motion Cues → Sim Config (Inverse Kinematics) → Output → Motion Hardware**

Each stage transforms the data further, starting with raw game physics and ending with physical actuator positions sent to your motion controller.

***

## Sources — Connecting to Games

A **source** is how DRSM receives telemetry from a game. Different games expose their data in different ways:

* **Shared Memory** — Some games (like Assetto Corsa and iRacing) write telemetry into a shared memory region that DRSM reads directly. These games typically require no setup — just launch the game and DRSM connects automatically.
* **UDP Broadcast** — Other games (like F1 24, Dirt Rally 2.0, and Forza) send telemetry packets over the network. DRSM listens on the appropriate port. Some games require you to enable UDP output in their settings first.
* **Plugins** — A few games (like BeamNG, X-Plane, and rFactor 2) need a plugin installed into the game's directory. The plugin extracts telemetry and makes it available to DRSM. DRSM provides these plugins and setup instructions on the game's source page.

Regardless of the connection method, the telemetry data that arrives contains the same type of information: accelerations, angular velocities, vehicle speed, RPM, surface type, and other physics values that describe what the vehicle is doing at that moment.

> **Tip**: Games marked "No setup required" on the Sources page work automatically — just select the game and click Start Motion.

See the [Sources](/dr-sim-manager/general/sources.md) page for the full list of supported games and per-game setup instructions.

***

## Motion Cues — Turning Telemetry into Motion

Raw telemetry values like G-forces and angular velocities can't be sent directly to actuators — they need to be interpreted and shaped into realistic motion commands. This is the job of **motion cues**.

A motion cue is a processing stage that reads specific telemetry values and produces motion on one or more axes. Your motion profile contains a **stack of cues** that process in sequence and combine their outputs:

1. **Primary Cue** — The foundation. It converts accelerations and rotations into platform movement across all six axes (surge, sway, heave, pitch, roll, yaw). It includes smoothing (to remove harsh spikes) and washout (to gently return the platform to center after sustained forces).
2. **Additional Cues** — Layer on top of the Primary Cue to add specific effects:
   * **Ground Cue** — Surface texture and taxi motion for aircraft
   * **Vibration Cue** — High-frequency detail like road texture and engine buzz
   * **Advanced Yaw** — Enhanced yaw from lateral forces
   * **Offset Cue** — Shifts the center of rotation to match your head position
   * **Bass Shaker, Belt Tensioner, Wind Simulator** — Drive peripheral haptic hardware
   * And more — see [Understanding Motion Cues](/dr-sim-manager/general/motion-cues-explained.md) for the complete list

Each cue can be independently enabled, disabled, and tuned with its own gain, smoothing, and other parameters. This modular design lets you build up your motion experience layer by layer.

For a detailed breakdown of every cue and how they interact, see [Understanding Motion Cues](/dr-sim-manager/general/motion-cues-explained.md).

***

## Sim Configuration — Your Virtual Rig

The **Sim Config** tells DRSM exactly what motion hardware you have — how many actuators, where they're mounted, their lengths, and their travel ranges. DRSM uses this information to perform **inverse kinematics**: converting the desired platform position and orientation (from the motion cues) into individual actuator extension values.

For example, if the motion cues request "tilt the platform 5° to the right," the Sim Config knows that on your hexapod this means extending actuators 1, 3, and 5 by specific amounts while retracting actuators 2, 4, and 6. The exact amounts depend on your rig's physical geometry.

You can configure multiple sim components — for example, a hexapod for main motion plus a bass shaker for haptics plus a wind simulator for airflow. Each component operates on its own set of axes.

See [Sim Config](/dr-sim-manager/general/sim-config.md) for setup details and supported hardware types.

***

## Outputs — Talking to Your Hardware

An **output** is the communication channel between DRSM and your motion controller. Once the Sim Config has calculated individual actuator positions, outputs transmit those positions to your controller hardware.

DRSM supports several output types:

* **Serial (COM port)** — The most common method. Actuator positions are sent over a USB serial connection to controllers like Thanos, M4S, SMC3, DMover, or VNM.
* **UDP (Network)** — Positions are sent as network packets, useful for wireless setups or controllers that accept UDP input.
* **Memory-Mapped File** — Data is shared through a local memory region, used for software integrations running on the same PC.
* **Virtual Tracker** — Generates VR motion compensation data for OXRMC or OVRMC.
* **Teleplot** — Streams real-time data to a visualization tool for debugging and tuning.

You can run multiple outputs simultaneously — for example, a serial output driving your motion platform alongside a virtual tracker handling VR motion compensation.

See [Outputs](/dr-sim-manager/general/outputs.md) for configuration details and supported controllers.

***

## Profiles — Per-Game Tuning

A **profile** is a saved collection of motion cue settings tailored for a specific game. Different games produce different telemetry characteristics — a flight simulator's data looks very different from a rally game's — so each game benefits from its own tuning.

Profiles are organized by game in a tree structure. You can create multiple profiles per game (for example, one for casual driving and one for competitive racing) and switch between them instantly. Global profiles can be applied across multiple games of the same type.

Profiles store all cue configurations: which cues are enabled, their gain values, smoothing levels, and every other parameter. When you select a profile, all cue settings update immediately.

See [Profile Editor](/dr-sim-manager/general/profile-editor.md) and [Sharing Profiles](/dr-sim-manager/general/profile-editor/sharing-profiles.md) for more details.

***

## Hardware Profiles — Switching Rigs

While motion profiles store your *cue tuning*, **hardware profiles** store your entire *hardware configuration* — all sim components and all outputs bundled together. If you have multiple physical rigs (for example, a racing cockpit and a flight setup), hardware profiles let you switch between them with one click instead of reconfiguring everything manually.

See [Hardware Profiles](/dr-sim-manager/general/hardware-profiles.md) for details.


---

# 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://docs.departedreality.com/dr-sim-manager/general/how-it-works.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.
