Thank you for investing your time in contributing to our project!
Read our Code of Conduct to keep our community approachable and respectable.
See following material as well.
In Zen, the following three communicate with each other to construct the system.
-
Zen
A compositor (display server). -
Zen Mirror
A remote agent running on Quest 2 / Pro, that renders an immersive environment. -
Applications
2D and 3D applications.
Zen communicates with applications, receiving rendering information, sending
input events, etc.
Zen and Zen Mirror communicate over the network and Zen Mirror renders
an immersive environment and presents it to the user.
---
title: Big Picture
---
graph LR
%% Components
mirror(Zen Mirror)
zen(Zen)
2d-app("2D App (Browser)")
3d-app("3D App (3D Model Viewer)")
%% Relationship
mirror <-- Network --> zen <-- Wayland --> 2d-app & 3d-app
Zen consists primarily of the following repositories and libraries
-
Wayland (external library)
A base windowing system. -
wlroots (external library)
A modular Wayland compositor library. -
zwin
Core protocols. -
zen (this repository)
Core compositor. -
zen-mirror
Remote agent on Meta Quest 2 / Pro. -
zen-remote
A library that implements the communication layer between Zen running on the PC and Zen Mirror running on the HMD. It has a client (Zen Mirror) side and a server (Zen) side implementation. -
zennist
A default space application of Zen. -
zukou
A library to build a Zwin 3D application.
The first step in contributing to Zen by writing code is to build Zen from source.
See BUILD.adoc.