This enum contains all the setting keys that are used to read, change and reset the settings of a WebVis context.
For every setting key, its default value can be found here, as well as the type of the value.
Please note, that a list of viewer-specific settings can be found in the ViewerSettingStrings enum.
Furthermore, please notice the difference between context and viewer level settings, as described in the ContextAPI.
Specifies custom HTTP headers to be included with all requests to the instant3Dhub backend.
These headers can be used for various purposes including authentication, client identification,
or providing additional context for server-side processing. Unlike cookies, headers are
applied to all types of requests including XHR, WebSocket initialization, and fetch calls.
Example usage:
// Get the webvis contextconstcontext = webvis.getContext();// Add authentication and tracking headerscontext.changeSetting(webvis.SettingStrings.ADDITIONAL_REQUEST_HEADERS, {'Authorization':'Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...','X-Client-Version':'3.5.2','X-Request-Source':'webvis-frontend'});// Clear all custom headerscontext.changeSetting(webvis.SettingStrings.ADDITIONAL_REQUEST_HEADERS, {});
Note that each change to this setting completely replaces all previously set headers.
To preserve existing headers while adding new ones, you should read the current value,
extend it with new headers, and then apply the combined set.
Specifies additional query parameters to be included in WebSocket connection URLs.
These parameters are appended to the WebSocket URI during connection establishment
and can be used for custom authentication, session identification, or feature flags.
Example usage:
// Get the webvis contextconstcontext = webvis.getContext();// Add custom identification parameterscontext.changeSetting(webvis.SettingStrings.ADDITIONAL_WS_QUERY_PARAMETERS, {'client':'engineering-department','version':'2.5.0','feature_flags':'extended_logs,beta_features'});// Clear all custom parameterscontext.changeSetting(webvis.SettingStrings.ADDITIONAL_WS_QUERY_PARAMETERS, {});
Note: Parameters are visible in the URL and cannot be modified after connection.
Reserved names: "token", "memberId"
Specifies a custom identifier for your application included in pings and usage data.
This identifier helps distinguish connections and track feature usage across different
client applications. Set once at startup with a descriptive string.
Note: Transmitted to server - avoid sensitive information.
Controls the depth of topology highlighting when working with auxiliary (PMI) objects.
In AUX interaction mode, when an auxiliary node is selected, WebVis highlights its related
faces in the 3D model. When this setting is enabled, the system also performs the reverse
operation - finding and selecting additional auxiliary nodes that relate to the highlighted
faces.
This creates a cascading effect where:
Selecting an auxiliary node highlights its related faces
Those faces trigger selection of other auxiliary nodes related to them
Those new auxiliary nodes highlight additional faces
This setting is particularly useful when exploring complex PMI relationships in manufacturing
models, where multiple annotations may reference the same geometric features. When disabled,
only the direct face-to-aux relationships for the explicitly selected node are shown.
Note: Enabling this may lead to larger selections than expected in densely annotated models.
Controls whether topology coloring is cleared when exiting AUX interaction mode.
When enabled (default), all colored faces related to auxiliary (PMI)
nodes will return to their original appearance when switching from AUX mode to another
interaction mode. This provides a clean visual state when returning to normal model
navigation or selection.
When disabled, the colored topology elements (faces) retain their visual
emphasis even after leaving AUX mode. This can be useful for preserving the context
of important manufacturing features while working with the model in other interaction
modes.
This setting only affects the appearance of topology elements that were colored
through AUX mode operations - it does not affect other selections or highlighting.
Controls whether queries that span multiple resources are sent as a single batched request
or as individual requests.
In WebVis, complex 3D models can be composed of multiple resources, each representing
a portion of the complete model. When enabled, this setting combines queries that would
normally be sent separately to each resource into a single network request, which can
significantly improve performance by reducing network round-trips and connection overhead.
This is particularly beneficial when:
Working with assemblies composed of multiple separate resources
Searching for components across the entire model
Querying linked data that spans multiple resources
Value Type
boolean
Default
false
See
QueryAPI.query - For executing queries against the model
BOOSTER_URL
BOOSTER_URL:"boosterURL"
Deprecated
SettingStrings.BOOSTER_URL is deprecated and will be removed in a future version.
Value Type
string
Default
""
CAPPING_GEOMETRY_COLOR
CAPPING_GEOMETRY_COLOR:"cappingGeometryColor"
Specifies the color of capping geometries generated when using clip planes.
Capping geometries are surfaces that appear where a clip plane intersects with a 3D model,
providing a visual representation of the model's interior. This setting controls the color
of these surfaces using an RGBA hex color string.
The default value "DDFFB6FF" represents a light green color with full opacity.
Note: This setting only affects newly created capping geometries. To apply a color change
to existing capping geometries, you'll need to remove and recreate them.
SettingStrings.CONTEXT_MENU_FUNCTION is deprecated, please use UISetting.CONTEXT_MENU_FUNCTION and the getSetting/setSetting functions on the webvisUI-Object"
A function to modify the context menu's contents
This function has as argument: the array with the entries by default of the context menu;
and consequently it is expected as a return value, the entries that are wanted to be shown in the context menu:
All default entries will be shown:
function(defaultEntries){return defaultEntries}
All default entries will be shown, but without the first entry:
function(defaultEntries){
firstEntryPosition = 1;
defaultEntries.splice(firstEntryPosition - 1, 1);
return defaultEntries;
}
Swapping the first and second entries:
function(defaultEntries){
firstEntryPosition = 1;
secondEntryPosition = 2;
firstEntry = defaultEntries.splice(firstEntryPosition - 1, 1)[0];
defaultEntries.splice(secondEntryPosition - 1, 0, firstEntry);
return defaultEntries;
}
Changing the functionality of the second entry:
function(defaultEntries){
secondEntryPosition = 2;
secondEntryDefaultCommand = defaultEntries[secondEntryPosition - 1].command;
defaultEntries[secondEntryPosition - 1].command = function(nodeId, pickInfo){
console.log("Second Entry was Executed", nodeId, pickInfo);
webvis.getProperty(nodeId, "label").then(
function(label){
webvis.postInfo("
Inserting a new entry in the menu at the third position:
function(defaultEntries){
newEntry = {
label : "Set Current Language",
subEntries : [
{
label : "English",
command : function(){webvis.changeSetting("language", "en")}
},
{
label : "Deutsch",
command : function(){webvis.changeSetting("language", "de")}
},
{
label : "Español",
command : function(){webvis.changeSetting("language", "es")}
}
]
};
newEntryPosition = 3;
defaultEntries.splice(newEntryPosition - 1, 0, newEntry);
return defaultEntries;
}
Inserting a new entry in the menu, which will appear only after the condition is fulfilled, (e.g. When the node is an Aux node)
function (defaultEntries)
{
const newEntry =
{
label : "Custom entry visible only when condition is fulfilled"
, command : function(nodeID){webvis.postInfo("Custom entry clicked on Aux node:" + nodeID + "!!!")}
, condition : function(nodeID){return webvis.getNodeType(nodeID) == webvis.NodeType.AUX}
};
defaultEntries.push(newEntry);
return defaultEntries;
}
Value Type
function(entries: Array) => Array
Default
undefined
DEFAULT_QUERY_LINK_DEPTH
DEFAULT_QUERY_LINK_DEPTH:"defaultQueryLinkDepth"
Controls the default traversal depth for querying related resources when no explicit
linkDepth is specified in a query.
When executing queries across the instance graph, this setting determines how many levels
of linked resources will be traversed when searching for data. A value of:
0: Only searches within the directly targeted resource (fastest)
1: Includes the target resource and its directly connected resources (default)
2+: Traverses additional levels of connected resources (progressively slower)
Higher values provide more complete search results by examining more distantly related
resources, but can significantly impact query performance, especially in complex models
with many interconnected resources.
This setting can be overridden for individual queries by setting the linkDepth parameter
explicitly in the query object.
Example:
// Get the webvis contextconstcontext = webvis.getContext();// Uses the default link depth (from this setting)awaitcontext.query({select: ["nodeId", "label"],conditions: [{nodeType:"structure"}]});// Overrides the default with explicit linkDepthawaitcontext.query({select: ["nodeId", "label"],conditions: [{nodeType:"structure"}],linkDepth:2});
Value Type
number
Default
1
See
QueryAPI.query For more information on executing queries
Controls whether the default object selection interaction is enabled or disabled.
When set to true, WebVis will operate in InteractionMode.NONE instead of the usual
InteractionMode.DEFAULT mode, effectively disabling standard selection interactions.
This provides a "view-only" experience where users can navigate around the model but not
select or interact with individual components.
When this setting changes, an InteractionModeChangedEvent is triggered, allowing
applications to respond to the mode change. Applications can temporarily override this
setting by explicitly calling InteractionAPI.setInteractionMode with a specific
interaction mode.
Defines the orientation of the front plane of the model in the 3D coordinate system.
This setting determines which axes are used for the "right", "up", and "forward" vectors,
which affects navigation, camera controls, and the interpretation of user interactions.
Each option in the FrontPlaneAxis enum represents a specific orientation using a combination
of two axes (e.g., POS_X_POS_Y means the right vector is +X and the up vector is +Y).
The forward vector is automatically determined to form a right-handed coordinate system.
CoordinateSystemAPI for methods to access the resulting vectors and matrices
HUB_URL
HUB_URL:"hubURL"
Defines the URL of the instant3Dhub backend service.
This setting determines the endpoint for all communications with the instant3Dhub service, including:
Data requests (model loading, queries, etc.)
Session management and authentication
WebSocket connections for real-time features
The hub URL is resolved automatically by WebVis using the following priority sequence:
URL Parameter: If a hub URL is specified in the browser's URL parameters (e.g., ?hubURL=...), it takes
precedence and will be used.
Element: If not found in the URL, WebVis searches for a <webvis-config> HTML element in
the DOM and attempts to parse the hub URL from its attributes or content.
Config File: If still not found, WebVis tries to load the hub URL from a configuration file:
It first looks for webvis.config.json at the root of the server.
If not found there, it searches for a config file in the same directory as the script URL from which WebVis
was imported.
Script Parsing: As a last resort, the hub URL is parsed directly from the imported WebVis script itself
(if embedded or bundled).
Value Type
string
Default
undefined
INITIAL_STATE_ACTIVATION
INITIAL_STATE_ACTIVATION:"initialStateActivation"
Deprecated
SettingStrings.INITIAL_STATE_ACTIVATION is deprecated and will be removed in a future version.
This setting was intended to check for initial state activation but is no longer used anywhere
in the WebVis system.
Value Type
boolean
Default
false
ExperimentalLOAD_REMOTE_CONFIG_FILE
LOAD_REMOTE_CONFIG_FILE:"loadRemoteConfigFile"
Controls whether WebVis attempts to load settings from a remote configuration file.
When enabled (default), WebVis will attempt to fetch a webvis.config.json file from the
server during initialization. Settings from this file are merged with any explicitly
provided settings, with explicit settings taking precedence.
This capability is useful for:
Providing consistent default settings across multiple applications
Centralizing configuration management on the server side
Deploying configuration changes without updating application code
The config file is loaded from the same path as the WebVis library itself. If the file
cannot be found or accessed, initialization continues normally using only the explicitly
provided settings.
This feature may change in future releases
Value Type
boolean
Default
true
LOG_LEVEL
LOG_LEVEL:"logLevel"
Controls the verbosity of messages output to the browser console by the WebVis logging system.
The log level acts as a filter, where only messages at or above the specified level are displayed.
Setting a lower level (e.g., ERROR) shows fewer, more important messages, while higher levels
(e.g., TRACE) show more messages including less critical ones. This can be helpful for troubleshooting
but may impact performance when set to high verbosity levels in production environments.
Limits the scene's active bounding volume size. Ensures rendering accuracy and visual fidelity,
especially in scenes which contain expansive geometries, infinite lines, or helper geometries.
Value Type
number
Default
9007199254740991 (JavaScript's MAX_SAFE_INTEGER)
MAX_CONCURRENT_DOWNLOADS
MAX_CONCURRENT_DOWNLOADS:"maxConcurrentDownloads"
Deprecated
SettingStrings.MAX_CONCURRENT_DOWNLOADS is deprecated and will be removed in a future version.
Controls the maximum number of concurrent downloads that WebVis will attempt to perform
when loading model resources. This setting has been superseded by internal adaptive download
management that automatically optimizes download concurrency based on network conditions
and available system resources.
Controls the angular tolerance (in degrees) used when determining parallelism in measurements.
This setting defines a threshold (in degrees) for how much deviation from exact parallelism
is acceptable when performing geometric measurements. When the angle between
two geometric entities (like planes or lines) is within this tolerance of 0° or 180°,
WebVis will treat them as exactly parallel.
This is particularly useful in real-world CAD models where:
Manufacturing tolerances result in slightly imperfect geometry
Numerical precision issues create small deviations from ideal angles
Note: Internally, the system adds a small epsilon value (0.001°) to this setting to ensure
there's always a minimal tolerance. This additional value is maintained for backward
compatibility.
Value Type
number
Default
0.1
See
MeasurementAPI - For performing measurements between geometric entities
MEASUREMENT_MATERIAL_DENSITIES is deprecated and will be removed in a future version.
Defines material density values for mass calculations in measurements.
This setting allowed specifying a JSON string containing a mapping of material names to
their corresponding density values, which were used when calculating the mass of measured
objects. The format was a stringified JSON object where keys were material names and values
were numeric density factors.
NOTIFICATION_LOG_LEVELS is deprecated, please use UISetting.NOTIFICATION_FILTER and the
getSetting/setSetting functions on the webvisUI-Object"
PARENT_SELECT_ENABLED
PARENT_SELECT_ENABLED:"parentSelectEnabled"
Controls the hierarchical selection behavior when clicking on model objects.
When enabled (default), clicking on an already selected component will select its parent
in the hierarchy. Successive clicks at the same location will continue to traverse up the
hierarchy, selecting each parent in turn. This allows easy navigation up the assembly
structure without needing to locate and precisely click on parent components.
Technically, this setting determines whether the interaction modifier is set to
InteractionModifier.EXPAND during selection processing, which activates the
parent traversal logic in the default interaction mode.
When disabled, clicking on a selected object won't change the selection, making it
more suitable for workflows that require stable selections.
Controls whether credentials are included in cross-origin HTTP requests to the instant3Dhub backend.
When enabled (default), WebVis will include authentication information such as cookies,
HTTP authentication, and client-side SSL certificates in all cross-origin requests.
This is required when your application needs to maintain authenticated sessions with the backend
across different domains.
Security note: Only enable this setting when connecting to trusted domains, as it allows
those domains to access cookies that may contain sensitive authentication information.
The server must also respond with appropriate CORS headers that allow credentialed requests.
Controls which elements of a snapshot are restored when loading a snapshot.
Snapshots in WebVis capture the complete state of a scene, including the scene hierarchy,
camera position, selections, and various annotations. This setting allows applications to
specify default behavior for which elements should be restored when loading a snapshot.
This setting provides the default behavior, but individual calls to
restoreSnapshot can override these defaults with specific options.
Defines a set of URL rewriting rules that are applied to all network requests made by WebVis.
The URI_MAP is an array of objects, each containing a regex pattern and a replacement string.
When WebVis makes any network request, the URL is passed through these rewriting rules in sequence,
allowing you to transform URLs before they are sent to the network.
This is particularly useful for:
Redirecting requests to local development servers
Mapping external URLs to internal resources
Handling URL differences between environments without changing application code
Implementing proxy patterns for specific resources
Each entry in the array should have:
regex: A string containing a regular expression pattern to match
replace: A string containing the replacement text
Example usage:
// Get the webvis contextconstcontext = webvis.getContext();// Redirect all requests from one domain to anothercontext.changeSetting(webvis.SettingStrings.URI_MAP, [ {regex:"^https://production-server\\.example\\.com/",replace:"https://dev-server.example.com/" }, {regex:"\\.json$",replace:".json?cachebuster=" + Date.now() }]);
The rules are processed in order, with each subsequent rule operating on the
result of previous transformations.
Specifies the usage group of the application, which is sent to the instant3Dhub alongside the usage data.
This can be used to separate usage data for different applications using the same instant3Dhub installation.
Value Type
string
Default
undefined
XR_ENABLE_DEBUG_IMAGES
XR_ENABLE_DEBUG_IMAGES:"xrEnableDebugImages"
Controls whether edge images from the XR model tracker are transmitted to the client.
When enabled, WebVis will send edge images that visualize the tracking state of the XR model tracker.
These images contain the detected edges of the 3D model that the system is using for tracking.
The images are made available through XRModelTrackerEdgeImgReceivedEvent events and
can be displayed in debugging interfaces.
This setting is primarily intended for debugging tracking issues in XR applications, allowing
developers to visualize how well the model tracker is detecting edges in the camera feed and
matching them to the 3D model.
Important: Enabling this setting significantly increases bandwidth usage and can impact performance,
especially on mobile devices or over limited network connections. It should be disabled in
production environments and only enabled when needed for tracking diagnostics.
Controls the image compression quality for XR camera frames transmitted during AR use cases.
This setting defines a quality level for JPEG compression of the camera images used in
AR experiences. It directly impacts both the visual quality of the AR camera feed and the
bandwidth required for transmitting these images.
The value is specified as a number between 0.0 (smallest file size, lowest visual quality) and 1.0 (largest file size, highest visual quality).
Controls the resolution of camera images used in AR use cases.
This setting determines whether the AR camera feed uses full native resolution or a
downsampled lower resolution. It has a significant impact on performance, bandwidth
usage, and visual quality.
This setting works in conjunction with XR_IMAGE_COMPRESSION_QUALITY to determine
the overall size and quality of the transmitted AR frames. For optimal performance in
bandwidth-constrained environments, use LOW_RES with moderate compression. For maximum
visual quality where bandwidth is not a concern, use NATIVE with high compression quality.
This setting defines the minimum level of confidence (between 0.0 and 1.0) that the model
tracking system must have before transitioning the XRState.modelTrackingPhase to
SNAPPED. When the confidence level exceeds this threshold:
The model's position becomes fixed relative to the real world.
This threshold directly affects how easily the AR system will "lock onto" the physical object:
Lower values allow for a more permissive tracking that snaps more easily but may result in less accurate
alignment with the physical world. This can be useful in challenging environments with poor lighting or when
tracking complex models. Higher values require a very precise tracking and will only lead to snapping when there
is high confidence. They can results in more accurate alignment but snapping may be difficult to achieve in
suboptimal conditions.
Value Type
number
Default
0.65
See
XR_FUSION_MODE - For controlling how tracking inputs are combined
When the model tracker detects changes in the position or orientation of the tracked object,
this setting determines how gradually these changes are applied to the AR view. The value
ranges from 0.0 (no smoothing) to 1.0 (maximum smoothing, interpolate over 16 frames).
Internally, this setting controls the interpolation factor used when blending between the
previous camera pose and the newly detected pose, essentially creating a moving average
that filters out rapid changes.
Value Type
number
Default
0.20
See
XR_FUSION_MODE - For controlling how tracking inputs are combined
This enum contains all the setting keys that are used to read, change and reset the settings of a WebVis context. For every setting key, its default value can be found here, as well as the type of the value.
Please note, that a list of viewer-specific settings can be found in the ViewerSettingStrings enum.
Furthermore, please notice the difference between context and viewer level settings, as described in the ContextAPI.
Example
See