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/profile. This page guides you through the uploading process using both methods!
While 3D experiences and applications can be uploaded using either VIVERSE Studio or the CLI, currently videos can only be uploaded via Studio, not the CLI.
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
Learn more about specifications for applications and 3D experiences, including supported file types, requirements, and integrations with our SDKs.
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.
(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.
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 form.









Publishing Videos with VIVERSE Studio
Learn more about specifications for video content, including upload limits, output specs, and our transcoding matrix.
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
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.
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 CLI 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 Studio workflow to create an application ID:


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:
App ID — the target application to publish to (required)
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 listcommand to query your existing application IDs, or view the IDs of newly created applications after usingapp 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 (containingsrc/,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
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
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
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?