OpenClinXR is an evidence-gated XR clinical simulation workspace for virtual-patient encounters, Quest/WebXR runtime evidence, local-first voice, and production asset readiness.
Project page: https://developers.simnova.com/OpenClinXR/
This repository is early-stage infrastructure, not a clinical product. Runtime, voice, XR, and asset-generation claims are deliberately scoped by committed evidence artifacts and validator scripts.
Useful entry points:
- OpenClinXR docs
- Implementation plan
- PNPM audit cadence runbook
- Quest 3 USB WebXR smoke checklist
- Local AI voice model strategy
- Automated asset generation pipeline
Use Node 22.19.0 and pnpm 10.33.0.
If your terminal still points to an old/global Node binary, use nvm before running pnpm:
export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && . "$NVM_DIR/nvm.sh"
nvm useWith .nvmrc in this repo, nvm use will pick 22.19.0.
pnpm agent:verify
pnpm typecheck
pnpm test
pnpm security:audit-policy
pnpm security:licensesTo reproduce the ICU mismatch error before you switch Node runtimes:
/opt/homebrew/bin/node -vOn this machine this fails with:
dyld[xxxx]: Library not loaded: /opt/homebrew/opt/icu4c/lib/libicui18n.74.dylib
If you still see that error, run:
export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && . "$NVM_DIR/nvm.sh"
nvm useFor GitHub Pages maintenance:
pnpm pages:sync-evidence-links
pnpm pages:sync-validate
pnpm pages:validatepages:sync-evidence-links updates the four snapshot links under docs/index.html
to the latest matching files in docs/openclinxr using the data-pages-snapshot keys.
pages:sync-validate checks whether docs/index.html is already up to date and then
runs pages:validate.
The public GitHub Pages site is static content in docs and is configured to publish from main with /docs as the Pages source.