Contributor Onboarding
This page is the fastest way for an engineer to orient inside the repository and start making intentional changes.
What This Repository Contains
This repository contains the Unity XR client for CASSANDRA.
It includes:
- the viewer runtime
- the VRDF load and render path
- the XR interaction layer
- the voice and AI client runtime
- the public Docusaurus documentation site in
website-doc/
It does not contain the full backend implementation.
Prerequisites
The current Unity project version is:
6000.2.6f2
The repo also includes a Node-based docs site in website-doc/, which currently expects:
- Node.js
>=20 - npm
First Local Entry Points
If you are opening the Unity project for the first time, start here:
- scene:
Assets/Scenes/MainScene.unity - package manifest:
Packages/manifest.json - project version:
ProjectSettings/ProjectVersion.txt
If you are opening the docs site for the first time, start here:
- app config:
website-doc/docusaurus.config.ts - sidebar:
website-doc/sidebars.ts - landing page:
website-doc/src/pages/index.tsx
Main Areas Of The Codebase
The product code is concentrated in:
Assets/Scripts/APIAssets/Scripts/ChatbotAssets/Scripts/DVRAssets/Scripts/InteractionAssets/Scripts/UIAssets/Scripts/VRDFAssets/Shaders
Use that split as your first mental model:
- API and orchestration
- rendering and VRDF
- UI and interaction
- voice and AI
What To Read First
For architecture:
For rendering work:
- VRDF
- Rendering Pipeline
Assets/Scripts/VRDF/VolumeVRDFLoader.csAssets/Scripts/DVR/VolumeDVR.cs
For backend-facing work:
- Backend Integration and Contracts
Assets/Scripts/API/Ochestrator/StudyService.csAssets/Scripts/API/DataContract/StudyMapper.csAssets/Scripts/API/Websocket/PusherClient.cs
How To Run The Docs Site
From website-doc/:
npm install
npm run start
To build the static site:
npm run build
Useful maintenance commands:
npm run clear
npm run typecheck
How To Work On The Unity Side
The practical runtime entrypoint is MainScene.
The main sequence is:
- open
Assets/Scenes/MainScene.unity - verify the main serialized references resolve correctly
- enter Play Mode
- watch the startup pipeline fetch study data and download
.vrdfassets
If a change affects startup, reload, or modality switching, test it against that scene flow first.
Common Change Areas
If you need to add a backend study field:
- edit
Assets/Scripts/API/DataContract/JsonFormatUtility.cs - update
Assets/Scripts/API/DataContract/StudyMapper.cs - propagate into
Assets/Scripts/API/StudyRuntimeSO.cs - update the UI or voice consumers
If you need to change volume loading or shader input:
- edit
Assets/Scripts/VRDF/VolumeVRDFLoader.cs - edit
Assets/Scripts/DVR/VolumeDVR.cs - update the relevant shader under
Assets/Shaders
If you need to change study reload behavior:
- inspect
Assets/Scripts/API/Websocket/PusherClient.cs - inspect
Assets/Scripts/API/Ochestrator/SessionDataController.cs - inspect
Assets/Scripts/API/Ochestrator/SessionVolumeLoader.cs
Important Architectural Realities
Before making large changes, keep these facts in mind:
- there are no custom
asmdefboundaries for the main application code - many dependencies are inspector-wired through
MainScene - some runtime configuration is static rather than dependency-injected
- reloads rebuild textures rather than reusing a streaming pool
This means changes can have broader coupling than the file layout suggests at first glance.
Current Local Validation
The repository currently has very limited automated test coverage.
In practice, contributors should validate changes through:
- targeted Play Mode checks in
MainScene - modality load and reload testing
- Quest versus desktop checks when the change touches rendering
npm run buildfor documentation changes
Related Repositories
Useful external context: