Work through these in order. Each step builds on the previous one.
Read Mental model and Main concepts.
Follow Create your first package to generate a skeleton, compile it, and run it under a Sen kernel.
The table is ordered by complexity, so working down it is a reasonable path. The numbers are the directory names rather than a sequence, so there are gaps where an example was retired:
| # | Example | What you learn |
|---|---|---|
| 0 | Counter | The introductory package built in Getting Started |
| 1 | Calculators | Basic package, multiple implementations, shell interaction |
| 2 | Inheritance | STL inheritance, template injection |
| 3 | Aircraft | HLA FOMs, update() loop, virtual time |
| 4 | School | Object discovery, events, multi-component |
| 6 | Recorder | Recording, Python post-processing |
| 7 | Replayer | Replay with real-time and stepped execution |
| 8 | InfluxDB | Grafana visualization |
| 9 | Request/response servers | Method return values, async callbacks, live query objects |
| 10 | Python | Embedded Python scripting |
| 11 | Shapes | Interest management, Sen Query Language |
| 12 | Fibonacci | Deferred methods, load balancing |
| 13 | Timer | Checked properties, state validation |
| 14 | JSON-RPC | Exposing a package over JSON-RPC on a WebSocket |
Once you are comfortable with the examples, the How-to guides cover specific topics in depth: working with objects, generated code, logging, dead reckoning, and more.
Included in the same examples directory, you can find a set of example applications:
| Application | Description |
|---|---|
| Web explorer | Basic Sen explorer for the web browser |
| REST Python | Python client for the Sen REST component |
| Recording inspector | Reads a recording with the C++ database API |
Sen writes documentation from your interface definitions, so it cannot drift from the code. These two are not packages you can run, unlike everything above: they are what the generators produce, kept here because seeing one is quicker than reading about it.
- UML generation: class diagrams, here drawn from an HLA FOM
- HTML reference: a browsable interface reference, here for an HLA FOM
- STL language reference: full syntax of the Sen Type Language
- Command line reference:
sen run,sen shell, YAML config schema - Sen Query Language: filtering objects with SQL-like expressions