Code Monkey home page Code Monkey logo

eye's Introduction

eye

Attempt to build an VR/AR IDE using WebXR APIs. Goal is to improve productivity compared to monitors by a long shot. Fast enough to work on your mobile phone. Imagine if using just a keyboard and a VR headset, you could code 1.5x-2x faster. That's the goal, not saying it's achievable but I'm trying.

The devices to make the full use of this idea are not ready yet (something like Magic Leap but actually good i.e. higher resolution and FOV, or even VR headsets with 4k in each eye). But I want the software to be ready before the hardware catches up.

Productivity-focused user interfaces in XR are still a very nascent field, nobody's solved the challenges in a substantial way yet. This project also aims to experiment, explore and implement some ideas in that space during the course of its development.

v0.1 roadmap

We need three things:

  • A web browser with dev tools (working already, performance needs improvement).
  • A great terminal (rendering working, raycasting and keyboard events in progress).
  • A code editor with language server support that literally covers all your view and is a pleasure to use, not just antiquated 40-60 lines constrained with in a small viewport. 1000s of line within your space at a time (of course only the closest few hundred will be at a readable font size).
    • All the files you're importing in your active file should be open in the background with connections leading to them.
    • The type information for the active token should be visible always without covering the code. Not sure about the UI for this yet.
      • Always visible type information for other tokens in the same line but with less detail.
      • Always visible type information for nearby lines but with even less detail.
    • Constant autocomplete without blocking code. Not sure about the UI for this yet either.
  • Sane window management, thinking sort of a 360 degree flex box thing. You can put shit behind you.

1.0 ideas

  • Multiple workspaces that you can move around in. You never close a project, you physically move from one to another.
  • For front-end, connect the browser's elements to the actual code. In real time. Like when you focus on an element, it's highlighted in the code and vice-versa.

Architecture

I'm building it using react-three-fiber. The benefit of using React should be obvious, we can build something easily extendable, people just have to write their own components and that'll be our plugins (on the front-end side at least). Parcel for the bundler (could change), but it supports React fast refresh which is awesome (in dev mode updates are reflected in the VR environment instantly without disrupting the camera). For the back-end, I'll be using Theia IDE and their client-side websockets and webworker. Essentially this is a new front-end for Theia.

eye's People

Contributors

manugill avatar gaganunvi avatar amitukind avatar

Stargazers

Omar Mashaal avatar suzuki avatar Brian Zinn avatar  avatar

Watchers

James Cloos avatar  avatar  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.