Plugins¶
Tempo is a set of Unreal plugins. Enable the ones you need in your .uproject; the rest cost you
nothing.
| Plugin | What it gives you |
|---|---|
| TempoCore | Time control, the gRPC server every other plugin registers with, the default HUD, and core utilities. The one plugin everything else depends on. |
| TempoWorld | Query and control the simulated world — spawn and destroy actors, add components, move things, read and write any property, call any function. |
| TempoSensors | Cameras (color, depth, semantic and instance labels, 2D bounding boxes, H.264 video) and rotating lidars, streamed over gRPC. |
| TempoMovement | Vehicle and pawn movement models, a vehicle controller, and timed trajectory following along splines. |
| TempoAgents | Large-scale crowd and traffic agents on MassEntity, plus lane-graph queries. |
| TempoGeographic | Anchor the simulation to a place and time on Earth: geographic reference, date/time, sun and sky. |
| TempoPCG | Custom nodes and graphs on top of Epic's PCG plugin, plus sample content. |
| TempoROS | ROS 2 via in-process rclcpp. Standalone — usable without any other Tempo plugin. |
| TempoROSBridge | Exposes Tempo's data and controls as ROS 2 topics and services. |
Which do I need?¶
graph LR
START([What are you doing?]) --> A{Driving the sim<br/>from code?}
A -->|yes| CORE[TempoCore<br/>+ TempoWorld]
A -->|no| CORE2[TempoCore]
CORE --> B{Need sensor data?}
B -->|yes| SENS[+ TempoSensors]
B --> C{Moving vehicles<br/>or pawns?}
C -->|yes| MOVE[+ TempoMovement]
C --> D{Talking to<br/>a ROS graph?}
D -->|yes| ROS[+ TempoROS<br/>+ TempoROSBridge]
Everything except TempoPCG and TempoROS depends on TempoCore, because TempoCore hosts the gRPC server.
The plugins are the extension point¶
Tempo is built entirely as Unreal plugins plus a few small engine patches — there is no closed core. Your own modules can define gRPC services alongside Tempo's and get generated Python, Rust and C++ clients for free.