v2.5.1 Runs on Windows, Linux Video

The blazingly fast 3D data viewer for Windows and Linux.
Blaze3D might be the fastest 3D data viewer currently available.
It supports both the visualization of triangle mesh and pointcloud data stored in many file formats.


As you’ll notice in the videos below, Blaze3D is very fast and supports many workflows for viewing your files.

Running from console

You can view your model by calling:


Or an entire folder via:

blaze3d folder

Drag&Drop support

You can drop any supported model or folder on the already opened window

Stream loading

Get instant visual feedback even before loading is done

Folder traversal

You can traverse the currently opened folder with the arrow keys

Folder view

You can view all models within a folder and use Blaze3D like any other file browser

Colored point shading

Point data is always shaded colorized. This makes it easy to understand even complex 3D models

Camera controls

Move, rotate and zoom are fully supported

Supported file formats

Blaze3D Lite and Blaze3D Pro

  • .stl both binary and ASCII
  • .xyz
  • .xyzc ignoring colors
  • .xyzn ignoring normals
  • .csv if formatted similar to .xyz
  • .txt if formatted similar to .xyz
  • .obj
  • .gcode

Blaze3D Pro exclusive

  • .ply both binary and ASCII ignoring colors etc.
  • .off
  • .psl
  • .ptx
  • .las only loading point coordinates
  • .pts
  • .glb basic support (v2.0, index meshes, no colors, no textures …)
  • .gltf basic support (v2.0, index meshes, no colors, no textures …)


Blaze3D is available as free Lite and paid Pro edition.
The Pro edition supports additional file formats.

High efficiency

Blaze3D causes no CPU usage when idle and uses very little memory (if double_buffer_data is turned off). Saving power and allowing you to work on other tasks in parallel.
Incremental rendering of point clouds is also supported. This makes it possible to render very large point clouds that do not fit into your GPU’s memory.

No installer required

You can directly run Blaze3D without having to use an installer or make changes to your system.

Active development

Blaze3D is in active development and will further improve in the future. Feature requests and bug reports are very welcome.



  • Improve Linux support (binaries now compiled on older host machine)
  • Fix an issue within the .gcode loader in case a ; is located directly behind a value


  • Greatly improve performance of .glb loading in case there are many seek operations (caused by e.g. many BufferViews)
  • Slightly improve loading speed of smaller files
  • Fix bug where clicking another folder while still fetching the current folder could cause loading to stop completely
  • Fix bug where renderer would make unnecessary render calls


  • Now also support inline base64 data in .gltf files


  • Add basic .gltf v2.0 support


  • Split Blaze3D into Lite and Pro editions
  • Fix issue in bounding box calculation in case the first stream chunk has no valid size
  • Support models that don’t have a valid 3D bounding box (e.g. flat surfaces)
  • In case indices within a .glb file are undefined or not supported, the data is now rendered as points


  • Add basic .glb v2.0 support
  • Slightly improve performance when using single buffering (double_buffer_data = false)


  • Data is now streamed and rendered directly. Resulting in instant visual feedback
  • Add stream_chunk_size to configuration
  • Improve loading speeds by double buffering the loaded data
    Since this causes higher memory usage, you can configure it via double_buffer_data
    (Enabled by default)
  • Remove on_duplicate_stl_vertex from configuration, now always assuming Allow
  • Drop gpu_capacity_growth_factor from configuration, now handled internally


  • Improve folder structure of released zip files
  • IO Error messages now contain more information
  • Change the initial model pose so more of the model is shown (90 degree rotations only)


  • Only show folders that potentially contain valid models (checked via extension)
  • Improve .ply support (now supporting types int8, uint8, int16, uint16, int32 and uint32)
  • Fix bug where folder up / traverse didn’t work when starting Blaze3D from the current directory
  • Fix bug where scrollbar is incorrect if folder mostly/only contains other folders


  • Avoid bad alloc crashes in case of invalid .stl data
  • Handle invalid normals within an .stl file more gracefully


  • Can now scroll in the folder view via mouse wheel
  • Now showing loading and error texts for single files within folder view
  • On errors when loading ASCII files, the invalid line’s content is now printed
  • Now showing stats about loaded model within the rendering window
  • Slightly increase the default font size


  • The folder view can now be used as full file browser
  • Now displaying names of files
  • Now displaying folders including ..
  • Folder view now shows in title whether loading is in progress
  • Now possible to use the back buttons in the folder view as well
  • The (empty) folder view now uses less VRAM
  • The scale factor of the window / your OS is now considered for all sizes
  • You can use font_size to configure the font size
  • The upscale setting is now removed and always considered to be 1
    Due to the rendering of text and internal changes, a value != 1 makes little sense now


  • Improve smoothness of interactive rendering while also dropping CPU usage during interactions
  • Folder view now behaving more responsive
  • Slightly improved (loading) performance
  • Now more reactive when resizing the folder view window
  • Reduce VRAM usage for folder icons
  • There’s now a minimal window size
  • Folder view is now rendered with a padding
  • Now displaying error text in title in case file could not be loaded
  • The size of icons (single files) within the folder view can now be configured via icon_width and icon_height
  • The upscale of the folder view can now be configured
  • print_detailed_time is even more detailed now
  • Going back to the folder view is now correctly possible via mouse-back on Windows


  • Fix issue on Windows where CPU usage was high even with no interaction


  • The folder view can now be very efficiently redrawn
    This avoids any file reloads when resizing the window or traversing the folder
    At the cost of a slight VRAM usage increase for every cached file
  • Files within the folder view are now rendered with a fixed size
  • Due to the above changes, max_models_folder_view has been removed from the configuration
    Now the maximum number of shown files depends solely on the window size
  • Reduce VRAM usage when rendering folder view (especially on large screens)


  • The folder view can now be configured to load at most max_models_folder_view models
    Set this value to 0 to have the previous, unlimited behavior
  • Add a scroll indicator for the multi view in case it is limited
  • Traversal with the arrow keys is now also possible within the folder view in case its model count is limited
  • Arrow up/down can now also be used for traversal
  • Loading of folder view is now aborted more often when requesting other actions / views, allowing for faster interaction
  • If initially loading an invalid file, Blaze3D is now closed
  • Split print_timelog into print_total_time and print_detailed_time
    Originally defaulted to true, total now defaults to true, but detailed to false
  • Further improve console logs
  • Improve error logging in case the ASCII .stl import fails
  • Improve error message in case there’s issues within the configuration file
  • Fix a bug in ASCII .stl import
  • Fix a bug where quick switching between folder and file view could cause the incorrect model to be rendered


  • Add option to render point clouds incrementally
    This makes it possible to render large point clouds even with very little GPU memory
    See max_points_per_render_call in the configuration file
  • Add a coordinate cross
    It is rendered at the origin
    You can edit line_width to change its appearance
  • Add option to print the time spent rendering a frame via print_frame_time
  • The rendered point size can now be configured via point_size
  • Shorten the “Non-commercial” window title


  • Now supporting display of multiple models at once when opening a folder
  • Add option to reload a file or folder by using the R key
  • Add option to display folder of currently loaded file via Backspace, ESC or the back button of your mouse
  • ESC doesn’t close the application anymore (to avoid mistakes during display of multiple models)


  • Remove the blaze3df executable
  • Add setting on_duplicate_stl_vertex to the configuration as replacement
    "Allow" equates the previous behavior of blaze3df
    "Merge" equates the previous behavior of blaze3d
    "Allow" is the default, causing blaze3d’s default behavior to be the same as previously blaze3df
  • Now following symlinks when trying to find the configuration file. The location next to the executable is considered
  • Reduce amount of ‘unnecessary’ text in the window title
  • Improve display of currently opened file in the window title
  • Display drag&drop notice in title if nothing loaded
  • Printing of the timelog can now be toggled in the configuration file via print_timelog
  • Printed vertex / face counts now have a thousands separator


  • Add .pts support
  • All values within configuration are now optional
  • Add switching between perspective and orthographic projection via configuration
  • Add field of view setting for perspective projection
  • Add initial window size to configuration
  • Improve error handling if configuration file is invalid or missing
  • Improve initial / cold loading time
  • Improve time logging
  • Always print active configuration fully


  • Now supporting .ply files that only contain point data
  • Now able to open folders directly (will load first valid file in folder)
  • Icon for the Windows executable


  • Add .las support


  • Greatly improve speed for all text/ASCII file formats [time to first frame, hot]
  • 31% .stl
  • 25% .gcode
  • 32% .ply
  • 20% .xyz
  • 34% .obj
  • 20% .ptx
  • and others (no data for benchmarks available)


  • Further greatly improved performance (> 2x in some cases)
  • There’s changes to the configuration, you’ll have to update yours


  • Arrow keys can now be used to load the previous/next file of the current folder
  • Readme and Changelog now .html pages
  • The camera controls can now be configured by editing blaze3d.toml


  • .gcode support greatly improved


  • Add .ptx support
  • Add .gcode support (reading G1 commands assuming absolute positioning)


  • Greatly improve loading speed especially when loading .stl files
  • Extend time logging to track time loading -> finish rendering frame
  • Use normals provided by .stl files if they seem to be valid
  • Now always showing the render window, even if there are issues initially (such as no file provided)
  • Rendering nothing if invalid files are dropped onto the render window (instead of just showing the previous model)


  • Fix issue where binary .stl files were detected as ASCII and failed to load properly
  • Fix issue where .stl files with invalid faces could not be loaded


  • Nicer time logging and output
  • Support for binary .ply files
  • .ply import is now more capable and should be able to open most (possibly all) files
  • Free community edition for non-commercial use is now available

Used models

The following models were used within the videos / images: