Unity Samples Learning Resources

Problem

It is challenging to know how to “start” with many of our different parts in Bessy Unity. Multiple unfinished introductory resources currently exist in isolation from one another which, could address this issue in part or in full. Any successfully suite of learning resources would discretely address the needs of the multiple different types of user in the wide range this tool is intended to serve.

How can we set package users up for success?

Users

As broadly adapted from Personas / Use Cases , there are three broad types of users to target:

Resource Types

We have multiple fronts on which to address the disparate introductory needs of different user groups. Each could be made much more useful, both independently and interdependently, by establishing a clear intention for each platform. Below is a summary of the platforms we have and some theories of how they could be adapted to be a more effective part of a holistic knowledge resource strategy.

Confluence

recommendations

Samples

recommendations

Minimum Setup Example(s)

Functional examples that can be re-created in the few amount of the simplest steps possible.
Already present in package in the form of the simple paradigm examples.

Controller Hot-Swapping

An example scene with multiple controller behaviours that can be swapped between on demand.
Already present in package.
It is doubtful that this behaviour-swapping will get used in an application, but it is way too useful for testing.

ES Stimulus Presentation Reboot

A fixed up, streamlined version of the mini project present in package.

Context-Aware P300 Example

A scene with simple controller/controller behaviour setup but complex SPO behaviour which causes them to move around between each other and sometimes off-screen. This would be most simply achieved by conventional first-person movement of a camera in a 3d space.

Low Level Switch Example - Just Markers

An example not using BCIController or any behaviours, interfacing with python directly using the LSL stream components provided.

Wiki

Provides high level design/class information to technical users. Already mostly complete.

Outline

Home Page / Getting Started
High Level Interface
Custom Behaviour
Low Level Interface - LSL Markers
Unity
Python

Tutorials

Functionally equivalent to samples with a little more documentation. Likely best as simple walk-through guides for each sample. What is going on and how could a reader could build it themselves?

API Reference

Automatically generated documentation from python docstrings. Public facing, most useful to a technical developer that might be using BCI Essentials as a library without reading the source code. Should be in good condition now that it’s working again and will continue to be so long as in-code documentation continues to be maintained to a consistent standard.