Incisor provides a variety of configuration settings designed to help users tailor their applications to meet specific needs. In this section, you'll find detailed explanations for each configuration property, enabling you to fine-tune your setup.
Application Settings
Application settings are configurable properties that affect the operation of the Incisor platform. Adjusting these settings allows you to tailor Incisor to your preferences.
Settings to configure how Incisor works.
Setting determining if refreshing the project clears the browser console.
The maximum number of threads Incisor can use in its operations.
The maximum number of Undo/Redo steps stored in Incisor memory during runtime.
Setting determining if changing assets on disk causes the given project to automatically refresh.
Settings for the browser used to view the Incisor GUI and inspector.
This field determines which browser is used for the Incisor front-end GUI and inspector. Type the name of the desired browser. Please be aware that different OSs refer to browsers differnetly (ei 'Google Chrome' vs 'Chrome')
This field is used to feed the OS additional parameters when opening the given browser.
This is a list of ports that Incisor can use to connect to the front-end browser. Incisor does it's best to determine when ports are in use by other processes, but in some cases different ports must be used to enable Incisor to communicate properly.
Settings for how Incisor log files are written... Incisor log files are written to the 'Application Support' directory, which can be accessed from the Incisor menu.
When logging verbosity is set to anything but 'full' each log entry is limited to this number of characters. Incisor log files are written to the 'Application Support' directory, which can be accessed from the Incisor menu.
The amount of information included in the logs. Incisor log files are written to the 'Application Support' directory, which can be accessed from the Incisor menu.
Setting to determine if Incisor is allowed to host files remotely. This is primarily used to host published projects for testing on external devices. Be advised that remote hosting may expose your system to significant risk of unauthorized access. Please be aware of the risk you are assuming and take great care!
Setting to determine if Incisor is allowed to run shell commands on behalf of project and extensions code. Be advised that by checking this box, project and extension code can be used to run virtually any command on your system. Please be aware of the risk you are assuming and take great care!
Setting to determine if Incisor is allowed universal FileIO from within projects. Be advised that by checking this box, project and extension code can affect any file on your computer. Please be aware of the risk you are assuming and take great care!
Project Settings
Project settings define the parameters and behaviors specific to your project. These configurations let you customize aspects such as project structure, optimizations, and instructions, ensuring the project runs according to your needs.
Configuration definitions for how the assets are processed and packaged together.
A comma-separated list containing the numeric values for asset package scale, which determines an automatic scale value applied to all graphics in each configuration. Be sure to include all of the assetPackageScale that you intend to use for any of the development or publishing configurations. Values are expressed on a scale from 1 to 100, where 100 corresponds to 100% graphic scaling (including graphics at source size).
A comma separated list of strings representing language codes. For example 'en,es'.
A separated list of items of the format AAA_BBB, where AAA is either 'mono' or 'stereo', and BBB is the bitrate in kilobytes. For example, acceptable values include 'stereo_115' or 'mono_55'.
Configurations are interchangable sets of project settings that can be used to develop and publish projects in different modes. It is often helpful to have different settings for development, testing, and publishing. For example, in development you may want only a single language active and an active conditionalCodeTag that corresponds to blocks of code for debugging. While in testing you may want to enable all languages and a conditionalCodeTag that corresponds to test scripts. And lastly when publishing, you may want to include more assetPackageScales, enabled code minification, or remove optional code modules. Configurations can also be very useful for managing multiple publishing modes; if your project will be published for 2 or more differnt environments you can customize multiple configurations to meet the exact needs of those environments.
This determines which configuration is used while developing in Incisor.
Determine which sets of asset configurations are included. When developing in Incisor, the first asset configuration listed is the one used.
A comma-separated list containing the numeric values for asset package scale, which determines an automatic scale value applied to all graphics in each configuration. Be sure to include all of the assetPackageScale that you intend to use for any of the development or publishing configurations. Values are expressed on a scale from 1 to 100, where 100 corresponds to 100% graphic scaling (including graphics at source size).
A comma separated list of strings representing language codes. For example 'en,es'.
A separated list of items of the format AAA_BBB, where AAA is either 'mono' or 'stereo', and BBB is the bitrate in kilobytes. For example, acceptable values include 'stereo_115' or 'mono_55'.
Settings for including and excluding code.
Determine which conditional code sections to include in this configuration.
Determine which optional code modules to exclude from Incisor functionality. Excluding as many optional modules as possible can help reduce the download size of your published project.
Field indicating whether or not the urlParameterIterator code module be included in this configuration.
Field indicating whether or not the pixelsObjects code module be included in this configuration.
Field indicating whether or not the waitThens code module be included in this configuration.
Field indicating whether or not the extendedUi code module be included in this configuration.
Field indicating whether or not the sounds code module be included in this configuration.
Field indicating whether or not the particleSystems code module be included in this configuration.
Settings for if/how Incisor minifies project and API code. Minification consists of replacing normal code tokens (i.e. variable names etc...) with shorter nonsense tokens. This serves 2 purposes. The first is to reduce the download size of code, and the second is to generally obfuscate the code to make reverse-engineering projects more difficult.
This setting determines if minification is automatically applied to all project code tokens that are not marked as excluded from minification. If this flag is true, then you can 'opt-out' to minification on a per-token basis using the doNotMinifyPrefix, the doNotMinifySuffix, or a 'DoNotMinifyList'. If this flag is false, then you can 'opt-in' to minification on a per-token basis using the minifyPrefix, the minifySuffix, or a 'MinifyList'.
Setting to determine if Incisor applies minification to the keywords from the Incisor API when publishing. Minification consists of replacing normal code tokens (i.e. variable names etc...) with shorter nonsense tokens. This serves 2 purposes. The first is to reduce the download size of code, and the second is to generally obfuscate the code to make reverse-engineering projects more difficult.
This field contains a prefix that when included in a code token (var name, class name, etc...), indicates that that code token should not be minified.
This field contains a suffix that when included in a code token (var name, class name, etc...), indicates that that code token should not be minified.
Setting that determines how minification works when a token/string pair is encountered.
The amount of information included in the logs. Incisor log files are written to the 'Application Support' directory, which can be accessed from the Incisor menu.
Setting to determine if all keywords should be automatically minified.
Setting to determine if Incisor applies minification to names of assets from the project. Minification consists of replacing normal code tokens (i.e. variable names etc...) with shorter nonsense tokens. This serves 2 purposes. The first is to reduce the download size of code, and the second is to generally obfuscate the code to make reverse-engineering projects more difficult.
This field contains a prefix that when included in a code token (var name, class name, etc...), indicates that that code token should be minified.
This field contains a suffix that when included in a code token (var name, class name, etc...), indicates that that code token should be minified.
Setting to determine if Incisor removes comments from the code when publishing the project.
Flag determining if the project is published as a complete web-ready package, including the index file. Reasons to disable this could include publishing for an environment that uses the associated JavaScript directly, negating the need for html.
Setting to determine if Incisor removes whitespace from code when publishing the project. It should be noted that whitespace removal requires semi-colons be pre-included in all project code prior to publishing.
Setting to determine if Incisor removes comments from the code when publishing the project.
Configure settings that affect the process of development.
Setting that determines if unused '.ncData' files are automatically cleared from the project.
Setting that determines if Incisor automatically updates the 'IncisorAPI' file in the project Utilities diractory so that autocomplete reflects project-specific items such as assets and definitions.
The number in this field is the limit on the quantity of published projects that are allowed to exist in the 'Publishing' directory. Once the limit is met, publishing deletes the oldest copy. Set this value to a positive integer to keep you project from getting too bloated.
Provide a project-relative path for where screenshots will be saved.
Settings for the fonts within this project. Fonts must be added or removed directly within the 'Assets' directory in a project. Including TTF and OTF files automatically generates new fonts sections below, also any graphic asset included that ends in '_Char0' is automatically assumed to be the null character of a new font.
A list of unicode characters that will always be included with this font, regardless of the current language.
The width of the 'key' character for this font. This value is what is used for the width of a space in this font. This value also used as a basis for this font's kerning and other spacing related configurations.
Amount to add or subtract to the kerning of all characters within this font. This value is expressed as a multiple of this font's 'characterWidth' value.
The height of a line of text that uses this font, expressed in world units.
The number-designation of this loading tier. Loading tiers are identified via numbers, which gives the auto-loaded tiers an implicit ordering, allowing for built-in duplicate removal accross multiple tiers.
Settings for how Incisor manages which characters are included for each font.
Setting that determines if Incisor automatically includes all of the characters from the 'standardFontCharacters' in all fonts when the project is published.
Setting that determines if Incisor automatically includes all of the characters from the 'standardFontCharacters' in all fonts when the project is in developoment mode.
Setting that determines if Incisor automatically includes all of the characters included in the 'ProjectTranscript.json' file.
Setting that determines if the characters included from the 'ProjectTranscript.json' are limited by the current language. When true, only characters from phrases in the current language will be included with the associated fonts.
Setting that determines if the characters included from the 'ProjectTranscript.json' are limited to only characters in the phrases indicated.
A list of characters that are included for all fonts, as long as the associated 'includeStandardCharacters' setting indicates inclusion.
Groups of lazy-loaded content are defined in these 'loading tiers'.
A soft limit on the size of asset data files within this tier. This setting can be used to ensure that no lazy-loaded asset data files can get too big; large asset data files can cause performance hits when they first load, as they can require large memory allocations. So for loading tiers that are loaded during a loading screen, this value can be fairly high, but for loading tiers that are lazy-loaded durung runtime set this number to be lower.
Flag determining if the content associated with this loading tier will be processed 'a little at a time' upon loading. This option helps avoid the potential performance hits from processing lazy-loaded content. In most cases this value should be false for tiers that load during a loading screen, and it should be true for tiers that will be loaded while the project is already usable by the end-user.
Flag determining the content associated with this tier is automatically loaded.
The number-designation of this loading tier. Loading tiers are identified via numbers, which gives the auto-loaded tiers an implicit ordering, allowing for built-in duplicate removal accross multiple tiers.
Flag determining if the content associated with this tier is eligible for duplicate removal.
General project information.
The latest version of Incisor that was used to make any changes to this project.
Read-only flag denoting if this is a TypeScript project, or a standard JavaScript project.
The name of the project as it is used within code. Generally, this name should be more 'code safe', with no spaces, special characters etc...
The public name of the project.
If any portion of the canvas needs to be transparent, then this setting should be true. Otherwise it should be false.
A comma separated list of code tags that can be included or excluded based on which development or publishing configuration is used. Please note that the code tags must be 'code safe', which means free of spaces, special characters, and leading numbers.
This value represents the target canvas resolution width. Various scaling features such as 'adaptiveCamera' mode, and 'canvasSizeResolutionScaling' use this number as the 'native' resolution in calculations that react to dynamic resolution changes.
This value represents the target canvas resolution height. Various scaling features such as 'adaptiveCamera' mode, and 'canvasSizeResolutionScaling' use this number as the 'native' resolution in calculations that react to dynamic resolution changes.
A comma separated list of the EffectNodes which will automatically be included on all GraphicAssets in this project. Please note that the 'ColorMultiply' EffectNode is required by many of the Incisor UI objects (UiButton,UiMenu,etc...)
This determines what camera type is used for the main camera.
The amount of information included in the logs. Incisor log files are written to the 'Application Support' directory, which can be accessed from the Incisor menu.
If any portion of the canvas needs to be transparent, then this setting should be true. Otherwise it should be false.
Asset Settings
Asset settings are configurations specific to each asset in your project. They enable you to adjust properties like size, geometry, pivot points, and other optimizations to fine-tune the asset's performance and behavior.
When two assets are found to have identical data, only one copy is downloaded. This setting forces this asset to be omiited from this check.
When using with multiple font files that each contain some set of characters, this setting will group these font files together under a single name. When a TextBox or TextAssemnly uses a font by this name, this allows the required characters to be found in any of the font files within the family, without concern for which font file contained the character.
If a trimBuffer value is specified that would push the geometry edges past the bounds of the image, this setting allows new transparent pixels to be added to the image to fill this area.
Any pixel with an alpha value below this threshold is set to be completely transparent, which can reduce the download size of the resulting image and allow trimming to more effectively discard areas with low contribution.
Publishing configurations can apply asset package scaling to create smaller graphics targeting lower resolution devices. This setting allows a graphic asset to be omitted from this downscaling. This is typically useful if maintaining a consistent image resolution acress asset packages is required.
The compression technique to apply to the image contents. Setting to 'none' leaves the original colors unaffected. Setting to 'paletted' reduces the number of colors in the image to fit within a palette of colors. This allows for more efficient compression but lowers image quality.
The technique to apply when rendering a graphic at a scale smaller than 1:1 when mapped to the render target pixels. Setting to 'nearest' will set every pixel to the color of the closest pixel in the image, which can create a pixelated appearance. Setting to 'linear' will bilinearly interpolate between the closest 4 pixels, creating a smoothed appearance. Setting to 'discreteMipmapNearest' will choose the closest mipmap level appropriate for the scale, and apply the 'nearest' behavior within that mipmap level. Setting to 'discreteMipmapLinear' will choose the closest mipmap level appropriate for the scale, and apply the 'linear' behavior within that mipmap level. Setting to 'mipmapLinear' will choose the two closest mipmap levels appropriate for the scale, apply the 'linear' behavior within each mipmap level, then linearly interpolate between those two results.
When using the 'hugged' trimMode, the resolution of the image directly affects the resulting geometry. If this setting is true, hugging is performed on the scaled result of both resolution scaling and asset package scaling. If false, the hugging is performed on the image before this scaling is applied, which can be useful if the resulting geometry needs to be the same regardless of these scaling factors.
The pivot point of a graphic asset is the origin around which transformations occur. This setting offsets the X component of this pivot point for all instances of this graphic asset.
The pivot point of a graphic asset is the origin around which transformations occur. This setting offsets the Y component of this pivot point for all instances of this graphic asset.
The pivot point of a graphic asset is the origin around which transformations occur. This setting offsets the Z component of this pivot point for all instances of this graphic asset.
Whether to multiply each pixel's red, green, and blue values by the alpha value of that pixel when it is loaded into GPU memory. This is useful for eliminating artifacts where transparent pixels can contribute small amounts of color to adjacent pixels due to interpolated sampling.
Reduces the horizontal resolution of the downloaded image, while maintaining the original geometry dimensions.
Reduces the vertical resolution of the downloaded image, while maintaining the original geometry dimensions.
Whether to convert this graphic to a signed distance field representation and apply the Shapify effect node to any instance of the graphic. This technique allows the edge of the shape to be reconstructed by the effect node while reducing the required resolution of the downloaded graphic.
When the shapify technique converts the graphic to a signed distance field, it encodes the distance of each pixel to the shape's edge. This value determines the distance in pixels that is the largest representable distance. The Shapify effect node allows the edge value to be changed, which can make a font character more bold, for example. This value would then correspond to the maximum boldness that could be achieved.
How much to reduce the resolution of the downloaded graphic when applying the shapify technique. 0 optimization will leave the resolution unaffected, while 1 will produce a single pixel. Higher values produce a smaller download size, but make the reconstructed edge less accurate.
The name of the spritesheet to which this graphic will be added. Setting this to a new spritesheet name automatically creates that spritesheet.
The maximum alowable size of either dimension of the spritesheet. If all the graphics can not fit in a single spritesheet that satisfies this constraint, multiple spritesheets will be created
The distance in pixels by which to separate the contents of the spritesheet. The buffer pixels will be completely transparent.
When trimming fits new geometry to the image, this value will determine how close to the non-transparent pixels the geometry edge will be.
Trimming removes transparent pixels from the graphic and creates appropritate geometry to fit to this new version of the image. This reduces both the download size and overdraw. Setting to 'rectangular' fits a rectangle to the remaining pixels. Setting to 'hugged' fits triangles to the remaining pixels so that transparent areas are not rendered, further reducing overdraw.
Applies a scale to the X component of the geometry.
Applies a scale to the Y component of the geometry.
Applies a scale to the Z component of the geometry.
The technique to apply when rendering a graphic at a scale larger than 1:1 when mapped to the render target pixels. Setting to 'nearest' will set every pixel to the color of the closest pixel in the image, which can create a pixelated appearance. Setting to 'linear' will bilinearly interpolate between the closest 4 pixels, creating a smoothed appearance.
The technique to apply when the horizontal texture coordinates of the geometry extend beyong the bounds of the image. Setting to 'clamp' will repeat the closest pixel available within the image bounds. Setting to 'repeat' will apply a modulo to the texture coordinates, creating a tiling effect where the image repeats. Setting to 'mirroredRepeat' is similar to 'repeat', but every other tile will be flipped, which can be useful for eliminating seams between the tiles.
The technique to apply when the vertical texture coordinates of the geometry extend beyong the bounds of the image. Setting to 'clamp' will repeat the closest pixel available within the image bounds. Setting to 'repeat' will apply a modulo to the texture coordinates, creating a tiling effect where the image repeats. Setting to 'mirroredRepeat' is similar to 'repeat', but every other tile will be flipped, which can be useful for eliminating seams between the tiles.
Whether to include this asset in the result of the publication process. This is commonly used for reference assets that are used during development, but which are not needed in the finished product.
The loading tier that this asset belongs to. Loading tiers separate assets into packages that can be separately downloaded. Setting this to a new tier number automatically creates that tier.
Scale factor to apply to a type font. This is useful for correcting mismatched scales between different fonts, as well as controlling the resolution of the images resulting from the rasterization of the font's curve data.