Simulation Kernel and time requirements
Defines authoritative virtual time, deterministic scheduling, multi-rate coupling, checkpoints, and execution semantics.
Section relationships
Depends on
Used by
| ID | Name | Priority | Requirement | Verification |
|---|---|---|---|---|
| TIME-001 | Authoritative virtual time | MVP | The Simulation Kernel SHALL own the single authoritative simulation time for each world. | Inspection |
| TIME-002 | Exact drift-free scheduling | MVP | The authoritative clock SHALL use bounded integer ticks under a reduced rational SI-second time base, and periodic task activation, phases, and rate relationships SHALL use exact integer or reduced-rational scheduling so floating-point clock drift does not accumulate over a run. | Test |
| TIME-003 | Multi-rate execution | MVP | Mechanics, controllers, devices, sensors, environment models, and metrics SHALL be schedulable at distinct rates. | Test |
| TIME-004 | Stable event order | MVP | Events sharing a timestamp SHALL execute in a documented deterministic order. | Test |
| TIME-005 | Fixed-step mechanics | MVP | The default mechanics profile SHALL support an explicitly configured fixed timestep and substep count. | Test |
| TIME-006 | Exact single-step | MVP | A paused world SHALL advance by exactly one requested kernel or mechanics step without advancing wall-clock-dependent tasks. | Test |
| TIME-007 | Pause semantics | MVP | Pausing SHALL stop virtual time while preserving compiled state and queued future events. | Test |
| TIME-008 | Reset semantics | MVP | Reset SHALL restore the declared initial world state, time, queues, controller state, device state, sensor state, and random streams. | Test |
| TIME-009 | Checkpoint | MVP | The kernel SHALL create a checkpoint containing all state required by its declared checkpoint-resume guarantee. | Test |
| TIME-010 | Restore | MVP | Restoring a supported checkpoint SHALL recreate the declared state and future deterministic behavior. | Test |
| TIME-011 | Capture and delivery time | MVP | Sampled data SHALL distinguish physical capture time from delivery time. | Test |
| TIME-012 | Delay queue | MVP | Latency models SHALL deliver values according to virtual time rather than wall time in deterministic and throughput modes. | Test |
| TIME-013 | Real-time pacing | Beta | The kernel SHALL support wall-clock pacing with measured offset, jitter, and deadline misses. | Test |
| TIME-014 | Unpaced throughput | MVP | Headless batch execution SHALL be able to advance as fast as resources permit without wall-clock sleeping. | Test |
| TIME-015 | Missed-deadline policy | Beta | A real-time integration SHALL declare and enforce a late-data policy such as hold, drop, extrapolate, fault, or stop. | Test |
| TIME-016 | Coupling macro-step | Beta | Coupled domains SHALL exchange committed values only at explicit macro-step or intermediate-update boundaries. | Test |
| TIME-017 | Interpolation policy | Beta | Every continuous cross-domain input SHALL declare sample-and-hold, linear interpolation, extrapolation, or solver-defined behavior. | Inspection |
| TIME-018 | Rollback capability | Beta | A participant SHALL declare whether it supports checkpoint and rollback; the scheduler SHALL not assume rollback support. | Test |
| TIME-019 | Topology-change boundary | Beta | Spawn, deletion, joint breakage, and other topology changes SHALL occur only at documented safe scheduling boundaries. | Test |
| TIME-020 | Rendering independence | MVP | Rendering frame rate and visibility SHALL not determine mechanics, control, sensor, or environment task activation. | Test |
| TIME-021 | Random-stream isolation | MVP | Each stochastic component SHALL have an independent deterministic stream so adding an unrelated component does not perturb existing streams. | Test |
| TIME-022 | Execution-mode declaration | MVP | Every run SHALL declare its execution mode and associated determinism guarantee. | Inspection |
| TIME-023 | No silent step skipping | MVP | A runtime policy SHALL not skip or merge a scheduled mechanics, device, controller, sensor, or environment activation without recording the affected time interval and reason. | Test |
| TIME-024 | Coupling algorithm declaration | Beta | Every iteratively coupled domain set SHALL declare its coupling algorithm, macro-step, participant order, relaxation, rollback capability, and maximum iterations. | Inspection |
| TIME-025 | Coupling convergence | Beta | An iterative coupling step SHALL evaluate declared residuals against absolute and relative convergence criteria and report iteration count and final residual. | Analysis |
| TIME-026 | Coupling nonconvergence policy | Beta | A coupled run SHALL apply a configured retry, reduced-step, rollback, warn, or fail policy when convergence is not achieved and SHALL never commit an unconverged step silently. | Test |
| TIME-027 | Coupling refinement evidence | Beta | A released coupled profile SHALL document selected-observable and exchanged-energy behavior under macro-step refinement. | Analysis |
| TIME-028 | Runtime-action ordering | Beta | The Simulation Kernel SHALL order accepted runtime actions by requested application time and deterministic sequence and SHALL apply them only at declared safe scheduling boundaries relative to other actions and events. | Test |
| TIME-029 | Runtime-action atomicity | Beta | A runtime action SHALL either commit its complete declared mutation at one scheduling boundary or fail without partial state mutation, and its actual application time, order, disposition, and resulting committed-state revision SHALL be exposed. | Test |
| TIME-030 | Entity-lifecycle actions | Beta | The General Robotics Beta runtime-action profile SHALL support spawning a content-identified compiled entity definition under a new stable identity and deleting a supported entity, subject to deterministic ownership, dependency, and topology validation. | Test |
| TIME-031 | Constrained state-override actions | Beta | The General Robotics Beta runtime-action profile SHALL support setting pose and other capability-declared mutable committed-state fields using explicit units and frames and a declared policy for dependent velocity, constraint, contact, and solver state. | Test |
| TIME-032 | Disturbance and fault actions | Beta | The General Robotics Beta runtime-action profile SHALL support scheduled activation, deactivation, or parameterization of compiled disturbances and supported external wrench or fault actions with explicit target, interval, units, frames, bounds, and composition policy. | Test |
Change rationale (TIME-028–TIME-032): TIME-019 constrains topology changes but does not define a native action-admission, ordering, atomicity, or capability profile. These requirements keep mutation of a live world instance under the authoritative kernel, split independently testable action families, and prevent an unjournaled or partially applied external-supervisor path.
Change rationale (TIME-002, v0.7): ADR-0006 resolves the clock representation direction needed to make the existing drift-free obligation concrete: authoritative time is an integer tick count under an exact rational time base, while detailed epoch, tick-scale, range, phase, overflow, and sequence-allocation contracts remain owned by the unapproved Simulation Time and Coupling Specification.
Generated from the canonical specification. Edit section metadata or prose in docs/requirements.md; the website rebuilds this page and its relationships automatically.