immersive-web / webvrrocks

Your guide to Virtual Reality in the browser.
https://webvr.rocks/
Creative Commons Zero v1.0 Universal
123 stars 58 forks source link

Add JanusVR to Browsers #219

Open cvan opened 7 years ago

cvan commented 7 years ago

Add Janus as a desktop WebVR-capable browser for the Oculus Rift and HTC VIVE.

caseyyee commented 7 years ago

I was thinking about this as well. Janus VR doesn't implement the WebVR API (as far as I can tell), so it doesn't really fit the description that we have for what a WebVR browser is.

That's not to say it shouldn't be included though, since I think the features of Janus are very "web" like. Just a different interpretation of what a "browser" should be/look like/behave.

It will probably benefit a lot of people to have information about what the major differences are.

cvan commented 7 years ago

FYI: JanusWEB, the framework, seems to:

(Filed issue #220 for that.)

caseyyee commented 7 years ago

Ah alright. Wasn't clear what the difference is. Makes sense. Still needs a clear description of the differences I think.

It looks like JanusWeb is basically Janus VR content made to work for WebVR? I'll do some exploring.

jbaicoianu commented 7 years ago

Hey guys, JanusWeb author here. I can answer whatever questions you may have.

JanusWeb is our pure JavaScript client which runs in all normal web browsers, and takes full advantage of WebVR. We support Rift CV1+DK2, Vive, Daydream, GearVR, and Cardboard HMDs, plus each platform's respective tracked controllers, leap motion, gamepads, and more. JanusWeb connects to the same multiplayer server as our native client, so JanusWeb and JanusVR clients can interact in the same worlds together.

Our native client doesn't currently expose the WebVR API, since the browser is always in VR we're handling all the head tracking and controllers, so the website author doesn't need to worry about working at that low-level. We do have some longer term plans for bringing WebVR content into the native Janus browser, but no ETA on that side of things yet.

jbaicoianu commented 7 years ago

Oh, I forgot to mention one other main difference between JanusVR native and JanusWeb. While our native client is closed source, JanusWeb is MIT licensed, and is intended to be used not just as a client, but as a fully programmable library for people to integrate with their own websites and projects.

JanusWeb can be embedded directly into other websites via iframe or by loading the script from our CDN, where it can be scripted via the API to perform a number of different tasks (screenshotting, world manipulation, etc). It can even be configured to run headless in nodejs to run bots, server-side logic, physics simulation, and more.

caseyyee commented 7 years ago

@jbaicoianu whoa awesome! Thanks for giving us the full low-down on JanusWeb. I've only tried the native client, but will for sure give JanusWeb a try.

What are the major differences between what the native client offers and what you can get through JanusWeb?

cvan commented 7 years ago

Thanks, @jbaicoianu, for the info. This is good to know. Janus is very exciting, but a good question I have is where's the best place for folks to start? Which of the sites/docs/worlds do you typically point new, interested folks to?

jbaicoianu commented 7 years ago

@cvan this question is a bit harder to answer ;) Right now we have a lot of examples showing off what's possible but haven't been good about organizing it in the form of documentation or showcases. We have a few different lobbies, for both native and JanusWeb, which showcase rooms which we know work well for those platforms, but even those are a bit out of date now.

For now the best technical overview is our documentation page, http://janusvr.com/guide/build.html - we're currently working on a new developer center which will give a better overview of all of our systems (two clients, a library, a server-side component, an API, and various converters/utility scripts) and how they work together - we should have something more to show there soon.

@caseyyee the major differences between JanusWeb and JanusVR are that our native client has improved PBR material support and is generally a more immersive, first-person "walk between websites" sort of experience thanks to the seamless portal system. JanusWeb aims to support all the features of the native client, but is often a bit more restricted due to browser security concerns (for instance, we can't deliver iframed content in VR in JanusWeb, but we can in JanusVR). On the other hand, since JanusWeb runs in a regular browser, we have access to all the standard HTML5 APIs which aren't necessarily exposed in our native client.

cvan commented 7 years ago

@jbaicoianu many thanks for writing this all up! this is all good information and clarifies some questions I had.

so, I have two more questions (so I know what ought to be included, if any, on WebVR.Rocks):

  1. are there any plans for JanusVR to natively support the WebVR API?
  2. are there any plans to wrap JanusWeb and ship it as a standalone Electron/Chromium :electron: (or Gecko/Firefox :lizard:) app (i.e., a browser)?

I guess what I'm asking is have these been decided as (a) positively out of scope or (b) no tentative plans but definitely nice-to-haves?


p.s. whenever, whatever, if there's information in any form (a simple GitHub issue here is fine, or a tweet to me), you want included on https://webvr.rocks, feel free to open a PR any time or just drop a line in a comment/issue/tweet with relevant content (external links, videos, screenshots, etc.).

the information on WebVR Rocks I want to be accurate and helpful, hence all the questions. thanks, @jbaicoianu!

jbaicoianu commented 7 years ago

@cvan no problem, happy to help!

1) it's definitely something we've discussed, but it's dependent on some other major changes, most significantly involving upgrading our javascript engine. It's a hot topic within the team, but we don't have a timeframe for it yet, I'll keep you updated if and when that changes. 2) also something we've discussed, but haven't had the time to experiment yet. Our goal is to support as many platforms as possible, but it's a never-ending battle to balance this vs stretching ourselves too thin.

So, definitely (b) for both of these! Thanks for hearing me out, I agree that as it is now JanusVR doesn't quite fit in to the list of browsers on https://webvr.rocks/ but I'll let you know as soon as anything changes on this front.

cvan commented 7 years ago

@jbaicoianu: awesome, thanks for the update. just let me know at your convenience 😄

P.S. I've been digging into Janus again recently; I'm quite impressed by the ecosystem. good approach with JanusWeb; hoping that gets more eyeballs on the Janus worlds 👍