Solidly provides native macOS support for both standalone .glb containers and .gltf documents with external buffers and texture files. Models open directly into a real-time viewport that accurately evaluates scene hierarchy, skeletal animation, and physical materials without requiring conversion.

PBR materials and glTF extensions

Solidly implements the standard glTF metallic-roughness shading model under HDR environment lighting. Solidly's renderer handles advanced material extensions including clearcoat, surface sheen, volumetric transmission, glass dispersion, and thin-film iridescence.

Models packaged with geometry compression or modern texture containers decode during load. Solidly decompresses Draco, Meshopt, quantized meshes, and KTX2 Basis Universal textures directly into memory, opening production-ready web assets without pre-processing.

A detailed summary of supported material, geometry, and texture extensions appears in the glTF extension support reference table.

Supported glTF extensions

Animation playback and transport controls

When a file contains animation tracks, Solidly displays a transport bar directly over the viewport. Solidly's playback engine evaluates skeletal deformation on skinned meshes, adjusts morph target weights, and drives property transitions targeted by KHR_animation_pointer.

Individual animation clips include controls for timeline scrubbing, continuous looping, and playback speed adjustments from half speed to double speed. Files authored with multiple concurrent tracks display stacked controls to inspect each sequence independently.

Still frames from any point on the playback timeline can be captured at up to 8K resolution through Photo Mode.

Animation playback

The Info tab listing five glTF Validator warnings for a stylised house on a floating island, each with the location in the document it applies to.

“...Fire in the sky” by WON, licensed under CC BY 4.0.

File inspection and Khronos validation

The Info tab summarises the core technical properties of the file, detailing vertex and triangle totals, declared compression methods, extension requirements, and embedded metadata such as XMP packets. Solidly runs the official Khronos glTF Validator automatically upon opening a file, reporting syntax errors, specification warnings, and optimisation hints alongside their exact JSON pointers.

To isolate rendering issues, the Render tab provides dedicated diagnostic modes. Visualizers display surface normals, tangents, vertex colours, UV coordinates via checker patterns, and individual shading passes in isolation. Toggle switches on each active material extension allow direct before-and-after evaluations without modifying file data.

The Resources tab exposes the underlying file schema, organising scene nodes, mesh primitives, cameras, punctual lights, skinning bindings, and raw buffer accessors into a navigable tree.

The Info tab

A glTF chess set with a pawn's material card open in the Materials tab and the Add Extension menu listing Clearcoat, Sheen, IOR, and the other material extensions.

“A Beautiful Game” by the Academy Software Foundation and Ed Mackey, licensed under CC BY 4.0.

Material configuration and variants

The Materials tab organises every material in the 3D model into an interactive card showing surface parameters, texture channel assignments, alpha modes, and backface culling options. Edits reflect immediately in the viewport, and individual materials can be reset to their disk state at any point.

The Add Extension menu adds supported Khronos extensions directly to an existing material card, including clearcoat, sheen, transmission, iridescence, and volume. Texture sampler parameters, such as wrapping modes, filtering behaviour, and KHR_texture_transform UV offsets, can be adjusted inside the Textures pool.

For models with KHR_materials_variants, Solidly allows creating new variant entries, switching active configurations, and assigning material overrides within the chosen variant set.

Editing materials

Scene graph editing and file saving

The Hierarchy panel provides complete access to the glTF node tree. Nodes can be reordered, reparented, renamed, duplicated, or deleted, and empty group nodes, directional or punctual lights, and perspective cameras can be inserted directly into the scene. Spatial transforms can be adjusted numerically in the Node tab or positioned interactively with viewport gizmos. Separate glTF or GLB files can also be merged into the active scene.

Mesh utilities can separate multi-primitive meshes into distinct nodes, invert surface normals, recalculate tangents, and generate missing UV coordinates. Metadata fields, including custom extras objects and XMP blocks, are editable through dedicated property fields.

Saving updates the original file while preserving its declared compression layout. The Save As command exports to either binary .glb with self-contained assets or standard .gltf with external buffers and textures.

Editing the hierarchy

Asset compression and delivery optimization

Solidly's compression pipeline generates optimized duplicates of GLB and glTF assets while keeping source files untouched. Mesh data can be quantized or encoded using Draco or Meshopt compression algorithms, while texture maps can be converted to WebP or Basis Universal KTX2 containers.

For web delivery, the default configuration pairs Meshopt geometry compression with KTX2 textures, which stay compressed in GPU memory during runtime.

Compressing glTF

glTF extension support

Solidly supports the complete suite of visual, material, and asset compression extensions in the Khronos glTF registry, covering 20 ratified KHR extensions and 3 approved multi-vendor EXT extensions. The table lists each supported extension alongside its rendering and editing capabilities.

ExtensionRenderingEditing
KHR_materials_anisotropyRenderedAdded, edited, and removed on a material
KHR_materials_clearcoatRenderedAdded, edited, and removed on a material
KHR_materials_dispersionRenderedAdded, edited, and removed on a material
KHR_materials_emissive_strengthRenderedAdded, edited, and removed on a material
KHR_materials_iorRenderedAdded, edited, and removed on a material
KHR_materials_iridescenceRenderedAdded, edited, and removed on a material
KHR_materials_sheenRenderedAdded, edited, and removed on a material
KHR_materials_specularRenderedAdded, edited, and removed on a material
KHR_materials_transmissionRenderedAdded, edited, and removed on a material
KHR_materials_unlitRenderedAdded and removed on a material
KHR_materials_volumeRenderedAdded, edited, and removed on a material
KHR_materials_variantsSelectable in the Info and Materials tabsVariants created, and materials assigned to them
KHR_texture_transformRenderedOffset, rotation, and scale edited in the Textures pool
KHR_texture_basisuDecoded when the file opensWritten by compression export
EXT_texture_webpDecoded when the file opensWritten by compression export
KHR_draco_mesh_compressionDecoded when the file opensWritten by compression export
EXT_meshopt_compressionDecoded when the file opensWritten by compression export
KHR_mesh_quantizationRead when the file opensWritten by compression export
EXT_mesh_gpu_instancingRendered, with each copy selectableCopies moved and deleted individually
KHR_lights_punctualRenderedLights added, and their colour, intensity, range, and cone angles edited
KHR_node_visibilityHidden nodes are not drawnNodes shown and hidden
KHR_animation_pointerPlayed backNot editable
KHR_xmp_json_ldShown in the Info and Node tabsAsset and node packets edited

Solidly also supports two extensions that are not ratified. KHR_materials_diffuse_transmission is supported as a release candidate and flagged in the Info tab for compatibility awareness. The archived KHR_materials_pbrSpecularGlossiness extension renders and remains editable in existing files, though Solidly restricts new material creation to modern metallic-roughness workflows.

Availability

Every feature on this page is included in Solidly's 30-day free trial with no payment details required. Solidly Standard is a one-time purchase that keeps full functionality permanently. See pricing.

Solidly requires an Apple silicon Mac running macOS 26 or later.

Limitations

  • Solidly exports glTF scenes exclusively to GLB or glTF formats and does not perform conversions to foreign schemas such as FBX, OBJ, or USDZ.
  • Four extensions in the Khronos registry are not supported: KHR_interactivity, KHR_node_hoverability, and KHR_node_selectability (which define interactive application runtime behaviour rather than 3D asset rendering), and KHR_gaussian_splatting (which Solidly opens in PLY format). Unsupported extensions are reported in the Info tab and preserved without alteration during save operations.
  • Animation tracks can be evaluated and played back, but keyframe editing is not supported.
  • Compressed models are unpacked in system memory upon load; recompressing modified geometry or changing compression algorithms requires running the compression export tool.
  • Maximum loadable file and texture dimensions are limited by available unified memory on the host Mac.

Frequently asked questions

What is the difference between a GLB file and a glTF file?

A .gltf file stores the scene description as human-readable JSON while referencing external binary buffers (.bin) and standalone texture image files. A .glb file packages the exact same scene data, buffers, and textures into a single binary container. Solidly opens, displays, and converts between both variants.

How do I open a GLB file on a Mac?

Open Solidly and choose File ▸ Open, or drag the file directly into the application window. Once installed, pressing Space on any .glb file in the Finder opens an interactive 3D Quick Look preview.

Can Solidly convert a glTF file to GLB?

Yes. Solidly saves models between glTF variants. Opening a .gltf file and selecting File ▸ Save As ▸ GLB bundles all external buffers and images into a single self-contained binary file. Cross-format conversion to formats like FBX or USD is not supported.

How can I reduce the size of a GLB file?

The compression export feature writes a smaller copy of the file by applying Meshopt or Draco geometry compression and encoding textures to KTX2 or WebP. The original source asset remains unmodified.

Is Solidly's GLB viewer free?

Solidly includes an unrestricted 30-day trial with no credit card required. Continued use after 30 days requires purchasing a permanent Solidly Standard license.