External driven clock#140
Merged
Merged
Conversation
3331ee6 to
4d6e86f
Compare
jonyMarino
commented
May 15, 2026
jonyMarino
commented
May 15, 2026
✅ ProjectAirSim Self-Hosted CI
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Overview
This pull request introduces a new
engine-drivensimulation clock mode to Project AirSim, enabling the simulation to be advanced by Unreal's loop. This mode is designed for deterministic, fixed-step simulation where the host is responsible for providing elapsed time and triggering simulation ticks. The changes include the implementation of theEngineDriveClockclass, updates to scene and clock management, Unreal integration, and comprehensive documentation updates.Besides that, a placeholder
external-clockwas added for future use. The idea is to implement a capability to control the clock of the simulation from an outside source/orchestrator.Simulation Clock Enhancements:
EngineDrivenClockclass, which allows Unreal's engine drive simulation time by supplying elapsed time and triggering steps in fixed increments (step-ns). This class provides methods for accumulating time, checking for pending steps, and stepping the simulation deterministically. [1] [2]ClockTypeand related configuration to support the newengine-driventype, including schema, constants, and clock selection logic. [1] [2] [3] [4]Scene and Simulation Loop Integration:
engine-drivenclock is selected, allowing the host to control simulation advancement via the newExternalTick()method. [1] [2] [3] F97d1f83L97R1078, [4]Unreal Engine Integration:
EngineDrivenClock, synchronizing Unreal's tick timing with the simulation step size and safely handling clock type detection without RTTI.Documentation Updates:
engine-drivenclock, its configuration, use cases, and integration patterns. Updated API and configuration references to include the new clock type. [1] [2] [3] [4] [5]Code Quality and Comments:
These changes make Project AirSim more flexible and embeddable, supporting advanced integration scenarios with external runtimes and engines.