v2.7.3 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.



  • Fix a bug where Blaze3D would crash when dropping unsupported file formats


  • Have separate cameras for perspective and ortographic projection
    This resolves issues when switching between both frequently such as clipping the model
  • Fix bug where flickering text might be shown while loading a file


  • Fix a bug where opening an invalid file might prevent the folder view from loading additional models


  • Now loading all files within a folder, not only the currently visible ones
    Files which are visible are still loaded first
  • Display error reasons within the render window
  • Increase default and minimum window size
  • Now possible to enable face culling via the face_culling setting
    This can also be toggled during runtime by pressing C
  • Now possible to enable flat shading via the flat_shading setting
    This can also be toggled during runtime by pressing F
  • Current configuration and controls can now be shown in the render window (press Q or W)
  • Now possible to change the point size during runtime by pressing O or P
  • Now possible to change the line width during runtime by pressing K or L
  • Now possible to toggle the projection (orthographic / perspective) during runtime by pressing E
  • Not spawning a console window on Windows anymore (run Blaze3D from console to still see the console output)
  • Fix a bug where the window title was incorrect after re-activating a file view
  • Fix a bug where the folder view would display loading dots when starting with an empty folder


  • Fix a crash in font renderer that could be triggered by hovering files/folders with long names


  • Change folder view to display all folders instead of only those containing files that can be opened
    The previous behavior could cause very long wait times if e.g. the root folder of the system was being viewed
    The new solution is very fast in all cases
  • Viewing models in file view now also creates their thumbnails for folder view
  • Now showing a ‘drop files here’ message when Blaze3D is opened blank
  • Now showing a ‘drop to open’ message when hovering files above Blaze3D
  • Now showing an error message within the render window if a file could not be loaded / is only supported via Blaze3D Pro
  • The render window now has an icon
  • Blaze3D now stays open when trying to initially load an invalid file
  • Fix a bug where switching back and forth between a broken and valid file could result in the valid file not being displayed
  • Fix a bug in .stl loader in case the file does not end with a new line


  • 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: