We’re excited to announce the release of version 2.12 of Verge3D for Blender. This update features several reworked example applications, new puzzles, and implementations like supersample and multisample anti-aliasing. We’ve wrapped the versatile Tween.js library for creating dynamic animations, enabled WebGL 2.0, added Virtual Reality (VR) features, and updated the Verge3D WordPress plugin with new functionality.
Example Applications
The Custom Image demo application has been updated. Besides improved graphics, the picture frame now scales correctly with bones, adapting to the aspect ratio of the loaded image. The configuration is also saved to the URL for easier sharing.

Another programmer-style demo, Load Unload, was updated to use furniture items instead of gray-colored cubes.

Lastly, the Ring demo has been converted to use Blender 2.8’s EEVEE materials.
We also removed some outdated or low-end demos from the Blender distribution. These examples will be reworked and added back in future updates.
Puzzles: Enhanced Functionality
We’ve fixed the play animation puzzle, specifically addressing issues with the when finished slot when animated objects are loaded into the scene at runtime.
The tween camera puzzle now has its own when finished slot.

Furthermore, the when moved puzzle has been made more responsive.
The Get attr puzzle’s dropdown menu now includes missing properties such as clientHeight, clientWidth, innerHeight, innerWidth, scrollHeight, and scrollWidth.
We’ve implemented a puzzle to retrieve a texture’s parameters, allowing you to access the width, height, and aspect ratio of an image.

The replace texture puzzle now features a once ready do slot, enabling you to detect when an image has loaded. Use the configuration icon to reveal it.

Physical puzzles have been colored gray for better visual distinction.
We’ve implemented the set URL param puzzle, simplifying the process of providing and updating parameters for a specified URL.

An HTML window puzzle was added to access the window object. This is required as an input by certain HTML event puzzles. Therefore, you can now create a resize handler for the browser window.

An HTML-based alert message template is now accessible from the Puzzles library.

This template is useful for quickly setting up a privacy warning in your app, as seen in our Custom Image demo.

We removed the Google+ option from the social share link puzzle since this service is no longer available.
The Animate param puzzle, which wraps the Tween.js library, is now available.

This puzzle offers 31 easing modes (pictured), along with duration, repeat, and yoyo settings, as well as update and complete callbacks. The new puzzle is compatible with numbers, lists, and dictionaries.

In addition to the existing ones in the Time category, advanced timer puzzles have also been added. Hence, you can now cancel a timer at any moment by referring to it using a name.

WebGL 2.0 Implementation
WebGL 2.0 is now enabled by default on the supported hardware, unlocking various advanced features from this standard (see below).
Non-power-of-two (NPOT) textures are now directly supported without rescaling, thereby improving their quality. However, you might still want to continue using POT textures where possible.
HDR rendering is available for a wider range of devices (those that offer WebGL 2.0 support but do not expose the half-float texture WebGL extension).
Multisample anti-aliasing (MSAA) is now enabled for post-processing frame buffers, which elevates the rendering quality for scenes with post-effects or outlining enabled.

Read more about anti-aliasing improvements below.
Enhanced Anti-aliasing
In addition to MSAA (mentioned above), the supersample anti-aliasing (SSAA) feature is now available. While it can significantly boost the rendering quality, it affects performance. To mitigate performance loss, utilize it only when your scenes remain static.
To provide a convenient means to apply SSAA efficiently, we introduced the new puzzle called disable rendering (and its counterpart enable rendering). This lets you save battery on mobile devices and laptops, and reduce cooler noise on desktops. Furthermore, it offers exceptional rendering quality if you enable its anti-alias last frame checkbox.

You can use the when moved puzzle to detect when the user adjusts the camera or objects and disables SSAA during this activity.
Our Scooter demo was upgraded to leverage the supersampling feature, allowing you to see the implementation.

Moreover, we’ve added a corresponding menu to Blender to allow you to choose your preferred anti-aliasing method (MSAA 4x, 8x, 16x, FXAA).

In this dropdown, Auto configures the engine to apply the most relevant hardware-dependent method – MSAA 4x on WebGL 2.0-compatible hardware, or MSAA 4x (no post-processing used) or FXAA (with post-processing) when running on WebGL 1.0.
EEVEE/Cycles Improvements
Supported the Gradient Texture EEVEE/Cycles node. Although its name might be misleading, this node does not occupy a texture slot in the WebGL shader, and thus, it can be considered an effective replacement for images.

We have improved rendering results produced by the Principled BSDF EEVEE/Cycles node when low specular values are used.
We supported the default inputs of the Fresnel and Layer Weight EEVEE/Cycles nodes. Also the Fresnel node now produces results which are closer to Blender’s.
The Color input is now supported for the Transparency BSDF node.
Refined Blender UI
We’ve reworked the export settings in the Blender UI, specifically:
- Dropped all export panels in the export dialog.
- Moved options like Export Animations, Export within playback range, Keyframes start with 0 and Export Custom Properties to the Render->Verge3D Settings panel.

Other Enhancements and Features
Settings for selecting which collections to export have been added to the Blender UI. This lets you ignore assets you don’t want to export – high-poly models, Cycles setups, etc.

The Story Height parameter now supports the FPS camera, enabling navigation through multi-floor buildings.

We also supported the relative parent option for bones.
The engine executes an object cache cleanup when unloading the scene. This has resolved some dynamic loading issues.
Virtual Reality Enhancements
We’ve temporarily disabled WebXR support as it’s broken in the latest Chrome 73 update. Use the Legacy VR to enable VR for WebVR-compatible browsers and on mobile devices.
While state-of-the-art WebXR undergoes significant changes, we have added improvements for legacy WebVR implementations. WebVR controllers are now supported (based on game pads).
The end VR session puzzle was implemented to programmatically exit VR mode. We also addressed the resize issue that occurred upon exiting VR mode.

Finally, we added the JavaScript method Detector.checkNativeWebXR()
, allowing programmers to detect whether a VR app is running on WebXR or legacy WebVR.
WordPress Plugin Updates
We added the order_id field to order templates, and the option to specify an order’s e-mail subject.
We used WordPress’ filter feature to enable the Verge3D plugin to verify order fields like the price along with the order’s overall consistency.
Bug Fixes
- Fixed the open web page puzzle not behaving as expected in specific modes.
- Resolved several issues that caused export crashes with Blender 2.8.
- Fixed the occasional scaling problems with parented objects.
- Fixed issues with the Verge3D network not working for new trial version users installed on Blender 2.8.
- Fixed open web page and open file puzzles crashing when the camera is set to No controls.
- Resolved the when moved puzzle not working properly with lists of objects.
- Fixed modifiers and normals not exporting from recent Blender 2.8 builds.
- Fixed a bug where animations wouldn’t work if their names contained colon and forward slash characters.
- Fixed an issue that prevented the processing of high-resolution lines in Chrome.
- Fixed memory leaks when updating the scene’s environment map with Puzzles or JavaScript.
- Fixed Blender crashes that occurred when the Export Custom Properties checkbox was enabled.
- Fixed export parameters not working correctly when multiple scenes are present in a blend file.
- Fixed export crashes with enabled asset compression for very large exported files.
- Fixed Dictionary puzzles crashing whenever their input slots were vacant. Also, Dictionary puzzles now perform type verification on their parameters so as to prevent code crashes.