Architecture & Design

How g.Pype is built, for the reader who writes against it: what a node, a pipeline and a run are made of, what a call accepts and refuses, and why it is shaped that way. What a running system does – install, operate, observe, deploy – is Advanced Topics.

Node Design Pattern

The three parts of every node, why they run at three different times, and how to write one of your own.

Node Design Pattern
Execution Modes

Realtime and batch: how a pipeline runs, which call drives it, and the pipelines start() and run() refuse.

Execution Modes
Offline Processing

What holds only offline: a Result and what it carries, zero-phase filters, a plain function as a node, exceptions through your own line, and the bridges to MNE and scikit-learn.

Offline Processing
Time and Synchronisation

One master timeline per run, the arrival stamp every live source adds, and how an event lands on the sample it happened in.

Time and Synchronisation
Channel Metadata

Labels, roles and units: what travels with every channel, what reads it, and where it gets lost.

Channel Metadata
Validation at Start

The three moments a pipeline is checked before data flows, and the message each refusal gives.

Validation at Start
EEG Data in Python: NumPy and pandas

Three ways to the samples as an array: live in memory, live frame by frame, and from a recording.

EEG Data in Python: NumPy and pandas
Data Structures: Arrays, Units and Timestamps

Shape, dtype, units, channel order, what time means in each output, frames and buffering, in one place.

Data Structures: Arrays, Units and Timestamps
Threads, Frames and Propagation

Which thread runs what, how a frame travels through the nodes, the GUI thread, and what happens when the pipeline cannot keep up.

Threads, Frames and Propagation