Skip to content

Instantly share code, notes, and snippets.

What would you like to do?

Final Report

Student: Xiangxiu Meng

Mentors: Paula Popa, Lia

Project: Monitor Sensors signal in 2D and 3D

Organization: INCF

Description: The project is about refactoring the current dual brain activity visualiser's 2D plots and adding new visual components to its 3D part to display more information about the signals. The 2D part was rewritten in the modern javascript library d3.js. In the 3D part, apart from the instant activity of the brain, we added a dynamic sphere at the location of the signal. The proposed new viewer also have the interactivity of zooming, play and pause for the users.

What work was done

  1. tvb-framework: 2D and 3D display of the signals

    • Class for the New Dual Brain Viewer

    • 2d display rewritten into d3.js based on the svg/d3 viewer

    • Create a timeline and a dragging area to select a time range in the timeline

    • Transform the brain surface to transparent

    • Display spheres at the region center or sensor's location (based on the measure points)

    • Change the size of the spheres according to the energy calculated from the time selection window below the 2d display

    • Change the spheres dynamically with different sizes of the movie time

  2. tvb-library: Filter and calculate energy of a given interval length

    • Read a given interval length
    • Filter signal data using a butterworth bandpass by the length of the time selection
    • Calculate the energy of the given length across the whole timeline

Unmerged Pull Requests

User Guide

Guide for the New Dual Brain Visualizer

The user guide for the previous version of the dual brain visualiser may also be helpful

What's left to do

  • The implementation of the energy computation can be further improved by using window functions and calculate in the frequency range
Several bugs in the existing viewer have been found but not all of them are solved during the project:
  • The time data doesn't confirm to the original time data in the h5 file
  • Stroke weight of the signal lines in the 2D viewer doesn't behave normally
Other issues introduced in the project:
  • FLOT relevant code not cleared up completely in the dualBrainViewer.js
  • The viewer depends on d3v5 in the 2d display while some of the code in the tvb uses version 4. It should be merged to a unified version and reduce unnecessary dependencies.


I gratefully acknowledge the assistance of my mentors Lia and Paula for what they did in the project while facing a time and space difference. I have gained a lot as it is my first time working with professional developers, open-source community and an established software program. The experiences and challenges I have been given in the project are profound for my growth and future development. I will keep contributing to the tvb and the fantastic community behind this great project.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
You can’t perform that action at this time.