A little program to preview GLTF models
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.
glfw @ 90e2294
glm @ 7590260


GLTF Viewer

A little program to preview GLTF models with a few custom settings.

Currently focusing on University studies so development has slowed down.

Built with GLFW3, glad, GLM, imgui and nholmann/json using CMake and C++


  • Supports loading scenes and cameras

Planned Features

  • Load GLTF and GLB files
  • Post procressing shaders
  • Live reloading of assets
  • Multi camera viewports
  • Custom skybox and ILB


The goal of this project was to learn more about glTF, learn about creating PBR and try to create a useable program that might have a real world use. I haven't designed the program to be as efficient on memory as possible as the intended use case is for previewing scenes and/or models. There are many optimisations that could be made if loading a glTF file for a game to reduce loading time and memory usage.


GLTF Viewer uses CMake to build, allowing it to be used across multiple systems. There are a few ways you can build this project depending on what system and toolsets you have available:


If you use Microsoft's Vcpkg, first install all the dependencies:

.\vcpkg install glfw3 glm

Then build appending -DCMAKE_TOOLCHAIN_FILE=[vcpkg root]\scripts\buildsystems\vcpkg.cmake -DUSE_VCPKG to the command:

cmake -DCMAKE_TOOLCHAIN_FILE=[vcpkg root]\scripts\buildsystems\vcpkg.cmake --build . 


GLTF Viewer doesn't include some libraries in the repo, instead preferring for the user to download them.


By default, this project will load GLM and GLFW3 using find_package which require them to be installed. Please see their respective pages on how to install them.

You can disable this behaviour and load a local version instead by setting the options USE_GLM_PACKAGE and USE_GLFW_PACKAGE to OFF respectively. You'll then need to download these files manually however this can be done automatically by running setup.sh


This project is provided under the MIT License. See LICENSE.MD for more information.

Library Licenses

Please see the libraries respective directories or links for the full license.

  • nholmann/json - MIT License
  • imgui - MIT License
  • GLM - The Happy Bunny License (Modified MIT License)
  • GLFW - zlib/libpng
  • Glad - MIT License (Generated code is CC0)