Limitations & Future Plans
Obstacles on 100% Open-Sourcedness
Processing
We opted for the Raspberry Pi as the processor unit for the headset due to its widespread availability, user-friendliness, and ease of assembly. However, it's important to note that the hardware itself is proprietary, which might be limiting for certain users. Additionally, Raspberry Pis have gained notoriety due to occasional stock shortages.
IMU
Our current choice of IMU is SenseHAT, which is only compatible with Pis and will remain in production until at least January 2028 (see Obsolescence Statement).
Optical Combiners
The optics, or optical combiners, are disassembled from a proprietary product purchased on Aliexpress. We are continually exploring alternative DIY solutions. Note that distortion shaders/parameters will require adjustment if there are changes to the optics.
Headset
Display & Optics
The current mechanical design is unfortunately flawed due to the limited available room to properly reflect the display's image onto the user's eye (See Optics). We did our best to eliminate the visual anomalies and distortions with the provided distortion shader code.
We are working on increasing the active area through a new mechanical design.
Bullseye
We chose Bullseye as the version of Raspberry Pi OS. Here are the reasons behind this decision:
- It ships with GStreamer 1.18.
- Supports libcamera, Arducam OV9281 and Picamera2. [Source]
- And other improvements.
- Note: During the development of this project, a new Raspberry Pi OS version, Bookworm, has been released. We haven't yet tested Wisor on it.
Tracking
- We did not use any existing frameworks, such as ARKit and ARCore, because of their lack of external camera/sensor support.
- Vuforia does have external camera support, which can be achieved by creating a custom driver. It does not have Ground Plane tracking feature. We currently don't have any plans on working on adding support for Vuforia, but we are open to contributions.
Remote Client
Windows
Our primary support is geared towards the Windows OS on the remote client. This preference stems from our thorough testing and development endeavors aimed at achieving optimal performance and compatibility within the Windows environment. Nevertheless, we are open to contributions for other platforms.
Unity
We chose to support Unity based on our experience, but we are open to contributions for other engines such as Unreal Engine, Godot, etc.
Hand Tracking
To provide the users a better and more natural way to interact, we intend to implement 3D hand tracking using frameworks like Mediapipe.