HARFANG® 3D v1.0.0


Windows 64-bit

Python 3.2 and newer wheelDownload
Lua 5.3 extensionDownload
FBX Converter (Autodesk FBX SDK)Download
C++ SDK (C++11)Download

Windows 32-bit

Python 3.2 and newer wheelDownload
Lua 5.3 extensionDownload
FBX Converter (Autodesk FBX SDK)Download
C++ SDK (C++11)Download

Ubuntu 14.04 LTS

Python 3.2 and newer wheelDownload
Lua 5.3 extensionDownload
FBX Converter (Autodesk FBX SDK)Download
C++ SDK (C++11)Download


Release Notes

API Changes

  • General: An explicit EndFrame call is now required to properly mark the end of a display frame.
  • General: All time/duration are now passed as hg::time_ns which is a 64 bit integer storing nanoseconds.
  • General: The move to C++11 STL forced a move from intrusive shared_ptr to non-intrusive shared_ptr. As a consequence many functions now take a shared_ptr where they took a T before.
  • General: Add a SaveScene helper function.
  • Render: HasResource methods now return a boolean, use GetResource to retrieve the resource object itself.
  • Plus: Improve the render window API to allow for multiple output window.
  • Plus: AddPlane, AddCube, AddSphere now accept a use geometry cache parameter.
  • Material: AddValue returns the newly created value.

New features

  • General: Harfang is now available as a C++ SDK.
  • General: OpenFileDialog/SaveFileDialog
  • General: Integrated profiler in the runtime debugger (Alt+Shift+F10 to open when using the Plus API).
  • Scene: Decorator component to efficiently display a large number of geometry instances.
  • Scene: New MetaData component that can be used to store arbitrary data in a Scene or Node.
  • Movie: Add support for WebM movie streaming to texture.
  • VR: Samsung GearVR support.
  • Audio: 3D virtualization HRTF support in OpenAL mixer.
  • Audio: Streams can be started paused to allow pre-buffering multiple streams and starting them in sync.
  • Audio: Add a method to query a stream buffering percentage.
  • Audio: API improvement to allow starting a stream from a specific position.
  • FBX converter: Support for an Lua Finalizer script that can modify converted resources before they are written to disk.


  • General: Improve log output, terminal output should never come out garbled anymore.
  • General: Core datas are now bundled inside the Harfang binaries and not as an external data dependency.
  • Render: Warn when a render resource fails to load.
  • Scene: Return false when PickWorld picks on the background Z value.
  • Scene: A scene can now be rendered without a camera.
  • Input: Access to the full 128 buttons of a DirectInput device.
  • Plus: Implement fixed 2d resolution support in Plus.

Bug fixes

  • Render: Fix render material related crash when its surface shader fails to load.
  • Render: Fix broken DDS mipmap support.
  • Render: Terrain clipping fix for off-centered terrains.
  • Render: Fix transparent render primitives draw order.
  • VR: Fix crash when no OpenVR controller is connected.
  • Movie: Allow seeking after a movie has finished playing.
  • Audio: Fix a seeking bug in Vorbis streams using a large packet size.
  • General: Matrix3 Set/GetTranslation out of bound data access.


  • General: Many core components have been moved to plugins (OpenGL renderer, OpenAL mixer, OpenVR support, etc…).
  • General: Harfang now requires a compatible C++11 compiler to build.
  • General: Add build date and time to the Harfang header log.
  • FBX converter: Add rotation conversion and set the cone and edge angles.
  • FBX converter: Calculate normal or tangent if they are not available in the source FBX geometry.
  • FBX converter: Compare UV channels content and materials when detecting instances.
  • FBX converter: Add command line toggle to calculate normals or tangent frames if they are missing from the geometry.
  • FBX converter: Support scene ambient color.
  • FBX converter: Export medata to Medata component.
  • FBX converter: Support for material glossiness.
  • FBX converter: Support for many new material combinations.
  • Audio: Switch to OpenAL mixer soft.
  • VR: Update to the lastest OpenVR API/DLL.
  • Physics: Update to Bullet 2.86.
  • ImGui: Update to ImGui 1.53.
  • Lua: The only supported Lua variant is now the latest official Lua 5.3.