BF++ Toys [Quitadamo et al. 2007] is a collection of software tools and utilities developed to analyse, optimize and design Bio-Feedback and Brain-Computer Interfaces. They are a part of the BF++ framework (Bio-Feedback in C++ [Bianchi et al 2003]) which is itself a part of the NPXLab Suite. They can be obtained at Once installed on your computer they are accessible from the Windows Start menu.
According to the Mason model [Mason, 2003] (Fig. 1), a Brain Computer Interface system (and more in general a Human Computer Interaction system) is formed by a Transducer (TR, which includes the acquisition stage and the Classifier) and a Control Interface (CI). A TR is responsible to acquire physiological data (e.g. by means of EEG, EMG, EOG, etc..) and convert them into logical symbols (LS) which in general have no semantic symbols but that represent the output of the classifiers. For example, if a subject is asked to perform some mental tasks such as a computation, or the imagery of a motor task, then to each of these mental tasks a logical symbol is usually associated. In general there is a 1 to 1 correspondence between a LS and a mental task that is detectable by a classifier. The set of LSs that can be outputted by the classifier represent the Logical Alphabet (LA) of the Transducer. Finally, a TR is characterized by an Extended Confusion Matrix (ECM) in which the results of the classifications performed by a TR are summarized.


Fig. 1 - Logical scheme of a Human-Computer Interaction system.


The CI, instead, is responsible to convert LSs into Semantic Symbols (SS) which have a specific meaning and that can be used to perform a specific predefined action. It should be noted that a CI does not directly deals with brain or physiological signals, but just LSs and SSs. The complete set of SS that can be generated by a CI represents the Semantic Alphabet (SA). A CI is characterized by an encoding which is a map of SS into sequences of LS. Similarly to a LA, a SA is a collection of symbols, but in this case to each symbol (which is mapped to a real action such as switch on the light, write the ‘P’ letter, etc...) a probability of occurrence can be associated (see [Bianchi et al. 2007]).
As an example, in classical P300 spellers [Krusienski et al, 2008] characters are disposed on a 6 by 6 matrix (Fig. 2) and all of the characters of a row or a column flash in a pseudo-randomized order (the 4th row in the figure).


Fig. 2 – The typical virtual keyboard of a P300 Speller

The user is asked to fixate a characters and from the evoked responses to each of the flashes (12, 6 for the rows and 6 for the columns) it is possible to detect which characters he was attending. In this case the LA is formed by 12 symbols (the 6 rows plus the 6 columns) while the SA is formed by 36 characters (the symbols in the matrix). Two LSs (one row and one column) are necessary to select a SS. For example, the encoding of the P character is {3rd row, 4th column}.
The BF++ Toys are a set of tools and utilities aimed at analyzing, tuning, and designing BCI and HCI systems. The only entities that they handle are the two alphabets, the encodings and the ECMs. These four elements can completely (statically) characterize a BCI system. Each of the Toy reports a version number on the main form. Please, use this version number for every communication with the BRAINTERFACE developers team.
BF++ Toys include:
The Alphabet Builder Toy;
The Confusion Matrix Generator Toy;
The File Simulator Toy;
The Live Board Toy;
The Encoder Generator Toy;
The Simulator Board Toy;
The Optimizers Toys;
The Performance Metrics Toy.