All pages
Powered by GitBook
1 of 17

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

URL or QR Code

Deployment Link

As soon as you create a new deployment, we automatically create a URL (your deployment link) and a QR code that you can use instantly.

Deployment Link and QR Code

This is the link which you can share with your audience. You can also edit the last part of this link to whatever you want.

Understanding your GMetri deployment link

As an example, the link from the screenshot above is https://rnghud.gmetri.com/my_first_metaverse

In this example, rnghud is your automatically generated organization alias, a 6-character string. You can find your organization alias by creating a deployment, or by following the steps .

Enterprise-tier customers can also request to set a custom workspace alias - the first part of the URL - "rnghud" above). to get more details.

You can customize the name - the my_first_metaverse part of the link from the example above - by clicking the edit button to its right. This name must be unique across your projects.

QR Code

You can share this QR code with your audience so they can view this deployment.

SCORM

You can export the experience as a SCORM package to use in your LMS. Both SCORM 2004 and SCORM 1.2 are supported.

Publishing

Once you're happy with your experience, you can share it with your audience by creating a deployment using the "Publish" tool.

Deployments are sharable experience links

You can create multiple deployments for every experience you create.

Publishing your experience

To publish your experience simply click the 'Publish' button.

Deployments

You can share your deployment with your audience in multiple ways

You can create multiple deployments (and therefore deployment links) for every experience. So the same experience can be accessed with different links, with different access methods and multiplayer settings.

For every individual deployment, you can customize the following:

  • you can share the deployment link using different methods

  • you can choose to authenticate differently from other deployments

  • you can choose different collaboration features

  • you get a unique analytics link (top right of the deployment section)

Location Tracking

Enabling this shows a map in analytics showing you the approximate location of viewers.

here
Contact us
Export as SCORM package

you choose a different location tracking setting

URL or QR Code
Multiplayer
Authentication
Publish Link and QR Code

React Native Embed

There are various ways of embedding GMetri experiences within a React Native iOS/Android app.

  • We recommend using this library.

  • Above library has the following behaviour:

    • Android:

      • If Chrome is installed, open the URL in Chrome.

      • You can customize look & feel.

      • If Chrome is not installed, open in other browser.

    • iOS:

      • If Chrome is installed, open the URL in it.

      • If it is not installed, open in Safari.

Embedding within Apps

Integration within Apps

Integration within apps works by running the link generated above of an iframe(web) equivalent in the app.

Android - Chrome Custom Tabs

Custom Tabs is a browser feature, introduced by Chrome, that is now supported by most major browsers on Android. It gives apps more control over their web experience, and makes transitions between native and web content more seamless without having to resort to a WebView.More documentation can be found .

iOS

There are 2 implementations that can be used namely WKWebView and SFSafariViewController. Both these implementations are similar to android’s chrome custom tabs implementation but have their own set of use cases. We recommend using SFSafariViewController to run GMetri experiences within your app to get the full immersive experience. Documentation for both can be found here:

  • WKWebView :

  • SFSafariViewController :

Android Embed

Implementing Chrome Custom Tabs for GMetri Experiences

To run GMetri experiences inside android apps, we recommend an implementation of Chrome Custom Tabs API. Detailed information on how to setup an android experience with Chrome Custom Tabs can be found in this .

Also checkout this if you need authentication on GMetri experiences within your android app.

In your android experience add the required dependencies for Chrome Custom Tabs. Following is an example of gradle build dependencies:

Custom List

Sometimes you may need a custom list that requires a login identifier other than an email (eg, phone numbers, special usernames, etc). In such cases, you can simply rename the columns to the desired name and it will show up in the login form.

The second column in the csv is treated as the password field (regardless of what you reaname it to). If it is present the csv, we will authenticate all your users against the provided passwords. If you wish to skip password verification, remove this column from the csv.

A sample CSV containing some users with their names and an arbitrary password will look like:

A sample CSV containing some users with only their names and no password will look like:

Load from another Experience

You can load a deployment from another deployment by using this feature. This allows the login just once - the to the original deployment.

On the Destination deployment

The Destination deployment should have the access "Load From Another Experience".

here
Android Embed
WKWebView
SFSafariViewController
Information on how to install dependencies for other build systems are is in the links below:

https://developer.chrome.com/multidevice/android/customtabs/

From this experience , copy 2 files: ChromeCustomTabs.java and ServiceConnectionCallback.java into your android experience. These files together provide the interface for chrome custom tabs to run GMetri experiences.

The className ChromeCustomTabs.java implements 2 public methods:

  1. initialize(String url, Context context)

  2. launch()

Arguments:

  1. url - Url of the experience

  2. context - Context of your activity (this)

An example implementation of the above classes:

More About Chrome Custom Tabs

  • To enable GMetri XR experiences within an Android app, the app needs to implement the Chrome CustomTabs API as described in this article.

  • Chrome CustomTabs remove the restrictions imposed by WebViews on serving XR content. While WebViews don't share their state with the Chrome browser, ChromeCustomTabs are fully embeddable browser extensions capable of doing anything that a native Chrome browser can do.

  • Chrome CustomTabs give apps higher control over web experience and make transitions between native and web content seamless without having to resort to a WebView.

​
experience
link
On the Source deployment

Add a rule for when you want the viewer to move to the new deployment.

In the Source deployment, add a rule to load the Destination deployment
The destination deployment access
Sample viewerlist with passwords
Sample viewerlist with passwords

Authentication

Control who accesses your deployment

You can control who accesses your deployments by changing it's Authentication.

Public

This option allows anyone to access your deployment

dependencies {
    implementation fileTree(dir: 'libs', include: ['*.jar'])
    implementation 'com.android.support:appcompat-v7:26.1.0'
    implementation 'com.android.support:customtabs:26.1.0'
}
  ChromeCustomTabsJwt chromeCustomTabs = new ChromeCustomTabsJwt();
  chromeCustomTabs = new ChromeCustomTabs();
  String url = "https://view.gmetri.com/v4/game/safehands_v2";
  chromeCustomTabs.initialize(url, this);
  chromeCustomTabs.launch();
Social

The viewer can login using their social credentials like Google or Facebook/Instagram account to access your experience

Load from another experience

This allows you to link multiple deployments. Selecting this option makes this deployment visible in the “Open Deployment” rule while you build another experience.

Public with history

This option allows anyone to access your experience, but GMetri assigns a viewer id to track history. So when the same person accesses the experience again from the same device and browser, their variables or progress would remain intact.

Advanced Authentication Mechanisms

There are a lot more authentication mechanisms you can use:

SCORM

The authentication options below are available only for the enterprise tier

SSO/SAML

Custom List

Token

Password With Expiry

Email with OTP

Viewer Groups

Many of the above authentication mechanisms can be setup from the Viewer Group section.

Opening the Viewers Group page from the portal menu
Viewer Groups
Authentication Options
Load from another Experience
Export as SCORM package
SSO
Custom List
Token
Password With Expiry
Email with OTP

Password With Expiry

This option generates a list of passwords which expire after a certain duration of hours. This expiry timer starts only after the first use of each password. Also to be specified is the time frame within which the Experience can be viewed.

Configuration:

Option
Setting

Number of passwords to add

The number of passwords you want to add to the list of already generated passwords.

Duration in Hours

Once a password is used for the first time, it can only be reused until this duration of hours. After this duration is reached, this password will expire.

Start Date

You can generate no more than a total of 10,000 passwords for a viewer group.

Once you fill all the fields and click on save, a list of generated passwords become available for you to download. You may share this list with your intended viewers with which they can log in to view the Experience.

On resetting the duration for this viewer group, the duration is reset to the new value for all old used and unused passwords as well.

SSO

This option allows you select either Google, Microsoft (Azure) or SAML based login for viewers.

Google and Microsoft Azure based SSO​

When you use this, you have three options:

  • Public - all people with valid (google or azure based on your selection) accounts are allowed to access your deployment.)

  • Filter By domain - all people with valid google or azure based accounts on the domain that you have set are allowed to access your deployment.

  • Filter By viewer list - all accounts google or azure based accounts in your viewer list are allowed to access your deployment.

SAML based SSO​

This is a viewer group authentication mechanisms support for the .

Identity Provider Setup​

Any SAML identity provider (IdP) can be configured to be used for authentication of a viewer.

To enable this, head over to the Viewer Group page, then:

  1. Select SSO as your Login Method.

  2. Now select SAML from the Provider drop-down menu.

  3. After this, you will be asked to provide your SAML IdP configuration.

You should see the config as follows:

  1. Enter your IdP's entityId, SSO redicrection URL and X.509 signing certificate.

  2. Click the Save button to finally save your configuration.

  3. To register GMetri as a service provider (SP) with your IdP, you will need the configuration details. You can get these details by clicking the

You can find sample metadata configuration under the SAMLtest's IdP section. This will give you an idea of what you need to paste in the boxes for the SAML config.

NOTE on pasting X.509 certificate

Please paste certificate without the ----BEGIN CERTIFICATE---- and ----END CERTIFICATE---- part.

Deployment Setup​

Once you create a SAML viewer group, head to your deployment and set this viewer group as the authentication mechanism for that deployment.

Viewer​

  • Once you open a viewer link for deployment with a SAML SSO based viewer group, you will see a pop-up with the IdP's login page.

  • Post-IdP login process, you will be redirected back to view.gmetri.com.

  • We use your email address sent to us by the IdP as the primary identifier for the viewer session.

SAML configuration​

  • Name Identifier format: urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified

  • In IdP SAMLResponse we look for the following attributes:

Friendly name
Name
NAMEFORMAT

SAML authentication will not be successful unless the IdP returns your email in its SAML response.

Email with OTP

This allows your viewers to login by entering their email and an OTP. You can also whitelist the domains you want to allow, or directly select most commonly used email domains like gmail.com/outlook.com etc.

To authenticate your deployment with the Email with OTP option, you first need to create a (steps below). And then select that viewer group as the access method for the deployment in question.

Creating a Viewer Group for "Email with OTP"

Full-Page HTML

Publishing a Metaverse as a Full-Page Website

Copy the <html> code from the "Other" tab and paste it on your website to host the Metaverse as a Full Page website.

You can easily create a website that is a full-page Metaverse by copying the <html> code from the section and pasting it as the only thing on your page.

How can I create Full page Metaverse Website?

To set up a full-page Metaverse website, just copy the

Export as SCORM package

All GMetri experiences can be exported as web SCORM packages and imported into any LMS. We support SCORM 1.2 and SCORM 2004 package versions.

Exporting a SCORM package for your experience

After you are done creating your experience, follow the steps below to generate a SCORM package for your content.

  1. Make the deployment live.

The date after which the Experience can be viewed. Counted from this date, 00:00IST onwards.

End Date

The date after which the Experience cannot be viewed. Counted from this date, 23:59IST onwards.

Download GMetri's SAML Metadata
button.

Email

email/mail

urn:oasis:names:tc:SAML:2.0:attrname-format:uri

Display Name

displayname / urn:oid:2.16.840.1.113730.3.1.241

urn:oasis:names:tc:SAML:2.0:attrname-format:uri

Security Assertion Markup Language
here
viewer group enterprise
SAML viewer group
SAML viewer IdP login
Types of Filters
Types for filters for Email with OTP Viewer Group
  • Public - allows all emails

  • Filter by domain - you can provide a comma separated list of email domains you want to allow (eg: walmart.com, google.com )

  • Common Email Domains - allows most of the common email domains, while ensuring that disposable email domains aren't allowed.

Viewer Group
viewer groups page
Creating a Viewer Group for Email with OTP
<html>
code from
for your deployment and paste it into the website's html you want your metaverse to be hosted on.

In case you don't have a website or want to set up a new one, you can use the guide below.

Here's how to create a Full page Metaverse on Github pages

You can follow similar steps to embed the metaverse on your website

Example website: https://metaverse.boardroomx.com

Deployment: https://demo.gmetri.com/gmetri_event_vr_public

GitHub Repository Link: https://github.com/gmetrixr/website-metaverse-example

We will be setting up the following deployment as a Website:

  • GMetri Deployment: https://gmetri_demo.gmetri.com/gmetri_event_vr_public

  • Website URL: https://metaverse.boardroomx.com

Step 1) Github Repository Setup

Create a GitHub repository and enable GitHub Pages for it. To enable GitHub pages, go to that repository's "Settings > Pages", select the branch "main", and Save.

Enabling GitHub Pages

We created this repository.

Step 2) Add DNS entry for the final URL

Point the URL you want of your final experience to either <user>.github.io or <organization>.github.io. Check detailed instructions here.

For this example, we added a CNAME record metaverse.boardroomx.com with the value gmetrixr.github.io .

Once the DNS record is created, add the final website's hostname under Custom Domain.

Adding Custom Domain

Once the certificate is issued, make sure "Enforce https" is checked.

Step 3) Add an index.html in the repository

Go to the repository and add a new file with the name index.html

Adding a new file in the repository

Get the content from Publishingand paste it into the file, and then Commit it.

Adding index.html to the repositoy

Your website should now be live.

It may take some time (a few minutes to an hour) for the TLS (https) certificate to activate globally.

HTML Sharing Option
URL or QR Code
URL or QR Code
  • Select SCORM from the Authentication dropdown as shown below

  • Navigate to Others section in the Sharing options

  • Select either SCORM 1.2 or SCORM 2004 versions for export and click Download SCORM button to start downloading the file

  • This file can then be imported into any LMS having SCORM support

  • Select SCORM
    Download SCORM

    SCORM Actions

    To support communication between LMS and a GMetri experience, we allow defining certain rules that can be triggered conditionally.

    The following is an exhaustive list of SCORM actions that we support.

    1. Set SCORM min score: This can is used to notify the LMS about the minimum score possible to get in the experience. This should usually be fired right at the beginning of the experience.

    2. Set SCORM max score: This can is used to notify the LMS about the minimum score possible to get in the experience. This should usually be fired right at the beginning of the experience.

    3. Set SCORM score: This can be used to notify the LMS about the current score of the user. Usually, LMSes show scoring after completion of the course but make sure to keep calling this action as and when the score inside the experience changes.

    4. Set SCORM status as passed: This can be used to notify the LMS when the user has met the criteria of successfully passing the module.

    5. Set SCORM status as failed: This can be used to notify the LMS when the user has failed the module.

    6. Set SCORM status as complete: This can be used to notify the LMS when the module is complete. Call this action when the full experience has been completed by the user. This enables the LMS to track and show user attempts and show the final calculated score.

      ​

    min scorm
    max scorm
    set scorm
    passed scorm
    failed scorm
    complete scorm

    Adding SCORM actions to your GMetri Experiences​

    1. Set SCORM min score and Set SCORM max score actions should be added right at the beginning of the experience. Add rules to set scorm min score = 0 and set scorm max score = 100.

    2. Set SCORM score should be called at the end of the experience when you want to relay the score value to the LMS.

    3. Set SCORM passed/failed/complete should be called at the end of the experience when you want to relay this information to the LMS. Please note that certain LMS's don't track scores unless a rule for set SCORM complete is fired.

    Integration with LMS​

    To test that information is correctly shared between GMetri and LMS, we suggest you to first import the test SCORM package which covers all the scenarios specified in the previous sections.

    If the integration works perfectly, after importing the test package, you should be able to see the user's unique ID, be able to score the user and mark the course as completed right within the experience.

    • SCORM Package 1.2

    • SCORM Package 2004 v3

    There are 2 types of data that needs to be shared between the LMS and the GMetri system. We categorize these as inbound and outbound data.

    • Inbound - This is the data that is required for day-to-day functioning of GMetri experiences

      • Learner ID - User's learner ID as stored in the LMS [cmi.core.student_id (SCORM 1.2) / cmi.learner_id (SCORM 2004 V3)]

      • Progress - User's progress through the course as stored in the LMS [cmi.progress_measure (SCORM 2004 V3)]

      • Suspend Data - Additional information stored in the LMS for course to run [cmi.suspend_data (SCORM 2004 V3 & SCORM 1.2)]

      • Score - Score stored in the LMS [cmi.core.score.raw (SCORM 1.2) / cmi.score.raw (SCORM 2004 V3) ]

    • Outbound - This is the data sent out by GMetri system that should be stored inside the LMS. This includes functions like scoring, course completion etc

      • Progress - User's progress through the course calclated in the GMetri system. (SCORM 2004 V3)]

      • Suspend Data - Additional information stored in the LMS for course to run [cmi.suspend_data (SCORM 2004 V3 & SCORM 1.2)]

    Embed on your Website

    GMetri experiences can be embedded on your website by using the <iframe> code in the Embed tab in the Publish section.

    Embed Tab under Sharing Options

    You can also embed this experience in your website by using the embed code.

    In most popular publishing tools - the publish link auto-expands into an embed

    How can I embed the Metaverse on my Website?

    • Access the HTML editor for your website

    • In the HTML body, insert the code copied from the tab in Publish section

    Pasting the deployment link directly

    This works only in UI based editors, like the WordPress editor

    In case you are using a UI based editor (like WordPress editor), instead of the above steps (where you modify raw html), you can also try directly pasting the in the editor for the website content.

    In most popular publishing tools - the deployment link auto-expands into an embed - like how YouTube links expand in most editors.

    Token

    This option allows to generate automatic login tokens to login the viewers. A great way to use this feature is to autogenrate the login tokens via an API and create limited time login links.

    To generate a token, create a new viewer group and select the token login method. When you select this, you will be shown a signing key, copy this signing key. This will be used to generate the login tokens.

    To generate a login token, we create a Jwt token. This login token will be appended to the experience link.

    The final url will look like this:

    <deployment-link>?token=<generate-jwt-token>

    An example url:

    https://view.gmetri.com/v4/game/safehands_v2?token=34fhdf7asbfdsa09in2m1od.09u0dfa8nfdjajkbfe8uih32rjn.908ufdbsahbjfd9sabjhfdu

    Embed
    deployment link

    Creating a Jwt token for your experience:​

    JSON Web Token (Jwt) is an open standard (RFC 7519) that defines a compact and self-contained way for securely transmitting information between parties as a JSON object. This information can be verified and trusted because it is digitally signed. A typical Jwt consists of three parts separated by dots (.), which are header, payload and signature. Therefore, a JWT typically looks like the following. xxxxx.yyyyy.zzzzz. More information about Jwts can be found here.

    Jwt Payload​

    This information is required to correctly identify a viewer on GMetri experiences. The payload for the JWT is shown below (the optional fields can be set as per requirement):

    identifier is the unique key by which you identify your viewers.

    Creating Jwt tokens on the web​

    We recommend using npm package jsonwebtoken to generate jwt tokens on the web (both on server and browser)

    An example of generating a Jwt token in node.js:

    Creating Jwt tokens in a java app​

    Creating Jwt tokens in an android app​

    To run GMetri experiences inside android apps, we recommend an implementation of Chrome Custom Tabs API. Detailed information on how to setup an android experience with Chrome Custom Tabs can be found in this experience

    In your android experience, add the required dependencies for Chrome Custom Tabs and Jwt. Following is an example of gradle build dependencies:

    Information on how to install dependencies for other build systems are in the links below:

    1. Chrome custom tabs

    2. JWT

    From this experience , copy two files: ChromeCustomTabsJwt.java and ServiceConnectionCallback.java into your android experience. These files together provide the interface for chrome custom tabs to run GMetri experiences.

    The className ChromeCustomTabsJwt.java implements two public methods:

    1. initialize(String viewerIdentifier, String apiKey, String url, Context context)

    2. launch()

    Arguments:

    1. viewerIdentifier - This is a JSON string containing information for the viewer

    2. apiKey - A unique key generated for GMetri experiences.

    3. url - Url of the experience

    4. context - Context of your activity (this)

    An example implementation of the above classes:

    To add more fields to viewerIdentifier JSON object refer to the payload section.

    { 
      "identifier" (required): "John001",  
      "first_name" (optional): "John",
      "last_name" (optional): "Doe",
      "phone_num" (optional): "+1 000 000 000"
    }
    const jwt = require('jsonwebtoken');
    
    function generateJwt() {
      const payload = {
        identifier: 'John001', // A unique identifier for your user
        first_name: 'John'  
      };
      const apiSecretkey = "<your api secret key>";
      const token = jwt.sign(payload, apiSecretkey);
      return token;
    }
      import java.security.Key;
      import io.jsonwebtoken.Jwts;
      import io.jsonwebtoken.security.Keys;
      
      String createJwt(String url, String identifier, String apiSecret) {
        JSONObject obj = new JSONObject();
        obj.put("identifier", identifier);
        Key key = Keys.hmacShaKeyFor(apiSecret.getBytes());
        String jwt = Jwts.builder().setPayload(obj.toString()).signWith(key).compact();    
        return url + "?token=" + jwt;  
      }
      
      // url is the link from deployment section sssss  
      String finalUrl = createJwt(url, <unique identifier>, <your api secret key>);
    dependencies {    
      implementation fileTree(dir: 'libs', include: ['*.jar'])
      implementation 'com.android.support:appcompat-v7:26.1.0'
      implementation 'com.android.support:customtabs:26.1.0'
      api 'io.jsonwebtoken:jjwt-api:0.11.0'    
      runtimeOnly 'io.jsonwebtoken:jjwt-impl:0.11.0'    
      runtimeOnly('io.jsonwebtoken:jjwt-orgjson:0.11.0') {        
        exclude group: 'org.json', module: 'json' //provided by Android natively    
      }
    }
      ChromeCustomTabsJwt chromeCustomTabs = new ChromeCustomTabsJwt();
      JSONObject obj = new JSONObject();  
      try {    
        obj.put("identifier", "[email protected]");  
      } catch (JSONException e) {    
        e.printStackTrace();  
      }  
      
      String apiKey = "your_secret_api_key";  
      String url = "url_to_open";  
      chromeCustomTabs.initialize(obj.toString(), apiKey, url, this);  
      chromeCustomTabs.launch();

    Score - Score calculated in the GMetri system [cmi.core.score.raw (SCORM 1.2) / cmi.score.raw (SCORM 2004 V3) ]

    Publishing FAQs

    What hardware & software can GMetri experiences be viewed in?​

    GMetri XR experiences run on:

    • All headsets - HTC Vive, Oculus Go/Rift, Google Card

    • All Laptops/Desktop on chrome

    • All Mobile Phones

      • Android

      • Apple (Needs Chrome to be installed)

    Headsets​

    On Headsets, experiences can be run in their inbuilt browsers and simply typing in the deployment URL.

    Google cardboard headsets essentially use Mobile Phones to power the VR Experience, so check the Mobile Phone section below.

    Laptops/Desktops​

    On Laptops/Desktop, experiences can be run on Chrome by accessing the deployment URL.

    Mobile Phones​

    On Mobile Phones (both Android and iOS based), experiences can be run on Chrome by accessing the deployment URL.

    In case you need to embed the experience within an App or a website, follow the guides below:

    How to handle authentication?​

    In many cases, we may want to authenticate and control access to published GMetri content. There are a couple of ways to achieve this.

    You Handle the Authentication​

    • Embed the experience on your App/Website/etc. and keep the access to this page authenticated.

    • You can enable a text field at the beginning of the experience, asking users to input their unique identifier (Example. Employee ID for internal training) so you can reference that back to the analytics, if required.

    • This method will incur no additional charges from GMetri. (Analytics charges, of course, are extra, and optional.)

    We Handle the Authentication​

    • You can create as many GMetri view-only accounts for an experience as required. Example: A GMetri view-only account can be provided to each trainee for a VR training module.

    • In this case, the authentication prompt will require credentials that have to be defined by the user during the first login.

    • This is a chargeable feature, and the pricing depends on the number of view-only accounts created.

    What are the kind of insights I can get using Custom Dashboards?​

    The GMetri platforms can store the following data points for any viewer of the immersive experiences:

    • What the user looks at / interacts with - including coordinates of the user(s)

    • When: The amount of time spent on the whole experience, per scene or looking at a single element

    • How the user interacts with his/her surroundings - including what buttons were clicked/ what actions were performed on which element(s)/scene(s), and tracking user score in quizzes.

    The above-captured metrics can be combined in various ways to get may insights through Custom Dashboard. These insights may include:

    • User Performace/Leaderboard - by combining the total score of the user with the time spent by the user in the experience, one can estimate how well the user may perform in a real-world scenario.

    • Creating domain-specific dashboards focusing on a few aspects of the training to gain further insights. Eg: measuring how one handles corrective situations in client interactions, or measuring how well versed a user is with technical processes, compliance, safety, soft-skills, etc.

    • Dashboard to focus on user time spent, to create a feedback loop to detect and fix problems in the immersive environment itself - for example, if a user doesn't spend enough time at a particular section vs. other sections, it could have something to do with the design of the scene or the storyboarding. This information can then feed into the correction of the scene/storyboard itself, and to and any improvements may be measured over time.

    How to cast the Oculus GO?​

    Oculus that they are enabling casting options for the Go.

    This came as great news to creators globally so you are not disconnected from the users when wearing the headset.

    Here's how you can set this up:

    There are a few legacy methods that you can still fall back on, you can find them .

    The Preview shows the correct assets/elements, but on publishing, things change. What's happening?

    The likely cause of this having the wrong initial scene.

    When you preview an experience, whatever scene you are on in the editor gets previewed. However when you publish an experience, the initial scene gets shown.

    How can I send someone directly to a particular scene when they click the deployment link?​

    The way to go directly to a scene is to add the scene_id at the end of the deployment URL like this:

    https://view.gmetri.com/v5/gmetri/demo_deployment?scene_id=1639550027086

    To find out the scene_id of any scene, open that scene in preview mode, and look for scene_id in the URL

    Whenever I share my spaces, after a while the link says 'Unauthorised 401'. Do links expire after a certain time?

    It looks like you are sharing the link.

    Make sure you use the Deployment link instead (preview links expire very quickly - they are only for previewing by the editor)

    I have added a Video to my experience, but it doesn't play. What's wrong?

    You need to add a rule to play a video. Like below:

    Also check .

    I am unable to embed a site in the EmbedHTML element. What's wrong?

    Sometimes when you try to embed a site in the EmbedHTML element, and trigger it using a rule, you might see the following error:

    Entering the properties that you see above, might lead to an embed HTML like this:

    This happens when the website in question actively blocks iframes from embedding it. (You can try embedding and that will work because wikipedia doesn't block embeds)

    More information here:

    There are two ways to fix this in case you can modify the website in question:

    1. Remove the X-Frame-Options HTTP response header completely

    2. Remove the X-Frame-Options HTTP response header in case you detect the request is coming from *.

    How do I explore an experience in Native VR (left-right) format in a headset?

    After opening the deployment link in a browser, you need to click the "VR mode" button to enter the immersive mode or "left-right eye" mode to view the experience in 3D.

    There are two places you can find this VR mode button - 1) in the top right menu and 2) in the control panel menu at the bottom centre of your screen.

    How many people can enter the Metaverse at the same time?

    Check

    Embedding within Apps
    recently announced
    Oculus Support Guide
    Cast your Oculus Go to a phone
    here
    Preview
    Video AutoStart Limitations
    https://wikipedia.org
    https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-Frame-Options
    https://stackoverflow.com/questions/10658435/x-frame-options-allow-from-in-firefox-and-chrome/14893931#14893931
    gmetri.com
    Setting the Initial Scene
    Scene Id from URL
    Preview Link vs Deployment Link
    A Rule added to play a video
    Entering VR Mode
    Publishing FAQs
    EmbedHTML properties for embedding a website
    EmbedHTML error

    Private Cloud Deployment

    GMetri can run a dedicated cluster in the AWS/GCP/Azure region of your choice to make sure you internal compliance needs are met. Please note that you need to be subscribed to an enterprise tier license to request this chargeable feature. Contact us to know more.

    Does GMetri support on-premise deployments/Are there additional costs for the same?​

    There are cases where security policies demand an on-premise deployment of cloud services (firewalled zone).

    For such cases, at an additional cost, GMetri supports on-premise deployments.

    Additional Costs​

    • There will be a one-time cost that can be determined if you with the following details:

      • The hardware configuration of the servers on which this service is to be deployed.

      • Whether you use a cloud service provider like Google Cloud/AWS/Azure/Others or if you manage, provision your own servers and server racks (bare-metal).

    These costs are in addition to the standard Enterprise Tier annual/monthly license cost you would incur even without the on-Prem deployment.

    The option to deploy on-premise is available with the Enterprise Tier License only.

    Which network ports needs to open for a private cloud deployment?​

    Ideally, within the cluster, communication needs to be open - i.e. all cluster nodes should be able to contact all ports of all other cluster nodes.

    However in case a list of open ports is required, you can use the following list:

    Description
    Within Cluster (In AND Out)
    External Load Balancer (In)
    Internet (Out)

    Deployment Types and Hardware Requirements​

    Private Cloud Deployment (firewalled zone)​

    The GMETRI platform deploys as a Kubernetes cluster.

    Below are the hardware and network requirements to set up a Kubernetes cluster in a private cloud that supports the GMetri platform.

    Server Requirements​

    The following table lists the minimum requirements setting up a High Availability (HA) cluster:

    On Cloud (AWS/GCP/Azure)​

    Bare Metal (HA Setup)​

    • Full network connectivity between all systems in the cluster

    • Ability to configure open ports on these systems

    • Failure resilience for production servers: 1 for master nodes and 1 for worker nodes separately. The resilience is of (n-1)/2 nodes per node-type where n is the number of nodes.

    Single Rack-server/Desktop Deployment​

    We ideally recommend that GMetri is deployed on a cluster setup in a private cloud consisting of a minimum of 3 servers. However, in cases where that is not possible, GMetri can also be deployed on a single rack-server or a desktop.

    Hardware Requirements​

    The following are the recommended hardware requirements for such a deployment:

    Keep in mind that this is not a HA (High Availability) setup. This means that any hardware failure could lead to permanent loss of data. In cases where data resiliency is critical, we recommend a cluster setup.

    Other Requirements​

    Operating System Requirements​

    The Operating System used will depend completely on the flavour of Kubernetes deployed. Examples are RancherOS, Ubuntu, CoreOS etc.

    Preferred OS​

    For Bare Metal deployment: Ubuntu 18+

    Partitioning​

    Ensure that there is no swap partition.

    Partition
    Space Allocation
    Partition Type

    Network Requirements​

    Network Response Time​

    Spec
    Web-browser to Datacenter
    Within Datacenter

    Within the cluster, ideally communication needs to be open - i.e. all cluster nodes should be able to contact all ports of all other cluster nodes.

    In case a list of specific ports is needed, refer to this .

    Internet Connectivity Requirement During updates and initial installation, internet connectivity is needed. For usual operations, internet connectivity isn’t required.

    Example Rack Server/Desktop Tower configuration​

    An example of a single rack server or a desktop tower to support the above deployment would be the following:

    An example of a single rack server or a desktop tower to support the above deployment would be the following:

    Hardware
    Recommended Spec
    Example

    4 or 6 such servers/desktop towers are required to form a cluster as mentioned above.

    For any other queries, write to

    The general practice followed to (remotely) access the servers.
  • The protocol to open certain network ports for the servers.

  • There may be additional SLA charges as needed.

  • 3000-3100 TCP 3306 TCP 5432 TCP 6739 TCP

    (Part of the server/desktop)

    Remaining space

    ext4

    Kubernetes

    Specific

    22 TCP 80 TCP 443 TCP 2376 TCP 2379 TCP 2380 TCP 6443 TCP 6783 TCP 6783-6784 UDP 8472 UDP 9099 TCP 10250 TCP 10254 TCP

    80 TCP

    443 TCP

    git.rancher.io: 35.160.43.145:32 35.167.242.46:32 52.33.59.17:32

    .gmetri.com .gmetri.io .vrgmetri.com .docker.io

    Workload

    Specific

    30000-32767

    TCP & UDP

    Spec

    Production Values

    Recommended Node Type

    AWS: m4.xlarge/m5.xlarge GC: e2-standard-4 Azure: D4d v4

    Nodes (Virtual Machines) with vCPUs >2Ghz

    3 worker nodes Min requirement for each node: 4 core vCPU + 16 GB RAM

    RAM

    16 GB × number of nodes

    Storage (SSD Based or better)

    Min 256 GB per node supporting >500 sequential IOPS

    Managed DB instance*

    Managed DB instances from AWS/GCP/Azure with the minimum config of 4core vCPU + 16 GB RAM

    Spec

    Production Values

    Servers with every core >2Ghz

    3 (etcd + control plane) + 3 worker nodes Minimum 4 servers on at-least 3 different physical machines (in case the servers are VMs) Min requirement for each node: 4 core vCPU + 16 GB RAM

    RAM

    16 GB × number of nodes

    Storage (SSD Based or better)

    Min 256 GB per node supporting >500 sequential IOPS

    Managed DB instance

    3 x 4 core vCPU + 16 GB RAM

    Hardware

    Specification

    Example

    CPU

    A 4-core/8-thread processor

    Intel i7-7700K

    RAM

    32 GB DDR-4

    Corsair LPX 32GB (2x16GB) 3200MHz

    HDD

    256 GB SSD or SAS storage

    Samsung 860 EVO 250GB SSD

    LAN Ports

    NO swap

    none

    / (root)

    20 GB

    ext4

    /home

    10 GB

    ext4

    Bandwidth

    5 Mbps minimum

    100 Mbps minimum

    Latency

    250-300 milliseconds

    1 millisecond on LAN

    CPU

    A CPU with 4 threads

    Intel i5-7400 or better

    RAM

    16GB DDR4 or better

    Corsair LPX 16GB 3200MHz

    HDD

    256 GB SSD or SAS storage

    Samsung 860 EVO 250GB SSD

    contact us
    here
    [email protected]

    Experience

    Specific

    A single LAN port is enough

    /var