Please cite the following reference for the SONIA platform:
O. Hellum, C. Steele, Y. Xiao, “SONIA: an immersive customizable virtual reality system for the education and exploration of brain networks,” Frontiers in Virtual Reality, vol 4, doi: 10.3389/frvir.2023.1244096, 2024.
Customizable system for displaying and inspecting brain structures, connections, and subsystems. Built over the course of 4 months by Research Assistant Owen Hellum at Concordia University for Health-X Lab. The project was supervised by Dr. Yiming Xiao, Assistant Professor in the Department of Computer Science and Software Engineering at Concordia University, and Principal Investigator at Health-X Lab. The systems were designed for Virtual Reality (VR) in Unity with SteamVR and a HTC VIVE Pro Eye HMD (head-mounted display).
- Customizable design
- Novel visualization methods
- Fine-tuned use of colour and spatiality for user experience
- Able to load and visualize high volumes of complex data
- Basic knowledge of Unity scene and GameObject navigation
- Unity version 2021 or later (though it would probably work with earlier versions back a couple years)
- SteamVR
- HTC VIVE Pro Eye HMD (though other VR headsets can theoretically also be used, I have not tested this)
- Windows 10/11
- SteamVR
- HTC VIVE Pro Eye HMD (though other VR headsets can theoretically also be used, I have not tested this)
The full package can be downloaded from the GitHub repository.
A built version (without TTS voiceover, with the AAL atlas loaded) can be downloaded from the releases page.
If downloading for development, the following factors should be considered:
- In the
Main Scenescene, theMiniBrain.csscript can be found attached to two example GameObjects that are children of theSteamVR CameraRigGameObjects- The active GameObject is loaded with a custom atlas of anxiety response structures/connections
- The inactive GameObject is loaded with the AAL atlas (may present errors, as it has only mildly been tested)
- All scripts are fully documented, and can provide useful information, should an error occur
- To run the system with a customized atlas of your own, please see the following section
- While the text for the optional tutorial is customizable, the in-code trigger points are not. For this reason, the use/customization of a tutorial is not recommended
- Structure model files (
.fbx) - Structure info file (
.txtor.csv) (|delimited) - Structure connectivity file (
.csv) (,delimited) - Optional subsystem files:
- Subystem info file (
.txtor.csv) (|delimited) - Subsystem connectivity file (
.csv) (,delimited) - Subsystem connection description file (
.txtor.csv) (|delimited)
- Subystem info file (
- Optional extra structure files:
- Extra structure model files (
.fbx) - Extra structure connectivity file (
.csv) (,delimited)
- Extra structure model files (
- Optional tutorial files:
- Tutorial text file (
.txt)
- Tutorial text file (
- Navigate to the
SONIA/Assets/Resourcesfolder - Create a folder, and name it accordingly
- Place all required and optional files (except for extra structure files) loosely inside of the new folder (do not create any subfolders within this new folder)
- If using extra structure files, create another folder in the
SONIA/Assets/Resourcesfolder, and name it accordingly, and place the extra structure files loosely inside (including the extra structure connectivity file) (do not create any subfolders within this new folder)
- Open the
Main Scenescene in theSONIA/Assets/Scenesfolder - Navigate to the
Mini BrainGameObject (child of theSteamVR CameraRigGameObject) - Attached to the
Mini BrainGameObject is theMiniBrain.csscript - Fill the following fields in the
MiniBrain.csscript under the Files header (type only the name of the folder/file, not the full path) (do not include the file extension):- Path: The name of the first folder you created in the
SONIA/Assets/Resourcesfolder - Info Path: The name of the structure info file
- Connectivity Path: The name of the structure connectivity file
- Subsystems Info Path: The name of the subsystem info file
- Subsystems Connectivity Path: The name of the subsystem connectivity file
- Subsystems Connectivity Description Path: The name of the subsystem connection description file
- Path: The name of the first folder you created in the
- Fill the following fields in the
MiniBrain.csscript under the Connectivity header:- Highest Value: The maximum strength of all connections in the entire connectivity matrix
- Fill the following fields in the
MiniBrain.csscript under the Extra structures header (type only the name of the folder/file, not the full path) (do not include the file extension):- Extra Path: The name of the extra structures folder you created in the
SONIA/Assets/Resourcesfolder - Extra Connectivity Path: The name of the extra structures connectivity file
- Extra Path: The name of the extra structures folder you created in the
- If you wish to include a tutorial
- Navigate the the
TutorialGameObject - Enable the
TutorialGameObject - Attached to the
TutorialGameObject is theTutorialLoader.csscript - Fill the following fields in the
TutorialLoader.csscript (type only the name of the folder/file, not the full path) (do not include the file extension):- Path: The name of the folder you created in the
SONIA/Assets/Resourcesfolder - Tutorial Path: The name of the tutorial text file
- Path: The name of the folder you created in the
- Navigate the the
In the old branch, code and scenes from previous iterations of the system can be found. They would most likely have errors, and would require careful debugging to fix the issues. That being said, they are also fully documented.


