Ab4d.sharpEngine for the browser RC1 published

by abenedik 15. February 2026 19:17
I am really excited to inform you that the release candidate version of the Ab4d.SharpEngine has been published.
This brings many great and easy-to-use 3D graphics tools to the browser. But what excites me the most is how fast the native (WebAssembly) 3D rendering engine runs.
See the following screenshot:
You can also check the video here.
Or check it live in the browser.
Notice the performance figures in the lower right corner:
  • It takes only 0.68 ms to calculate the directions for 40.000 arrows (for each arrow, a 4x4 transformation matrix is calculated that points the arrow towards the animated yellow sphere; this time also includes the time to upload the matrices to the GPU)
  • It takes less than 0.1 ms to render 2.8 million triangles.
On the left side of the screenshot, you can see the common list of samples that is almost the same as in the desktop version of the samples. There are 76 different samples available for the browser version. And what is more, 100% of the source code for the samples is the same as the code for the desktop version of the samples. There are only a few #if that are required because the browser does not support direct file loading and supports only async IO operations. Also, some #if are also needed because some features are not (yet) supported in the browser, for example, line caps or vertex color material.
Anyway, this means that almost all the code that you write for desktop and mobile devices can be shared with the code that runs on the browser.
Some of the features that are currently not available in the browser version are:
  • wide lines support: WebGL does not support wide lines or geometry shader, so currently all lines are rendered with line thickness set to 1
  • pixels rendering
  • Submeshes and MultiMaterialModelNode
  • VertexColorMaterial
  • ID Bitmap rendering for hit testing
  • Sprites
  • CameraAxisNode and other overlays, for example, ModelMover, ModelRotator and ModelScalar
  • PostProcessing
However, the current version already supports some of the more advanced features, such as Boolean operations, slicing, vector fonts, and more.
Please check the RC version, and I am sure you will also be excited about the new possibilities it brings. Note that if you want to test the library in your own application, you will need to call SetLicense method to activate the license (the beta version did not require that). You can use an existing license from Ab4d.SharpEngine or generate a new trial license..
And please report any issues to the Issues on the GitHub. Note that a known issue is an invalid page layout where the slider is shown on some devices.
I am planning to release the first version in March.

Tags: , , , , , , ,

SharpEngine

New beta version of Ab4d.SharpEngine.Web with samples for any web framework

by abenedik 28. October 2025 13:21

I am informing you that an important new beta version of Ab4d.SharpEngine for the browser has been released.

The new beta2 version brings many new features from the core Ab4d.SharpEngine library. The list of the most important new features is provided below.

But first, I want to talk about an even more important thing than new features. The samples for the previous version (beta1) were written only for a Blazor WebAssembly application. But in most cases, you would want to add 3D graphics to an existing website. Because there are many web frameworks, it is likely that the website is not using Blazor WebAssembly.

To solve that, the new samples also come with a NoBlazorBrowserDemo solution. This shows how to create a pure WebAssembly .Net project with no references to Blazor. That project can reference Ab4d.SharpEngine.Web library. The code in this project creates the 3D scene by using Scene, SceneNodes and other objects from the Ab4d.SharpEngine library. The code can also use JavaScript interop so when added to a web page it can call the functions that are defined in JavaScript and also JavaScript functions (for example, button event handlers on the web page) can call the .Net code to update the 3D scene.

When that project is compiled for the Release build and published, it generates a few JavaScript (.js) and WebAssembly (.wasm) files that can be added to any website.

Because of very efficient trimming, the size of all the generated files (including the .NET Runtime) is only 9.3 MB. When compressed with Brotli, the size of all the code required to show a simple 3D scene is only 2.2 MB! (see screenshot below)

The new samples demonstrate how to show the 3D scene in a simple HTML and JavaScript web page by using different web servers. The following samples are available:

  • Asp.Net Core web server
  • Express Node.js web server
  • Python's socketserver

Here is a screenshot when Express Node.js is used as a web server (note the marked transfer size):

3D scene rendered by SharpEngine in browser on node.js Express web server and by using Brotli compression

The NoBlazorBrowserDemo solution can be used as a demonstration of how to use Ab4d.SharpEngine to easily show complex 3D graphics in any web framework, including Angular, React, Blazor with server-side rendering and any other. Note that I am not an expert on web servers and web frameworks. If you know of any improvements to the samples, or can provide another sample using a popular web framework, please write to issues or discussions, or create a PR.

And as with the previous version, this version also includes the Blazor WebAssembly project. The new sample is updated to demonstrate the functionality of the new beta 2 version. The following is a list of the most important new features:

  • Added support for loading, creating and showing textures.
  • Added support for showing bitmap fonts and vector fonts generated from TrueType font files.
  • Added ObjImporter that can import obj files.
  • Added support for SolidColorMaterial.
  • Fixed sorting transparent objects by camera distance.
  • When WebGL 2.0 is not supported, then WebGL 1.0 is used.

The following screenshot shows the new sample (note that teapot was loaded from a obj file and has textures; there are also bitmap and vector fonts - later generated from a TrueType file):

Ab4d.SharpEngine.Web beta 2 sample with loaded obj file, bitmap and vector fonts

And here is another screenshot showing Obj viewed with a more complex obj file imported:

Ab4d.SharpEngine.Web sample showing imported gearbox obj model

You can also check the online demo here (if you see an error, please disable caching - usually it helps to press CTRL-F5 to reload all the files)

The release of the v1.0 is still planned for the end of 2025. See the Current implementation details to check which features from the main Ab4d.SharpEngine library are already implemented and which will be available for v1.0.

 

In 2025 I also plan to release a new version of Ab3d.PowerToys and Ab3d.DXEngine. The development versions of both libraries already have many improvements and fixes. Some are still planned to be implemented. For Ab3d.PowerToys, one of the more interesting new features is smoother camera rotation that will nicely animate the camera when it is rotated by the user (this can be enabled on request; the default behaviour will stay unchanged). For Ab4d.DXEngine, I will try to provide a version that will not depend on SharpDX but will use System.Numerics for Vector3 and Matrix4x4. The interop for DirectX 11 will be embedded into the Ab3d.DXEngine library. My tests show that using System.Numerics instead of SharpDX.Mathematics can provide significant performance improvements because of better use of SIMD instructions. Also, because SharpDX is not updated anymore, some users are concerned about that. Embedding DirectX interop into the library will also remove those concerns.

I will try to do my best to preserve the names of the classes, methods and parameters as much as possible. But because of some namespace changes and new class names (for example, Matrix4x4 instead of Matrix), the new library will require some changes to the user code.

But if you are happy with SharpDX and would only want to upgrade to a new version of Ab3d.DXEngine without any modifications, then there will also be a new Ab3d.DXEngine version that will still use SharpDX. The plan is to have two NuGet packages: "Ab3d.DXEngine" will use the embedded DirectX interop and System.Numerics; but there will also be "Ab4d.DXEngine.SharpDX" NuGet package that will still use the SharpDX library.

If you are using Ab3d.PowerToys or Ab3d.DXEngine and you have any new feature requests, now is the best time to report them.

Tags: , , , , , , ,

SharpEngine

Published new Ab4d.SharpEngine for the browser

by abenedik 26. September 2025 13:10

I am pleased to inform you that a significant milestone for the AB4D company has been reached: as of today, we provide 3D graphics support for all platforms, including the browser.

Today, the first public beta version of the Ab4d.SharpEngine.Web library has been published on NuGet. Also, the source for the demo project has been published on GitHub. You can also check the live demo.

Here is a screenshot of the demo:

3D scene rendered with SharpEngine in a browser

Because the Ab4d.SharpEngine.Web library is using the same source code as the Ab4d.SharpEngine (using linked files), all the implemented classes use the same names and have the same properties and methods. This means that you can reuse the existing code from the desktop and mobile apps and use it for the browser. An exception is the features that are not yet supported in the web library. You can see the currently supported features on Roadmap and Implementation details.

The current demo demonstrates how to utilize Blazor WebAssembly to display 3D graphics in the browser. But because the Blazor project was created as a Progressive Web App (PWA; when creating a new project, check that the required CheckBox for PWA), the web application can also be installed on Windows, Android and iOS systems as a local app that can be started offline (without an internet connection). You can try this with the demo app. Developing PWA applications also provides an additional option for developing for desktop or mobile platforms.

What is more, you can use the existing Ab4d.SharpEngine license also allows you to develop for the browser.

Therefore, I would really like to invite you to check the new library. Please report any issues or recommendations to the GitHub issues or use any other communication tool (email, feedback form).

Tags: , , , , , ,

SharpEngine