Skip to main content

File Viewers

VAMS includes a plugin-based viewer system that enables browser-based visualization of 3D models, point clouds, media files, documents, and data -- without requiring desktop software or specialized licenses. This page is the single source of truth for all built-in viewers and their supported file extensions.

What are file viewers

File viewers are browser-based rendering components that display asset files directly in the VAMS web interface. When you open a file from the file manager, VAMS automatically selects the best viewer based on the file extension and viewer priority. If multiple viewers support the same extension, you can switch between them using a dropdown in the viewer UI.

The viewer system is built on a plugin architecture. Each viewer is an independent module with its own dependencies, configuration, and supported file types. New viewers can be added without modifying any core system code -- only a configuration entry and the viewer component are required.

How viewer selection works

  1. VAMS reads the file extension (e.g., .glb, .e57, .pdf).
  2. All enabled viewers that support that extension are identified.
  3. The viewer with the lowest priority number is selected as the default.
  4. If multiple viewers match, a dropdown allows you to switch between them.
  5. If no viewer matches the extension but a preview image exists, the Preview Viewer displays the thumbnail.

Viewer categories

Viewers are organized into five categories based on the type of content they render.

3D

Interactive 3D model, point cloud, CAD, USD, and Gaussian splat viewing. Nine viewers cover a wide range of spatial data formats, from mesh files (glTF, OBJ, FBX) to point clouds (E57, LAS) to Universal Scene Description (USD). Some 3D viewers support multi-file mode, allowing multiple files to be loaded into a single scene.

Media

Image, video, and audio playback. The Image Viewer supports zoom and pan. The Video Player and Audio Player provide standard browser-native playback controls.

Document

Rendering of PDF, HTML, and text-based files. The Text Viewer provides syntax highlighting for over 20 programming and configuration file types.

Data

Tabular display of columnar data formats such as CSV, RDS, and FCS files.

Preview

A fallback viewer that displays generated preview thumbnails for files that have no dedicated viewer. The Preview Viewer has the lowest priority (10) and matches all file extensions as a wildcard.


Master viewer table

This table is the definitive reference for all 17 built-in viewer plugins.

Viewer NameCategorySupported ExtensionsPriorityMulti-FileNotes
Three.js Viewer3D.gltf, .glb, .obj, .fbx, .stl, .ply, .dae, .3ds, .3mf, .stp, .step, .iges, .brep1YesPrimary mesh and CAD viewer. Scene graph, material editing, transform controls. CAD formats (.stp, .step, .iges, .brep) require WASM and ALLOWUNSAFEEVAL.
Potree Viewer3D.e57, .las, .laz, .ply1NoOctree-based point cloud streaming. Requires the Potree preprocessing pipeline. Shows latest version only.
BabylonJS Gaussian Splat Viewer3D.ply, .spz1NoGaussian splat visualization with WebXR support.
Needle USD Viewer (Experimental)3D.usd, .usda, .usdc, .usdz1NoUniversal Scene Description via WebAssembly. Requires ALLOWUNSAFEEVAL. Experimental -- may not display all USD files correctly or load all dependencies.
Online 3D Viewer3D.3dm, .amf, .bim, .off, .wrl2YesRhinoceros 3D, AMF, BIM, OFF, and VRML formats.
Cesium 3D Tileset Viewer3D.json2No3D Tileset viewing with geospatial capabilities. Requires ALLOWUNSAFEEVAL. Shows latest version only.
PlayCanvas Gaussian Splat Viewer3D.ply, .sog2NoGaussian splat visualization with orbit camera and auto-focus.
VNTANA 3D Viewer3D.glb2NoLicensed viewer for high-quality GLB rendering. See Licensed viewers.
VEERUM 3D Viewer3D.e57, .las, .laz, .ply, .json2YesLicensed viewer for point clouds and 3D tilesets. Requires Potree pipeline. Shows latest version only. See Licensed viewers.
Image ViewerMedia.png, .jpg, .jpeg, .svg, .gif1NoZoom and pan capabilities. Eager load strategy.
Video PlayerMedia.mp4, .webm, .mov, .avi, .mkv, .flv, .wmv, .m4v1NoStandard browser-native playback controls.
Audio PlayerMedia.mp3, .wav, .ogg, .aac, .flac, .m4a1NoStandard browser-native playback controls.
PDF ViewerDocument.pdf1NoNavigation, zoom, and page management controls.
HTML ViewerDocument.html1NoRenders HTML presentations and documents.
Text ViewerDocument.txt, .json, .xml, .html, .htm, .yaml, .yml, .toml, .ini, .ipynb, .inf, .cfg, .md, .sh, .csv, .py, .log, .js, .ts, .sql, .ps11NoSyntax highlighting for 20+ file types.
Columnar Data ViewerData.rds, .fcs, .csv2NoTabular data display with column headers.
Preview ViewerPreview* (all extensions)10NoDisplays generated preview thumbnails. Fallback viewer for files with no dedicated viewer.

File extension to viewer mapping

This table provides a quick lookup from file extension to the viewer(s) that handle it. When multiple viewers are listed, the default column indicates which is selected automatically (lowest priority number). Users can switch to any other listed viewer using the viewer dropdown.

3D model extensions

ExtensionDefault ViewerOther Available Viewers
.3dmOnline 3D Viewer--
.3dsThree.js Viewer--
.3mfThree.js Viewer--
.amfOnline 3D Viewer--
.bimOnline 3D Viewer--
.brepThree.js Viewer--
.daeThree.js Viewer--
.fbxThree.js Viewer--
.glbThree.js ViewerVNTANA 3D Viewer
.gltfThree.js Viewer--
.igesThree.js Viewer--
.objThree.js Viewer--
.offOnline 3D Viewer--
.step / .stpThree.js Viewer--
.stlThree.js Viewer--
.wrlOnline 3D Viewer--

Point cloud and Gaussian splat extensions

ExtensionDefault ViewerOther Available Viewers
.e57Potree ViewerVEERUM 3D Viewer
.lasPotree ViewerVEERUM 3D Viewer
.lazPotree ViewerVEERUM 3D Viewer
.plyPotree Viewer, BabylonJS Gaussian Splat Viewer, Three.js ViewerPlayCanvas Gaussian Splat Viewer, VEERUM 3D Viewer
.sogPlayCanvas Gaussian Splat Viewer--
.spzBabylonJS Gaussian Splat Viewer--
PLY files and multiple viewers

The .ply extension is used for both point cloud data and Gaussian splat data. Three viewers match at priority 1 (Potree, BabylonJS Gaussian Splat, Three.js). VAMS presents all compatible viewers and you can select the appropriate one for your data type.

USD extensions

ExtensionDefault ViewerOther Available Viewers
.usdNeedle USD Viewer (Experimental)--
.usdaNeedle USD Viewer (Experimental)--
.usdcNeedle USD Viewer (Experimental)--
.usdzNeedle USD Viewer (Experimental)--
Needle USD Viewer -- Experimental

The Needle USD Viewer is experimental. It may not display all USD files correctly or load all file dependencies, particularly with compressed USDC files or complex scene hierarchies with external references. For production workflows requiring reliable USD viewing, consider using a desktop USD viewer such as NVIDIA Omniverse or Pixar's usdview.

Media extensions

ExtensionDefault ViewerOther Available Viewers
.aacAudio Player--
.aviVideo Player--
.flacAudio Player--
.flvVideo Player--
.gifImage Viewer--
.jpg / .jpegImage Viewer--
.m4aAudio Player--
.m4vVideo Player--
.mkvVideo Player--
.movVideo Player--
.mp3Audio Player--
.mp4Video Player--
.oggAudio Player--
.pngImage Viewer--
.svgImage Viewer--
.wavAudio Player--
.webmVideo Player--
.wmvVideo Player--

Document and data extensions

ExtensionDefault ViewerOther Available Viewers
.cfgText Viewer--
.csvText ViewerColumnar Data Viewer
.fcsColumnar Data Viewer--
.htmText Viewer--
.htmlHTML ViewerText Viewer
.infText Viewer--
.iniText Viewer--
.ipynbText Viewer--
.jsText Viewer--
.jsonText ViewerCesium 3D Tileset Viewer, VEERUM 3D Viewer
.logText Viewer--
.mdText Viewer--
.pdfPDF Viewer--
.ps1Text Viewer--
.pyText Viewer--
.rdsColumnar Data Viewer--
.shText Viewer--
.sqlText Viewer--
.tomlText Viewer--
.tsText Viewer--
.txtText Viewer--
.xmlText Viewer--
.yaml / .ymlText Viewer--

Viewer screenshots

USD viewer (Needle Engine) -- Experimental

VAMS file viewer page displaying a USDZ 3D model rendered by the Needle USD Viewer

VEERUM point cloud viewer

VEERUM 3D Viewer rendering a point cloud dataset with multi-file support

VNTANA 3D viewer

VNTANA 3D Viewer displaying a high-quality GLB model

Three.js 3D model viewer

Three.js Viewer rendering a 3D model with scene controls


WebAssembly requirements

Several viewers depend on WebAssembly (WASM) modules for rendering. WASM-based viewers require a Cross-Origin Isolation (COI) service worker to enable SharedArrayBuffer support in the browser. VAMS includes this service worker automatically in production deployments.

The following viewers use WASM:

ViewerWASM LibraryRequired Feature Flag
Needle USD Viewer (Experimental)usd-wasmALLOWUNSAFEEVAL
Cesium 3D Tileset ViewerCesiumJS (WebGL shader compilation)ALLOWUNSAFEEVAL
Three.js Viewer (CAD formats only)OpenCascade (opencascade.js)ALLOWUNSAFEEVAL
Content Security Policy

Enabling ALLOWUNSAFEEVAL adds unsafe-eval to the Content Security Policy script-src directive. This is required by CesiumJS for WebGL shader compilation and by WASM loaders for OpenCascade and Needle USD. Review this setting with your organization's security team before enabling. Set app.webUi.allowUnsafeEvalFeatures to true in the CDK config.json to enable.

The Three.js Viewer works without ALLOWUNSAFEEVAL for standard mesh formats (.gltf, .glb, .obj, .fbx, .stl, .ply, .dae, .3ds, .3mf). The WASM requirement applies only to CAD formats (.stp, .step, .iges, .brep) which use the OpenCascade library.


Licensed viewers

Two viewer plugins are integrations with commercial products and require separate licenses to use.

ViewerVendorFormatsLicense Required
VNTANA 3D ViewerVNTANA.glbYes
VEERUM 3D ViewerVeerum.e57, .las, .laz, .ply, .jsonYes

Both licensed viewers are enabled in the viewer configuration by default but require a valid license from the respective vendor to function. Without a license, these viewers will not render content. Contact the vendor directly for licensing details.

For more information on partner integrations, see Partner Integrations.