kwahoo2 / freecad-xr-workbench

Virtual Reality (OpenXR) workbench for FreeCAD written in Python
GNU Lesser General Public License v3.0
3 stars 2 forks source link
addon freecad openxr vr workbench

FreeCAD XR Workbench

A Virtual Reality (OpenXR) workbench written in Python. Aims for easier installation and more flexibility than C++ XR fork.

Forum thread

FreeCAD-XR

Prerequisites

Software Dependencies

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.

Python libraries

Installation of the libraries:

Hardware

Installation and Usage

Copy the freecad-xr-workbench directory to FreeCAD's Mod directory:

See also: FreeCAD Wiki: Installing more workbenches

A new XR workbench will appear.

Movement in the 3D space

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):

Arch-like movement:

Free movement:

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.

Known issues:

Wayland/EGL support not implemented yet.

Tips and tricks:

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

License

Check LICENSE for details.