UNITE

Get started

Install UNITE and run your first study. By the end you will have a working delayed-teleoperation study running in Unity, and you will have made it your own by changing a single module.

Installation

To run UNITE locally you need:

  • Unity Hub and Unity 6000.3.15f1 (Unity 6) — the exact version recorded in ProjectSettings/ProjectVersion.txt.
  • Git and Git LFS — the project stores its 3D models, textures, and other binary assets with LFS.

Install Git LFS first. The 3D models, textures, and other binary assets are stored with Git LFS, so git lfs install must run before you clone, or the asset files arrive as small text pointers instead of real meshes.

Install Git and Git LFS

With Homebrew installed, run:

bash
brew install git git-lfs

Alternatively, install Git with Apple's Command Line Tools using xcode-select --install, then install Git LFS from git-lfs.com.

Clone the repository

Run these commands after installing Git LFS:

bash
git lfs install
git clone https://github.com/Dries-Cardinaels/spacechi-unite.git
cd spacechi-unite
git lfs pull

git lfs pull is safe after a fresh clone and makes the asset-download step explicit. If you already cloned the repository before installing Git LFS, run the same commands from inside the cloned folder, starting with git lfs install and git lfs pull.

Open the resulting folder in Unity Hub: choose Add → Add project from disk, select the cloned folder, and open it with Unity 6000.3.15f1. Library/, Logs/, and the IDE project files are regenerated by Unity on first open and are intentionally not tracked.

Optional but recommended. Register Unity's smart merge tool so scene and prefab merges resolve cleanly — .gitattributes already routes .unity, .prefab, and similar files through it.

Point the unityyamlmerge merge driver at the tool shipped with your Unity install, for example on macOS:

bash
git config merge.unityyamlmerge.name "Unity SmartMerge"
git config merge.unityyamlmerge.driver \
  '"/Applications/Unity/Hub/Editor/<version>/Unity.app/Contents/Tools/UnityYAMLMerge" merge -p %O %B %A %A'

Quick start

This walkthrough takes you from the freshly opened project to a running study, and then to your own variation of it by changing a single module.

  1. Open a study scene. In the Project window, open Assets/UNITE/Demo/every-move-you-make/Scenes/condition-baseline.unity. It is the bundled Every Move You Make demo: a TurtleBot3 Waffle Pi rover on a lunar-analog course under a fixed 2.56 s uplink delay, with an operator display, a task, and logging already wired up.
  2. Press Play and drive. Hit Play and drive the rover from the keyboard: the Up / Down arrow keys to drive forward or backward, and the Left / Right arrow keys to turn. Notice the lag between your keypress and what you see, which is the 2.56 s delay the study applies.
  3. See how the study is assembled. Select the TeleroboticsAgent GameObject in the Hierarchy. Its Inspector shows the study's ID and Update Rate, plus the connected input, mapping, communication, vehicle, observation, presentation, task, and logging modules: input read by the keyboard provider, mapped to wheel velocities, delayed by Uplink Communication, applied by the TurtleBot3 Vehicle / Robot Model, and sent back through the downlink modules to Operator Presentation.
  4. Make it your own: change the delay. The delay lives in a communication-condition asset, Configurations/Fixed-Uplink-2560ms, that the Uplink Communication module references. Edit its delay (or point the module at a different condition asset) and press Play again: the same study now runs under your condition, with nothing else changed.
  5. Save it as a shareable study. Save the scene under a new name, then commit the scene together with any changed configuration assets. That scene is your study: a collaborator opens it and runs exactly what you ran.

The core idea. You never rebuild the apparatus; you reconfigure it. Every study is the same loop of modules with different choices plugged in, which is what makes studies reproducible and comparable.

Next steps