Skip to content
3D Window Manager for Linux
Haskell Shell C Nix Makefile GDScript
Branch: gdwlroots-xway…
Clone or download
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
addons Removed *.import from repo. Jan 25, 2020
doc Removed *.import from repo. Jan 25, 2020
utils Equipped for AppImage build. Jan 25, 2020
.Xdefaults Rendering adjustments. Jan 18, 2020
.gitignore Removed *.import from repo. Jan 25, 2020
.gitmodules
Consent.md Imported telemetry branch from simula-godot. Sep 22, 2018
Makefile Remove local wlroots dependency. Jan 25, 2020
Milkyway.png Added Milkyway sky environment to fix HMD freezes. Nov 11, 2019
README.org Equipped for AppImage build. Jan 25, 2020
cursor.png Added mouse/cursor/user gaze functionality; switched to GLES3. Jan 9, 2020
default_env.tres Added Milkyway sky environment to fix HMD freezes. Nov 11, 2019
export_presets.cfg
godot.desktop Equipped for AppImage build. Jan 25, 2020
godot.png Prevent processClickEvent crash; improved window closing; small fixes. Jan 24, 2020
icon.png Initial commit based off Ludvig's repo Jul 23, 2018
project.godot Added mouse/cursor/user gaze functionality; switched to GLES3. Jan 9, 2020

README.org

./doc/TEMP_LOGO.png

Simula is a VR window manager for Linux that runs on top of Godot.

http://img.youtube.com/vi/FWLuwG91HnI/0.jpg

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 + ApostropheSend window cursor to gaze point (hold down to make cursor follow gaze)
Super + EnterLeft click surface cursor at gaze point
Super + AltGrab surface for movement (release to let go)
Super + fOrient window towards user gaze
Super + 9Scale window to smaller size
Super + 0Scale window to larger size
Super + -Increase window resolution (“zoom out”)
Super + =Increase window resolution (“zoom in”)
Super + CommaMove window towards you
Super + PeriodMove window away from you
Super + BackspaceKill surface being looked at
Super + kQuick launch firefox
Super + gQuick launch google-chrome
Super + wLaunch headset webcam view (requires ffplay).

VR Controllers

https://www.evetech.co.za/repository/ProductImages/htc-vive-controller-730px-v1.jpg

  • 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

https://www.wolframcloud.com/obj/george.w.singer/1063512563850488463045946458923996976334308262441.png

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

and 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).

You can’t perform that action at this time.