We are excited to announce a new release of Verge3D for 3ds Max and Verge3D for Maya, as well as Verge3D Ultimate! The 4.9 version brings support for the new OpenPBR shader appeared in 3ds Max 2026 and Maya 2026, the possibility to use 3 more Arnold-based nodes, direct export to standalone HTML file, auto sliding around an obstacle in first person mode, support for multi-material objects and shared materials, better handling of cloned objects, replacing shared textures individually, more control over procedural lines, and further optimizations.
3ds Max Integration
With this update we introduce support for upcoming 3ds Max 2026, which uses a new map called OpenPBR Material by default (first appeared in 3ds Max 2025.3). We also drop official support for 3ds Max 2022 released 4 years ago.

Besides the usual Verge3D menu, you can now use the standard Export menu for exporting, where you can select Verge3D glTF from the list.

You can now use 3 more Arnold-based nodes in your shaders: Uv Projection, Matrix Transform, and Triplanar.

We supported filtering and wrapping options for the Arnold-based Image node.

Finally, we reworked some of the demos to make the camera position consistent with 3ds Max viewport.
Maya Integration
With this update we introduce support for upcoming Maya 2026, which uses a new shader node called OpenPBR Surface by default (first appeared in Maya 2025.3). We also drop official support for Maya 2022 released 4 years ago.

We supported exporting only selected objects using File > Export Selection. (The nearby option File > Export All has always worked.)

You can now use 3 more Arnold-based nodes in your shaders: Uv Projection, Matrix Transform, and Triplanar.

We supported filtering and wrapping options for the Arnold-based Image node.

Verge3D tool chain now relies on the newest Python 3.13 particularly found on Fedora 41. Minimal supported version of Python now is 3.8, so if you are on Linux, be sure to have it updated.
Finally, we renamed Selection Set to Visibility/Influence Set for light probes for better consistency with Maya terminology.
Export to HTML
You can now squeeze a 3ds Max or Maya scene into HTML format. The resulting standalone .html
file bundles the engine, meshes, and textures together. Unlike with the standard Verge3D app that requires a local server or uploading to a website, it can be opened like a regular file on any computer or device equipped with a web browser.
3ds Max:

Maya:

It is indeed a cool feature, however we don’t recommend using it in a normal production process. HTML is not a very efficient format for packing things into it, and there is no Puzzles, physics, texture compression, dynamic text and so on – basically it works like Sneak Peek. Still it can be a convenient way to share some 3D interactives with your colleagues or clients.
Overcoming Obstacles
We improved the first person controls significantly by implementing automatic sliding along a wall or around an obstacle. This prevents the user from getting stuck, resulting in a much smoother experience, especially on mobile where you can move only forward (no strafing controls).

Here are the link to the updated First Person demo – just feel the difference!
We also fixed the bug when the initial direction of the camera did not correspond to what is set in the modeling tool.
Multi-Material Objects and Shared Materials
Verge3D users sometimes face two major sources of issues when creating advanced configurators. One is multi-material objects and the other is when a same material is shared by different objects. With this update, we addressed both those problems by adding two new options to the relevant material puzzles.

First option first: the puzzle assign material used to work with the very first material of a multi-material object. From now on, you can access/replace the required material by its index as authored in the 3D modeling software by enabling multi-material index for the puzzle.
In the following simplistic example, the cube’s 2 materials are named “first” and “second”. Now you have the power to replace either of it by the “third” material – something that was not possible with Puzzles before.

What about the second case? The material puzzles used to work on a material name, which is always the same for similar-named and/or shared materials. So if you update such a material with a puzzle, it will update all objects that bear it. Yet sometimes you may want to pick a single material assigned to a concrete object, rather than to do them all.

This can now be achieved thanks to that second option – return unique material id. When enabled, the puzzle material from would return a unique material identifier instead of its name thus enabling a finer control. You can then use this ID (which looks like 5c464bf0-043a-40ee-b864-5c026436d7de
) to pass it into other material puzzles.
Here is how it works – all 3 cubes share a same shiny material, but you can still vary its inputs independently for each object:

Handling the Clones
When cloning objects, the newly created copies used to inherit a same material shared by all the clones. Another issue is if the original object happens to belong to a group (called group | selection set in 3ds Max, group | set in Maya), the clone does NOT inherit it – in other words, the group selector puzzle won’t work for the copies.
To provide you with more control, we made it possible to change the said behavior by using two new options added to the clone object puzzle: also clone materials and preserve object groups. If enabled, the first one allows you to update the material of an individual clone. The second option simply adds the clones into the same group as the original object.

On the above screenshot, 10 randomly positioned copies are created in the same group, with their materials copied too. This allows you to individually set the color for any clone clicked by the user.
On the other note, we also fixed an old problem with colors shared between cloned materials.
Shared Textures
Here is the final use-case in the sharing series – you can now replace a texture individually for every object even if it is shared by many. For that we added the self-explanatory option, prevent texture sharing, to the respective puzzle:

In the above-pictured example, all 3 cubes share the same texture yet it’s still possible to independently apply a new image to a required object.
All upgraded puzzles are fully backward compatible, so the old behavior is preserved and you don’t need to fix anything in your existing puzzles.
Lines
When a line is created using the draw line from obj puzzle, it is now automatically assigned a distinct name. For example, if the object’s name is “Cube”, then the line drawn from it will be named “CubeLine”. You can then put this name into other puzzles, e.g. to change the line color (see below).

In other news, this very puzzle now correctly works if the 3D canvas is offset on the page – particularly, in the viewport of the Puzzles Editor.
Finally, you can now change the color of lines (either of wireframe-rendered meshes or created using the draw line puzzle) via the set color in material puzzle. See the above example where the line color is accessed by the “magic” color property.
Optimization
We continued our optimization efforts with this update. This time we focused on reducing the CPU load. For big scenes (like 1000+ separately rendered objects) it is the CPU that turns out to be the bottleneck, causing slow rendering even on powerful graphics cards.
So we addressed this problem by reviewing and reworking several aspects in the engine, such as preparing materials for rendering, updating transformation matrices, reflections and SSR calculations, and even the commonly used object selector puzzle. As a result, we managed to double the FPS in some of our tests!
WordPress plugin
Verge3D WordPress plugin can now handle filenames starting with dot (that is, hidden files on macOS and Linux). Particularly, the dreaded .DS_Store
file won’t break your WordPress uploads anymore.
The PDF generator will work even if the server is configured to prevent write access to the user directory.
Finally, we cleaned the plugin from unused templates and code, and also fixed some potential security issues.
Other Improvements
Verge3D-specific setting Fit to Camera Edge now allows for negative values for its Fit Offset (available for camera-parented objects). This spares you the need to use extra empties/dummies to shift your objects outside the screen edges.
3ds Max:

Maya:

Service Tools menu is used to show up using ~~~ triple tilde keys, but this works only on the QWERTY keyboard. The menu can now be invoked on various national keyboard layouts too, such as AZERTY (widespread in France and Belgium), and other (Italian/Spanish/Portuguese/Japanese/…) keyboards using the most top-left key instead of tilde.

We added pointer-events to the list of options for the HTML/CSS puzzles. This option allows you to disable pointer events for an element – for example, to make some button temporarily unclickable.

The set timer puzzle now uses a very big number instead of Infinity for its repeat input. This is to work around the problem with copying and pasting this puzzle reported by the community.
The puzzles get / set morph factor can now work with lists and groups of objects (per request on the forums). To make it possible, enable flexible target input.

Finally, there were various minor UI tweaks here and there in the App Manager.
Bugs
We fixed the regression with multiple exec script puzzles in a same scenario.
We fixed the crash in VR mode when using order-independent transparency. This affected our demo Virtual Reality which now works properly. Thanks for bringing this up this on the forums.
A non-zero API property Scene.backgroundBlurriness no longer cripples the background image.
Both the synth and MIDI playback puzzles no longer crash if they are invoked multiple times.
Background music now works in the E-learning demo on mobile.
We fixed problems with Verge3D Network occurred after Verge3D is re-installed into the same folder (that is Next-Next-Finish works smoothly now).
In the Maya version, we fixed the bug when ambient lights did not show up in Puzzles.
Documentation
We continued our never-ending work on the User Manual which received a new bunch of updates and improvements. Among significantly reworked sections are the Puzzles Reference, Shadows, HTML Interfaces, Verge3D Life Cycle, and API Reference. We also added a missing chapter on viewport setup and color management for Maya.

The downloadable sample files linked in the Server-Side Rendering and Plugins chapters have been updated to reflect recent changes in the engine.
Overall, we updated around 140 images across the docs to reflect the current state of the UI, and to provide a better resolution. We also mopped up all orphaned assets and images in the User Manual folder.
Finally, we added info about common limitations, issues and gotchas in relevant sections, and provided more usage examples for puzzles.
Update Now!
Get the new version of Verge3D from the downloads page! Let us know how it works for you, or suggest new features for implementation on the forums. We’d be happy to hear your feedback!