ERS Documentation

High-performance, scalable, multi-formalism simulation engine

Welcome to ERS. Use the buttons above to get started.

Why ERS

Massive Scalability

Parallel simulators and efficient ECS underpin large, complex models that stay fast.

Deterministic Simulation

Robust event scheduling with local and sync-events ensures reproducible results.

Composable Models

Entity-Component-System design lets you build reusable behaviors and data layouts.

Multi-Language Tooling

Start in C++, C#, or Python scripting and mix as your project grows.

Get started quickly

  1. Install the ERS Editor and SDK
  2. Build your first model (simulator + submodel)
  3. Add components and script behaviors to build model logic
  4. Visualize and simulate

Start the tutorial

Code sketch

// Program.cs
using Ers;

ERS.Initialize();

ModelContainer modelContainer = ModelContainer.Create();
modelContainer.Precision = 1_000_000;

Simulator sim1 = modelContainer.AddSimulator("Sim1", SimulatorType.DiscreteEvent);
sim1.EnterSubModel();
// Add components and script behaviors here
sim1.ExitSubModel();

// Simulate 60 seconds in 1-second steps
ulong endTime = 60 * modelContainer.Precision;
while (modelContainer.CurrentTime < endTime)
{
  modelContainer.Update(modelContainer.Precision);
}

ERS.Uninitialize();

See the ERS Editor

Explore the integrated environment for building, scripting, and visualizing your simulations.

Learn more