Skip to main content

Known limitations

Accurate colors and web browsers

Support for color profiles and color matching varies between web browsers, operating systems and monitors. This means that you can never be 100% sure about what you see on your screen is the same as what other users see. For example, Firefox tends to render colors a bit differently compared to Chrome and Safari.

Browser Extensions

There is an issue with the WebGL Fingerprint Defender Chrome browser extension where it would cause graphical issues with the models rendered in Stage as shown below. We suspect some other browser plugins which deal with graphics could potentially cause similar issues.

product with bugs in geometryproduct with bugs in geometry

Catalogue Stretch

Number of stretch lines

Due to technical limitations, we do not recommend that you use more than about 5 stretch lines per mesh in our product. The number of cut planes on each stretch line does not count towards this limit.

Technical details

Catalogue Stretch is internally implemented using MorphTargets in the Babylon.js 3D engine. Each Stretch line in Model Lab will result in a MorphTarget, which adds resources that count towards a limit.

With the default light setup in the Example-ui you can add at least 6 stretch lines when the mesh has an UV-mapper attached to it, or at least 8 without UV-mapper.

Babylon.js release 5.0 is scheduled to remove this limitation when running on hardware and browsers that support the newer WebGL2 standard.

Non-orthogonal stretch planes

Adding stretch lines in Model Lab that is non-orthogonal (i.e. not parallel or at straight angles to each other) can result in stretch results that isn't identical between Stage and CET (including render calls). This is due to limitations in how CET handles such cases in general.

We recommend that you try to avoid such cases or perform testing that the results are what you expect in both Stage and CET.

Export & Render of stretched Additional Products

The SDK supports stretch inside Additional Products, but due to a current limitation it might not be applied in Export and Render calls as of december 2021. This will be rectified in a future server update.

Cm3D

Cm3D is a legacy model format from Configura. The SDK only supports the more modern CmSym format. Inside of Catalogue Creator there is a tool for batch converting cm3D to CmSym.

Dash (-)

The dash symbol (-, Unicode 002D) is sometimes used in calls to the Catalogue Web API to represent "no value" or "default value". For this reason, avoid using - as the name for Product Catalogues, Price Lists and Vendors. To be on the safe side, avoid naming anything -.

If this ever becomes a real world issue, please contact us.

Features with no default Option inconsistent Material Application to CET

A Feature (which is select one) must have a default Option set. However, this is not strictly enforced in Catalogue Creator. In some rare cases the Material Applied will differ from CET when no Option is selected.

Reapplying serialized configuration

The SDK can currently only apply serialized Product Configuration if the list of root Features has not changed. For this reason, when functional selection has happened, extracting data for external systems might work well, but reapplying back into Stage will probably fail.

The above limitations do not apply when a configuration is passed in CfgProduct.make.

For more information see Global Message Managers.

Overlapping option codes on sub-features

Stage does not yet properly support Options that has multiple sub-features with overlapping option codes.

Example

Feature A has Options X and Y.
Feature B has Options Y and Z.
Option 1 has both A and B as sub-features.
Selecting Y in sub-feature A will cause it to also be selected in sub-feature B.

Pointer Events

Babylon.js uses Pointer Events for mouse and touch interaction, which not all devices and browsers support. Specifically, Apple iOS 12 and earlier does not support it. You can use a Pointer Events polyfill to improve compatibility. Babylon recommends using PEP from jquery for this.

Price Code

Upcharge on Options based on Price Code does not currently work correctly. If you use Price Codes please contact us and we can explain the issue more in detail.

React-router history workaround

React-router has a long standing bug in its History module related to handling URLs that contain special characters like '/' (encoded as "%2f") and '%'. This can lead to unexpected handling of URLs that includes parameters (catalogue, vendor, price list, product number, etc) containing such special characters or character sequences.

A fix has been made but the maintainers decided to not ship it until version 5.0.0 of the History module. More specifically they explicitly removed the fix from the 4.x branch the same day that version 4.10.0 was released.

Until the fix has been publicly released, version to 4.5.1 should be forced in the package.json file since that was the last public version without the bug. There is however a possible alternative workaround using "patch packages" if version 4.5.1 is not viable in your project, see comments on issue 505 referenced below.

References

Specular texture

Specular maps in "Classic" materials are not supported. We recommend that you instead use the newer "PBR" materials.

PBR stands for "physically based rendering" and gives much better control over the materials. Support for PBR materials was added to Stage in SDK 1.0.0 and CET in the 12.0 minor update.

Sync Groups

Sync Groups are by default applied in a "Fast" mode in Stage. This keeps the number of validation calls to the server down, but in rare cases it could cause results different from CET. The Sync Groups application mode can be changed to "Strict" if this is an issue.

Transparent models with complex geometry

Models with intersecting geometry and transparency might not display as expected. This is a common issue in real time 3D-viewing and the symptoms if often that transparent parts that should be in front gets hidden by transparent parts that should be further behind. If this is a problem in one of your models, we suggest you try to break the effected transparent elements apart into smaller pieces where possible.

UV-mappers

The UV-mapping results in our code in some circumstances give different results from CET.

  • Box UV-mapper can have problem with edge areas (close to 45 degrees) if not feed with an existing UV-map to help it seed how to do new UV-maps for stretched content.
  • Plane UV-mapper gives strange results when stretching in CET. We have chooser to make a different more predictable implementation.
  • Cylindrical UV-mapper will tile along top and bottom and in the up-direction. Along the curved side-areas it will stretch.