WarehouseBoxes Afterwarp Framework ® is a cross-platform framework for development of scientific, industrial and interactive real-time applications. The framework includes both low-level API with full hardware abstraction, allowing development of custom graphics engine using programmable pipeline and shaders, including Compute Shaders for GPGPU work, and a high-level framework that can be used to quickly develop 3D applications without knowledge of shaders. Both low-level and high-level APIs can be combined and used in a hybrid approach. The following graphics API backends are implemented: Direct3D 11 and OpenGL 3.3+ (with support for up to 4.6) for desktop platforms and OpenGL ES for mobile platforms.

For those who need to develop for older machines and OS such as Windows XP, a compatibility bundle with Direct3D 9 and OpenGL 2 backends is also provided, which depending on hardware support can achieve a similar level of visual quality, but might have certain features limited.

As part of high-level API, the framework features an InnerFlux ® rendering engine that allows to quickly visualize complex real-time scenes in 2D and 3D, including models, shadows, text and visual effects. This allows building interactive applications with minimal knowledge of graphics APIs and/or shaders, and being able to render a complex 2D and 3D scenes in just a few lines of code.

Multiple programming language bindings are provided for C, C++, FreePascal and Delphi, including high-level components that simplify the usage of the framework, a full 3D vector mathematical library and color utilities. More language bindings will be added in the future, but if you need a particular language bindings right now, please feel free to contact us.

Architecture screenshot The framework itself is written in C++ using latest language standard (C++17) and highly optimized to deliver the best runtime performance, while still providing a very high degree of flexibility and reliability. For Windows, Linux and FreeBSD operating systems, framework 32-bit and 64-bit binaries are readily available for download. Binaries are also available for Windows on ARM64 (WoA) and Raspberry PI. For other systems, please contact us to provide a customized build (depends on particular OS and framework such as GTK, QT, etc.) Builds for other platforms such as OS X, iOS and Android will be released gradually in the next months. The whole framework including its rendering engine are integrated into a single monolithic shared library.

On Windows-based systems, when using normal bundle with Direct3D 11 backend, a software rendering with WARP device can be used, so that the application will work properly on a system without graphics card or inside a virtual machine. For OpenGL backends, a Gallium llvmpipe software rasterizer from Mesa project can be used alternatively. It is typically preinstalled on Linux-based systems; links to prebuilt binaries for Windows systems can be found at this third-party location or from MSYS2 project.

Minimal requirements:

  • The following operating systems are supported:
    • Windows XP/Vista/7/8/8.1/10.
    • Linux or Unix-based.
    • OS X, iOS or Android (coming soon).
  • For graphics card, one of the following options is required:
    • DX10+ and/or GL3.3+ compliant.
    • DX9+ or GL2+ compliant (when using compatibility bundle).
    • None, in case of Software Rasterizer (see above).
  • C11 and/or C++17 compiler (GCC or CLang), Visual Studio (2017+), FreePascal/Lazarus or Delphi (2007+) IDE.

In order to ensure high reliability, fault tolerance and recovery in industrial environments, the framework internally relies on our proprietary run-time framework that uses modern C++17 capabilities but without using exceptions and with minimal reliance on STL (also known as Standard C++ Library). Among our immediate plans is to expand our run-time framework and get rid of STL reliance completely. At the same time, we will be gradually releasing portions of our run-time framework as open-source and integrating it with an existing high-level C++ front-end.