(screenshots from the Ab4d.SharpEngine samples)
Ab4d.SharpEngine is a general purpose 3D rendering engine for desktop, mobile and browser apps.
Main features:
3D graphics may seem hard, but with an intuitive API that is based on more than 15 years of experience
and with many samples that can be used to copy-and-paste the code, you can add
amazing 3D graphics to your app in a few hours.
You just need to add 3D objects to the scene and set the objects' properties.
The engine will take care of the rest. This will save you a huge amount of work because
you will not need to deal with low level graphics API, for example, Vulkan pipelines, memory management and other complexities.
The Ab4d.SharpEngine is designed so it can very efficiently render hundreds of thousands objects (* see use case description below).
To achieve that performance, the engine uses the Vulkan API, which is a high-performance and low-overhead graphics API.
By using Vulkan best practices, performance optimized algorithms and high optimizations of .Net,
the engine can squeeze as much performance from the graphics card as possible.
Professional looking 3D graphics require that the 3D objects are rendered with
great details, lines are super-smooth and text is perfectly sharp.
Ab4d.SharpRendering is one of the very few rendering engines that can
deliver that superior render quality by using super-sampling (SSAA) and multi-sample anti-aliasing (MSAA).
For desktop and mobile platforms, the engine uses the cross-platform Vulkan API so it can run on any CPU and OS platform, from tiny Raspberry PI, mobile devices to high-end PC. The engine dynamically adjusts the settings and used Vulkan extensions based on the platform support.
In the browser WebGL is used. This ensures maximum compatibility with all devices.
The engine supports any coordinate system (Y-up or Z-up, right-handed or left-handed) and can be used by users who are used to CAD, BIM, games or any other 3D workflow.
The engine does not force you to use a game editor or any other predefined scene or app type. You can add the 3D scene to your app in any way you want.
This makes the engine ideal for any engineering, technical, scientific, architectural or any other use case.
Supported platforms:
- Windows 7, 8, 10, 11 (including virtual machine or server *)
- Linux (including Raspberry Pi 4 and 5**)
- Mac OS
- Android
- iOS
- Browser (in beta - see online working demo)
* See instructions on how to use Vulkan in a Virtual machine or on a server.
** See instructions on how to run Ab4d.SharpEngine on Raspberry Pi 4 with a touch screen.
Supported UI frameworks:
- Avalonia UI (Windows, Linux, MacOS, Android, iOS)
- WPF (Windows)
- WinUI 3 (Windows)
- .NET MAUI (Windows, Android, macOS, iOS)
- Uno Platform (Windows, Linux, macOS)
- ImGui (Windows, Linux, MacOS)
- LinuxFramebuffer (Linux - usually for embedded devices)
- WinForms (Windows)
- SDL, Glfw (Windows, Linux)
- Blazor WebAssembly (in beta)
- Asp.Net, Angular, React, etc. (in beta)
In any UI framework it is also possible to render to an offscreen texture. That texture can be read by the application or saved to an image file. Offscreen rendering can work with hardware or software rendering - can be also used on a sever or VM by using LLVMpipe.
Screenshots on different platforms and UI frameworks
Samples screenshots
Minimum requirements
Ab4d.SharpEngine for Desktop and Mobile devices requires Vulkan 1.1 support to render the 3D scene. Vulkan is supported on all newer GPUs and many older graphics devices.
Quick info for Windows:
- NVIDIA supports Vulkan 1.3 from the Maxwell architecture (introduced in 2015). Kepler cards support Vulkan 1.2
- Intel supports Vulkan 1.3 on Intel Arc graphics cards and all integrated GPUs from the Skylake (6000+ series; introduced in 2017).
- AMD supports Vulkan 1.3 on GCN 4 and newer (Radeon 400+ series; introduced in 2016) and Vulkan 1.2 on older GCN series (introduced in 2012).
See Wikipedia article for more details and other platforms.
On unsupported system, it is possible to use a software rendered - see instructions on how to use software llvmpipe.
Ab4d.SharpEngine for the browser works best when WebGL 2.0 is support, but can also work in browsers with only WebGL 1.0 support.
User stories
"We use Ab4d.SharpEngine to render very large infra and building IFC models inside our cross-platform Avalonia app. It is critical that the engine can take care of hundreds of thousands of elements, where we can track each of them one by one very accurately.
Our app, called MAMBA, from Automated Cost Estimating of BIM AECO models (in Spanish), can drop down cost estimation and sustainability analysis for very large projects from months to seconds, from 3-4 engineering teams, to a single person instant action, bringing valuable information to very early stages of the design process."
José María Abellán, CEO, BiMMate
Samples and downloads
GitHub samples:
NuGet packages:
The samples from GitHub do not require any license. But if you want to try Ab4d.SharpEngine in your own application,
then you need to get a trial license (no email required).
You can also apply for a free open-source license.
Check samples
Get a 60-day trial license
Purchase a license