DocsBlock Index
BCILattice Documentation

Block Index

Every block BCILattice makes itself, in one line each — grouped the way the ML Suite palette groups them.

v1.0BCINexus Platform · 2026-05-20[email protected]

About this list

BCILattice's palette holds two kinds of blocks. Most of the roughly 11,000 come straight from libraries such as scikit-learn, PyTorch and MNE. The 147 below are our own: written, tested and maintained as part of the app. Each has a one-line summary here and a link to its full description — ports, settings and the pitfalls it guards against.

  • The groups match the palette, in the same order, so what you read here is where you will find it.
  • core marks an everyday block — where a graph in that area usually starts. Unmarked blocks answer more specialised questions; every block is in the palette either way.
  • In the app, hover any block in the palette to see the same one-liner, and hover a category name where there is a choice to make (for example Multiple Models) for a “which one do I need?” list.

147 blocks in 21 groups.

Inputs

Where data enters a graph.

Input BlockcoreMarks where data enters a pipeline; it becomes an input port when the pipeline is compiled.Full description →
File PathcorePoints at one file on disk, for a block that reads files itself.Full description →
Select FilescorePicks the recordings to train on and loads them. Every workflow starts here.Full description →
Custom LabelscoreSupplies class labels from a file or a typed list when the recording has none.Full description →
Candidate BankcoreLoads a set of candidates (stimuli, sentences) that is not one row per trial — for retrieval and generation.Full description →
Model SetBrings models from earlier experiments into a workflow, e.g. to run one test on each.Full description →
Sub-WorkflowRuns another compiled workflow as a single step inside this one.Full description →

Analysis

The Analysis suite's processing steps, as blocks you can wire yourself.

Channel SelectioncoreKeeps the channels that best separate your classes and drops the rest.Full description →
Signal ProjectionTurns each channel's time series into an image, for image models (CNNs).Full description →
Time-Frequency FeaturescoreTurns time-frequency power into features: band power per channel and time window.Full description →

Outputs

Where a graph hands its results back.

Output BlockcoreMarks what a graph hands back; every graph ends in exactly one output.Full description →
Multi-Head OutputSplits one network into several output heads, one per task.Full description →

Graphs

Pictures of what a graph produced.

Graph OutputcoreDraws whatever reaches it and saves the picture. Can end a graph.Full description →
Data GraphcorePlots any data passing through, without ending the graph.Full description →
Confusion Matrix GraphcoreDraws a confusion matrix from true and predicted labels.Full description →

Ensemble & Voting

Several models' predictions combined into one.

Ensemble VoterCombines several models' predictions into one by voting or averaging.Full description →

Data Routing

Splitting, merging and combining data as it flows.

Data MergerJoins several data streams into one.Full description →
Data SplitterSplits data into several parts, e.g. train and test.Full description →
Feature ConcatenatorPuts several feature tables side by side into one wider table.Full description →
Stacking AssemblerBuilds a stacked ensemble: a second model learns from several models' predictions.Full description →
ForEach CollectGathers the results of a ForEach loop and ranks them.Full description →

Flow Control

Branches, loops and repeats — deciding what runs, and how often.

Conditional BranchSends data one way or another depending on a condition.Full description →
Pipeline SwitchPicks one of several routes for the data.Full description →
Parallel Fan-outSends the same data to several branches at once.Full description →
Loop BlockRepeats part of the graph a set number of times.Full description →
ForEachRuns the rest of the graph once for each item in a list.Full description →

Model Structure

Shaping a model before it is trained.

Model ConcatJoins parallel branches of a network side by side.Full description →
Expression LayerA small calculation between network layers, like log(1 + x). No weights.Full description →
Model AddAdds parallel branches of a network together (e.g. a skip connection).Full description →
Neural Prefix EncoderBrain-to-text: maps brain features into a frozen language model so it writes text.Full description →
Neural Image PrefixBrain-to-image: maps brain features into a frozen image decoder so it draws a picture.Full description →
Model PipelinecoreChains preprocessing and a model into one, so cross-validation refits every step per fold.Full description →
Neural ODE BlockA network layer that evolves continuously in time instead of in fixed steps.Full description →

Custom

Your own Python, as a step in the graph.

Custom CodeRuns your own Python as a step. Researcher plan.Full description →

Media

Stimuli — images, text, audio, video — lined up with the recording.

Media LoadercoreLoads the images, audio or video shown during the recording, one per trial.Full description →
Text LoadercoreLoads one caption per trial, for text decoding.Full description →
Media WindowerCuts a continuous stimulus stream into the same windows as the trials.Full description →
Audio FeaturesExtracts sound features (loudness envelope, spectrum, MFCC) from audio stimuli.Full description →
Media EmbedderDescribes each stimulus with a pretrained model's embedding.Full description →
Encoding Model (TRF)Relates a stimulus to the brain response over time — predicting either from the other.Full description →

Metrics

Turning predictions into numbers.

Accuracy MetriccoreShare of predictions that are right.Full description →
Confusion Matrix MetriccoreCounts which class was predicted for which true class.Full description →
F1 Score MetriccoreBalances precision and recall — better than accuracy for unequal class sizes.Full description →
Log Loss MetriccoreHow good the predicted probabilities are; punishes confident mistakes.Full description →
Metrics BundlecoreCollects several metric blocks into one input for a trainer.Full description →
Metric CalculatorcoreComputes metrics from predictions and true labels, right on the canvas.Full description →
Standard MetricscoreThe usual set of metrics in one block — pick a preset.Full description →
Precision MetriccoreOf the trials called positive, how many really were.Full description →
Recall MetriccoreOf the real positives, how many were found.Full description →
ROC AUC MetriccoreHow well the model ranks positives above negatives, across all thresholds.Full description →
R2 Score MetriccoreRegression: how much of the target's variation the model explains.Full description →
MAE MetriccoreRegression: the average size of an error, in the target's units.Full description →
MSE MetriccoreRegression: average squared error — large misses count much more.Full description →
RMSE MetriccoreRegression: square root of MSE, back in the target's units.Full description →
Median AE MetriccoreRegression: the typical error, not swayed by a few bad misses.Full description →
MAPE MetriccoreRegression: the average error as a percentage of the true value.Full description →
Explained Variance MetriccoreRegression: like R², but ignores a constant offset.Full description →
Pearson Correlation MetriccoreRegression: whether predictions rise and fall with the truth.Full description →

Training

The blocks that actually train, evaluate and reuse models.

BCILattice TrainercoreTrains a model on your data and reports how well it does. The standard trainer.Full description →
Fine-Tuning TrainerContinues training an already-trained model on new data, optionally freezing parts of it.Full description →
DANN TrainerTrains a model to work on a new domain (person, session) that has no labels.Full description →
Contrastive TrainerPre-trains a model on unlabelled data, before any labels are used.Full description →
Multi-Task TrainerTrains one model to answer several questions at once.Full description →
Class-Incremental TrainerAdds new classes over time without forgetting the old ones.Full description →
Domain-Incremental TrainerLearns the same classes on new domains in turn, without forgetting earlier ones.Full description →
Continual Learning TrainerTrains on tasks one after another, protecting what was learned before.Full description →
Distillation TrainerTrains a small model to copy a large one.Full description →
Trainer TriggerHands the trainer's training split to a block that must fit on training data only.Full description →
Validation SchemecorePlug into a trainer's Val/Eval input to cross-validate it (k-fold, leave-one-subject-out and more).Full description →
Evaluation ProtocolcorePlug into a trainer's Val/Eval input to choose what trains and what tests: e.g. train on session 1, test on the other sessions.Full description →
Nested CVCross-validation for when you also tune settings, so the tuning cannot inflate the score.Full description →
Time-Resolved DecoderDecodes at every time point, showing WHEN in the trial the classes differ.Full description →
Split by DomaincoreSplits data by subject, session or rows into two named parts.Full description →
Evaluate ModelcoreScores a trained model on new data, without training it further.Full description →
Load Trained ModelcoreBrings back a model trained in an earlier run — architecture and weights.Full description →
Forward PasscoreRuns data through a model and returns what comes out (e.g. embeddings).Full description →
Pseudo LabelcoreTurns a model's confident guesses on unlabelled trials into training labels.Full description →
Federated AveragingTrains one model across several sites without pooling their data.Full description →
Episode SamplercoreBuilds few-shot practice episodes: a handful of examples per class, plus test trials.Full description →
Prototypical AdaptercoreClassifies by the nearest class average — works with very few examples.Full description →
Meta-LearnerLearns a starting point that adapts quickly to a new person from a few trials.Full description →
Zero-Shot ClassifierRecognises classes it never trained on, from a description of each class.Full description →
Active Learning SamplercoreSuggests which unlabelled trials are most worth labelling next.Full description →
Label ModelCombines several noisy labellers into one best-guess label.Full description →
Architecture SearchTries many network designs and keeps the best on held-out data.Full description →
Rule Constraint LayerMakes a model's outputs follow rules you state, e.g. a valid command sequence.Full description →

Multiple Models

Working with several models or runs side by side.

Model CollectioncoreTrains several models on the same data in one run; each gets its own results row.Full description →
Model SelectorKeeps only the best of several models, by a score you choose.Full description →
Statistical ComparisonTests whether model A is really better than model B, or the gap is noise.Full description →
Run AggregatorPuts many runs in one table with confidence intervals and paired differences.Full description →
Decoding Curve ComparisonFinds when in time two decoding curves really differ.Full description →

Evaluation

Harder questions than 'what is the accuracy?'.

Pseudo-Online EvaluatorChecks whether a decoder would work live: false alarms per minute, delay, bit rate.Full description →
Neuro ExplainerShows which channels, bands and time windows the model relied on, drawn on a head.Full description →
Embed & RetrieveScores a model that ranks candidates (e.g. which image was seen) against chance.Full description →
Open-Set ScorerLets a classifier answer 'none of these' for trials unlike anything it learned.Full description →
Reconstruction EvaluatorScores a reconstructed image against the real one, with side-by-side pictures.Full description →
Uncertainty EstimatorcoreEstimates how sure the model is of each prediction, and whether that is calibrated.Full description →
Conformal PredictorGives a set of likely classes per trial, with a guaranteed hit rate.Full description →
Causal ConnectivityEstimates which channels drive which (Granger, transfer entropy), against a random baseline.Full description →

Domain Adaptation

Making a model work on a new person, session or site.

CORAL AdaptercoreAligns one domain's data statistics to another's, so a model transfers.Full description →
Euclidean AlignmentcorePuts each subject's data on a common reference — a simple, strong first step for cross-subject work.Full description →
Feature AlignmentcoreRescales features of one domain onto another (z-score, whitening, …).Full description →
Subject AdaptationcoreAdapts a trained model to a new subject using a little of their data.Full description →
Session TransferCarries a decoder from one session to the next.Full description →
MMD AlignerMeasures how different two domains are, and reduces the difference.Full description →
Transfer Component AnalysisFinds a shared space where two domains overlap.Full description →
DANN DiscriminatorThe domain classifier a DANN Trainer trains against.Full description →

Preprocessing

Getting data into the shape the next block needs.

EpochingcoreCuts continuous rows into model samples, sized in seconds, Hz or rows (the same settings as Select Files).Full description →
Epoch FeaturescoreTurns epoched signals into one row of features per trial, for classical models.Full description →
Projection AdaptercoreReshapes signal images for an image model or into feature rows.Full description →
Modality FusioncoreCombines EEG and fNIRS, and shows whether combining actually helped.Full description →

DL Training

The parts of a deep-learning training loop, if you want to set them yourself.

Adam OptimizerAdjusts network weights during training. The usual default.Full description →
AdamW OptimizerAdam with a better form of weight decay; common for transformers.Full description →
SGD OptimizerPlain gradient descent, optionally with momentum.Full description →
RMSprop OptimizerAn optimizer often used for recurrent networks.Full description →
Adamax OptimizerA variant of Adam that can be more stable.Full description →
NAdam OptimizerAdam with Nesterov momentum.Full description →
CrossEntropy LossThe usual training loss for choosing between classes.Full description →
BCEWithLogits LossTraining loss for yes/no or several independent labels; the numerically safe form.Full description →
BCE LossTraining loss for yes/no outcomes, on probabilities.Full description →
Focal LossFocuses training on the hard trials; helps with rare classes.Full description →
NLL LossTraining loss on log-probabilities.Full description →
MSE LossTraining loss for continuous targets: squared error.Full description →
L1 LossTraining loss for continuous targets: absolute error, less swayed by outliers.Full description →
Huber LossA mix of MSE and L1: squared for small errors, absolute for large ones.Full description →
StepLRLowers the learning rate by a step every few epochs.Full description →
ExponentialLRLowers the learning rate a little every epoch.Full description →
CosineAnnealingLRLowers the learning rate smoothly over training.Full description →
CosineWarmRestartsSmooth learning-rate decreases, restarted periodically.Full description →
OneCycleLRRaises then lowers the learning rate over one run.Full description →
CyclicLRMoves the learning rate up and down between two limits.Full description →
ReduceLROnPlateauLowers the learning rate when progress stalls.Full description →
Train/Val SplitterSets the split the training loop checks itself against.Full description →
PyTorch DataLoaderFeeds training data in batches.Full description →

Domain Incremental

Learning new domains one after another without forgetting old ones.

Replay BufferKeeps a sample of past trials to mix into later training, so old tasks are not forgotten.Full description →
EWC RegularizerProtects the weights an earlier task depended on.Full description →
Task ManagerOrganises a sequence of domains: one output head each, or one shared.Full description →
Domain Drift DetectorMeasures how different two domains are.Full description →
PackNet FreezerGives each task its own frozen share of the weights.Full description →
Progressive LayersAdds a new network column per domain, keeping the old ones frozen.Full description →

Graph Learning

Treating the electrodes as a graph.

Channel Graph BuilderBuilds a graph of how electrodes relate (correlation, coherence, distance).Full description →
Graph Neural EncoderA graph neural network over that electrode graph.Full description →

Generative Models

Generating synthetic trials.

GAN TrainerGenerates synthetic trials with a GAN, and checks they are not copies of real ones.Full description →
Diffusion GeneratorGenerates synthetic trials with a diffusion model, and checks they are not copies.Full description →

Reinforcement Learning

Learning a policy from feedback.

RL Agent TrainerLearns which action to take from feedback, trial by trial.Full description →
Offline Policy TrainerLearns a policy from logged past interactions.Full description →
Multi-Agent ArenaSeveral policies with an arbiter; checks whether the group beats its best member.Full description →

Looking for a library block (an sklearn classifier, an MNE filter, a PyTorch layer)? Search the palette in the app, or see the Components reference. To turn another package into blocks, see Extensions.

Block Index v1.0 · BCINexus Platform · 2026-05-20