/Simula

3D Window Manager for Linux

Primary LanguageHaskell

./doc/TEMP_LOGO.png

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

./doc/SimulaDesktop.png

Video: See here.

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. Currently, Simula is aiming to be compatible with the HTC Vive.

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

./doc/GitterBadge.png

Simula is in alpha phase, and can be difficult to get working on many setups. For help with installation, please visit our chat room.

Ubuntu/Debian

Simula has only been tested on Ubuntu bionic beaver (18.04), but the instructions below should in principle work on older versions of Ubuntu and other distros that use apt~/~apt-get (i.e., Debian).

  1. Clone the repo and run the helper commands.
    git clone --recursive https://github.com/SimulaVR/Simula
    cd Simula
    source utils/UbuntuHelpers.sh
    
    installNvidiaDrivers # this will update you to nvidia-396 if you don't have it already
                         # If you run AMD, ensure that mesa is updated to at least mesa-17.3
    
    installUbuntuDependencies
    installSteam # if you haven't already
    installGodot # Installs Godot 3.1 master branch; this will probably take a while.
        
  2. Ensure udev rules are up to date. Ensure that /lib/udev/rules.d/60-HTC-Vive-perms.rules exists and contains the following:
    # HTC Vive HID Sensor naming and permissioning
    KERNEL=="hidraw*", SUBSYSTEM=="hidraw", ATTRS{idVendor}=="0bb4", ATTRS{idProduct}=="2c87", TAG+="uaccess"
    KERNEL=="hidraw*", SUBSYSTEM=="hidraw", ATTRS{idVendor}=="28de", ATTRS{idProduct}=="2101", TAG+="uaccess"
    KERNEL=="hidraw*", SUBSYSTEM=="hidraw", ATTRS{idVendor}=="28de", ATTRS{idProduct}=="2000", TAG+="uaccess"
    KERNEL=="hidraw*", SUBSYSTEM=="hidraw", ATTRS{idVendor}=="28de", ATTRS{idProduct}=="1043", TAG+="uaccess"
    KERNEL=="hidraw*", SUBSYSTEM=="hidraw", ATTRS{idVendor}=="28de", ATTRS{idProduct}=="2050", TAG+="uaccess"
    KERNEL=="hidraw*", SUBSYSTEM=="hidraw", ATTRS{idVendor}=="28de", ATTRS{idProduct}=="2011", TAG+="uaccess"
    KERNEL=="hidraw*", SUBSYSTEM=="hidraw", ATTRS{idVendor}=="28de", ATTRS{idProduct}=="2012", TAG+="uaccess"
    SUBSYSTEM=="usb", ATTRS{idVendor}=="0bb4", ATTRS{idProduct}=="2c87", TAG+="uaccess"
    # HTC Camera USB Node
    SUBSYSTEM=="usb", ATTRS{idVendor}=="114d", ATTRS{idProduct}=="8328", TAG+="uaccess"
    # HTC Mass Storage Node
    SUBSYSTEM=="usb", ATTRS{idVendor}=="114d", ATTRS{idProduct}=="8200", TAG+="uaccess"
    SUBSYSTEM=="usb", ATTRS{idVendor}=="114d", ATTRS{idProduct}=="8a12", TAG+="uaccess"
        
  3. Compile & launch Simula.
    # Ensure that SteamVR is launched.
    cd /path/to/simula
    make run # this should take a while also
    
    # Once Simula starts, launch some Wayland apps to interact with:
    weston-terminal # Wayland terminal
    epiphany        # Wayland web browser
    
    # You can also launch X apps:
    DISPLAY=:1 firefox # You have to tell X apps that Simula is located on DISPLAY 1
    # NOTE: This assumes Simula is launched on DISPLAY 1.
    #       Unless you have an unusual setup, this is usually the case by default; 
    #       check Simula console output to check for sure.
    
    
        

Other Distros

Pending.

Contributing

We’re looking for open-source contributors. If you’re interested in using Haskell to bring VR and Linux together, drop by our chat room, or email georgewsinger@gmail.com.

Donations

If you’re interested in a future where Linux and VR co-exist, you can donate to the following addresses:

Bitcoin. 17YLp6kJswxa8gGKwXqLrNtnM9Fgye6dfQ

Ethereum. 0x373227b43Fe1eFe8da9d30ED1Ee45E7488F6cab3

PayPal. george.w.singer@gmail.com

Plans & Monthly Updates

See Simula’s Wiki for our Master Plan and list of Monthly Updates.