A Virtual Reality (OpenXR) workbench written in Python. Aims for easier installation and more flexibility than C++ XR fork.
XR_RUNTIME_JSON=json_file_placement FreeCAD_executable
an example:
XR_RUNTIME_JSON=/usr/local/share/openxr/1/openxr_monado.json ./FreeCAD_1.0.0-conda-Linux-x86_64-py311.AppImage
Note: the OpenXR has to support XR_KHR_opengl_enable extension. Known runtimes that support this extension include SteamVR and Monado.
Installation of the libraries:
pip install pyopenxr
FreeCAD_xxx/bin
directory and run: python.exe -m pip install pyopenxr
Copy the freecad-xr-workbench
directory to FreeCAD's Mod
directory:
/home/username/.FreeCAD/Mod/
(can be /home/username/.local/share/FreeCAD/Mod/
in old releases)%APPDATA%\FreeCAD\Mod\
, which is usually C:\Users\username\Appdata\Roaming\FreeCAD\Mod\
See also: FreeCAD Wiki: Installing more workbenches
A new XR
workbench will appear.
The XR workbench can use two motion controllers to introduce artificial movement on top of the room-scale (real world) movement. There are two modes (select one in Edit->Preferences->XRWorkbench):
Additionally, a teleport movement is available: press secondary (default right) controller trigger, a ray become visible. Release the trigger, you will be teleported to place where the ray was intersecting (indicated by a small sphere) an object.
Wayland/EGL support not implemented yet.
Linux specific:
SteamVR performance can be abysmal, it is often much better with Monado. However, running Monado with libsurvive using multiple Lighthouses can cause bad tracking. Fortunately, there is a way to combine the best of both world - use Monado with SteamVR tracking:
STEAMVR_LH_ENABLE=true monado-service
Check LICENSE for details.