Utilities » Magnum Player

Advanced app for loading and playing back scene and image files.


This app is built if WITH_PLAYER is enabled when building Magnum Extras. To use this app with CMake, you need to request the player component of the MagnumExtras package and use the MagnumExtras::player target for example in a custom command:

find_package(MagnumExtras REQUIRED player)

add_custom_command(OUTPUT ... COMMAND MagnumExtras::player ...)

On desktop, a file is supplied via a command-line argument. In the WebAssembly build, files can be opened via drag & drop. The player supports any scene or image file that can be opened with plugns derived from Trade::AbstractImporter.


  • Space plays or pauses the animation
  • arrow keys seek the animation forward or backward
  • mouse drag rotates the scene around the cursor
  • Shift mouse drag pans the scene at depth of the cursor
  • mouse wheel zooms in/out relative to cursor position
  • right mouse button selects and highlights mesh under cursor, showing stats for it
  • Num 1 / Ctrl Num 1 switches to a front / back view
  • Num 3 / Ctrl Num 3 switches to a right / left view
  • Num 7 / Ctrl Num 7 switches to a top / bottom view
  • Num 0 resets the camera back to the original view
  • + / Num + or - / Num - increases or decreases lighting brightness
  • F5 re-imports currently loaded file (desktop version only, on the web drop a file again for equivalent behavior)


magnum-player [--magnum-...] [-h|--help] [--importer IMPORTER] \
    [--no-merge-animations] [--msaa N] [--] file


  • file — file to load
  • -h, --help — display this help message and exit
  • --importer IMPORTER — importer plugin to use (default: AnySceneImporter, with a fallback to AnyImageImporter when an image file is supplied)
  • -i, --importer-options key=val,key2=val2,… — configuration options to pass to the importer
  • --no-merge-animations — don't merge glTF animations into a single clip
  • --msaa N — MSAA level to use (if not set, defaults to 8x or 2x for HiDPI)
  • --magnum-... — engine-specific options (see Command-line options for details)

The -i / --importer-options argument accepts a comma-separated list of key/value pairs to set in the importer plugin configuration. If the = character is omitted, it's equivalent to saying key=true; you can specify configuration subgroups using a slash.


The screenshot was made using the Littlest Tokyo model by Glen Fox, licensed under the CC 4.0 Attribution license. The app makes use of the Adobe Source Sans Pro font through the Ui library, see its documentation for license information.