From host input to fixed simulation steps to a presented frame.

Avara3D separates application behavior, simulation scheduling, physics, scene state, render-data gathering, backend drawing, input, and tooling while keeping their order explicit.

01 · Ownership

A narrow ownership tree with clear system boundaries.

The application supplies behavior and configuration. The runner owns the active scene and advances it. The scene groups the visual world, physics world, input context, and scene graph needed by that simulation.

02 · One host update

Rendering may vary. Simulation advances in discrete, ordered steps.

Each host update observes elapsed wall time, updates application/input state, schedules a bounded number of fixed simulation steps, gathers the current visual state, draws, and presents. A frame may execute zero, one, or several simulation steps.

  1. 01Poll inputWindow and input context
  2. 02Host updateVariable-rate application work
  3. 03Schedule stepsAccumulate elapsed time
  4. 04Simulate0…N fixed steps
  5. 05Gather + drawCurrent scene state
  6. 06PresentSwap buffers

03 · Fixed timestep

Stable simulation time without pretending the host runs at a fixed rate.

The runner converts variable host deltas into fixed simulation work. Catch-up is capped so a slow frame cannot create an unbounded spiral. Excess accumulated time is recorded instead of disappearing silently.

  • Configurable simulation timestep
  • Pause and explicit single-step
  • Bounded catch-up per host update
  • Resettable simulation time and step index
  • Visible discarded-time accounting
Host delta16.67 ms
Timestep8.33 ms
Scheduled2 steps

Simulation callbacks and physics execute once per fixed step. Rendering observes the result after the scheduled work completes.

04 · System boundaries

Each stage owns a specific kind of work.

Application

Behavior and policy

Input response, simulation callbacks, scenario state, and UI/tooling hooks.

Physics

Rigid-body state

Collision detection, dynamics, constraints, and synchronized node transforms.

Visual world

Render-data gathering

Point of view, visible scene traversal, lights, materials, and render passes.

Renderer

Backend drawing

OpenGL resources, commands, frame setup, drawing, and presentation.

Read the application boundary

The demo source shows where application code enters this sequence.