repo: janusweb
action: commit
revision: 
path_from: 
revision_from: a22032875b185471dd36f3f31d3b0c6454a7b273:
path_to: 
revision_to: 
git.thebackupbox.net
janusweb
git clone git://git.thebackupbox.net/janusweb
commit a22032875b185471dd36f3f31d3b0c6454a7b273
Author: James Baicoianu 
Date:   Fri Jan 13 21:11:09 2017 -0800

    Added more instructions to README

diff --git a/README.md b/README.md
index 674362a4806d7d0f63555111f68701e35213cb51..
index ..15cd1e434d79cbd5a3e07d15e645bdbd35356f94 100644
--- a/README.md
+++ b/README.md
@@ -15,9 +15,59 @@ browser.
 - Supports hand tracking peripherals like Leap Motion, Oculus Touch, and Vive controllers
 - Networking support

-## Installing
+## Using

-To build JanusWeb, run the following commands:
+There are several different ways to use JanusWeb, depending on how much control you want to 
+have over the whole system.
+
+### Use our viewer
+Our default viewer is always available at https://web.janusvr.com/.  You can write an HTML
+page with your [JanusVR Markup](http://janusvr.com/guide/markuplanguage/index.html) and host
+it anywhere you would normally host a static website.  Any regular webhost, AWS S3 static 
+sites, CDNs, or even more exotic locations like [IPFS distributed filesystems](https://ipfs.io) will work.
+Then just load your page in our viewer by entering the URL into the navigation bar, and you 
+can link to it and share on social media.
+
+### Pull our scripts into your page
+Using the above method, all of your links would go through our servers.  If you'd prefer to 
+link to your own servers, you can pull our JS into your page and use JanusWeb as a scriptable
+client via its API.  This looks something like this:
+
+```html
+
+  
+    My JanusVR Room
+  
+  
+    
+      
+        
+        My First Room
+      
+    
+    
+    
+  
+
+```
+
+The `elation.janusweb.init()` function can take a number of arguments, and returns a promise which
+receives an instance of the client.  This client reference can be controlled via its API.  See the 
+sections on Arguments and Scripting below.
+
+### Install from ZIPs
+(TODO - we will start shipping zip builds of JanusWeb once we release v1.0)
+
+### Install from NPM
+(TODO - we will start shipping official NPM packages of JanusWeb once we release v1.0)
+```bash
+npm install janusweb
+```
+
+### Build from source
+
+If you'd like to build JanusWeb from source, you can check it out from Github and build using the 
+following steps:

 ```bash
 $ git clone https://github.com/jbaicoianu/janusweb
@@ -26,8 +76,76 @@ $ npm install
 $ npm run build
 ```

-This will give you a full build of the latest verson of JanusWeb in your `build/` 
-directory.  This directory can be hosted anywhere you would normally host static 
-HTML, and you can place your default `````` within this file.
+This will give you a full build of the latest verson of JanusWeb in your `build/` directory.  You 
+can then modify `build/index.html` however you see fit, and host it as suggested above.
+
+NOTE - if you see errors relating to node-canvas, make sure your system has `libgif-dev` installed.
+
+## Arguments
+JanusWeb supports several arguments at initialization time to control how it behaves.
+
+
+  
+  
+  
+  
+  
+  
+  
+  
+  
+
Name Description Default
homepage Default page to go to when user presses + home button https://web.janusvr.com/
url Default page to load (homepage)
shownavigation Control visibility of navigation bar true
showchat Control visibility of chat true
usevoip Enable or disable VOIP functionality + (NOTE - disabled pending browser support + for Opus via WebAudio) false
resolution If specified, restrict the renderer to + a the specified size (none)
networking Enable or disable networking true
autoload Load URL by default or wait for script true
+ +## Scripting +After initializing the client, `elation.janusweb.init()` returns a Promise which returns a reference to the client. +You can programatically control this client to do all sorts of things. For instance, we can make the client load a +URL, wait for the room and all of its assets to load, and then take a screenshot of the page: + +```javascript +var pageinfo = elation.utils.parseURL(document.location.href), + urlargs = pageinfo.args || {}, + hashargs = pageinfo.hash || {}; + +var url = elation.utils.any(hashargs.url, urlargs.url, 'http://www.janusvr.com/index.html'); +var delay = elation.utils.any(hashargs.delay, urlargs.delay, 1000); + +elation.janusweb.init({ + url: url, + resolution: '1920x1080', + showchat: false, + shownavigation: false +}).then(function(client) { + elation.events.add(client.janusweb.currentroom, 'room_load_complete', function() { + setTimeout(function() { + client.hideMenu(); + client.screenshot(types[type]).then(function(imagefile) { + // upload imagefile somewhere via REST API + console.log('Screenshot complete!'); + }); + }, delay); + }); +}); + +``` + +Many other aspects of the JanusWeb client can be controlled this way as well. Our users are +always thinking up new and inventive ways of using the JanusWeb client. Embed it in your blog +posts, use it to render 3D content behind your 2d webpage, put a virtual security camera in your +world and view a live stream of the virtual world from any web browser. Control the virtual world +via a web interface. This is your scriptable live portal into the metaverse, to do with whatever +you please. The possibilities are endless! + +You can even run JanusWeb in NodeJS for headless server-side operations. Use it to write a bot that +wanders the metaverse, or run your game logic and physics on a server to have one authoritative +source of state for your world. If this sounds interesting to you let us know, we will be more +than happy to help you through this (it's all very experimental right now!) + +## Contributing +JanusWeb is open source, and we welcome any contributions! Please do report bugs using GitHub Issues, +and all pull requests will be considered. We could especially use help with documentation! + -See [JanusVR Markup Documentation](http://janusvr.com/guide/markuplanguage/index.html) for a full reference of supported markup.

-----END OF PAGE-----