Signal Processing and Classification Environment written in Python

Contact person:
Dr. rer. nat. Mario Michael Krell
Dipl.-Biomath. Anett Seeland
Dr. rer. nat. Sirko Straube
pySPACE is a modular software for processing segmented time series and feature vector data. It has been specifically designed to enable distributed execution and empirical evaluation of manifold signal processing chains and can be used for benchmarking and online applications. It automatically loads, processes, and stores different datasets. Signal processing algorithms (nodes) and larger transformations of several datasets (operations) can be easily concatenated. The automatic processing can be done in parallel on a multicore system or cluster. pySPACE provides a growing number of algorithms and is actively maintained and developed.
Keywords: machine learning, signal processing, parallelisation
Status: active
Operating system: Linux, Mac OS X, Windows
Programming languages: Python
Licence: GPL3
Ownership: This software was originally developed by the DFKI as well as by the Robotics Research Group and the University of Bremen. Now this software is also being developed by third parties. For questions and suggestions, please refer to the contact persons.

Software description

Processing scheme of a node chain operation in pySPACE. A and B are two different datasets, which shall be processed as specified in a simple spec file. The processing is then performed automatically. As a result, it can produce new data but also visualizations and performance charts. To speed up processing, the different processing tasks can be distributed over several CPUs. The puzzle symbols illustrate different modular nodes. They are concatenated to a node chain. (Source: DFKI GmbH)
Some examples of the more than 200 processing nodes in pySPACE, arranged according to processing categories (package names). The size of the boxes indicates the respective number of currently available algorithms. (Source: DFKI GmbH)

Algorithms (Nodes) for Processing Chains

The modular node chain always begins with data loading (Source) and ends with data storing or sending (Sink). A normal EEG signal processing chain consists of several preprocessing algorithms like detrending, decimation, and temporal filtering, a spatial filter like ICA or xDAWN which combines sensors, a feature generator and a feature normalization, and finally a classification with optional modification of the classification score. Additionally, in between data and algorithms can be visualized or data is split into training and testing data, e.g., cross-validation. Some algorithms can internally call one or several other nodes to combine them, change their behavior, or optimize their parameters. The optimization can be again done in parallel.


  • easy to install & setup (central configuration center; required dependencies: Python, YAML, NumPy, SciPy; optional dependencies: matplotlib, scikit-learn, PyQt4, mpi4py, LIBSVM, LIBLINEAR, MDP, ...)
  • easy to use and extend
  • online available documentation
  • wrapper to external libraries (scikit-learn, Maja Machine Learning Framework, Weka)
  • GUIs for evaluation and creating and running signal processing chains


Application Field: Assistance- and Rehabilitation Systems
Space Robotics
Related Projects: IMMI
Intelligent Man-Machine Interface - Adaptive Brain-reading for assistive robotics (05.2010- 04.2015)
Virtual state prediction for Groups of reactive autonomous Robots (04.2011- 06.2014)
Active Constraints Technologies for Ill-defined or Volatile Environments (04.2011- 03.2015)
Recupera REHA
Full-body exoskeleton for upper body robotic assistance (09.2014- 12.2017)
Battery electric waste management with robotic assistance (01.2017- 06.2020)
Cognitive Occupational Safety for Human-Machine Interaction (08.2018- 07.2021)
Exploring the Potential of Pervasive Embedded Brain Reading in Human Robot Collaborations (06.2020- 05.2024)
Detection of action deviations through learning with limited computing resources (08.2020- 12.2022)
Virtual Immersion for holistic feedback control of semi-autonomous robots (01.2008- 12.2010)
Related Robots: Exoskeleton Active (VI-Bot)
Upper body Exoskeleton (right arm)
BRIO Labyrinth
Testbed for the development of learning architectures
Sponsor: Federal Ministry of Economics and Technology
German Aerospace Center e.V.
Grant number: FKZ 50 RA 1012, FKZ 50 RA 1011
last updated 16.11.2023
to top