GithubHelp home page GithubHelp logo

tchigher / simula Goto Github PK

View Code? Open in Web Editor NEW

This project forked from simulavr/simula

0.0 0.0 0.0 111.79 MB

Linux VR Desktop

License: MIT License

Haskell 76.65% Makefile 2.18% C 4.68% Nix 10.26% Shell 5.53% GDScript 0.70%

simula's Introduction

./doc/TEMP_LOGO.png

Simula is a VR window manager for Linux that runs on top of Godot. It takes less than 1 minute to install.

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

Video: Demonstration.

Compatibility: Currently, Simula is only compatible with SteamVR headsets equipped with Linux drivers (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

Text Quality

A common objection to the viability of VR Desktop is that it exhibits poor text quality; however, with our low pass filter, Simula has taken special care to make text quality as clear as possible:

./doc/TextQuality2.gif

The left image is a VR terminal without our filter applied; the right is the same image with our filter applied. Compared to other VR Desktops, Simula allows for significantly longer sessions without uncomfortable eye strain.

Installation

To install Simula on all Linux distros, run:

# Clone
git clone --recursive https://github.com/SimulaVR/Simula
cd Simula

# Download (or build, if downloading fails)
source ./utils/Helpers.sh && installSimula

# Launch
./result/bin/simula # Needs SteamVR to be running

Installing Simula should take less than 1 minute: this script doesn’t actually compile anything on your system, but instead downloads the appropriate binaries from our cache in a way that is system and driver agnostic. Under the hood, we (i) check whether you have nix and cachix installed (and, if not, install them); (ii) check which graphics drivers you have and (iii) download Simula via cachix with the appropriate driver flags, falling back to a nix build if downloading fails.

On NixOS systems, you must ensure

nix.trustedUsers = [ "root" "<your_user_name>"];

is added to your configuration.nix, or the install command above will be unable to download Simula from our cache, instead falling back to a manual build (which takes 1hr+).

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 + EscapeToggle Simula’s mouse & keyboard grab (see below).
Super + /Quick launch terminal
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

NOTE: In order to prevent Simula’s keyboard shortcuts from conflicting with your existing window manager’s shortcuts, Simula “grabs” the system keyboard and cursor to prevent input events from propagating past Simula. This creates a problem: it is then impossible for you to escape Simula once you launch it! In order to get around this, press Super + Escape to ungrab Simula, which will restore mouse and keyboard control to your normal window manager.

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.

Community

For troubleshooting and discussion, join our community at https://discordapp.com/invite/a4PnP7n.

simula's People

Contributors

georgewsinger avatar lboklin avatar kanetw avatar danielfullmer avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.