Ab4d.SharpEngine 4.1.9680

dotnet add package Ab4d.SharpEngine --version 4.1.9680
                    
NuGet\Install-Package Ab4d.SharpEngine -Version 4.1.9680
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="Ab4d.SharpEngine" Version="4.1.9680" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="Ab4d.SharpEngine" Version="4.1.9680" />
                    
Directory.Packages.props
<PackageReference Include="Ab4d.SharpEngine" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add Ab4d.SharpEngine --version 4.1.9680
                    
#r "nuget: Ab4d.SharpEngine, 4.1.9680"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package Ab4d.SharpEngine@4.1.9680
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=Ab4d.SharpEngine&version=4.1.9680
                    
Install as a Cake Addin
#tool nuget:?package=Ab4d.SharpEngine&version=4.1.9680
                    
Install as a Cake Tool

Ab4d.SharpEngine

Ab4d.SharpEngine is a cross-platform Vulkan based 3D rendering engine for desktop and mobile .Net applications.

Vulkan is a high performance graphics and cross-platform API that is similar to DirectX 12 but can run on multiple platforms.

The following features are supported by the current version:

  • Using any coordinate system (y-up or z-up, right-handed or left-handed)
  • Many SceneNode objects (boxes, spheres, planes, cones, lines, poly-lines, curves, etc.)
  • Render line caps (arrows, etc.), line with pattern, poly-lines with miter or bevel connections, hidden lines
  • Object instancing (InstancedMeshNode) that allows rendering millions of mesh instances
  • Simple to use cameras: TargetPositionCamera, FirstPersonCamera, FreeCamera, MatrixCamera
  • Camera controllers that can rotate the camera around the mouse position, zoom to position and other advanced functions
  • Lights: AmbientLight, DirectionalLight, PointLight, SpotLight, CameraLight
  • Improved visual quality with super-sampling and multi-sampling
  • Many post-processing effects
  • Render vector and bitmap text
  • Render CT and MRI scans by using Volume rendering
  • Included reader and writer for .obj and .stl files.
  • Import 3D objects from glTF files and export the scene to glTF file by using Ab4d.SharpEngine.glTF
  • Assimp importer that uses a third-party library to import 3D models from almost any file format

Samples

Ab4d.SharpEngine.Samples on GitHub

Platforms and UI frameworks:

Windows:

  • AvaloniaUI support with SharpEngineSceneView control (Ab4d.SharpEngine.AvaloniaUI library)
  • WPF full composition support with SharpEngineSceneView control (Ab4d.SharpEngine.Wpf library)
  • WinUI 3 support with SharpEngineSceneView control (Ab4d.SharpEngine.WinUI library)
  • WinForms support with SharpEngineSceneView control (Ab4d.SharpEngine.WinForms library)
  • Uno Platform
  • MAUI
  • Using SDL or Glfw (using a third-party Silk.Net library; the same project also works on Linux)
  • ImGui (using a third-party ImGui.NET library)

Linux (including Raspberry PI 4 and similar devices):

  • AvaloniaUI support with SharpEngineSceneView control (Ab4d.SharpEngine.AvaloniaUI library)
  • Uno Platform
  • Using SDL or Glfw (using third-party Silk.Net library; the same project also works on Windows)
  • Off-screen rendering combined with Linux framebuffer display (FbDev or DRM/KMS).
  • ImGui (using a third-party ImGui.NET library)
  • See "Vulkan on Raspberry Pi 4" guide on how to use SharpEngine on Raspberry Pi 4 with an external monitor.

Android:

  • Using AvaloniaUI with SharpEngineSceneView control (Ab4d.SharpEngine.AvaloniaUI library).
  • Using SurfaceView in C# Android Application
  • MAUI

macOS:

  • Using AvaloniaUI with SharpEngineSceneView control (Ab4d.SharpEngine.AvaloniaUI library). Requires MoltenVK library - see special project for macos.
  • Using MAUI - requires MoltenVK library - see "Building for macOS and iOS" on Ab4d.SharpEngine.Samples on GitHub.

iOS:

  • AvaloniaUI with SharpEngineSceneView control (Ab4d.SharpEngine.AvaloniaUI library). Requires MoltenVK library - see Building for macOS and iOS below.
  • Using MAUI - requires MoltenVK library - see "Building for macOS and iOS" on Ab4d.SharpEngine.Samples on GitHub.

Browser Browser and browser based apps like Electron require Ab4d.SharpEngine.WebGL NuGet package that uses WebGL rendering. See Online browser demo.

Online help

Online Ab4d.SharpEngine Reference help

Product Compatible and additional computed target framework versions.
.NET net6.0 is compatible.  net6.0-android was computed.  net6.0-ios was computed.  net6.0-maccatalyst was computed.  net6.0-macos was computed.  net6.0-tvos was computed.  net6.0-windows was computed.  net7.0 was computed.  net7.0-android was computed.  net7.0-ios was computed.  net7.0-maccatalyst was computed.  net7.0-macos was computed.  net7.0-tvos was computed.  net7.0-windows was computed.  net8.0 is compatible.  net8.0-android was computed.  net8.0-browser was computed.  net8.0-ios was computed.  net8.0-maccatalyst was computed.  net8.0-macos was computed.  net8.0-tvos was computed.  net8.0-windows was computed.  net9.0 is compatible.  net9.0-android was computed.  net9.0-browser was computed.  net9.0-ios was computed.  net9.0-maccatalyst was computed.  net9.0-macos was computed.  net9.0-tvos was computed.  net9.0-windows was computed.  net10.0 is compatible.  net10.0-android was computed.  net10.0-browser was computed.  net10.0-ios was computed.  net10.0-maccatalyst was computed.  net10.0-macos was computed.  net10.0-tvos was computed.  net10.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.
  • net10.0

    • No dependencies.
  • net6.0

    • No dependencies.
  • net8.0

    • No dependencies.
  • net9.0

    • No dependencies.

NuGet packages (7)

Showing the top 5 NuGet packages that depend on Ab4d.SharpEngine:

Package Downloads
Ab4d.SharpEngine.AvaloniaUI

Ab4d.SharpEngine.AvaloniaUI defines Avalonia controls that can show 3D scene rendered by Ab4d.SharpEngine rendering engine

Ab4d.SharpEngine.Assimp

Ab4d.SharpEngine.Assimp provides classes that can use Assimp importer to import 3D objects into Ab4d.SharpEngine 3D rendering engine

Ab4d.SharpEngine.WinUI

Ab4d.SharpEngine.WinUI defines WinUI controls that can show 3D scene rendered by Ab4d.SharpEngine rendering engine

Ab4d.SharpEngine.Wpf

Ab4d.SharpEngine.Wpf defines WPF controls that can show 3D scene rendered by Ab4d.SharpEngine rendering engine

Ab4d.SharpEngine.glTF

Ab4d.SharpEngine.glTF library provides a glTF 2.0 importer that can import 3D objects from glTF files to Ab4d.SharpEngine 3D objects. The library also provides a glTF exporter that can export the 3D scene created by Ab4d.SharpEngine to the glTF file.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
4.1.9680 0 7/3/2026
4.0.9594 2,230 4/8/2026
3.2.9509 847 1/13/2026
3.2.9386 1,420 9/12/2025
3.2.9364-beta 291 8/21/2025
3.1.9316 967 7/7/2025
3.1.9300-rc3 303 6/18/2025
3.1.9299-rc2 311 6/17/2025
3.1.9287-rc1 277 6/5/2025
3.0.9208 671 3/19/2025
3.0.9196 860 3/6/2025
3.0.9195-rc4 378 3/5/2025
3.0.9175-rc3 314 2/13/2025
3.0.9173-rc2 272 2/11/2025
3.0.9169-rc1 308 2/7/2025
Loading failed

v4.1.9680
- Added support for rendering Percentage Closer Soft Shadows.
- Significantly improved performance when using Avalonia with Vulkan backend by removing a back buffer copy operation and waiting for that to be finished.
- Added support for skeletal (skinned) animations. The following methods were added to the Scene object: AddAnimatedSkeletonMesh, RemoveAnimatedSkeleton, RemoveAnimatedSkeletonMesh, AddAnimatedSkeletonMeshes, AddAnimatedSkeletonMeshes, RemoveAllSkeletonAnimations, RemoveAllAnimations.
- Added Skeleton and BonesDictionary properties to Mesh object.
- Improved precision of FitIntoView methods.
- Added support to animate FitIntoView camera change - use new FitIntoView overloads that also take animationDurationInMilliseconds and easingFunction as parameters.
- Improved support for WinForms apps by adding RenderAsManyFramesAsPossible, RenderingTimerInterval and FramesPerSecond properties to SharpEngineSceneView for WinForms. This provides better control over the rendering loop.
- Improved PhysicallyBasedMaterial that can now automatically combine individual metalness and roughness textures into a single MetalnessRoughness texture. Before this needed to be done in the loader code by the user.
- Improved AnimationBuilder by adding support to create an animation object without providing a Scene object. This is needed when the animations are created from AssimpImporter where the Scene object was not provided at creation time.
- When Utilities.Log.Error is called from SharpEngine, this always sets the Utilities.Log.LastErrorMessage even if logging is disabled.
- Improved setting the reason why SharedTexture is not used. The reason is sent as a string in the PresentationTypeChanged event handler.
- Improved StandardMesh.DumpMeshInitializationCode and GetMeshInitializationCode to use InvariantCulture when writing Vector3 values.
- In FitIntoView methods in IFitIntoView interface renamed the waitUntilSceneViewSizeIsValid parameter to waitUntilCameraIsValid. This way the parameter matches the name of the paremeter in the actually implemented methods in TargetPositionCamera and FreeCamera.
- Added FormatMatricesHorizontally extension method to Matrix4x4 array type.
- Added Camera.Clone that clones the camera to a new camera object.
- Prevented a crash that may happen sometimes when Avalonia's window is rapidly resized.
- Improved memory management in GpuImage.Resize method when the new required memory size is significantly lower than the allocated size.
- Prevented updating SharpEngineSceneView control for Avalonia after it was disposed.
- Added MathUtils.GetMaxAxisAngle method that returns the axis and the axis vector of the maximum specified angle (rotateX, rotateY, rotateZ).
- Added MathUtils.GetCoordinateAxes method that takes an axisVector parameters and returns the new CoordinateAxes enum (has values XAxis, YAxis, ZAxis or None).
- Fixed TextureLoader.CreateTexture method that uses the textureCreatedCallback parameter.
- Fixed calling Clone method on a material that has lazy-loaded texture (the DiffuseTexture object will be created when the material is initialized with a GpuDevice object).
- Fixed using ObjImporter.ImportAsync method.
- Fixed values passed in the ModelRotatedEventArgs that are used by ModelRotator. Now the fields that represent the angles that are not rotated remain 0 and are not set to 1.
- Added GetAxisAngle method to ModelRotatedEventArgs.
- Added AxesSelected and AxesDeselected events to ModelMover and ModelScalar. Added AxisSelected and AxisDeselected events to ModelRotator.
- Fixed unsubscribing UI events when SceneView that is used for InputEventManager is disposed.
- Fixed problems when GpuImage that is used by multiple materials is disconnected from one material.
- Fixed using SharpEngine on Linux with Wayland compositor in Avalonia app without Vulkan backend. In this case SharpEngine now changes the PresentationType from SharedTexture to WritableBitmap and writes a log error to use Vulkan backend to enable SharedTexture.
- Fixed changing IsLineStrip property on MultiLineNode with StartLineCap or EndLineCap not set to None.
- Improved glTFImporter to support importing keyframe and skinned animations.
- Improved AssimpImporter to support importing keyframe and skeleton (skinned) animations. Reading animations data is enabled by default, but can be disabled to improve import speed by setting the new ReadAnimations and ReadSkeletalAnimation to false. After the animation is imported, the following new properties are set: Animations, Skeletons, AnimatedSkeletonMeshes.
- Fixed AssimpImporter in case a material defines an emissive texture - before the material may look white because EmissiveColor was set to white.
- When UsePbrMaterial in glTFImporter is false (by default), then the importer does not load and create MetalnessRoughness, NormalMap, AmbientOcclusion and Emissive textures. This improves importing of files with PBR textures.
- Note that new Ab4d.SharpEngine.Assimp requires a new version of Ab4d.Assimp library v1.3.9624.