NexusDynamic logo: a central pulsing node connected to surrounding nodes of different shapes

Multimodal group social dynamics research, for everyone

NexusDynamic builds a group-first, cross-platform suite of tools that make it easy to collect behavioural, EEG, motion capture or any other data. Anything with a Lab Streaming Layer integration, or any API that produces data, can be recorded or forwarded on as an LSL stream.

App

LSL Viewer

An XDF file viewer and live LSL stream viewer. Open LabRecorder recordings of any size (in the browser they are read locally, never uploaded), view live streams with filters, re-referencing, power spectra and signal quality, record to XDF, replay recordings as LSL streams, and share streams across networks with the built-in WebSocket bridge and relay. It also works with OpenBCI Cyton and serial devices, including over WebSerial.

  • Web
  • Windows
  • macOS
  • Linux
  • Android
LSL Viewer showing 35 channels of EEG from an XDF recording

Game

Rise Together

A cooperative and competitive physics game. Keep the ball in the air by lifting the left and right sides of your paddle, climb through the levels and race the other team to the top. Play solo, team up in co-op, or play team against team online with quick match or a private room code. It includes a level editor and untimed play. It is the game version of our research paradigm, without the research logging and multimodal integration.

  • Web
  • Android
  • iOS
  • Windows
  • macOS
  • Linux

liblsl.dart

The core of the project: Lab Streaming Layer and XDF for Dart and Flutter, on Android, iOS, Linux, macOS, Windows and the web.

liblsl

Dart and Flutter bindings for liblsl, with full parity with the C library. Makes LSL integration into your app a breeze.

xdf

Read and write XDF files in pure Dart on every platform, including the web. Uses the same algorithms as pyxdf and is tested against it.

signal_core

A format-agnostic multichannel signal engine (summary pyramids, filters) that powers the viewer and the xdf package.

lsl_tools

The lsl command line tool: list, record to XDF, share across networks, bridge, relay, replay and generate LSL streams.

serial_transport

Serial devices from Dart on desktop and in the browser (WebSerial). The OpenBCI Cyton driver is built on it.

Timing and latency

Validate latency and synchronisation in your own lab, on the devices you plan to use, before you collect any data.

liblsl_timing

An app for multi-device latency, synchronisation and interactive timing tests, with devices coordinated automatically over LSL.

liblsl_analysis

Analysis of the results from liblsl_timing tests.

button_display_latency

A Flutter app that measures the input-to-display pipeline for different button implementations, with frame-accurate timing and sync pulses for external measurement.

bela-lsl-timing

Validate end-to-end device latency with a Bela, photodiodes and force-sensitive resistors.

Bela-liblsl

A pre-compiled liblsl build for the Bela (BeagleBone Black).

Research paradigm

Simultaneous cooperation and competition in groups

RiseTogether is a video-game-style experimental paradigm for studying simultaneous cooperation and competition in groups. It supports different group sizes and is built on the liblsl.dart framework, which coordinates and configures the experiment automatically in different labs, on different devices and with different numbers of participants.

The research code and data will be released once data collection is complete. Until then, see the poster for an overview, or play the game version, Rise Together.

Conference poster for the framework and paradigm

Flutter packages

General-purpose packages built along the way, useful in any Flutter app.

flutter_multicast_lock

Acquire multicast locks on Android (and safely do nothing on other platforms), which LSL discovery needs.

flutter_refresh_rate_control

Ask Android and iOS devices to use their highest refresh rate (such as ProMotion) and try to disable Android's adaptive refresh rate.

easy_shared_preferences

A wrapper around shared_preferences that makes app settings easier to manage and modular.