Simula is a VR window manager for Linux that runs on top of Godot.
Video: Demonstration.
Compatibility: Currently, Simula is only compatible with SteamVR headsets (e.g. HTC Vive, HTC Vive Pro, & Valve Index).
Mission: Facilitate a Linux future for VR & AR Desktop. In the short-run, this means allowing people to run 2D Linux apps with current generation headsets. In the long-run, this means allowing people to run Linux in standalone AR & VR HMDs.
Origins: Simula is a reimplementation fork of motorcar. To read about motorcar, see Toward General Purpose 3D User Interfaces: Extending Windowing Systems to Three Dimensions
Installation
Simula requires xpra, xrdb, wmctrl, and terminator. We keep a bleeding edge AppImage of Simula synced to a tarball, which can be used as follows:
wget -c https://www.wolframcloud.com/obj/george.w.singer/SimulaAppImage.tar.gz -O - | tar -xz cd ./Simula chmod +x ./bin/godot.AppImage ./bin/godot.AppImage --path $PWD # launches Simula (requires SteamVR to be running)
Usage
Mouse & Keyboard Controls
Windows become “active” once you look at them. Active windows receive typing events from the keyboard, and cursor events from mouse movement. In addition, the following window-manipulation shortcuts are hard-coded into Simula (we’re going to make this customizable in the near future):
| Key binding. | Action |
|---|---|
Super + / | Quick launch terminal (terminator) |
Super + Apostrophe | Send window cursor to gaze point (hold down to make cursor follow gaze) |
Super + Enter | Left click surface cursor at gaze point |
Super + Alt | Grab surface for movement (release to let go) |
Super + f | Orient window towards user gaze |
Super + 9 | Scale window to smaller size |
Super + 0 | Scale window to larger size |
Super + - | Increase window resolution (“zoom out”) |
Super + = | Increase window resolution (“zoom in”) |
Super + Comma | Move window towards you |
Super + Period | Move window away from you |
Super + Backspace | Kill surface being looked at |
Super + k | Quick launch firefox |
Super + g | Quick launch google-chrome |
Super + w | Launch headset webcam view (requires ffplay). |
VR Controllers
- Left-clicking. Use (7) gently (you don’t have to go all the way down to click).
- Right-clicking. Use (1).
- Scrolling. Scroll up and down via (2).
- Text dragging. Hold (7) down and drag.
- Window manipulation. Point at a window and, while holding (8), move your controller around. The windows should “levitate” in the direction of your movement.
- Window rescaling. Point at a window, hold (8) down, and then scroll up and down on (2).
Mouse & Keyboard View
Simula has a headset webcam view (binded presently to Super + w) that allows you to see your mouse and keyboard from VR.
Recovering Simula Apps
Apps launched in Simula persist across sessions via an xpra server running on DISPLAY=:13. This means that if Simula exits (perhaps by a sudden crash), all you need to do to recover your apps is to relaunch Simula.
If instead you’d like to access your apps from outside Simula, run
xpra attach :13and they will appear on your current DISPLAY. Running xpra stop (or just pkill xpra) is a quick way to kill all apps associated with your Simula session(s).



