githubEdit

How to Publish

This page details the two methods to publish to VIVERSE: VIVERSE Studio and our command line interface...


Introduction

You can upload to VIVERSE from all web-compatible frameworks, including 3D experiences, web applications, and videos! No matter what you are building with, you can upload and manage your builds easily using VIVERSE Studio or our command-line interface (CLI). Once uploaded, VIVERSE content is associated with your VIVERSE account and profile located at https://worlds.viverse.com/profilearrow-up-right. This page guides you through the uploading process using both methods!

circle-exclamation

Publishing with VIVERSE Studio

The VIVERSE Studio offers a user-friendly interface that makes it easy for creators of all skill levels to upload and manage content on VIVERSE. While very similar, you can learn the process for uploading APPLICATIONS or VIDEOS below.

Publishing Apps with VIVERSE Studio

circle-info

Learn more about specifications for applications and 3D experiences, including supported file types, requirements, and integrations with our SDKs.

1

Begin Upload

Open VIVERSE Studio, navigate to the Worlds section, select the Upload tab, and click Create New World.

Worlds are containers for content on VIVERSE and, once created, you can upload your 3D experience or application to your World.

2

Complete Upload Details

Enter a Name and Description for your project and agree to VIVERSE's Platform Agreement.

Once completed, select Create.

3

View the Overview Tab

Once your World is created, you can view and adjust settings for your content in the Overview Tab, such as its Name and App ID.

The App ID is an important piece of information for anyone integrating VIVERSE SDKs into their project.

4

Upload a .zip File

Within the Content Versions Tab, drag-and-drop or click the Select File button to begin the upload process.

Select your .zip file and click Upload.

5

(Optional) Add Additional Permissions

Many projects may want additional permissions, allowing access to advanced features, such as the ability to download content from your application or open a new tab:

Content Behavior Permissions

  • allow-forms - Submit forms

  • allow-modals - Open modal dialogs

  • allow-popups - Open popup windows

  • allow-top-navigation - Navigate top window

  • allow-pointer-lock - Use pointer lock

  • allow-presentation - Start presentations

  • allow-downloads - Download files

  • allow-orientation-lock - Allow orientation lock

  • allow-popups-to-escape-sandbox - Allow popups to escape sandbox

  • allow-top-navigation-by-user-activation - Allow top navigation by user activation

Device and Sensor Access Permissions

  • accelerometer - Allows access to accelerometer sensor data

  • camera - Allows access to device camera

  • gyroscope - Allows access to gyroscope sensor data

  • magnetometer - Allows access to magnetometer sensor data

  • midi - Allows access to MIDI devices

  • window-management - Allows multi-window management

  • xr-spatial-tracking - Allows access to VR/AR features

Select Apply iframe Settings to apply your desired settings.

6

Preview and Test Content

Select Preview for a link that is only accessible to the account that created the world.

Select Guest Preview for a 15-minute link that you may share with any other testers.

7

Submitting for Review

Once you are satisfied with your creation, select Submit for Review to submit your world for moderation. Moderation usually takes less than 48 hours. If you need support with moderation, please reach out to us through this formarrow-up-right.

Publishing Videos with VIVERSE Studio

circle-info

Learn more about specifications for video content, including upload limits, output specs, and our transcoding matrix.

1

Upload your video file

Open VIVERSE Studio, navigate to Videos section, and drag-n-drop your video file to start uploading. As alternative, click Upload button at the right upper corner.

Please make sure your video is authored in correct format, otherwise the uploading process will return an error

2

Fill in content details

While the video is processing, feel free to fill in content details:

  • Video title

  • Description (optional)

  • Thumbnail image

  • Genre tags

3

Preview your content

Once the video is uploaded and processed, it is available for preview!

Click View button to see your video in a new tab. You can adjust Quality Settings on the fly to check how it was transcoded into different resolutions.

4

Adjust visibility

The visibility is set to Private by default, but you can always set it to Public or Unlisted in the dropdown at the top of the page

5

Save and publish

When you're happy with everything, click Create button at the top right corner — this will save your video with the Visibility Settings you adjusted earlier.

And when you're ready to publish — just click Edit and set your video to Public. Congratulations, it's now live and can be viewed by entire VIVERSE community!

Please note that you can always hide your video later by setting its Visibility back to Private


Publishing with the CLI

The VIVERSE CLIarrow-up-right can be used to publish any web-compatible WebGL / HTML5 build to the VIVERSE platform after an authentication process.

Installation

Using npm:

Note: This CLI requires Node.js version 22.15.0 or higher.

Authentication

Login to VIVERSE platform:

Or directly pass in login credentials for CI/CD integration:

In such CI/CD environments, it's recommended to use environment variables:

After login, check your authentication status:

And to logout:

After install and authentication, the VIVERSE CLI can be used to publish any working WebGL build to the VIVERSE platform after an authentication process. When publishing, you'll either access your existing projects, or create a new one.

Creating Applications

You can use the VIVERSE CLI to create a new application directly:

Or specify a name:

Alternately, you can use the VIVERSE Studioarrow-up-right workflow to create an application ID:

From the Upload section, click the light blue "Create New World" button in the top right to open this modal.
Once created, your App ID will display on the world page.

Listing Applications

Once authenticaed, you can view your account's available application list:

The output will be displayed in a table format with the following columns:

  • ID: Application identifier

  • STATE: Application state

  • TITLE: Application name

  • URL: Application preview URL

Publishing

Publishing content requires two inputs:

  1. App ID — the target application to publish to (required)

  2. Content path — the directory containing your content (optional if you're already in that directory)

Option 1: Specify content path

Option 2: From within content directory

Note: The App ID is required. You can use the viverse-cli app list command to query your existing application IDs, or view the IDs of newly created applications after using app create.

Important: After uploading content successfully, you'll need to visit the Creator Studio website to complete the review and publishing process.

Warning: The <path> parameter MUST point to your build output folder and NOT your source code folder. Publishing source code folders (containing src/, node_modules/, or development files like .tsx, .jsx, .vue, .unity, etc.) will result in non-functional content and deployment failures.


Specifications for Video Content

Input video specifications

Feature
Supported Formats and Types

File Format

  • Audio Video Interleave (.avi)

  • MPEG-1 (.mpg)

  • MPEG-4 (.mp4, .m4v)

  • MPEG transport stream (.ts)

  • MPEG-2 Transport Stream (.ts, .m2ts)

  • QuickTime Movie (.mov)

  • Matroska (.mkv)

  • Windows Media Video (.wmv)

  • Blu-ray Disc Audio-Video (.m2ts)

File Size

  • Max: 30 GB

Video Codec

  • MPEG-1/2/4

  • AVC (H.264)

  • HEVC (H.265)

  • Apple ProRes

  • AV1

Video Resolution

  • Max: 4096x2304

  • Min: 128x128

Video Duration

  • Max: 120 min

Video Bitrate

  • Max: 60 Mbps (H.264)

  • Max: 45 Mbps (H.265)

  • Min: 60 Kbps

Audio Codec

  • AAC

  • AC-3

  • MPEG Audio

  • MP3

Audio Bitrate

  • Max: 576 Kbps

  • Min: 24 Kbps

Output video specifications

Resolution
Codec / Bitrate
Audio Specs
Description

3840x2160

H.265 (HEVC) 15 - 30 Mbps

AAC-LC 384 kbps / 48kHz

High efficiency for VR/Desktop clarity

2560x1440

H.265 (HEVC) 8 - 14 Mbps

AAC-LC 384 kbps / 48kHz

The sweet spot for quality / speed

1920x1080

H.264 (AVC) 4 - 6 Mbps

AAC-LC 192 kbps / 48kHz

Fallback for compatibility

1280x720

H.264 (AVC) 2 - 3 Mbps

AAC-LC 192 kbps / 48kHz

Mobile optimization

720x480

H.264 (AVC) 1 - 1.5 Mbps

AAC-LC 128 kbps / 48kHz

Data saver mode

640x360

H.264 (AVC) 0.8 - 1.0 Mbps

AAC-LC 128 kbps / 48kHz

Legacy mobile support

400x240

H.264 (AVC) 0.4 - 0.6 Mbps

AAC-LC 128 kbps / 48kHz

Restricted bandwidth

Transcoding matrix

If You Upload (Input)
Your Viewers Get These Resolutions and Frame Rates
Max Audio Quality
Quality Badge

4K @ 60fps 3840x2160

2160p60, 1440p60, 1080p60, 720p60, 480p30, 360p30, 240p30

384 kbps (Hi-Fi)

4K

4K @ 30fps 3840x2160

2160p30, 1440p30, 1080p30, 720p30, 480p30, 360p30, 240p30

384 kbps (Hi-Fi)

4K

2K @ 60fps 2560x1440

1440p60, 1080p60, 720p60, 480p30, 360p30, 240p30

384 kbps (Hi-Fi)

HD

2K @ 30fps 2560x1440

1440p30, 1080p30, 720p30, 480p30, 360p30, 240p30

384 kbps (Hi-Fi)

HD

1080p @ 60fps 1920x1080

1080p60, 720p60, 480p30, 360p30, 240p30

192 kbps (Stereo)

HD

1080p @ 30fps 1920x1080

1080p30, 720p30, 480p30, 360p30, 240p30

192 kbps (Stereo)

HD

720p @ 60fps 1280x720

720p60, 480p30, 360p30, 240p30

128 kbps (Standard)

HD

720p @ 30fps 1280x720

720p30, 480p30, 360p30, 240p30

128 kbps (Standard)

HD

480p (Any FPS) 720x480

480p30, 360p30, 240p30

128 kbps (Standard)

SD

Last updated

Was this helpful?