Skip to content

Concepts

Homeostat generates data from abstract data generating processes instead of physics. A plant is a composition of small operators, each with exact discrete-time math: sources of variation, dynamic responses, controllers and instruments. Wired together with closed control loops, they produce data that behaves like a controlled plant, with every cause known.

Layers

flowchart LR
    S["Scenario (YAML)"] --> L["Scenario layer<br/>schema, draws, generators"]
    D["Domain library<br/>templates, presets, faults,<br/>degradations, tasks"] --> L
    L --> G["Core graph<br/>operators and events"]
    G --> C["Compile<br/>single writer, cycles,<br/>loops and roles"]
    C --> E["Engine<br/>lanes, keyed noise,<br/>resumable"]
    E --> R["Run<br/>truth, measured,<br/>observed, meta"]
    R --> B["Labelers<br/>visibility, settling,<br/>feasibility, lineage"]
  • The core (homeostat.core) is a pure math layer: signals, operators, the graph and its compiler, events, and the engine. It never mentions hardware; a test checks that its code and docstrings contain no words such as valve, sensor or reactor.
  • Plugins add vocabulary that compiles down to core objects and events, never new engine behaviour. Domain libraries, such as process, register through the homeostat.libraries entry point and provide templates (a flow loop, a reactor) built only from core operators, with ISA tags, units, sensor presets, faults, degradations and maintenance tasks. Labelers derive labels from runs.
  • The scenario layer validates scenario files, draws distributions, expands plan generators, builds the graph from a domain library, and turns plans and faults into events.

The pages in this section

  • Operators: the four kinds of operators, direct feedthrough, parameters in physical units and exact discretization.
  • Graphs and roles: signals, the single-writer rule, algebraic loops, control loops and roles.
  • The step: what happens in each step, sampled-data control, the steady start, multi-rate stepping and the resumable engine.
  • Events: timed changes, what they may target, promoted parameters and modulation.
  • Randomness and reproducibility: keyed random streams, lanes and twin runs, and what makes a run repeatable.
  • Outputs and ground truth: what a historian sees, what is true, and the ground truth a run returns.