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 Scene
scene, theMiniBrain.cs
script can be found attached to two example GameObjects that are children of theSteamVR CameraRig
GameObjects- 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 (
.txt
or.csv
) (|
delimited) - Structure connectivity file (
.csv
) (,
delimited) - Optional subsystem files:
- Subystem info file (
.txt
or.csv
) (|
delimited) - Subsystem connectivity file (
.csv
) (,
delimited) - Subsystem connection description file (
.txt
or.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/Resources
folder - 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/Resources
folder, 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 Scene
scene in theSONIA/Assets/Scenes
folder - Navigate to the
Mini Brain
GameObject (child of theSteamVR CameraRig
GameObject) - Attached to the
Mini Brain
GameObject is theMiniBrain.cs
script - Fill the following fields in the
MiniBrain.cs
script 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/Resources
folder - 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.cs
script under the Connectivity header:- Highest Value: The maximum strength of all connections in the entire connectivity matrix
- Fill the following fields in the
MiniBrain.cs
script 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/Resources
folder - 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
Tutorial
GameObject - Enable the
Tutorial
GameObject - Attached to the
Tutorial
GameObject is theTutorialLoader.cs
script - Fill the following fields in the
TutorialLoader.cs
script (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/Resources
folder - 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.