A repository for the VR Foraging task.
This repository follows the project structure laid out in the Aind.Behavior.Services repository.
Pre-requisites for running the project can be found here.
For convenience, once third-party dependencies are installed, Bonsai and python virtual environments can be bootstrapped by running:
./scripts/deploy.ps1from the root of the repository.
The VR Foraging tasks is instantiated by a set of three settings files that strictly follow a DSL schema. These files are:
task.jsonrig.jsonsession.json
Examples on how to generate these files can be found in the ./Examples directory of the repository. Once generated, these are the the only required inputs to run the Bonsai workflow in ./src/main.bonsai.
The workflow can thus be executed using the Bonsai CLI:
"./.bonsai/bonsai.exe" "./src/main.bonsai" -p SessionPath=<path-to-session.json> -p RigPath=<path-to-rig.json> -p TaskPath=<path-to-task.json>To regenerate all schemas (task logic, rig, and curricula), run the following from the repository root:
uv run scripts/regenerate.pyThis runs both vr-foraging regenerate and the curricula schema generation in sequence.
This repository includes both Python and .NET tests.
Run Python tests:
uv run pytestRun .NET extension tests:
dotnet test ./tests/Extensions.Tests/Extensions.Tests.csprojThe .NET test project references ./src/Extensions.csproj directly and targets net480.
The platform exposes a few CLI tools to facilitate various tasks. Tools are available via:
uv run vr-foraging <subcommand>for a list of all sub commands available:
uv run vr-foraging -hYou may need to install optional dependencies depending on the sub-commands you run.
Once an experiment is collected, the primary data quality-control script can be run to check the data for issues. This script can be launched using:
uv run vr-foraging data-qc <path-to-data-dir>Data mapping is provided by the internal aind-behavior-vr-foraging-data-mappers workspace package. Once an experiment is collected, run:
uv run vr-foraging-data-mapper --helpSee the data mapper package README for installation details.
The VrForaging platform supports a curricula structure that allows for the organization and management of different learning paths and experiences. The implementation relies on the a common definition of "curriculum" progression provided by aind-behavior-curriculum.
Curricula are expected to be defined in aind_behavior_vr_foraging_curricula package.