Generated reference

Settings reference

Every tunable field in @call-me-sensei/toonlab, generated straight from the settings schemas that drive the labs and the debug panel — with type, default, range or options, and whether the field is portable (saved in preset documents) or scene/runtime state.

Using a coding agent? This page is also served as raw markdown at /docs/reference.md — point your agent there (or fetch it into your repo) so it can look up exact field names, defaults, and ranges instead of guessing.

Every tunable field in the settings schemas, generated from the *_SETTING_GROUPS / *_SETTING_FIELD_SCHEMA exports. The same schemas drive the Lab controls and inspectors. A Lab may place scene/runtime inputs in its Preview controls instead of the saved editor; the Portable column makes that ownership explicit.

Character toon shading

Module: toonlab/toon — 23 groups, 298 fields.

Settings are nested per group: createToonSettings({ rimLight: { intensity: 0.2 } }).

Character toon shading: Base Texture

Preserves source texture, source material color, and saturation policy before toon lighting.

Field Type Default Range / options Portable Description
customSaturation number 1 0 – 2 Yes Configures custom saturation for base texture.
materialColorMode select 'legacy' legacy | source | texture | white Yes Sets the color used by material color mode.
saturationMode select 'legacy' legacy | source | custom Yes Selects the policy used by saturation mode.

Character toon shading: Alpha

Controls cutout, blend, opacity, eye overlay sorting, and transparent decoration behavior.

Field Type Default Range / options Portable Description
blendCutoff number 0.02 0 – 1 Yes Configures blend cutoff for alpha.
costumeCutout boolean true Yes Configures costume cutout for alpha.
cutoutCutoff number 0.35 0 – 1 Yes Configures cutout cutoff for alpha.
ditherOpacity number 1 0 – 1 Yes Configures dither opacity for alpha.
enabled boolean true Yes Turns alpha on or off.
expressionTokenCutout boolean true Yes Configures expression token cutout for alpha.
eyeHighlightOrder number 12 -30 – 30 Yes Controls transparent draw order for eye highlight order.
eyeOrder number 11 -30 – 30 Yes Controls transparent draw order for eye order.
faceCutout boolean true Yes Configures face cutout for alpha.
hairCutout boolean true Yes Configures hair cutout for alpha.
mapTransparentCutout boolean true Yes Configures map transparent cutout for alpha.
overlayDepthWrite boolean false Yes Configures overlay depth write for alpha.
overlayOrder number 20 -30 – 30 Yes Controls transparent draw order for overlay order.
preserveSourceAlphaTest boolean true Yes Configures preserve source alpha test for alpha.
scleraOrder number 10 -30 – 30 Yes Controls transparent draw order for sclera order.
skinCutout boolean true Yes Configures skin cutout for alpha.
sortOverlays boolean true Yes Configures sort overlays for alpha.
sourceAlphaMapCutout boolean true Yes Configures source alpha map cutout for alpha.
sourceTransparentCutout boolean true Yes Configures source transparent cutout for alpha.
transparentOverlayBlend boolean true Yes Configures transparent overlay blend for alpha.
transparentOpacityThreshold number 0.999 0 – 1 Yes Configures transparent opacity threshold for alpha.

Character toon shading: Skin Tone

Keeps skin and face shadows warm, readable, and separate from costume/hair shadows.

Field Type Default Range / options Portable Description
enabled boolean true Yes Turns skin tone on or off.
faceMaxDirectLight number 100 0 – 8 Yes Configures face max direct light for skin tone.
faceMinimumIndirectLight number 0.35 0 – 1 Yes Sets the minimum light floor for face minimum indirect light.
faceShadowBrightness number 1 0 – 2 Yes Configures face shadow brightness for skin tone.
faceShadowSaturation number 1 0 – 2 Yes Configures face shadow saturation for skin tone.
faceShadowTint color [1, 0.92, 0.9] (#ffebe6) Yes Sets the color used by face shadow tint.
faceShadowTintStrength number 1 0 – 8 Yes Controls the blend strength for face shadow tint strength.
skinMaxDirectLight number 100 0 – 8 Yes Configures skin max direct light for skin tone.
skinMinimumIndirectLight number 0.35 0 – 1 Yes Sets the minimum light floor for skin minimum indirect light.
skinShadowBrightness number 0.92 0 – 2 Yes Configures skin shadow brightness for skin tone.
skinShadowSaturation number 1 0 – 2 Yes Configures skin shadow saturation for skin tone.
skinShadowTint color [1, 0.76, 0.74] (#ffc2bd) Yes Sets the color used by skin shadow tint.
skinShadowTintStrength number 1 0 – 8 Yes Controls the blend strength for skin shadow tint strength.

Character toon shading: Face Lighting

Overrides face-area cel response so noses, cheeks, and eyes do not receive harsh body shadows.

Field Type Default Range / options Portable Description
enabled boolean true Yes Turns face lighting on or off.
faceCelMidPoint number -0.48 -1 – 1 Yes Moves the center point for face cel mid point.
faceCelSoftness number 0.22 0 – 1 Yes Controls transition softness for face cel softness.
faceLocalLightLift number 0.22 0 – 1 Yes Configures face local light lift for face lighting.
faceMainLightIgnoreCelShade number 0.45 0 – 1 Yes Configures face main light ignore cel shade for face lighting.
faceNormalProxyBlend number 0.75 0 – 1 Yes Configures face normal proxy blend for face lighting.
faceProxyNormal vector3 [0, 0, 1] Yes Configures face proxy normal for face lighting.
faceSceneShadowStrength number 0.5 0 – 8 Yes Controls the blend strength for face scene shadow strength.
faceSphereBlend number 0.75 0 – 1 Yes Configures face sphere blend for face lighting.
headSpaceMode select 'headBone' static | headBone Yes Selects the policy used by head space mode.

Character toon shading: Cel Shade

Sets the primary directional cel band threshold, softness, and light-ignore amount.

Field Type Default Range / options Portable Description
bodyCelMidPoint number 0.06 -1 – 1 Yes Moves the center point for body cel mid point.
bodyCelSoftness number 0.045 0 – 1 Yes Controls transition softness for body cel softness.
bodyMainLightIgnoreCelShade number 0.02 0 – 1 Yes Configures body main light ignore cel shade for cel shade.
edgeAntiAliasStrength number 1 0 – 8 Yes Controls the blend strength for edge anti alias strength.
enabled boolean true Yes Turns cel shade on or off.

Character toon shading: Shadow Color

Tints and reshapes lit-to-shadow transitions and fully shadowed regions.

Field Type Default Range / options Portable Description
enabled boolean true Yes Turns shadow color on or off.
lowSaturationFallbackColor vector4 [0.3764706, 0.4141177, 0.5019608, 0] Yes Sets the color used by low saturation fallback color.
selfShadowAlbedoMulStrength number 0 0 – 8 Yes Controls the blend strength for self shadow albedo mul strength.
selfShadowAreaHSVStrength number 1 0 – 8 Yes Controls the blend strength for self shadow area h s v strength.
selfShadowAreaHueOffset number 0 -1 – 1 Yes Configures self shadow area hue offset for shadow color.
selfShadowAreaSaturationBoost number 0.2 0 – 2 Yes Configures self shadow area saturation boost for shadow color.
selfShadowAreaValueMul number 0.68 0 – 2 Yes Configures self shadow area value mul for shadow color.
selfShadowTintColor color [1, 1, 1] (#ffffff) Yes Sets the color used by self shadow tint color.
transitionAreaHueOffset number 0.01 -1 – 1 Yes Configures transition area hue offset for shadow color.
transitionAreaIntensity number 1 0 – 8 Yes Controls how strongly transition area intensity contributes.
transitionAreaSaturationBoost number 0.36 0 – 2 Yes Configures transition area saturation boost for shadow color.
transitionAreaTintColor color [1, 1, 1] (#ffffff) Yes Sets the color used by transition area tint color.
transitionAreaValueMul number 1 0 – 2 Yes Configures transition area value mul for shadow color.

Character toon shading: Scene Shadows

Controls how renderer shadow maps darken character materials.

Field Type Default Range / options Portable Description
defaultMinLight number 0.24 0 – 1 Yes Sets the minimum light floor for default min light.
defaultStrength number 0.76 0 – 8 Yes Controls the blend strength for default strength.
enabled boolean true Yes Turns scene shadows on or off.
eyeMinLight number 0.42 0 – 1 Yes Sets the minimum light floor for eye min light.
eyeStrength number 0.05 0 – 8 Yes Controls the blend strength for eye strength.
faceMinLight number 0.42 0 – 1 Yes Sets the minimum light floor for face min light.
faceStrength number 0.46 0 – 8 Yes Controls the blend strength for face strength.
shadowAreaStrength number 0.65 0 – 8 Yes Controls the blend strength for shadow area strength.
skinMinLight number 0.34 0 – 1 Yes Sets the minimum light floor for skin min light.
skinStrength number 0.62 0 – 8 Yes Controls the blend strength for skin strength.

Character toon shading: Self Shadow

Controls character-local self-shadow proxy contribution until a dedicated self-shadow pass exists.

Field Type Default Range / options Portable Description
defaultMinLight number 0.62 0 – 1 Yes Sets the minimum light floor for default min light.
defaultStrength number 0.22 0 – 8 Yes Controls the blend strength for default strength.
enabled boolean true Yes Turns self shadow on or off.
eyeMinLight number 1 0 – 1 Yes Sets the minimum light floor for eye min light.
eyeStrength number 0 0 – 8 Yes Controls the blend strength for eye strength.
faceMinLight number 1 0 – 1 Yes Sets the minimum light floor for face min light.
faceStrength number 0 0 – 8 Yes Controls the blend strength for face strength.
hairMinLight number 0.58 0 – 1 Yes Sets the minimum light floor for hair min light.
hairStrength number 0.26 0 – 8 Yes Controls the blend strength for hair strength.
shadowAreaStrength number 0.5 0 – 8 Yes Controls the blend strength for shadow area strength.
skinMinLight number 0.72 0 – 1 Yes Sets the minimum light floor for skin min light.
skinStrength number 0.16 0 – 8 Yes Controls the blend strength for skin strength.
sourceMode select 2 0 | 1 | 2 Yes Selects the policy used by source mode.

Character toon shading: Average Shadow

Adds averaged shadow visibility used for softer role-specific shadow damping.

Field Type Default Range / options Portable Description
defaultMinLight number 0.28 0 – 1 Yes Sets the minimum light floor for default min light.
defaultStrength number 0.28 0 – 8 Yes Controls the blend strength for default strength.
enabled boolean false Yes Turns average shadow on or off.
measuredBlend number 0.65 0 – 1 Yes Configures measured blend for average shadow.
eyeMinLight number 1 0 – 1 Yes Sets the minimum light floor for eye min light.
eyeStrength number 0 0 – 8 Yes Controls the blend strength for eye strength.
faceMinLight number 1 0 – 1 Yes Sets the minimum light floor for face min light.
faceStrength number 0 0 – 8 Yes Controls the blend strength for face strength.
hairMinLight number 0.3 0 – 1 Yes Sets the minimum light floor for hair min light.
hairStrength number 0.22 0 – 8 Yes Controls the blend strength for hair strength.
skinMinLight number 0.4 0 – 1 Yes Sets the minimum light floor for skin min light.
skinStrength number 0.18 0 – 8 Yes Controls the blend strength for skin strength.
softness number 0.35 0 – 1 Yes Configures softness for average shadow.

Character toon shading: Indirect Light

Mixes ambient, hemisphere, and environment light into toon shading.

Field Type Default Range / options Portable Description
ambientTint color [0.86, 0.91, 1] (#dbe8ff) Yes Sets the color used by ambient tint.
defaultIntensity number 0.35 0 – 8 Yes Controls how strongly default intensity contributes.
defaultMinimumIndirectLight number 0.35 0 – 1 Yes Sets the minimum light floor for default minimum indirect light.
enabled boolean true Yes Turns indirect light on or off.
environmentIndirectLight number 0.56 0 – 1 Yes Configures environment indirect light for indirect light.
eyeIntensity number 0.35 0 – 8 Yes Controls how strongly eye intensity contributes.
eyeMinimumIndirectLight number 0.35 0 – 1 Yes Sets the minimum light floor for eye minimum indirect light.
faceIntensity number 0.35 0 – 8 Yes Controls how strongly face intensity contributes.
faceMinimumIndirectLight object No — local/runtime Sets the minimum light floor for face minimum indirect light.
hairIntensity number 0.35 0 – 8 Yes Controls how strongly hair intensity contributes.
hairMinimumIndirectLight number 0.35 0 – 1 Yes Sets the minimum light floor for hair minimum indirect light.
hemisphereLightIntensity number 0.42 0 – 8 Yes Controls how strongly hemisphere light intensity contributes.
skinIntensity number 0.35 0 – 8 Yes Controls how strongly skin intensity contributes.
skinMinimumIndirectLight object No — local/runtime Sets the minimum light floor for skin minimum indirect light.

Character toon shading: Local Lights

Controls point and spot light response for characters without overpowering cel bands.

Field Type Default Range / options Portable Description
defaultIntensity number 0.72 0 – 8 Yes Controls how strongly default intensity contributes.
defaultMaxContribution number 0.34 0 – 1 Yes Configures default max contribution for local lights.
defaultShadowLift number 0.58 0 – 1 Yes Configures default shadow lift for local lights.
enabled boolean true Yes Turns local lights on or off.
eyeIntensity number 0.42 0 – 8 Yes Controls how strongly eye intensity contributes.
eyeMaxContribution number 0.18 0 – 1 Yes Configures eye max contribution for local lights.
eyeShadowLift number 0.9 0 – 1 Yes Configures eye shadow lift for local lights.
faceIntensity number 0.56 0 – 8 Yes Controls how strongly face intensity contributes.
faceMaxContribution number 0.24 0 – 1 Yes Configures face max contribution for local lights.
faceShadowLift number 0.84 0 – 1 Yes Configures face shadow lift for local lights.
hairIntensity number 0.72 0 – 8 Yes Controls how strongly hair intensity contributes.
hairMaxContribution number 0.34 0 – 1 Yes Configures hair max contribution for local lights.
hairShadowLift number 0.58 0 – 1 Yes Configures hair shadow lift for local lights.
skinIntensity number 0.64 0 – 8 Yes Controls how strongly skin intensity contributes.
skinMaxContribution number 0.3 0 – 1 Yes Configures skin max contribution for local lights.
skinShadowLift number 0.72 0 – 1 Yes Configures skin shadow lift for local lights.

Character toon shading: Rim Light

Adds view-dependent edge light that can be blocked or softened by shadow.

Field Type Default Range / options Portable Description
blockByShadow number 0.65 0 – 1 Yes Configures block by shadow for rim light.
defaultIntensity number 0.13 0 – 8 Yes Controls how strongly default intensity contributes.
defaultTintColor color [0.82, 0.9, 1] (#d1e6ff) Yes Sets the color used by default tint color.
depthCloseWidthReduce number 1 0 – 0.08 Yes Controls the width used by depth close width reduce.
depthDottedLineFix boolean true Yes Configures depth dotted line fix for rim light.
depthFadeEndDistance number 30 0 – 60 Yes Configures depth fade end distance for rim light.
depthFadeRange number 1 0 – 1 Yes Controls transition softness for depth fade range.
depthFadeStartDistance number 20 1 – 100 Yes Configures depth fade start distance for rim light.
depthMask3D boolean false Yes Configures depth mask3 d for rim light.
depthSafeDistance number 1 0 – 1 Yes Configures depth safe distance for rim light.
depthThresholdOffset number 0 -1 – 1 Yes Configures depth threshold offset for rim light.
depthWidth number 1 0 – 0.08 Yes Controls the width used by depth width.
enabled boolean true Yes Turns rim light on or off.
eyeIntensity number 0.04 0 – 8 Yes Controls how strongly eye intensity contributes.
faceIntensity number 0.13 0 – 8 Yes Controls how strongly face intensity contributes.
hairIntensity number 0.23 0 – 8 Yes Controls how strongly hair intensity contributes.
midPoint number 0.48 0 – 1 Yes Configures mid point for rim light.
mixWithBaseMapColor number 0.35 0 – 1 Yes Sets the color used by mix with base map color.
mode select 'depthTexture' fresnel | depthTexture Yes Configures mode for rim light.
skinIntensity number 0.13 0 – 8 Yes Controls how strongly skin intensity contributes.
softness number 0.1 0 – 1 Yes Configures softness for rim light.

Character toon shading: Contact Shadow

Adds thin screen-space contact shadows (hair-on-face, arm-on-torso) from the depth prepass.

Field Type Default Range / options Portable Description
enabled boolean true Yes Turns contact shadow on or off.
strength number 0.5 0 – 1 Yes Configures strength for contact shadow.
faceHeadUpBlend number 0 0 – 1 Yes Configures face head up blend for contact shadow.
faceStrength number 0.4 0 – 8 Yes Controls the blend strength for face strength.
fadeRange number 1 0 – 1 Yes Controls transition softness for fade range.
thresholdOffset number 0 -1 – 1 Yes Configures threshold offset for contact shadow.
width number 1 0 – 1 Yes Configures width for contact shadow.

Character toon shading: Specular

Adds role-aware stylized highlights and optional source specular masks.

Field Type Default Range / options Portable Description
defaultColor color [1, 0.96, 0.9] (#fff5e6) Yes Sets the color used by default color.
defaultIntensity number 0.075 0 – 8 Yes Controls how strongly default intensity contributes.
defaultMidPoint number 0.72 -1 – 1 Yes Moves the center point for default mid point.
defaultPower number 56 1 – 128 Yes Controls the sharpness of default power.
defaultRange number 0.12 0 – 1 Yes Controls transition softness for default range.
defaultShowInShadowArea number 0.25 0 – 1 Yes Configures default show in shadow area for specular.
directionMode select 'light' light | view Yes Selects the policy used by direction mode.
enabled boolean true Yes Turns specular on or off.
eyeIntensity number 0.62 0 – 8 Yes Controls how strongly eye intensity contributes.
eyeMidPoint number 0.35 -1 – 1 Yes Moves the center point for eye mid point.
eyePower number 18 1 – 128 Yes Controls the sharpness of eye power.
eyeRange number 0.18 0 – 1 Yes Controls transition softness for eye range.
eyeShowInShadowArea number 1 0 – 1 Yes Configures eye show in shadow area for specular.
faceIntensity number 0.025 0 – 8 Yes Controls how strongly face intensity contributes.
hairIntensity number 0.18 0 – 8 Yes Controls how strongly hair intensity contributes.
hairPower number 40 1 – 128 Yes Controls the sharpness of hair power.
maskChannel select 0 0 | 1 | 2 | 3 Yes Configures mask channel for specular.
maskMap texture No — local/runtime Configures mask map for specular.
maskStrength number 1 0 – 8 Yes Controls the blend strength for mask strength.
metalIntensity number 0.075 0 – 8 Yes Controls how strongly metal intensity contributes.
skinIntensity number 0.025 0 – 8 Yes Controls how strongly skin intensity contributes.
sourceMaskMode select 'off' off | source Yes Selects the policy used by source mask mode.

Character toon shading: Hair Highlight

Adds hair-specific highlight bands, optional anisotropic strand response, and source masks.

Field Type Default Range / options Portable Description
direction vector3 [0, 1, 0.15] Yes Configures direction for hair highlight.
enabled boolean true Yes Turns hair highlight on or off.
intensity number 0.14 0 – 1 Yes Configures intensity for hair highlight.
maskChannel select 0 0 | 1 | 2 | 3 Yes Configures mask channel for hair highlight.
maskMap texture No — local/runtime Configures mask map for hair highlight.
maskStrength number 1 0 – 8 Yes Controls the blend strength for mask strength.
mode select 'legacy' legacy | anisotropic Yes Configures mode for hair highlight.
shadowFloor number 0.35 0 – 1 Yes Configures shadow floor for hair highlight.
sideBandPower number 2 1 – 128 Yes Controls the sharpness of side band power.
sourceMaskMode select 'off' off | source Yes Selects the policy used by source mask mode.
strandPower number 7 1 – 128 Yes Controls the sharpness of strand power.
uvBandAxis select 0 0 | 1 Yes Configures uv band axis for hair highlight.
uvBandCenter number 0.5 0 – 1 Yes Configures uv band center for hair highlight.
uvBandHalfWidth number 0.5 0 – 0.08 Yes Controls the width used by uv band width.
uvPreset select 'center' center | full | left | right | vertical | wide Yes Selects the policy used by uv preset.

Character toon shading: Eye Highlight

Adds role-aware eye/catchlight boosts and optional source masks.

Field Type Default Range / options Portable Description
color color [1, 1, 1] (#ffffff) Yes Configures color for eye highlight.
enabled boolean true Yes Turns eye highlight on or off.
intensity number 0.58 0 – 1 Yes Configures intensity for eye highlight.
maskChannel select 0 0 | 1 | 2 | 3 Yes Configures mask channel for eye highlight.
maskMap texture No — local/runtime Configures mask map for eye highlight.
maskStrength number 1 0 – 8 Yes Controls the blend strength for mask strength.
power number 22 0 – 44 Yes Configures power for eye highlight.
showInShadowArea number 0.4 0 – 1 Yes Configures show in shadow area for eye highlight.
sourceMaskMode select 'off' off | source Yes Selects the policy used by source mask mode.

Character toon shading: Material Maps

Routes source normal, AO, emissive, MatCap, ramp, detail, roughness, metalness, and specular maps.

Field Type Default Range / options Portable Description
aoStrength number 0 0 – 8 Yes Controls the blend strength for ao strength.
detailRepeat vector2 [1, 1] Yes Configures detail repeat for material maps.
detailStrength number 0 0 – 8 Yes Controls the blend strength for detail strength.
emissiveColor color [1, 1, 1] (#ffffff) Yes Sets the color used by emissive color.
emissiveStrength number 0 0 – 8 Yes Controls the blend strength for emissive strength.
enabled boolean true Yes Turns material maps on or off.
matcapStrength number 0 0 – 8 Yes Controls the blend strength for matcap strength.
metalnessStrength number 0 0 – 8 Yes Controls the blend strength for metalness strength.
normalScale vector2 [1, 1] Yes Configures normal scale for material maps.
normalStrength number 0 0 – 8 Yes Controls the blend strength for normal strength.
rampStrength number 0 0 – 8 Yes Controls the blend strength for ramp strength.
roughnessStrength number 0 0 – 8 Yes Controls the blend strength for roughness strength.
sourceMode select 'source' off | source Yes Selects the policy used by source mode.
specularColorStrength number 0 0 – 8 Yes Controls the blend strength for specular color strength.

Character toon shading: Outlines

Controls the inverted-hull outline pass, including role-specific widths and colors.

Field Type Default Range / options Portable Description
defaultLightingMix number 0.28 0 – 1 Yes Configures default lighting mix for outlines.
defaultMaxBrightness number 0.38 0 – 2 Yes Configures default max brightness for outlines.
defaultMinBrightness number 0.04 0 – 2 Yes Configures default min brightness for outlines.
defaultTintColor color [0.34, 0.33, 0.4] (#575466) Yes Sets the color used by default tint color.
defaultWidth number 0.002 0 – 0.08 Yes Controls the width used by default width.
depthOffset number 0 -1 – 1 Yes Configures depth offset for outlines.
depthTest boolean true Yes Configures depth test for outlines.
depthWrite boolean false Yes Configures depth write for outlines.
enabled boolean true Yes Turns outlines on or off.
eyeLightingMix number 0.28 0 – 1 Yes Configures eye lighting mix for outlines.
eyeMaxBrightness number 0.38 0 – 2 Yes Configures eye max brightness for outlines.
eyeMinBrightness number 0.04 0 – 2 Yes Configures eye min brightness for outlines.
eyeTintColor color [0.34, 0.33, 0.4] (#575466) Yes Sets the color used by eye tint color.
eyeWidth number 0 0 – 0.08 Yes Controls the width used by eye width.
faceLightingMix number 0.28 0 – 1 Yes Configures face lighting mix for outlines.
faceMaxBrightness number 0.48 0 – 2 Yes Configures face max brightness for outlines.
faceMinBrightness number 0.04 0 – 2 Yes Configures face min brightness for outlines.
faceTintColor color [0.62, 0.36, 0.34] (#9e5c57) Yes Sets the color used by face tint color.
faceWidth number 0 0 – 0.08 Yes Controls the width used by face width.
hairCutoutWidth number 0 0 – 0.08 Yes Controls the width used by hair cutout width.
hairLightingMix number 0.08 0 – 1 Yes Configures hair lighting mix for outlines.
hairMaxBrightness number 0.68 0 – 2 Yes Configures hair max brightness for outlines.
hairMinBrightness number 0.085 0 – 2 Yes Configures hair min brightness for outlines.
hairTintColor color [0.72, 0.78, 0.9] (#b8c7e6) Yes Sets the color used by hair tint color.
hairWidth number 0.00055 0 – 0.08 Yes Controls the width used by hair width.
maxWidth number 0.006 0 – 0.08 Yes Controls the width used by max width.
metalLightingMix number 0.28 0 – 1 Yes Configures metal lighting mix for outlines.
metalMaxBrightness number 0.38 0 – 2 Yes Configures metal max brightness for outlines.
metalMinBrightness number 0.04 0 – 2 Yes Configures metal min brightness for outlines.
metalTintColor color [0.34, 0.33, 0.4] (#575466) Yes Sets the color used by metal tint color.
metalWidth number 0.002 0 – 0.08 Yes Controls the width used by metal width.
polygonOffset boolean false Yes Configures polygon offset for outlines.
polygonOffsetFactor number 1 -1 – 1 Yes Configures polygon offset factor for outlines.
polygonOffsetUnits number 1 -1 – 1 Yes Configures polygon offset units for outlines.
referenceDistance number 4 0.5 – 20 Yes Configures reference distance for outlines.
referenceFov number 40 10 – 120 Yes Configures reference fov for outlines.
screenSpaceWidth number 1 0 – 0.08 Yes Controls the width used by screen space width.
smoothNormals boolean true Yes Configures smooth normals for outlines.
widthFadeDistance number 12 1 – 100 Yes Configures width fade distance for outlines.
skinLightingMix number 0.28 0 – 1 Yes Configures skin lighting mix for outlines.
skinMaxBrightness number 0.48 0 – 2 Yes Configures skin max brightness for outlines.
skinMinBrightness number 0.04 0 – 2 Yes Configures skin min brightness for outlines.
skinTintColor color [0.62, 0.36, 0.34] (#9e5c57) Yes Sets the color used by skin tint color.
skinWidth number 0.001 0 – 0.08 Yes Controls the width used by skin width.
transparentOverlayWidth number 0 0 – 0.08 Yes Controls the width used by transparent overlay width.
widthScale number 1 0 – 4 Yes Configures width scale for outlines.

Character toon shading: Glitter

Adds procedural view-dependent sparkles for sparkly costumes and accessories. Off by default.

Field Type Default Range / options Portable Description
enabled boolean false Yes Turns glitter on or off.
intensity number 1 0 – 1 Yes Configures intensity for glitter.
density number 1 0 – 1 Yes Configures density for glitter.
size number 1 0 – 1 Yes Configures size for glitter.
randomNormalStrength number 0.5 0 – 8 Yes Controls the blend strength for random normal strength.
showInShadowArea number 0.15 0 – 1 Yes Configures show in shadow area for glitter.
uvChannel select 1 0 | 1 Yes Configures uv channel for glitter.
defaultIntensity number 1 0 – 8 Yes Controls how strongly default intensity contributes.
eyeIntensity number 0 0 – 8 Yes Controls how strongly eye intensity contributes.
faceIntensity number 0 0 – 8 Yes Controls how strongly face intensity contributes.
hairIntensity number 0 0 – 8 Yes Controls how strongly hair intensity contributes.
skinIntensity number 0 0 – 8 Yes Controls how strongly skin intensity contributes.

Character toon shading: Sticker

Blends a decal/overlay texture into the albedo before lighting (ice, tattoos, damage). Off by default.

Field Type Default Range / options Portable Description
blendMode select 'normal' normal | add | multiply Yes Selects the policy used by blend mode.
enabled boolean false Yes Turns sticker on or off.
map texture No — local/runtime Configures map for sticker.
offset vector2 [0, 0] Yes Configures offset for sticker.
repeat vector2 [1, 1] Yes Configures repeat for sticker.
strength number 1 0 – 1 Yes Configures strength for sticker.
uvChannel select 0 0 | 1 Yes Configures uv channel for sticker.

Character toon shading: Perspective Removal

Flattens perspective around the tracked head for anime-portrait closeups. Off by default.

Field Type Default Range / options Portable Description
amount number 0 0 – 1 Yes Configures amount for perspective removal.
enabled boolean false Yes Turns perspective removal on or off.
radius number 1.4 0 – 2.8 Yes Configures radius for perspective removal.
startHeight number 0 0 – 1 Yes Configures start height for perspective removal.
endHeight number 1 0 – 1 Yes Configures end height for perspective removal.

Character toon shading: Fur

Opt-in shell fur for matched materials (collars, trims, animal parts). Off by default.

Field Type Default Range / options Portable Description
enabled boolean false Yes Turns fur on or off.
shellCount number 8 0 – 16 Yes Configures shell count for fur.
length number 0.02 0 – 1 Yes Configures length for fur.
gravity number 0.35 0 – 1 Yes Configures gravity for fur.
density number 3 0 – 6 Yes Configures density for fur.
rootOffset number -0.2 -1 – 1 Yes Configures root offset for fur.
rootShade number 0.55 0 – 1 Yes Configures root shade for fur.
materials object No — local/runtime Configures materials for fur.
roles object No — local/runtime Configures roles for fur.

Environment shading

Module: toonlab/environment — 2 groups, 87 fields.

Settings are { features, parameters }: createEnvironmentSettings({ parameters: { exposure: 0.95 } }).

Environment shading: Features

Enables or disables individual environment shader feature paths.

Field Type Default Range / options Portable Description
alphaCutout boolean true Yes Turns alpha cutout processing on or off for environment materials.
alphaMap boolean true Yes Turns alpha map processing on or off for environment materials.
ambientLight boolean true Yes Turns ambient light processing on or off for environment materials.
ambientProbe boolean true Yes Turns ambient probe processing on or off for environment materials.
aoMap boolean true Yes Turns ao map processing on or off for environment materials.
aoOverlay boolean true Yes Turns ao overlay processing on or off for environment materials.
directionalLights boolean true Yes Turns directional lights processing on or off for environment materials.
emissive boolean true Yes Turns emissive processing on or off for environment materials.
emissiveMap boolean true Yes Turns emissive map processing on or off for environment materials.
foliageCutout boolean true Yes Turns foliage cutout processing on or off for environment materials.
heightFog boolean true Yes Turns height fog processing on or off for environment materials.
interiorOcclusion boolean true Yes Turns interior occlusion processing on or off for environment materials.
leftSideShadow boolean true Yes Turns side shadow processing on or off for environment materials.
lightMap boolean true Yes Turns lightmap processing on or off for environment materials.
normalMap boolean true Yes Turns normal map processing on or off for environment materials.
packedMap boolean true Yes Turns packed map processing on or off for environment materials.
planarReflection boolean true Yes Turns floor reflection processing on or off for environment materials.
pointLights boolean true Yes Turns point lights processing on or off for environment materials.
shadowMask boolean true Yes Turns shadow mask processing on or off for environment materials.
shadowMesh boolean true Yes Turns shadow mesh processing on or off for environment materials.
skyTint boolean true Yes Turns sky tint processing on or off for environment materials.
specular boolean true Yes Turns specular processing on or off for environment materials.
spotLights boolean true Yes Turns spot lights processing on or off for environment materials.
sunBoost boolean true Yes Turns sun boost processing on or off for environment materials.
untexturedGradient boolean true Yes Turns untextured gradient processing on or off for environment materials.
vertexAo boolean true Yes Turns vertex ao processing on or off for environment materials.
windowCutout boolean true Yes Turns window cutout processing on or off for environment materials.

Environment shading: Shader Parameters

Overrides numeric environment shader uniforms. Auto values preserve material defaults.

Field Type Default Range / options Portable Description
ambientProbeBlend number 0 – 1 Yes Overrides ambient probe blend; leave unset in code to use the material default.
ambientStrength number 0 – 2 Yes Overrides ambient strength; leave unset in code to use the material default.
ambientLightInfluence number 0 – 2 Yes Overrides ambient influence; leave unset in code to use the material default.
aoMapStrength number 0 – 2 Yes Overrides ao map strength; leave unset in code to use the material default.
aoWarmth number 0 – 1 Yes Overrides ao warmth; leave unset in code to use the material default.
bakedGlowStrength number 0 – 2 Yes Overrides baked glow; leave unset in code to use the material default.
cloudShadowCoverage number 0 – 1 Yes Overrides cloud shadow coverage; leave unset in code to use the material default.
cloudShadowScale number 0 – 0.1 Yes Overrides cloud shadow scale; leave unset in code to use the material default.
cloudShadowStrength number 0 – 2 Yes Overrides cloud shadow; leave unset in code to use the material default.
directLightStrength number 0 – 2 Yes Overrides direct light; leave unset in code to use the material default.
emissiveMapStrength number 0 – 2 Yes Overrides emissive map strength; leave unset in code to use the material default.
emissiveStrength number 0 – 2 Yes Overrides emissive strength; leave unset in code to use the material default.
exposure number 0 – 2 Yes Overrides exposure; leave unset in code to use the material default.
heightFogColor color Yes Overrides height fog color; leave unset in code to use the material default.
heightFogDensity number 0 – 0.5 Yes Overrides height fog density; leave unset in code to use the material default.
heightFogFalloff number 0.05 – 600 Yes Overrides height fog falloff; leave unset in code to use the material default.
interiorOcclusionColor color Yes Overrides interior occlusion color; leave unset in code to use the material default.
interiorOcclusionStrength number 0 – 2 Yes Overrides interior occlusion strength; leave unset in code to use the material default.
leftSideShadow number 0 – 1 Yes Overrides side shadow; leave unset in code to use the material default.
leftSideShadowColor color Yes Overrides side shadow color; leave unset in code to use the material default.
lightMapLift number 0 – 1 Yes Overrides lightmap lift; leave unset in code to use the material default.
lightMapStrength number 0 – 2 Yes Overrides lightmap strength; leave unset in code to use the material default.
lightingInfluence number 0 – 2 Yes Overrides lighting influence; leave unset in code to use the material default.
normalMapStrength number 0 – 2 Yes Overrides normal map strength; leave unset in code to use the material default.
packedOcclusionStrength number 0 – 2 Yes Overrides packed occlusion; leave unset in code to use the material default.
planarReflectionFresnel number 0.1 – 8 Yes Overrides floor reflection fresnel; leave unset in code to use the material default.
planarReflectionStrength number 0 – 2 Yes Overrides floor reflection strength; leave unset in code to use the material default.
pointLightStrength number 0 – 2 Yes Overrides point light; leave unset in code to use the material default.
saturation number 0 – 2 Yes Overrides saturation; leave unset in code to use the material default.
shadeSoftness number 0 – 1 Yes Overrides shade softness; leave unset in code to use the material default.
shadeStrength number 0 – 2 Yes Overrides shade strength; leave unset in code to use the material default.
shadowLift number 0 – 1 Yes Overrides shadow lift; leave unset in code to use the material default.
sunShadowStrength number 0 – 2 Yes Overrides sun shadow strength; leave unset in code to use the material default.
shadowTintColor color Yes Overrides shadow tint; leave unset in code to use the material default.
skyGroundTint color Yes Overrides sky ground tint; leave unset in code to use the material default.
skyTintStrength number 0 – 2 Yes Overrides sky tint strength; leave unset in code to use the material default.
skyTopTint color Yes Overrides sky top tint; leave unset in code to use the material default.
specularColor color Yes Overrides specular color; leave unset in code to use the material default.
specularShininess number 1 – 256 Yes Overrides specular shininess; leave unset in code to use the material default.
specularSoftness number 0 – 1 Yes Overrides specular softness; leave unset in code to use the material default.
specularStrength number 0 – 2 Yes Overrides specular strength; leave unset in code to use the material default.
spotLightStrength number 0 – 2 Yes Overrides spot light; leave unset in code to use the material default.
sunBoost number 0 – 1 Yes Overrides sun boost; leave unset in code to use the material default.
sunBoostColor color Yes Overrides sun boost color; leave unset in code to use the material default.
cliffFade number 0 – 1 Yes Overrides cliff fade; leave unset in code to use the material default.
cliffNoiseScale number 0 – 1 Yes Overrides cliff noise scale; leave unset in code to use the material default.
cliffNoiseStrength number 0 – 2 Yes Overrides cliff noise strength; leave unset in code to use the material default.
cliffStart number 0 – 1 Yes Overrides cliff start; leave unset in code to use the material default.
colormapDecode number 0 – 1 Yes Overrides colormap decode; leave unset in code to use the material default.
colormapMode number 0 – 1 Yes Overrides colormap mode; leave unset in code to use the material default.
colormapStrength number 0 – 2 Yes Overrides macro colormap; leave unset in code to use the material default.
dualDetailMix number 0 – 1 Yes Overrides dual detail mix; leave unset in code to use the material default.
dualDetailScale number 0 – 1 Yes Overrides dual detail scale; leave unset in code to use the material default.
triplanarDetail number 0 – 1 Yes Overrides triplanar detail; leave unset in code to use the material default.
triplanarDetailScale number 0.25 – 64 Yes Overrides triplanar detail scale; leave unset in code to use the material default.
triplanarEdgeHighlight number 0 – 1 Yes Overrides rock edge highlight; leave unset in code to use the material default.
untexturedGradientStrength number 0 – 2 Yes Overrides untextured gradient strength; leave unset in code to use the material default.
vtBlendHeight number 0 – 1 Yes Overrides ground melt height; leave unset in code to use the material default.
vtBlendStrength number 0 – 2 Yes Overrides ground melt; leave unset in code to use the material default.
vertexAoStrength number 0 – 2 Yes Overrides vertex ao strength; leave unset in code to use the material default.

Rock shader profile

Module: toonlab/rock-shader — 13 groups, 70 fields.

Reusable grouped material settings consumed by applyRockShader(root, settings). Rock geometry, erosion, seed, LOD, collision, and current scene conditions remain separate.

Rock shader profile: Base Projection

World-space base projection and graphic texture treatment.

Field Type Default Range / options Portable Description
scale number 1.6 0.05 – 256 Yes World-space size of the projected rock texture in meters.
saturation number 0.78 0 – 2 Yes Saturation retained from the projected base texture.
contrast number 1.12 0 – 3 Yes Contrast around the rock projection midpoint.
brightness number 0.015 -1 – 1 Yes Linear brightness offset applied after saturation and contrast.
projectionContrast number 0.62 0.05 – 4 Yes Sharpness of the triplanar blend between projection axes.
sideOnly boolean false Yes Restricts the base projection to side-oriented axes.
nearDetailScale number 1.4 0.05 – 32 Yes World-space size of the close-range detail octave in meters.
nearDetailStrength number 0.24 0 – 1 Yes Strength of close-range geological value breakup.
nearDetailDistance number 55 0.1 – 2000 Yes Camera distance in meters over which the close-range detail octave fades out.

Rock shader profile: Material Response

Shared stone tint and physically based response.

Field Type Default Range / options Portable Description
tint color [0.92, 0.88, 0.8] (#ebe0cc) Yes IP-wide stone tint multiplied over asset color and projected detail.
metallic number 0 0 – 1 Yes Metallic response of ordinary rock surfaces.
smoothness number 0.08 0 – 1 Yes Base smoothness before top-layer masking and wetness.
useSmoothnessTexture boolean false Yes Reads the optional smoothness texture instead of a constant source.
smoothnessContrast number 1 0 – 4 Yes Contrast applied to the optional smoothness texture.
emissiveStrength number 0 0 – 2 Yes Base emission multiplier for deliberately luminous stone styles.

Rock shader profile: Shared Lighting

Rock-specific exposure and shaded-face readability under the current scene lighting.

Field Type Default Range / options Portable Description
exposure number 1 0 – 4 Yes HDR albedo exposure before scene lighting and tone mapping.
ambientFloor number 0.04 0 – 0.4 Yes Albedo-relative indirect floor that keeps downward-facing overhangs readable.
skyFillStrength number 1 0 – 2 Yes Rock-specific strength of the scene sky probe; direct sunlight is unchanged.
skyFillTint color [1, 1, 1] (#ffffff) Yes Rock-specific RGB weighting for indirect sky light and blue back-shadow separation.

Rock shader profile: Shoreline Response

Portable wet-rock response around the current scene water level.

Field Type Default Range / options Portable Description
wetBandWidth number 0.8 0 – 20 Yes Meters around the current water level that receive the wet-rock treatment.
wetBandDarkening number 0.22 0 – 1 Yes Maximum albedo darkening inside the wet band.
wetRoughness number 0.26 0.02 – 1 Yes Roughness approached inside the wet band.

Rock shader profile: Distance Tint

Distance color recession shared by rocks, cliffs, and mountains.

Field Type Default Range / options Portable Description
closeDistance number 18 0 – 2000 Yes World distance where the far tint begins.
farDistance number 140 0.1 – 50000 Yes World distance where the far tint reaches full strength.
color color [0.55, 0.62, 0.66] (#8c9ea8) Yes Atmospheric stone tint used at long distance.
strength number 0.28 0 – 1 Yes Maximum blend toward the far-distance tint.

Rock shader profile: Normal Detail

Near and far normal-detail behavior.

Field Type Default Range / options Portable Description
distance number 75 0.1 – 50000 Yes Distance over which projected normal detail fades.
nearFlatten number 0.08 -0.5 – 1.5 Yes Amount of projected normal flattening near the camera.
farFlatten number 0.75 -0.5 – 1.5 Yes Amount of projected normal flattening at the fade distance.
useSmoothed boolean false Yes Uses an optional authored smoothed-normal texture as the base normal.
normalGreenSign select 1 -1 | 1 Yes Normal-map green-channel convention: 1 retains Y, -1 flips it.

Rock shader profile: Striping

Optional graphic sediment or mineral striping over side faces.

Field Type Default Range / options Portable Description
enabled boolean false Yes Enables the optional side-projected stripe layer.
scale number 3.5 0.05 – 5000 Yes World-space size of the stripe texture.
contrast number 0.8 0 – 4 Yes Contrast of the stripe opacity mask.
color color [0.65, 0.48, 0.3] (#a67a4d) Yes Graphic color overlaid through the stripe mask.

Rock shader profile: Moss Response

Slope-aware moss treatment; current climate coverage remains scene-owned.

Field Type Default Range / options Portable Description
enabled boolean true Yes Enables the style capability for slope-aware moss.
size number 2.4 0.05 – 50 Yes World-space size of the projected moss pattern.
sharpness number 2.4 0 – 8 Yes Sharpness of the upward-facing moss slope mask.
offset number 0.35 -1 – 1 Yes Upward-normal threshold where moss begins.
multiply number 1.6 0 – 6 Yes Strength of the projected moss coverage pattern.
colorPower number 1.25 0.1 – 6 Yes Contrast curve applied to the moss texture color.
lowColor color [0.18, 0.28, 0.09] (#2e4717) Yes Dark end of the shared moss color range.
highColor color [0.42, 0.55, 0.2] (#6b8c33) Yes Light end of the shared moss color range.

Rock shader profile: Top-Layer Mask

Shared upward-facing mask for geological top layers.

Field Type Default Range / options Portable Description
useAssetMask boolean true Yes Multiplies the slope mask by an optional asset-authored top mask.
sharpness number 2.3 0 – 8 Yes Sharpness of the shared upward-facing layer transition.
offset number 0.42 -1 – 1 Yes Upward-normal threshold where top layers begin.

Rock shader profile: Grass Layer

Optional authored grass-over-rock layer, separate from current weather.

Field Type Default Range / options Portable Description
enabled boolean false Yes Enables grass texture projection on the shared top-layer mask.
useGroundShader boolean false Yes Uses the environment ground field for the grass cap color and surface response.
scale number 1.8 0.05 – 50 Yes World-space size of the projected grass texture.
tint color [0.65, 0.78, 0.42] (#a6c76b) Yes Style tint multiplied over the grass layer.
saturation number 0.8 0 – 2 Yes Saturation retained from the grass texture.
emission number 0 0 – 2 Yes Emission multiplier for the grass layer.

Rock shader profile: Snow Layer

Authored snow response; the current snow amount remains runtime state.

Field Type Default Range / options Portable Description
enabled boolean false Yes Enables the material capability for a snow top layer.
scale number 2 0.05 – 50 Yes World-space size of the projected snow texture.
tint color [0.9, 0.95, 1] (#e6f2ff) Yes Shared snow tint.
saturation number 0.3 0 – 2 Yes Saturation retained from the snow texture.
emission number 0 0 – 2 Yes Emission multiplier for the snow layer.

Rock shader profile: Sand Layer

Optional authored sand-over-rock layer and its normal response.

Field Type Default Range / options Portable Description
enabled boolean false Yes Enables sand projection on the shared top-layer mask.
useGroundShader boolean false Yes Uses the environment ground field for the sand cap color and surface response.
scale number 1.5 0.05 – 50 Yes World-space size of the projected sand texture.
tint color [0.82, 0.65, 0.4] (#d1a666) Yes Style tint multiplied over the sand layer.
saturation number 0.65 0 – 2 Yes Saturation retained from the sand texture.
emission number 0 0 – 2 Yes Emission multiplier for the sand layer.
normalScale number 1.5 0.05 – 50 Yes World-space size of the projected sand normal.
normalStrength number 0.35 0 – 2 Yes Strength of the sand-layer normal.
normalRotationDegrees number 30 -180 – 180 Yes Rotation of the sand normal projection in degrees.

Rock shader profile: Asset Integration

How stable asset-authored channels participate in the shared shader.

Field Type Default Range / options Portable Description
sourceAlbedoMode select 'replace' replace | blend | retain Yes Replace gives the strongest cross-library consistency; Blend admits a controlled amount of the imported texture; Retain uses it as the projected base.
sourceAlbedoStrength number 0.2 0 – 1 Yes Imported-albedo influence when Source Albedo is Blend. Ignored by Replace and Retain.
vertexColorStrength number 0.8 0 – 1 Yes Influence of asset-authored vertex color over projected rock detail.
vertexAoStrength number 1 0 – 2 Yes Influence of the asset-authored envVertexAo channel.

Ground shader profile

Module: toonlab/ground-shader — 10 groups, 67 fields.

Reusable grouped terrain-material settings consumed by createGroundShaderMaterial(settings) and createGroundShaderMesh(geometry, settings). Terrain geometry, coverage, LOD, collision, and current scene conditions remain separate.

Ground shader profile: Ground Layers

Coordinated base treatment for the four semantic ground layers.

Field Type Default Range / options Portable Description
grassTint color [0.38, 0.61, 0.3] (#619c4d) Yes Anime meadow tint for lawn and groundcover-painted terrain.
dirtTint color [0.48, 0.43, 0.37] (#7a6e5e) Yes Warm anime-earth tint for trails and exposed soil.
rockTint color [0.58, 0.63, 0.69] (#94a1b0) Yes Cool luminous stone tint for cliffs and embedded-rock layers.
sandTint color [0.88, 0.78, 0.52] (#e0c785) Yes Graphic shoreline tint for beaches and dry sediment.
textureStrength number 1 0 – 1 Yes Strength of authored layer textures relative to the graphic layer tints.
saturation number 1 0 – 2 Yes Saturation applied after splat-layer composition.
contrast number 1 0 – 2.5 Yes Contrast around the ground-color midpoint.
brightness number 0 -0.5 – 0.5 Yes Linear brightness offset after layer composition.

Ground shader profile: Projection

World-space layer scale and steep-surface projection.

Field Type Default Range / options Portable Description
grassScale number 16 0.05 – 64 Yes World-space repeat size in meters for the grass layer.
dirtScale number 13 0.05 – 64 Yes World-space repeat size in meters for the dirt layer.
rockScale number 25 0.05 – 128 Yes World-space repeat size in meters for rock and cliff detail.
sandScale number 10 0.05 – 64 Yes World-space repeat size in meters for sand detail.
triplanarStrength number 1 0 – 1 Yes Strength of triplanar projection on steep surfaces.
triplanarSharpness number 2 0.25 – 12 Yes Sharpness of blending between triplanar projection axes.

Ground shader profile: Macro Variation

Large-scale color variation that prevents flat, repeating terrain.

Field Type Default Range / options Portable Description
amount number 0.16 0 – 1 Yes Primary world-space brightness variation.
scale number 0.045 0.0005 – 0.5 Yes Primary macro-noise frequency in inverse meters.
secondaryAmount number 0.08 0 – 1 Yes Secondary broad variation that breaks the primary pattern.
secondaryScale number 0.012 0.0002 – 0.25 Yes Secondary macro-noise frequency in inverse meters.
tint color [0.74, 0.86, 0.58] (#bddb94) Yes Graphic color introduced through macro variation.
tintStrength number 0.12 0 – 1 Yes Maximum blend toward the macro tint.
rockDetailAmount number 0.3 0 – 1 Yes Triplanar geological value variation applied to steep rock surfaces even when no authored layer map is supplied.
rockDetailScale number 0.42 0.005 – 4 Yes World-space frequency for procedural triplanar cliff detail.
rockStrataAmount number 0.2 0 – 1 Yes Horizontal geological band variation applied to steep cliff surfaces.
rockStrataScale number 0.72 0.01 – 8 Yes Vertical frequency for procedural cliff strata.

Ground shader profile: Slope Response

How steep terrain transitions toward the rock treatment.

Field Type Default Range / options Portable Description
autoRockStrength number 0.82 0 – 1 Yes Maximum automatic rock-layer takeover on steep terrain.
start number 0.18 0 – 1 Yes World-normal slope value where automatic rock begins.
fade number 0.16 0.001 – 1 Yes Width of the grass-to-rock slope transition.
noiseStrength number 0.08 0 – 0.5 Yes World-noise offset that prevents analytic contour bands.
noiseScale number 0.035 0.0005 – 0.5 Yes Frequency of the slope-transition noise.
edgeHighlight number 0.28 0 – 2 Yes Warm graphic lift along the flat-to-cliff transition.

Ground shader profile: Shoreline Response

Response to the current scene water level; the water level itself is never serialized.

Field Type Default Range / options Portable Description
autoSandStrength number 0.55 0 – 1 Yes Automatic blend toward the sand treatment near current water level.
bandWidth number 3.5 0.05 – 40 Yes Meters around water level that can receive automatic sand.
softness number 1.25 0.01 – 20 Yes Softness in meters of the automatic shoreline transition.
wetBandWidth number 0.7 0 – 10 Yes Meters above water level that receive a damp shoreline response.
wetBandDarkening number 0.18 0 – 1 Yes Maximum darkening in the damp shoreline band.

Ground shader profile: Material Response

Shared physically based response for the ground surface.

Field Type Default Range / options Portable Description
roughness number 0.9 0 – 1 Yes Dry ground roughness before current wetness.
metalness number 0 0 – 1 Yes Metallic response for deliberately unusual ground styles.
microOcclusionStrength number 0.16 0 – 1 Yes Subtle broad surface occlusion derived from terrain form and macro variation.
emissiveStrength number 0 0 – 2 Yes Emission multiplier for deliberately luminous ground styles.

Ground shader profile: Lighting

Ground-specific response to the current scene sun and sky.

Field Type Default Range / options Portable Description
sunIntensity number 1 0 – 4 Yes Exposure of sun-facing ground after the graphic light/shade split. Values above one preserve HDR headroom for tone mapping.
backShadowStrength number 0.38 0 – 0.8 Yes Directional value loss on terrain faces turned away from the current sun; keeps cliffs from reading as unlit flat color.
shadowTint color [0.68, 0.74, 0.94] (#adbdf0) Yes Cool tint introduced on surfaces facing away from the current sun.
shadowTintStrength number 0.34 0 – 1 Yes Strength of the cool ground-shadow treatment.
shadowLift number 0.4 0 – 1 Yes Albedo-relative floor retained in shaded ground.
sunTintStrength number 0.18 0 – 1 Yes Influence of current sun color on lit ground.
skyFillStrength number 0.12 0 – 1 Yes Influence of current sky color on shaded ground.
rimStrength number 0.06 0 – 1 Yes View-dependent grazing-angle color lift.

Ground shader profile: Weather Response

How ground responds to current wetness and snow coverage.

Field Type Default Range / options Portable Description
wetDarkening number 0.24 0 – 1 Yes Maximum albedo darkening at full wetness.
wetDesaturation number 0.08 0 – 1 Yes Maximum color desaturation at full wetness.
wetRoughness number 0.38 0 – 1 Yes Roughness approached at full wetness.
snowTint color [0.92, 0.96, 1] (#ebf5ff) Yes Ground snow tint.
snowStrength number 0.92 0 – 1 Yes Maximum visible snow coverage response.
snowSlopeStart number 0.62 -1 – 1 Yes Upward-normal threshold where snow begins to remain.
snowSoftness number 0.22 0.001 – 1 Yes Softness of the snow slope transition.

Ground shader profile: Print Response

How printable dirt, sand, and snow respond to transient footprint and track stamps.

Field Type Default Range / options Portable Description
strength number 1 0 – 1 Yes Master visibility of the transient Ground Print Layer.
dirtStrength number 0.7 0 – 1 Yes Printability of the painted dirt layer.
sandStrength number 1 0 – 1 Yes Printability of the painted sand layer.
snowStrength number 1 0 – 1 Yes Printability of current snow once scene snow depth is sufficient.
depressionDarkening number 0.28 0 – 1 Yes Albedo darkening inside compressed or displaced material.
rimLightening number 0.22 0 – 1 Yes Graphic lift on the raised edge around a print.
normalStrength number 1.4 0 – 6 Yes World-space normal relief derived from the print field.
compactedRoughness number 0.5 0 – 1 Yes Roughness approached inside compacted prints.

Ground shader profile: Distance Treatment

Atmospheric recession and detail simplification over viewing distance.

Field Type Default Range / options Portable Description
start number 500 0 – 10000 Yes Distance in meters where atmospheric ground tint begins.
end number 15000 1 – 50000 Yes Distance in meters where atmospheric tint reaches full strength.
color color [0.59375, 0.59375, 0.59375] (#979797) Yes Atmospheric ground color at long distance.
strength number 0.5 0 – 1 Yes Maximum blend toward the far-distance color.
detailFade number 1 0 – 1 Yes Amount of high-frequency texture and macro detail removed at range.

Water

Module: toonlab/water — 7 groups, 82 fields.

Flat authored settings for WaterSurface; live sun/sky and Weather wave energy compose through transient scene layers without changing portable water.settings. Quality is a construction-time graph policy.

Water: Waves

Gerstner swell and detail ripple shaping.

Field Type Default Range / options Portable Description
waveIntensity number 0.25 0 – 1 Yes Authored baseline from glassy mirror (0) to storm swell (1); scene weather can transiently modulate it without changing the preset.
waterLevel number 0.36 0 – 4 Yes World-space rest height of the surface; waves and run-up displace around it.
waveAmplitude number 0.3 0 – 5 Yes Largest wave amplitude in meters at full intensity; 5 gives a 10 m crest-to-trough swell.
shoalingDepth number 1.4 0.05 – 12 Yes Column depth in meters at which waves reach full height; shallower water shrinks them (needs a bed height sampler).
shorelineWaves number 0.35 0 – 1 Yes Fraction of wave height that keeps rolling through the shallows as surf before dying at the waterline.
shorelineRunup number 0.6 0 – 3 Yes How far incoming waves wash a thin foam film up the beach; reach scales with wave energy.
runupDistance number 0 0 – 15 Yes Maximum horizontal reach in meters. Wave groups vary each event from 80–100%, and each backwash hands its endpoint into the next uprush. 0 lets wave energy decide.
breakerEnabled boolean true Yes Master switch for the breaker system; off removes the mesh and skips all breaker work (for perf A/B).
breakerAmount number 0 0 – 1 Yes Dedicated curling breaker shells along the break line; 0 disables the system (needs a bed height sampler).
breakerCurl number 0.8 0 – 1 Yes Lip pitch: 0 spills down the face, 1 curls a full surfable tunnel.
breakerScale number 1 0.25 – 3 Yes Shell height multiplier over the physical breaking height (0.72x column depth).
breakerPeel number 1 0 – 4 Yes How fast the barrel section travels sideways along the crest line.
waveLength number 7.5 1 – 120 Yes Longest wavelength in meters; smaller waves are derived from it. Big swells need long wavelengths to stay stable.
waveSteepness number 0.75 0 – 1.4 Yes Gerstner chop; higher values pinch crests sharper.
waveSpeed number 1 0 – 4 Yes Phase speed multiplier over the deep-water dispersion.
waveDirection vector2 [1, 0.35] Yes Main travel direction of the swell in the XZ plane.
waveDirectionSpread number 0.65 0 – 1 Yes 0 keeps all waves aligned (river); 1 spreads them omnidirectionally (open sea). The primary swell always follows Wave Direction exactly.
waveSetPeriod number 60 8 – 600 Yes Seconds between wave-set peaks at a fixed point; big waves arrive in groups, not every period.
waveSetStrength number 0.5 0 – 1 Yes Depth of the set/lull cycle: 0 = constant swell, 1 = the swell dies completely between sets.
detailNormalStrength number 0.32 0 – 2 Yes Strength of the procedural micro-ripple normal detail.
detailScale number 1.15 0.05 – 8 Yes Spatial frequency of the micro-ripple detail.
flowDirection vector2 [0.72, -0.18] Yes Scroll direction for detail ripples, foam noise, and sparkles.
flowSpeed number 0.3 0 – 4 Yes Scroll speed for surface detail; high values read as a river current.

Water: Surface

Water body color, refraction, and caustics.

Field Type Default Range / options Portable Description
colorTone select 'classic' classic | anime | teal | caribbean | lagoon | deepOcean Yes Named body-color palette forced over the preset colors; classic returns control to the preset.
shallowColor color [0.42, 0.85, 0.88] (#6bd9e0) Yes Water tint right at the shoreline.
midColor color [0.2, 0.62, 0.8] (#339ecc) Yes Water tint at moderate depth.
deepColor color [0.1, 0.38, 0.6] (#1a6199) Yes Water tint where the bottom is no longer visible.
depthFadeDistance number 1 0.05 – 12 Yes Water column depth where the shallow tint gives way to mid.
deepFadeDistance number 2.2 0.05 – 24 Yes Additional depth where mid fades to the deep tint.
opacity number 0.8 0 – 1 Yes Base transparency when no scene color grab pass is bound.
refractionStrength number 0.35 0 – 2 Yes Screen-space distortion of the underwater scene.
indexOfRefraction number 1.333 1.0001 – 1.8 Yes Index of refraction used by the underwater Snell window and total internal reflection.
underwaterTransmission number 1 0 – 1 Yes Visibility of the real above-water scene through the surface from below.
underwaterTintStrength number 0.35 0 – 1 Yes Stylized water-color tint applied to the view through the surface.
causticsStrength number 0.55 0 – 3 Yes Brightness of the procedural voronoi caustics on the bottom.
causticsScale number 0.8 0.05 – 8 Yes Spatial frequency of the caustic web.
causticsSpeed number 0.6 0 – 4 Yes Animation speed of the caustic web.

Water: Foam

Shoreline foam, whitecaps, and wake foam.

Field Type Default Range / options Portable Description
foamColor color [0.94, 1, 0.99] (#f0fffc) Yes Color of all foam: shoreline, whitecaps, wakes, and splashes.
foamAmount number 1 0 – 2 Yes Offshore contact foam, whitecap, and wake gain.
swashFoamAmount number 1.15 0 – 2 Yes Independent gain for torn foam carried up and back down the beach.
swashFoamLifetime number 4 0.25 – 30 Yes Seconds fresh aerated swash foam remains before thinning into residue.
swashFoamResidueLifetime number 10 0.5 – 60 Yes Seconds fragmented beach foam persists and drifts after the active front passes.
wetSandDryTime number 120 2 – 600 Yes Seconds saturated sand takes to return to its dry color after the water retreats.
wetSandDarkening number 0.58 0 – 1 Yes How strongly remembered moisture darkens exposed sand.
wetSandSheen number 0.78 0 – 1 Yes Strength of the short-lived glossy water film left on freshly exposed sand.
foamContactDistance number 0.4 0.02 – 4 Yes Depth difference covered by the solid contact foam band.
foamLineSpacing number 0.55 0.05 – 4 Yes Spacing of the animated lapping foam lines off the shore.
foamNoiseScale number 0.6 0.05 – 8 Yes Breakup noise frequency for foam edges.
whitecapAmount number 0.05 0 – 1 Yes Coverage of breaking crests on open water.
rippleFoamStrength number 0.8 0 – 3 Yes Foam intensity left behind by interactive ripples and wakes.

Water: Lighting

Authored fallback sun/sky plus water-specific glint, fresnel, and reflection response.

Field Type Default Range / options Portable Description
sunDirection vector3 [0.35, 0.8, 0.45] Yes Authored fallback direction toward the sun when no live scene-light override is connected.
sunColor color [1, 0.96, 0.86] (#fff5db) Yes Authored fallback sun tint for glints, sparkles, and caustics; a live scene rig may replace it transiently.
specularStrength number 0.8 0 – 3 Yes Toon sun-glint intensity.
specularShininess number 150 4 – 2000 Yes Glint tightness; higher is smaller and sharper.
specularStretch number 0.35 0 – 0.95 Yes Elongates glints along the sun azimuth into a sparkling sun path.
sparkleStrength number 0.5 0 – 3 Yes Twinkling star-glint intensity.
sparkleScale number 1.5 0.1 – 16 Yes Density of the sparkle field.
sparkleSpeed number 1 0 – 6 Yes How quickly sparkles twinkle in and out.
sunGlowStrength number 0.85 0 – 3 Yes Sun disk glow in the procedural sky reflection.
sceneShadowStrength number 0.6 0 – 1 Yes How strongly cast shadows from rocks, trees, and the character darken the surface.
fresnelStrength number 0.9 0 – 2 Yes Grazing-angle reflectivity boost.
fresnelPower number 4.5 0.5 – 12 Yes Falloff of the fresnel band toward the horizon.
fresnelBias number 0.16 0 – 0.6 Yes Sky-tint floor at steep angles; higher reads more anime-blue.
fresnelColor color [0.68, 0.9, 1] (#ade6ff) Yes Additive rim tint at grazing angles.
skyZenithColor color [0.5, 0.74, 0.98] (#80bdfa) Yes Authored fallback procedural sky-reflection color overhead when no live scene sky is connected.
skyHorizonColor color [0.86, 0.95, 1] (#dbf2ff) Yes Authored fallback procedural sky-reflection color at the horizon when no live scene sky is connected.
reflectionStrength number 0.62 0 – 1.5 Yes Planar/sky reflection mix, weighted by fresnel.
reflectionDistortion number 0.04 0 – 0.3 Yes How much waves shatter the reflection.
reflectionSoftness number 0.55 0 – 1 Yes Blends sharp planar reflections toward the soft procedural sky (milky anime look).

Water: Ripples

Interactive ripple simulation response.

Field Type Default Range / options Portable Description
rippleStrength number 1 0 – 6 Yes Global multiplier for splash and wake impulses.
rippleDamping number 0.985 0.9 – 0.999 Yes Energy retained per frame; higher rings travel farther.
ripplePropagation number 11 1 – 40 Yes Travel speed of interactive rings across the surface.
rippleHeightScale number 1 0 – 4 Yes Vertical displacement of the interactive ripples.
rippleFoamDecay number 0.94 0.5 – 0.999 Yes How long wake foam lingers.
rippleFoamGain number 2.4 0 – 12 Yes How quickly motion generates wake foam.

Water: Splashes

Procedural splash droplets, spray, and rings.

Field Type Default Range / options Portable Description
splashStrength number 1 0 – 3 Yes Global multiplier for splash particle counts and energy.
splashScale number 1 0.1 – 4 Yes Physical size multiplier for droplets, spray, and rings.
splashDropletCount number 26 0 – 120 Yes Droplets emitted by a strength-1 splash.
splashRingCount number 2 0 – 4 Yes Expanding foam rings emitted per splash.
splashColor color [0.97, 1, 1] (#f7ffff) Yes Bright tone of droplets and spray.
splashShadeColor color [0.62, 0.86, 0.95] (#9edbf2) Yes Shadow tone of the two-tone splash shading.

Water: Quality

Shader quality tier gating caustics, sparkles, and noise octaves.

Field Type Default Range / options Portable Description
quality select 'high' low | medium | high Yes Named quality tier: low drops caustics and sparkles, high adds chromatic caustics and extra detail octaves.

Post-processing

Module: toonlab/post — 2 groups, 44 fields.

Settings are { features, parameters }: createPostProcessingSettings({ preset: "softAnime" }).

Post-processing: Features

Toggles for each optional screen-space effect in the final composite pass.

Field Type Default Range / options Portable Description
atmosphere boolean false Yes Two-layer stylized atmosphere: distance/height mix fog plus an additive sun/moon glow halo, colored by the scene environment state.
bloom boolean false Yes Adds glow around pixels brighter than the bloom threshold.
colorGrade boolean false Yes Applies exposure, contrast, saturation, and warmth grading.
depthCue boolean false Yes Fades distant pixels toward the depth cue color for atmospheric depth.
enabled boolean false Yes Forces the post-processing composite pass on, even with no individual effect active.
motionBlur boolean false Yes Blurs camera movement by reprojecting the previous frame (camera motion only).
screenOutline boolean false Yes Draws screen-space outlines from depth and luminance edges.
vignette boolean false Yes Darkens the frame toward the corners.
verticalGrade boolean false Yes Adds warm light at the top of the frame and darkening at the bottom.

Post-processing: Parameters

Tuning values used by the post-processing effects when their feature toggles are on.

Field Type Default Range / options Portable Description
bloomBackgroundSuppress number 1 0 – 2 Yes Scales bloom gathered from non-character pixels when a character mask is connected.
bloomCharacterBoost number 1 0 – 4 Yes Scales bloom gathered from character pixels when a character mask is connected.
bloomLevels number 5 2 – 8 Yes Number of mip levels in the pyramid bloom chain (pyramid mode only).
bloomMode select 'single' single | pyramid Yes Selects the one-pass 9-tap bloom or the wider multi-pass pyramid bloom.
bloomRadius number 0.16 0 – 1 Yes Controls how far the bloom glow spreads from bright pixels.
bloomStrength number 0 0 – 2 Yes Controls how strongly bloom is added to the image.
bloomThreshold number 0.995 0 – 1 Yes Sets the luminance above which pixels start to bloom.
bottomDark number 0 0 – 1 Yes Darkens the lower part of the frame in the vertical grade.
atmosphereBaseHeight number 0 -100 – 500 Yes World height where atmosphere fog is densest; fog thins above it.
atmosphereFar number 900 10 – 4000 Yes View distance in meters where atmosphere fog reaches full strength.
atmosphereGlowStrength number 1 0 – 3 Yes Multiplier on the environment-state sun/moon glow fog.
atmosphereHeightFalloff number 0.012 0 – 0.2 Yes How quickly atmosphere fog thins with altitude above the base height.
atmosphereNear number 60 0 – 1000 Yes View distance in meters where atmosphere fog starts.
atmosphereStrength number 0.55 0 – 1 Yes Maximum blend of the atmospheric mix fog.
contrast number 1 0 – 2 Yes Scales contrast around mid gray in the color grade.
depthCueColor color [0.3371636150376657, 0.4735314961384573, 0.6866853124288864] (#5679af) Yes Sets the color distant pixels fade toward.
depthCueFar number 24 0 – 200 Yes Sets the depth at which the depth cue reaches full strength.
depthCueNear number 1 0 – 50 Yes Sets the depth at which the depth cue starts to appear.
depthCueStrength number 0 0 – 1 Yes Controls how strongly distant pixels blend toward the depth cue color.
exposure number 1 0 – 4 Yes Multiplies overall image brightness in the color grade.
lutMap texture No — local/runtime Optional 2D-strip color LUT texture (runtime only, not serialized).
lutSize number 0 0 – 64 Yes Slice size of the LUT strip; 0 derives it from the texture height.
lutStrength number 0 0 – 1 Yes Controls how strongly the LUT recolors the graded image.
motionBlurStrength number 0.55 0 – 2 Yes Scales the camera-reprojection blur distance along the motion vector.
outlineColor color [0.005181516700061659, 0.006512090790025684, 0.010329823026364548] (#010203) Yes Sets the color drawn on detected screen-space edges.
outlineDepthStrength number 0.16 0 – 2 Yes Controls how strongly depth discontinuities contribute to outlines.
outlineLumaStrength number 0.04 0 – 2 Yes Controls how strongly luminance edges contribute to outlines.
outlineStrength number 0 0 – 2 Yes Controls the overall opacity of screen-space outlines.
saturation number 1 0 – 2 Yes Scales color saturation in the color grade.
strength number 1 0 – 1 Yes Blends between the raw render and the full post-processing result.
topLight number 0 0 – 1 Yes Adds warm light to the upper part of the frame in the vertical grade.
vignetteRadius number 0.55 0 – 1 Yes Sets the distance from the frame center where the vignette starts.
vignetteSoftness number 0.34 0 – 1 Yes Controls the falloff width of the vignette edge.
vignetteStrength number 0 0 – 1 Yes Controls how strongly the vignette darkens the frame edges.
warmth number 0 -1 – 1 Yes Shifts the color grade warmer (positive) or cooler (negative).

Vegetation shader family

Module: toonlab/vegetation-shaders — 8 groups, 104 fields.

Shared field registry for three independent portable profiles: Tree uses Shared/Foliage/Bark groups, Grass uses Shared/Grass groups, and Flower uses Shared/Foliage/Flower/Stem groups. Asset geometry, species, albedo, and current scene weather remain separate.

Vegetation shader family: Shared Lighting

IP-wide light and shadow treatment shared by every vegetation surface.

Field Type Default Range / options Portable Description
shadowTint color [0.36, 0.4, 0.58] (#5c6694) Yes Cool treatment tint mixed into shadowed vegetation without replacing its albedo.
shadowTintStrength number 1 0 – 1 Yes Strength of the shared shadow tint treatment.
sunTintStrength number 0.25 0 – 1 Yes How strongly the active sun color tints lit vegetation.
skyFillStrength number 0.08 0 – 0.5 Yes Shared sky-color fill in unlit vegetation regions.
rimStrength number 0.12 0 – 1 Yes View-dependent silhouette fill shared by vegetation surfaces.
rimPower number 3 0.5 – 12 Yes Falloff exponent of the shared vegetation rim.

Vegetation shader family: Thin Surfaces

Lighting shared by thin blades, leaf cards, and petals.

Field Type Default Range / options Portable Description
diffuseWrap number 0.5 0 – 1 Yes Wraps direct light around thin surfaces so back faces remain readable.
transmissionStrength number 0.35 0 – 2 Yes Shared sunlight transmission through blades, leaves, and petals.
transmissionPower number 3.5 0.5 – 12 Yes Angular concentration of thin-surface transmission.
transmissionShadowFloor number 0.35 0 – 1 Yes Minimum transmission that remains inside cast or cloud shadow.
normalUpBias number 0 0 – 1 Yes Biases thin-surface shading normals toward world up.
twoSidedLighting number 1 0 – 1 Yes Blends back-face normals into the shared thin-surface lighting model.

Vegetation shader family: Weather Response

How the IP shades wetness and snow; current weather amounts remain scene-owned.

Field Type Default Range / options Portable Description
wetDarkening number 0.15 0 – 1 Yes Maximum albedo darkening applied by wetness.
wetDesaturation number 0.05 0 – 1 Yes Maximum desaturation applied by wetness.
wetHighlightStrength number 0.2 0 – 1 Yes Stylized highlight added to wet vegetation.
snowTint color [0.92, 0.96, 1] (#ebf5ff) Yes Vegetation-domain multiplier over the selected shared Snow Surface profile. The Snow Surface shader owns the base powder and shadow colors.
snowShadowStrength number 0.65 0 – 1 Yes Vegetation-domain light visibility retained over the shared Snow Surface shadow body.
snowEdgeSoftness number 0.2 0 – 1 Yes Softness of snow coverage transitions.

Vegetation shader family: Grass

Grass-only color, surface, lighting, dense-field, gust, and bend treatment.

Field Type Default Range / options Portable Description
styleColorStrength number 0 0 – 1 Yes Blend from asset-authored blade color to the style-owned root and tip treatment.
baseColor color [0.16, 0.34, 0.08] (#295714) Yes Style-owned anime grass-root color.
tipBrightness number 0.1 -1 – 1 Yes Brightness added to root color before the blade-tip saturation and hue treatment.
tipDesaturation number -0.35 -1 – 1 Yes Tip desaturation. Negative values increase saturation for a graphic anime gradient.
tipHueShift number -0.06 -1 – 1 Yes Normalized HSV hue rotation applied to blade tips.
roughness number 0.5 0 – 1 Yes Grass surface roughness used by the stylized highlight response.
specularStrength number 0.04 0 – 1 Yes Grass direct-light highlight strength.
emissiveStrength number 0 0 – 2 Yes Albedo-relative emission before scene exposure.
backlitStrength number 0.4 0 – 1.5 Yes Grass transmission multiplier.
sceneShadowResponse number 0.7 0 – 1 Yes Grass response to renderer shadow visibility.
cloudShadowResponse number 0.35 0 – 1 Yes Grass response to the scene cloud-shadow field.
bandThreshold number 0.49 0 – 1 Yes Center of the grass direct-light toon transition.
bandSoftness number 0.1 0 – 0.5 Yes Width of the grass direct-light toon transition.
shadowFloor number 0.35 0 – 1 Yes Minimum grass brightness in full shadow.
rootOcclusionStrength number 0.36 0 – 1 Yes Dense-field darkening at blade roots.
rootOcclusionHeight number 0.62 0.01 – 1 Yes Blade height over which root occlusion fades.
tipGradientStart number 0.1 0 – 1 Yes Blade fraction where the root-to-tip material gradient begins.
tipGradientEnd number 0.95 0 – 1 Yes Blade fraction where the root-to-tip material gradient completes.
colorVariationStrength number 0.2 0 – 1 Yes Seeded blade luminance variation.
gustSheenThreshold number 0.78 0 – 1 Yes Gust value where the blade-tip sheen begins.
gustSheenStrength number 0.22 0 – 1 Yes Strength of the moving gust sheen.
bendExponent number 2 0.5 – 6 Yes Root-to-tip curve used by wind and interaction deformation.
interactionResponse number 1 0 – 2 Yes Grass deformation response to a scene-owned interaction field.

Vegetation shader family: Foliage

Leaf-card gradient shaping, surface, subsurface, and canopy-volume treatment over the asset-authored foliage palette.

Field Type Default Range / options Portable Description
styleColorStrength number 0 0 – 1 Yes Legacy aggregate-only blend into a global replacement palette. Canonical Tree and Flower Shader profiles preserve asset-authored foliage colors.
mainColor color [0.040915, 0.135633, 0.015209] (#0a2304) Yes Legacy aggregate-only replacement color. Canonical profiles read the primary foliage color from the asset or species recipe.
gradientColor color [0.076185, 0.198069, 0.016807] (#133304) Yes Legacy aggregate-only replacement color. Canonical profiles read the secondary foliage color from the asset or species recipe.
gradientOffset number 0.088 -1 – 1 Yes Offsets the normalized height transfer applied over the asset-authored foliage palette.
gradientContrast number 0.821665 -1 – 4 Yes Shapes the normalized height transfer applied over the asset-authored foliage palette.
hueVariation number 0.1 0 – 1 Yes Style-owned hue-variation amplitude; the stable per-card seed remains asset or instance data.
hueShift number 0 -1 – 1 Yes Style-wide normalized HSV rotation applied after resolving the asset-authored foliage palette.
roughness number 0.75 0 – 1 Yes Roughness of the stylized leaf highlight response over any asset-authored surface inputs.
specularStrength number 0.1 0 – 1 Yes Leaf direct-light highlight strength.
emissiveStrength number 0.25 0 – 2 Yes Albedo-relative leaf emission before scene exposure.
subsurfaceStrength number 0.8 0 – 2 Yes Strength of foliage back-light transmission.
subsurfaceOpacity number 0.3 0 – 1 Yes Opacity retained by foliage transmission.
backlitStrength number 0.35 0 – 1.5 Yes Foliage transmission multiplier.
sceneShadowResponse number 0.55 0 – 1 Yes Foliage response to renderer shadow visibility.
cloudShadowResponse number 0 0 – 1 Yes Foliage response to the scene cloud-shadow field.
bandThreshold number 0.47 0 – 1 Yes Center of the foliage direct-light toon transition.
bandSoftness number 0.18 0 – 0.5 Yes Width of the foliage direct-light toon transition.
crestThreshold number 0.72 0 – 1 Yes Center of the high crown-color crest band.
crestSoftness number 0.12 0 – 0.5 Yes Width of the high crown-color crest band.
crownOcclusionStrength number 0.2 0 – 1 Yes Additional darkening inside renderer-shadowed crowns.
spriteLuminanceStrength number 0.36 0 – 1 Yes Influence of painted leaf-sprite luminance.
cardVariationStrength number 0.16 0 – 1 Yes Seeded per-card luminance variation.
transmissionPowerMultiplier number 1 0.25 – 3 Yes Foliage multiplier over the shared thin-surface transmission concentration.

Vegetation shader family: Flower

Shared petal/center cutout, surface, lighting, and subsurface treatment across flower variants.

Field Type Default Range / options Portable Description
textureTint color [1, 1, 1] (#ffffff) Yes Legacy aggregate-only replacement tint. Canonical Flower Shader profiles preserve the asset/species petal and center palette.
tintStrength number 1 0 – 1 Yes Legacy aggregate-only strength for the replacement flower tint.
roughness number 0.5 0 – 1 Yes Flower surface roughness used by the stylized highlight response.
specularStrength number 0.05 0 – 1 Yes Flower direct-light highlight strength.
emissiveStrength number 0 0 – 2 Yes Albedo-relative flower emission before scene exposure.
subsurfaceStrength number 0.3 0 – 2 Yes Strength of petal back-light transmission.
subsurfaceOpacity number 0.08 0 – 1 Yes Opacity retained by petal transmission.
backlitStrength number 0.35 0 – 1.5 Yes Petal transmission multiplier.
sceneShadowResponse number 0.85 0 – 1 Yes Flower response to renderer shadow visibility.
bandThreshold number 0.5 0 – 1 Yes Center of the flower direct-light toon transition.
bandSoftness number 0.1 0 – 0.5 Yes Width of the flower direct-light toon transition.
unlitPetalLift number 0.35 0 – 1 Yes Petal-tinted floor for unlit petal faces.
cupDarkeningStrength number 0.1 0 – 1 Yes Stylized darkening toward curved petal edges.
petalTransmissionMultiplier number 1 0 – 2 Yes Flower-family multiplier over shared thin-surface transmission.
centerLightResponse number 0.8 0 – 2 Yes Direct-light response of flower centers relative to petals.
centerShadowResponse number 1 0 – 2 Yes Shadow response of flower centers relative to petals.

Vegetation shader family: Bark / Woody Surface

Opaque woody color, texture projection, surface, and lighting treatment for trunks, branches, and roots.

Field Type Default Range / options Portable Description
tint color [0.938, 0.3752, 0] (#ef6000) Yes Style tint mixed over the asset-authored bark color.
tintStrength number 0 0 – 1 Yes Strength of the bark style tint.
roughness number 1 0 – 1 Yes Bark roughness used by the stylized highlight response.
normalFlatness number 0 0 – 1 Yes Amount of asset-authored bark normal detail flattened by the style.
emissiveStrength number 0 0 – 2 Yes Albedo-relative bark emission before scene exposure.
bandCount number 3 2 – 6 Yes Cel bands across the woody light-to-shadow ramp.
bandSoftness number 0 0 – 1 Yes Continuous softness of woody toon-band transitions.
shadowFloor number 0.35 0 – 0.9 Yes Minimum brightness of a fully shadowed woody surface.
sunTintStrength number 0.15 0 – 1 Yes Sun-color tint applied to lit bark.
skyFillStrength number 0.04 0 – 0.5 Yes Sky-color fill applied to shaded bark.
rimStrength number 0 0 – 1 Yes View-dependent woody silhouette fill.
specularStrength number 0 0 – 1 Yes Stylized bark highlight strength.
verticalShadeStrength number 0 0 – 1 Yes World-up gradient used to ground trunks without changing their albedo.

Vegetation shader family: Herbaceous Stem

Smooth herbaceous stem surface and lighting treatment, intentionally separate from woody bark.

Field Type Default Range / options Portable Description
color color [0.155926, 0.332452, 0.066626] (#285511) Yes Legacy aggregate-only replacement color. Canonical Flower Shader profiles read herbaceous stem color from the plant asset/species recipe.
colorStrength number 0 0 – 1 Yes Legacy aggregate-only blend into the replacement stem color.
roughness number 0.5 0 – 1 Yes Stem surface roughness used by the stylized highlight response.
specularStrength number 0.05 0 – 1 Yes Stem direct-light highlight strength.
emissiveStrength number 0 0 – 2 Yes Albedo-relative stem emission before scene exposure.
bandCount number 3 2 – 6 Yes Cel bands across herbaceous stems.
bandSoftness number 0.08 0 – 1 Yes Softness of herbaceous stem toon bands.
shadowFloor number 0.42 0 – 0.9 Yes Minimum brightness of a fully shadowed stem.
transmissionStrength number 0.08 0 – 1 Yes Subtle light transmission through green stems.
skyFillStrength number 0.06 0 – 0.5 Yes Additional stem sky-color fill over the shared vegetation fill.
rimStrength number 0.02 0 – 1 Yes View-dependent stem silhouette fill.

Grass

Module: toonlab/vegetation — 9 groups, 30 fields.

Flat settings consumed by new StylizedGrassField(options) and grass.applySettings(options). Portable grass preset v2 stores asset geometry, palette/material, and windResponse / gustResponse; current light, wind/gust field, cloud field, and push radius are scene/runtime inputs.

Grass: Blades

Random blade dimensions baked into the instance attributes when the field is built. Construction-only.

Field Type Default Range / options Portable Description
bladeHeightRange vector2 [0.16, 0.42] Yes Min/max blade height in meters for placements without an explicit height. Construction-only: baked into instance attributes.
bladeWidthRange vector2 [0.05, 0.085] Yes Min/max blade width in meters for placements without an explicit width. Construction-only: baked into instance attributes.
bladesPerClump number 1 1 – 64 Yes Blades grown from each placement or authored into each paintable clump mesh. 1 keeps the classic lone-blade field; the first-party meadow clump uses 40. Construction-only.
clumpRadius number 0.055 0 – 1 Yes Base scatter radius in meters for the extra blades of a clump. Small values read as one tuft; larger values loosen the clump. Construction-only.
leanStrength number 1 0 – 2 Yes Authored static splay of each blade before live wind and interaction. Low values form clean upright meadow strokes; high values form wild bent grass.

Grass: Motion

Asset-level flexibility: how this grass responds when a scene supplies wind and gusts.

Field Type Default Range / options Portable Description
windResponse number 1 0 – 8 Yes Asset flexibility multiplier applied to the current scene wind strength. 1 preserves the authored baseline; 0 keeps blades still.
gustResponse number 1 0 – 4 Yes How strongly this grass follows gust bands relative to its regular wind sway.

Grass: Palette

The blades' coordinated base, tip, and material shadow colors — the grass's identity, whatever the scene lighting does. Magical blue grass welcome.

Field Type Default Range / options Portable Description
baseColor color [0.42, 0.68, 0.24] (#6bad3d) Yes Blade color at the root.
tipColor color [0.74, 0.9, 0.42] (#bde66b) Yes Blade color at the tip; blades gradient from base to tip.
groundAdoptStrength number 0 0 – 1 Yes How strongly blades adopt the terrain color under them from the scene ground field (0 keeps the authored palette). Needs a world running the ground-field pass.
groundAdoptHeight number 0.85 0.01 – 1 Yes Blade fraction the adopted ground color reaches before fading back to the palette tips.
groundAdoptTint color [1, 1, 1] (#ffffff) Yes Multiplier applied to the adopted ground color — lift or warm the sampled terrain albedo before it colors the blades.
washLift number 0 0 – 1 Yes Procedural watercolor wash lift. Irregularly pulls blade strokes toward the active sun color without requiring a texture.
washOpacity number 1 0.1 – 1 Yes Layer opacity of the procedural watercolor blade strokes. Values below 1 soften each stroke against the terrain and sky.

Grass: Lighting

How the blades RESPOND to scene light — e.g. the backlit glow on blades between the camera and the sun.

Field Type Default Range / options Portable Description
backlitStrength number 0.3 0 – 2 Yes Translucent backlight boost when the camera looks toward the sun through the blades.

Grass: Shadows

Grass-material shadow strength and palette tint. The renderer and cloud-shadow fields themselves come from the scene.

Field Type Default Range / options Portable Description
shadowStrength number 0.9 0 – 1 Yes How strongly renderer shadow maps (trees, rocks, the character) darken blades.
shadowTint color [0.42, 0.47, 0.62] (#6b789e) Yes Grass material color approached in full scene or cloud shadow. Palette presets set it with base/tip colors; the IP-wide vegetation shadow treatment still layers over it.

Grass: Scene Light

Current sun direction/color and sky color supplied by the scene at runtime.

Field Type Default Range / options Portable Description
sunDirection vector3 [0.35, 0.72, 0.42] No — scene/runtime World-space direction toward the sun (normalized on apply). Match your main directional light.
sunColor color [1, 0.96, 0.84] (#fff5d6) No — scene/runtime Sunlight tint applied to lit blades.
skyColor color [0.62, 0.78, 0.95] (#9ec7f2) No — scene/runtime Ambient sky tint mixed into shaded blades.

Grass: Scene Wind

Current world wind and gust field supplied by weather or another scene system.

Field Type Default Range / options Portable Description
windDirection vector2 [1, 0.3] No — scene/runtime Current horizontal (XZ) heading the world wind blows toward.
windSpeed number 1 0 – 4 No — scene/runtime Current temporal speed of the world wind.
windStrength number 0.16 0 – 1 No — scene/runtime Current world wind amplitude before the asset response multiplier.
gustFrequency number 0.35 0 – 2 No — scene/runtime Current spatial frequency of the world gust bands.
gustSpeed number 1.6 0 – 6 No — scene/runtime Current travel speed of the world gust bands.

Grass: Cloud Field

Current drifting cloud-shadow field shared across terrain, water, and vegetation.

Field Type Default Range / options Portable Description
cloudShadowStrength number 0 0 – 1 No — scene/runtime Current strength of the shared procedural cloud-shadow field. 0 disables it.
cloudShadowCoverage number 0.45 0 – 1 No — scene/runtime Current fraction of the world covered by cloud shadow.
cloudShadowScale number 0.012 0.001 – 0.1 No — scene/runtime Current world-to-noise scale of the shared cloud pattern.
cloudShadowVelocity vector2 [0.02, 0.006] No — scene/runtime Current cloud-shadow drift in noise-space units per second.

Grass: Interaction

Current push target and influence radius supplied per scene or grass instance.

Field Type Default Range / options Portable Description
pushRadius number 0.9 0 – 3 No — scene/runtime Current radius in meters around the scene push target.

Flowers

Module: toonlab/vegetation — 3 groups, 7 fields.

Flat settings consumed by new StylizedFlowerField(options) and flowers.applySettings(options).

Flowers: Heads

Random head sizes baked into the instance attributes when the field is built. Construction-only.

Field Type Default Range / options Portable Description
sizeRange vector2 [0.045, 0.08] Yes Min/max head size in meters for placements without an explicit size. Construction-only: baked into instance attributes.

Flowers: Wind

Wind sway shared with the surrounding grass so heads and blades move together.

Field Type Default Range / options Portable Description
windDirection vector2 [1, 0.3] Yes Horizontal (XZ) heading the wind blows toward. Magnitude does not matter; use wind strength for amplitude.
windSpeed number 1 0 – 4 Yes How fast the head sway oscillates.
windStrength number 0.16 0 – 1 Yes How far flower heads bob with the wind.

Flowers: Appearance

Petal/center palette and scene-shadow darkening.

Field Type Default Range / options Portable Description
petalColor color [1, 0.98, 0.92] (#fffaeb) Yes Petal color of the procedural daisies.
centerColor color [0.98, 0.8, 0.34] (#facc57) Yes Center-disc color of the procedural daisies.
shadowStrength number 0.85 0 – 1 Yes How strongly renderer shadow maps darken flower heads.

Trees

Module: toonlab/vegetation — 5 groups, 77 fields.

Grouped settings consumed by new StylizedTree(options) and tree.applySettings(options).

Trees: Tree

Overall scale, seed, crown reach, leaf coverage, and canopy palette. Everything except the palette and trunk shadow flag bakes geometry at construction.

Field Type Default Range / options Portable Description
size number 1 0.2 – 6 Yes Overall tree multiplier (1 ≈ 3 m tree, 2 ≈ 6 m, 3+ large). Construction-only: also densifies canopy cards so leaves stay leaf-sized.
seed number 1 1 – 999 Yes Deterministic generation seed; the same options and seed always grow the same tree. Construction-only.
canopyColor color [0.30196078431372547, 0.6352941176470588, 0.34509803921568627] (#4da258) Yes Canopy base color; the lit/shadow/crown palette derives from it. Also accepts richer resolveCanopyColor specs (color lists, {from,to} blends, HSL ranges) resolved per seed.
canopyPalette object '[object Object]' No — local/runtime Optional explicit { lit, shadow, crown } tone overrides; unset tones derive from the canopy color.
canopyWidth number 1 0.3 – 2.5 Yes X-axis crown reach multiplier. Construction-only: shapes the blob layout.
canopyDepth number 1 0.3 – 2.5 Yes Z-axis crown reach multiplier. Construction-only: shapes the blob layout.
canopyLayout object '[object Object]' No — local/construction Optional createCanopyBlobs overrides (lobeCount, spread, flatten, coreRadius, ...). Construction-only.
leafDensity number 1 0.05 – 2 Yes Crown leaf coverage. Below ~0.9 see-through gap pockets open and branches read through; above 1 packs extra cards (and fatter tufts) for lush crowns. Construction-only.
canopyScale number 1 0.2 – 3 Yes Canopy-only scale relative to the trunk. Construction-only.
leafPlacement select 'canopy' canopy | tips Yes canopy: solid leaf mass hiding interior wood. tips: bushes only at branch ends with bare limbs between them (Sumeru silhouette). Construction-only.
trunkReceiveShadow boolean true Yes Whether the bark receives shadow maps. Massive pale-limbed trees read better with this off.
trunkColor color [0.788235294117647, 0.6705882352941176, 0.5411764705882353] (#c9ab8a) Yes Warm bark base color used by the generated trunk, branches, and roots.

Trees: Trunk

Trunk silhouette (bend, lean, twist, gnarl) shared by the skeleton grower and the classic curved-trunk generator. Construction-only.

Field Type Default Range / options Portable Description
height number 1.55 0.4 – 3 Yes Trunk height in meters (before the overall size multiplier). Construction-only.
radiusBottom number 0.19 0.05 – 0.6 Yes Trunk radius at the root flare in meters. Construction-only.
radiusTop number 0.085 0.02 – 0.3 Yes Trunk radius at the top in meters. Classic trunk generator (createTreeTrunkGeometry) only. Construction-only.
bend number 0.12 0 – 0.8 Yes Mid-trunk bow amplitude that returns toward center (S-curve) in meters. Construction-only.
lean number 0.16 0 – 1.2 Yes Off-vertical drift that accumulates toward the top, in meters. Construction-only.
twist number 0 -4 – 4 Yes Y-rotation of the cross-section over the full height in radians; spirals the bark like wrung wood. Construction-only.
gnarl number 0 0 – 2 Yes High-frequency wiggle and radius bulges: 0 is a clean park tree, 1+ reads like an old bonsai. Construction-only.
gnarlFrequencyXRange vector2 [4.2, 7.6] Yes Seeded min/max wave count of the gnarl wiggle over the trunk height on the X axis. Classic trunk generator only. Construction-only.
gnarlFrequencyZRange vector2 [3.1, 6.7] Yes Seeded min/max wave count of the gnarl wiggle over the trunk height on the Z axis. Classic trunk generator only. Construction-only.
gnarlAmplitude number 0.16 0 – 0.5 Yes Meters of gnarl wiggle (and radius bulge fraction) per unit of gnarl. Classic trunk generator only. Construction-only.
radialGnarlFrequency number 9.3 0 – 20 Yes Wave count of the gnarl radius bulges (old-wood knuckles) over the trunk height. Classic trunk generator only. Construction-only.
bendDirection number -6.283 – 6.283 Yes World heading of the bow in radians; null/unset picks a seeded heading. Construction-only.
leanOffset number -6.283 – 6.283 Yes Lean heading relative to the bow in radians (PI pins a serpentine S-trunk); null/unset picks a seeded offset. Construction-only.
radialSegments number 10 3 – 16 Yes Cross-section segment count of the trunk tube. Classic trunk generator only. Construction-only.
heightSegments number 14 2 – 24 Yes Vertical segment count of the trunk tube. Classic trunk generator only. Construction-only.
branchCount number 2 0 – 6 Yes Number of stub branches near the top. Classic trunk generator only. Construction-only.
branchLength number 0.55 0 – 1.5 Yes Base branch length in meters. Classic trunk generator only. Construction-only.
branchRadius number 0.055 0 – 0.2 Yes Base branch radius in meters. Classic trunk generator only. Construction-only.

Trees: Skeleton

Space-colonization limb growth and bark mesh controls. Construction-only.

Field Type Default Range / options Portable Description
generator select 'limbs' limbs | branching | drawn Yes limbs: space-colonization growth toward the crown blobs (solid anime-style crowns). branching: recursive central-leader branching (open, realistic broadleaf/conifer silhouettes). drawn: no procedural wood at all — the tree is exactly the hand-drawn branchSpines (Tree Lab sketch mode). Construction-only.
levels number 3 1 – 4 Yes Recursion depth of the branching generator; each level subdivides into thinner children. Branching generator only. Construction-only.
childrenCount number 6 1 – 90 Yes Lateral child branches sprouting along the trunk (deeper levels derive from them). The central leader continues separately, so children=1 forms one lateral limb plus the leader. Conifers use high counts (60-90) for dense whorled fronds. Branching generator only. Construction-only.
branchAngle number 55 10 – 130 Yes Child pitch away from the parent axis, in degrees. Past 90 points branches below horizontal (conifer fronds ~110). Branching generator only. Construction-only.
branchStart number 0.4 0 – 0.9 Yes Fraction of the trunk kept bare before children begin — real trees hold their crown off the ground. Branching generator only. Construction-only.
lengthRatio number 0.45 0.15 – 0.95 Yes Child branch length as a fraction of the trunk (deeper levels shorten from it). Branching generator only. Construction-only.
radiusRatio number 0.7 0.3 – 0.9 Yes Child radius as a fraction of the parent\u2019s radius at the attach point — radius continuity is what makes forks read as one tree. Branching generator only. Construction-only.
gnarliness number 0.15 0 – 0.6 Yes Random-walk curvature per growth section, amplified as branches thin: trunks stay stately, twigs wander. Branching generator only. Construction-only.
forceStrength number 0.02 -0.08 – 0.15 Yes Growth force: every section steers toward vertical with 1/radius compliance. Positive sweeps tips skyward (broadleaf crowns); negative droops them (pines, willows). Branching generator only. Construction-only.
conifer boolean false Yes Evergreen behavior: branches taper fully and children shorten toward the top \u2014 the layered cone silhouette. Pair with high Children, Branch Angle ~110, negative Growth Force. Branching generator only. Construction-only.
attractionCount number 90 10 – 200 Yes Number of crown attraction points the limbs grow toward; more points grow more, finer limbs. Construction-only.
segmentLength number 0.3 0.1 – 0.8 Yes Growth step length in meters; shorter steps grow smoother, curvier limbs. Construction-only.
influenceRadius number 1.2 0.3 – 2.5 Yes How far an attraction point can pull on a growing limb, in meters. Construction-only.
killRadius number 0.42 0.1 – 1 Yes Distance at which a limb consumes an attraction point and stops growing toward it. Construction-only.
maxSteps number 48 4 – 96 Yes Growth iteration cap. Construction-only.
maxNodes number 140 20 – 400 Yes Skeleton node cap; lower keeps trees to a few clean limbs. Construction-only.
radialSegments number 8 3 – 16 Yes Cross-section segment count of each bark tube. Construction-only.
tipRadius number 0.03 0.005 – 0.15 Yes Radius of the thinnest twigs in meters; pipe-model radii grow from here toward the root. Construction-only.
minLimbRadius number 0.028 0 – 0.15 Yes Limbs thinner than this get no bark tube and are left to the leaves. Construction-only.
attachmentTwigRadius number 0.09 0 – 0.3 Yes Wood thinner than this sprouts leaf tufts in canopy mode. Construction-only.
attractionReach number 0 – 1 Yes How deep into each crown blob attraction points sample (fraction of blob radius); null/unset is automatic (0.65 canopy mode, 0.92 tips mode). Construction-only.

Trees: Canopy Cards

Leaf-card canopy geometry: card counts, tuft clusters, and shell fill. Construction-only.

Field Type Default Range / options Portable Description
architecture select 'cloud-cards' cloud-cards | layered-sprays | needle-whorls | radial-fronds Yes Branch-attached foliage layout: historical round clouds, stacked sprays, conifer whorls, or palm-like radial fronds. Construction-only.
cardCount number 170 20 – 600 Yes Base leaf-card count before density and coverage scaling; few LARGE overlapping cards keep the crown one fluffy mass. Construction-only.
cardSizeRange vector2 [1, 1.6] Yes Min/max leaf-cluster card size in meters. Construction-only.
cardsPerCluster number 5 1 – 20 Yes Cards per leaf tuft around each branch attachment. Construction-only. (In tips placement the built-in default becomes 9.)
clusterRadius number 0.48 0.1 – 1.5 Yes Radius in meters of each leaf tuft around its branch end. Construction-only. (In tips placement the built-in default becomes 0.62.)
sprayLayers number 3 1 – 12 Yes Number of stacked foliage planes at each layered-spray attachment. Construction-only.
spraySpread number 0.8 0.05 – 4 Yes Branch-local radius of each layered spray in meters. Construction-only.
sprayThickness number 0.18 0 – 2 Yes Separation between the stacked spray planes in meters. Construction-only.
whorlArms number 6 3 – 24 Yes Radial arm count around a conifer foliage attachment. Construction-only.
whorlRadius number 0.48 0.05 – 3 Yes Radius of each conifer foliage whorl in meters. Construction-only.
frondCount number 7 3 – 24 Yes Number of radial frond directions at each attachment. Construction-only.
frondLength number 1.25 0.1 – 4 Yes Maximum radial frond reach in meters. Construction-only.
shellFill boolean true Yes Fill the blob shells between tufts so the crown reads as one solid mass; off leaves bare wood between end bushes. Construction-only. (Tips placement turns this off by default.)

Trees: Foliage Material

Leaf material response: wind, sun, alpha cutout, scene and cloud shadows. Applies at runtime via applySettings.

Field Type Default Range / options Portable Description
alphaCutoff number 0.3 0 – 1 Yes Alpha-cutout threshold for the leaf sprite; low enough that mipmap-averaged alpha does not erode distant crowns.
windDirection vector2 [1, 0.3] Yes Horizontal (XZ) heading the canopy flutter drifts toward.
windSpeed number 1 0 – 4 Yes How fast the leaf-card flutter oscillates.
windStrength number 0.05 0 – 0.5 Yes How far leaf cards sway with the wind.
sunDirection vector3 [0.35, 0.72, 0.42] Yes World-space direction toward the sun. Match your main directional light.
sunColor color [1, 0.96, 0.84] (#fff5d6) Yes Sunlight tint applied to lit leaf cards.
skyColor color [0.62, 0.78, 0.95] (#9ec7f2) Yes Ambient sky tint mixed into shaded leaf cards.
sceneShadowStrength number 0.55 0 – 1 Yes How strongly renderer shadow maps shift the crown toward its shadow palette. 0 disables.
backlitStrength number 0.35 0 – 2 Yes Translucent glow on leaves between the camera and the sun.
cloudShadowStrength number 0 0 – 1 Yes How strongly drifting procedural cloud shadows darken the crown. 0 disables the effect.
cloudShadowCoverage number 0.45 0 – 1 Yes Fraction of the world covered by cloud shadow at any moment.
cloudShadowScale number 0.012 0.001 – 0.1 Yes World-to-noise scale of the cloud shadow pattern; smaller values give larger cloud shapes.
cloudShadowVelocity vector2 [0.02, 0.006] Yes Cloud shadow drift in noise-space units per second (world drift = velocity / scale).

Sky

Module: toonlab/sky — 5 groups, 47 fields.

47 schema fields: 46 portable Sky art settings plus non-portable compatibility radius. Lighting, Weather, and manual state compose through ordered runtime layers; deployment quality is a separate compile-time tier.

Sky: Dome

Sky dome geometry. Construction-only.

Field Type Default Range / options Portable Description
radius number 100 10 – 1000 No — local/construction Sphere radius of the sky dome in meters. Construction-only: baked into the dome geometry; applySettings stores but does not rebuild it.

Sky: Gradient

Vertical zenith-to-horizon-to-ground gradient and horizon scattering.

Field Type Default Range / options Portable Description
zenithColor color [0.28, 0.56, 0.92] (#478feb) Yes Sky color straight up at the top of the dome.
horizonColor color [0.78, 0.92, 1] (#c7ebff) Yes Sky color at the horizon band.
groundColor color [0.42, 0.48, 0.55] (#6b7a8c) Yes Dome color below the horizon.
zenithExponent number 0.48 0.1 – 4 Yes Shape of the horizon-to-zenith gradient. Lower values bring the zenith color farther toward the horizon.
groundExponent number 0.55 0.1 – 4 Yes Shape of the mirrored below-horizon fade into the ground color.
horizonBandSize number 0.42 0.02 – 1 Yes Vertical size of the sun-side atmospheric scattering band around the horizon.
horizonSunPower number 5 0.5 – 20 Yes How tightly horizon scattering concentrates toward the sun direction.
horizonScattering number 0.5 0 – 1 Yes Strength of the bright sun-side atmospheric wedge at the horizon.

Sky: Sun

Sun disc position, size, tint, and glow halo.

Field Type Default Range / options Portable Description
sunDirection vector3 [0.35, 0.8, 0.45] Yes World-space direction toward the sun (normalized on apply). Match your main directional light.
sunColor color [1, 0.95, 0.82] (#fff2d1) Yes Tint of the sun disc and its glow.
sunSize number 0.026 0 – 0.2 Yes Angular size of the sun disc.
sunDiscSoftness number 0.5 0.01 – 1 Yes Fraction of the disc radius used for its anti-aliased painterly edge.
sunDiscIntensity number 2.4 0 – 8 Yes Brightness multiplier of the solid sun disc before the renderer tone map.
sunGlowStrength number 1 0 – 4 Yes Master intensity of the broad and core sun glow terms.
sunGlowSpread number 5 1 – 20 Yes Falloff power of the broad halo. Lower values spread the glow across more sky.
sunGlowCoreSharpness number 60 5 – 200 Yes Falloff power of the tight inner halo. Higher values make a smaller, sharper core.
sunGlowBroadStrength number 0.16 0 – 2 Yes Contribution of the broad halo inside the master glow strength.
sunGlowCoreStrength number 0.5 0 – 2 Yes Contribution of the tight inner halo inside the master glow strength.
sunCloudOcclusionStrength number 1 0 – 1 Yes How strongly dense cloud coverage hides the sun disc. 0 keeps the disc visible through cloud.

Sky: Clouds

Painterly two-tone procedural clouds.

Field Type Default Range / options Portable Description
cloudCoverage number 0.42 0 – 1 Yes Fraction of the sky filled by clouds. 0 clears the sky.
cloudScale number 1.6 0.1 – 6 Yes Noise scale of the cloud shapes; higher gives smaller, busier clouds.
cloudSoftness number 0.1 0.01 – 0.3 Yes Width of the painterly cloud silhouette transition.
cloudProjection number 0.22 0.05 – 0.8 Yes Perspective offset of the virtual cloud plane; higher values flatten clouds toward the horizon.
cloudOpacity number 1 0 – 1 Yes Overall blend opacity of the procedural cloud layer.
cloudEdgeOpacity number 0.65 0 – 1 Yes Opacity of the soft outer silhouette relative to the solid cloud core.
cloudSpeed number 1 0 – 4 Yes How fast the authored cloud layer drifts across the dome.
cloudDirection vector2 [0.9615239476, 0.2747211279] Yes Normalized horizontal drift direction of the authored cloud layer; speed is controlled separately.
cloudSeed number 0 0 – 1000 Yes Offsets the procedural cloud field to produce a different deterministic composition.
cloudColor color [1, 1, 1] (#ffffff) Yes Lit tone of the two-tone painterly clouds.
cloudShadeColor color [0.68, 0.78, 0.92] (#adc7eb) Yes Shaded underside tone of the two-tone painterly clouds.
cloudShadeStrength number 0.85 0 – 1 Yes Strength of the two-tone shaded underside.
cloudShadeThreshold number 0.02 -0.3 – 0.3 Yes Noise-difference threshold that separates the lit and shaded cloud tones.
cloudShadeSoftness number 0.06 0.001 – 0.3 Yes Softness of the transition between the two cloud tones.
cloudLightOffset number 0.4 0 – 2 Yes Distance of the secondary noise sample toward the sun; controls the depth and directionality of cloud shading.
cloudSilverLiningStrength number 0.3 0 – 2 Yes Warm sun-colored lining added to cloud edges facing the sun.
cloudSunPower number 10 1 – 40 Yes Angular focus of the sun-colored cloud lining.
cloudHorizonFade number 0.16 0.02 – 0.8 Yes Altitude at which the cloud layer reaches full opacity above the horizon.

Sky: Stars

Procedural star field for night skies.

Field Type Default Range / options Portable Description
starsStrength number 0 0 – 2 Yes Brightness of the procedural star field. 0 (default) hides stars for daytime skies.
starsColor color [1, 0.98, 0.92] (#fffaeb) Yes Tint of the procedural star glints.
starsSeed number 0 0 – 1000 Yes Offsets the deterministic star pattern without changing density or size.
starsDensity number 0.28 0 – 1 Yes Fraction of candidate cells allowed to contain a visible star.
starsScale number 14 2 – 64 Yes Density scale of the projected star grid; higher values produce more, smaller cells.
starsSize number 0.06 0.005 – 0.2 Yes Size of each procedural star glint inside its cell.
starsTwinkleStrength number 0.8 0 – 1 Yes Depth of per-star brightness animation. 0 disables twinkle without hiding stars.
starsTwinkleSpeed number 1 0 – 4 Yes Speed multiplier of the seeded per-star twinkle animation.
starsHorizonFade number 0.24 0.04 – 1 Yes Altitude at which the star field reaches full brightness above the horizon.

Paths, roads & bridges

Module: toonlab/pathgen — 4 groups, 22 fields.

Grouped settings consumed by createStylizedPaths({ settings }) and serialized in path recipes.

Paths, roads & bridges: Routing

Cost-field router: how strongly slope and water repel routes, and how much existing paths attract reuse (forks and junctions).

Field Type Default Range / options Portable Description
pointCount number 4 2 – 8 Yes Auto mode: number of destinations probed from the terrain and connected into a network.
slopeCost number 26 0 – 80 Yes How expensive climbing is for the router. Higher values hug contours and produce switchbacks instead of straight climbs.
waterCost number 14 2 – 60 Yes Cost multiplier for crossing water. High enough that routes only cross where a bridge is worth it, low enough that crossings still happen.
reuseBonus number 0.45 0 – 0.9 Yes Cost discount (0..1) on cells an earlier route already walks — the source of natural forks and shared trunk roads.
gridStep number 8 3 – 24 Yes Router grid resolution in meters. Smaller steps find finer detours and cost more to solve.
shoreMargin number 0.6 0 – 2 Yes Meters above the waterline a cell must be to count as dry land.
loopChance number 0.35 0 – 1 Yes Auto mode: chance to add one extra ring road beyond the spanning network.

Paths, roads & bridges: Ribbon

The walkable strip: width, hand-drawn wobble, edge skirts that tuck into the terrain, and the height-profile smoothing that flattens the walk.

Field Type Default Range / options Portable Description
width number 2.6 1 – 6 Yes Walkable ribbon width in meters (dirt trail 2–3, stone road 3–4).
widthWobble number 0.22 0 – 0.6 Yes Low-frequency width variation (0..1) for the hand-drawn look. 0 is a survey-straight road.
edgeSkirt number 1.1 0.2 – 2.5 Yes Extra meters each side that slope down and tuck under the terrain so the ribbon never floats on side slopes.
lift number 0.07 0.02 – 0.25 Yes Meters the ribbon rides above the height profile — the true-overlay offset that prevents z-fighting.
smoothing number 16 0 – 40 Yes Moving-average window in meters applied to the terrain height along the route; the flattened profile is what paths.heightAt reports.
stepLength number 2 1 – 5 Yes Meters between ribbon cross-sections. Smaller steps follow curves tighter and spend more triangles.
edgeFade number 1.4 0.2 – 4 Yes Meters past the ribbon edge over which maskAt falls from 1 to 0 — the band where grass and flowers thin out.

Paths, roads & bridges: Bridges

Arched plank bridges generated where a route crosses open water.

Field Type Default Range / options Portable Description
arc number 0.1 0 – 0.18 Yes Deck rise as a fraction of span length. 0 is a flat causeway, 0.14 a strong arched footbridge.
railStyle select 'posts' posts | beams | none Yes Bridge railing construction.
postSpacing number 2.2 1.2 – 4 Yes Meters between railing posts.
minSpan number 4 2 – 12 Yes Meters of open water a route must cross before a bridge is generated (shorter crossings ford instead).
pierSpacing number 7 4 – 16 Yes Long crossings get support piers to the bed every this many meters.
deckClearance number 1.1 0.3 – 3 Yes Minimum meters between the water level and the deck at mid-span.

Paths, roads & bridges: Stairs

Stepped stone segments swapped in where the route climbs steeply. Visual only — paths.heightAt stays a smooth ramp.

Field Type Default Range / options Portable Description
slopeThreshold number 0.45 0.2 – 0.9 Yes Rise-over-run along the route beyond which the ribbon switches to stepped stone segments.
stepHeight number 0.19 0.12 – 0.3 Yes Riser height of generated steps in meters.

Ambient VFX

Module: toonlab/ambientfx — 6 groups, 54 fields.

Settings are nested per group: createAmbientFx({ settings: { fireflies: { blinkSpeed: 0.8 } } }). Effect entries in effects override their group; densityScale multiplies the authored per-m³ density (density remains a compatibility alias). Call emitNow(camera) when build-time stats or a settled first capture are required before the first update.

Ambient VFX: Shared

Wind, sun, and the follow-window every effect emits into. Match windDirection/windSpeed/windStrength with the grass and tree wind so the whole world blows the same way.

Field Type Default Range / options Portable Description
windDirection vector2 [1, 0.3] Yes Horizontal (XZ) heading the wind blows toward — share with grass/trees. Magnitude is ignored.
windSpeed number 1 0 – 4 Yes How fast wind-driven motion oscillates and mist scrolls.
windStrength number 0.16 0 – 1 Yes How far particles drift downwind.
sunDirection vector3 [0.35, 0.72, 0.42] Yes World-space direction toward the sun (normalized on apply); drives the pollen backlight and petal sheen.
windowRadius number 45 15 – 120 Yes Meters of the follow window particles exist in around the follow target. Construction-only.
maxParticles number 20000 1000 – 40000 Yes Hard budget; effect densities are scaled down proportionally when their sum would exceed it. Construction-only.

Ambient VFX: Petals

Flutter-falling blossom petals. Emit from registered bloom volumes (flowering canopies) when any exist, otherwise from the open air above the ground.

Field Type Default Range / options Portable Description
enabled boolean true Yes Master toggle for the effect.
density number 0.03 0 – 0.15 Yes Petals per m³ of the emission volume.
canopyDensity number 4.5 0 – 20 Yes Petals per m³ inside registered bloom volumes (crowns shed far more than open air).
sizeRange vector2 [0.06, 0.11] Yes Min/max petal size in meters.
colorA color [1, 0.52, 0.68] (#ff85ad) Yes Primary petal color.
colorB color [1, 0.75, 0.84] (#ffbfd6) Yes Secondary petal color; each petal picks between the two.
emitHeight vector2 [2, 9] Yes Min/max meters above ground petals spawn at when not bound to canopies. Construction-only.
flutter number 1 0 – 3 Yes Side-to-side rocking amplitude while falling.
windResponse number 1 0 – 3 Yes Multiplier on the shared wind drift for this effect.
gate select 'day' day | night | duskNight | dawnDusk | any Yes When the effect is visible; weights follow the environmentTimeOfDay hour.

Ambient VFX: Falling Leaves

Tumble-falling leaves with strong gust response. Emit from bloom volumes tagged effect:"leaves", otherwise globally.

Field Type Default Range / options Portable Description
enabled boolean true Yes Master toggle for the effect.
density number 0.022 0 – 0.15 Yes Leaves per m³ of the emission volume.
canopyDensity number 3.2 0 – 20 Yes Leaves per m³ inside bloom volumes tagged effect:"leaves".
sizeRange vector2 [0.09, 0.16] Yes Min/max leaf size in meters.
colorA color [0.93, 0.64, 0.2] (#eda333) Yes Primary leaf color.
colorB color [0.78, 0.4, 0.13] (#c76621) Yes Secondary leaf color; each leaf picks between the two.
emitHeight vector2 [2, 10] Yes Min/max meters above ground leaves spawn at when not bound to canopies. Construction-only.
tumble number 1 0 – 3 Yes Rotational tumbling speed while falling.
windResponse number 1.35 0 – 3 Yes Multiplier on the shared wind drift for this effect.
gate select 'any' day | night | duskNight | dawnDusk | any Yes When the effect is visible; weights follow the environmentTimeOfDay hour.

Ambient VFX: Fireflies

Hovering, blinking emissive motes over grass and shore margins. Unlit by design; they ramp with the time-of-day dusk.

Field Type Default Range / options Portable Description
enabled boolean true Yes Master toggle for the effect.
density number 0.045 0 – 0.2 Yes Fireflies per m³ of the near-ground hover band.
sizeRange vector2 [0.13, 0.2] Yes Min/max glow-sprite size in meters.
color color [1, 0.87, 0.42] (#ffde6b) Yes Emissive glow color (unlit; never touched by scene lights).
hoverHeight vector2 [0.25, 2.2] Yes Min/max meters above ground fireflies hover at. Construction-only.
hoverRadius number 0.9 0 – 4 Yes Meters of wander around each spawn point.
blinkSpeed number 1 0 – 4 Yes How fast the blink program pulses.
intensity number 1 0 – 4 Yes Emissive brightness multiplier.
windResponse number 0.1 0 – 3 Yes Multiplier on the shared wind drift for this effect.
gate select 'duskNight' day | night | duskNight | dawnDusk | any Yes When the effect is visible; weights follow the environmentTimeOfDay hour.

Ambient VFX: Pollen Motes

Slow curl-drifting dust motes, brightest looking toward the sun (backlit). Bind to flower masks via the effects config.

Field Type Default Range / options Portable Description
enabled boolean true Yes Master toggle for the effect.
density number 0.06 0 – 0.3 Yes Motes per m³ of the near-ground drift band.
sizeRange vector2 [0.045, 0.085] Yes Min/max mote size in meters.
color color [1, 0.93, 0.72] (#ffedb8) Yes Mote color (additive, so it reads as light).
hoverHeight vector2 [0.3, 2.6] Yes Min/max meters above ground motes drift at. Construction-only.
driftRadius number 1.3 0 – 5 Yes Meters of curl-drift wander around each spawn point.
backlitStrength number 1 0 – 3 Yes Brightness boost when the camera looks toward the sun through the motes.
windResponse number 0.5 0 – 3 Yes Multiplier on the shared wind drift for this effect.
gate select 'day' day | night | duskNight | dawnDusk | any Yes When the effect is visible; weights follow the environmentTimeOfDay hour.

Ambient VFX: Ground Mist

Soft horizontal wisps scrolling with the wind, hugging water margins and low ground at dawn/dusk.

Field Type Default Range / options Portable Description
enabled boolean true Yes Master toggle for the effect.
density number 0.0045 0 – 0.02 Yes Wisps per m³ of the ground-hugging band — a few dozen quads, not thousands.
sizeRange vector2 [1.6, 3] Yes Min/max wisp height in meters (width is ~3–5× the height).
color color [0.84, 0.9, 0.97] (#d6e6f7) Yes Wisp color.
opacity number 0.34 0 – 0.6 Yes Peak alpha at a wisp center; the sprite falls off softly from there.
scrollSpan number 26 5 – 60 Yes Meters a wisp travels downwind before wrapping (fades at both ends).
marginWidth number 7 1 – 20 Yes Meters of |ground − waterLevel| that count as the water-margin emission band. Construction-only.
windResponse number 1 0 – 3 Yes Multiplier on the shared wind drift for this effect.
gate select 'dawnDusk' day | night | duskNight | dawnDusk | any Yes When the effect is visible; weights follow the environmentTimeOfDay hour.

Gameplay VFX

Module: toonlab/vfxgen — 7 groups, 80 fields.

Settings are nested per group: createVfxSystem({ settings: { impact: { sparkCount: 40 } } }). Per-spawn look overrides re-tint one spawn without touching settings.

Gameplay VFX: Shared

Budgets and global pacing for every effect. The one-shot backbone renders all bursts in two draw calls; these bound its ring buffers and the pooled trail/projectile meshes.

Field Type Default Range / options Portable Description
maxParticles number 4096 256 – 32768 Yes Ring-buffer capacity of the one-shot backbone (sparks, embers, puffs, rings, flashes). Oldest instances are overwritten first. Construction-only.
maxProjectiles number 8 1 – 32 Yes Pooled legacy billboard projectile cores (fireballs in flight). Spawns beyond this reuse the oldest. Construction-only.
maxLayeredProjectiles number 8 1 – 32 Yes Pooled template-backed layered projectile roots. Spawns beyond this reuse the oldest. Construction-only.
maxTrails number 8 1 – 32 Yes Pooled slash-trail ribbons live at once. Spawns beyond this reuse the oldest. Construction-only.
timeScale number 1 0 – 2 Yes Global VFX clock multiplier — hit-stop and slow-motion hooks feed this.

Gameplay VFX: Slash Trail

Weapon-swing ribbon sampled from a followed blade (base + tip anchors), with a stepped toon fade and edge sparkle. The anime arc smear.

Field Type Default Range / options Portable Description
enabled boolean true Yes Master toggle for the effect.
color color [0.55, 0.8, 1] (#8cccff) Yes The solid body of the arc — the flat saturated fill.
coreColor color [1, 1, 1] (#ffffff) Yes Leading-edge band color along the blade-tip side; white body+edge banding is the reference action-RPG read.
lifetime number 0.28 0.05 – 1.5 Yes Seconds a ribbon segment persists before the tail erodes over it.
bands number 3 1 – 8 Yes Cel quantization of the tail erosion sweep — fewer bands, chunkier stepped tail.
intensity number 1 0 – 4 Yes Emissive brightness multiplier on the glow parts.
sparkle number 60 0 – 300 Yes Sparks per second shed from the blade tip while the trail is active.
segments number 96 8 – 256 Yes Ribbon history capacity in spline points — longer fast swings need more. Construction-only.

Gameplay VFX: Impact Burst

Hit feedback: a radial star flash plus ballistic sparks with gravity. power at spawn scales count, speed, and flash size.

Field Type Default Range / options Portable Description
enabled boolean true Yes Master toggle for the effect.
sparkColor color [1, 0.85, 0.45] (#ffd973) Yes Ballistic spark color (additive).
flashColor color [1, 0.97, 0.88] (#fff7e0) Yes Radial star-flash color at the hit point.
sparkCount number 26 0 – 120 Yes Sparks per burst at power 1; spawn power scales this.
sparkSpeed number 7 0 – 30 Yes Initial spark speed in m/s, biased along the hit normal.
gravity number 18 0 – 60 Yes Downward pull on sparks in m/s² — high values read as metal chips.
flashSize number 0.9 0 – 4 Yes Star-flash quad size in meters at power 1.
spikes number 6 3 – 12 Yes Point count of the star flash — 4 reads as an action-RPG glint, 6–8 as an anime hit star.
shockwave boolean true Yes Camera-facing expanding ring at the hit point — the action-RPG hit circle. Tinted by Flash Color.
lifetime number 0.5 0.05 – 2 Yes Seconds sparks live (the flash pops in about a quarter of this).
intensity number 1 0 – 4 Yes Emissive brightness multiplier on the glow parts.

Gameplay VFX: Fireball

Projectile: a flame-shaded core billboard shedding embers in flight; explodes into an impact burst, smoke puffs, and an expanding scorch ring.

Field Type Default Range / options Portable Description
enabled boolean true Yes Master toggle for the effect.
coreSize number 0.42 0.05 – 2 Yes Flame-core billboard radius in meters.
coreColor color [1, 0.95, 0.6] (#fff299) Yes Hot center of the flame shader.
flameColor color [1, 0.45, 0.12] (#ff731f) Yes Outer flame licks and ember tint.
emberRate number 90 0 – 400 Yes Embers shed per second while the projectile flies.
emberSize vector2 [0.05, 0.12] Yes Min/max ember size in meters.
emberLifetime number 0.55 0.05 – 2 Yes Seconds each shed ember lives.
intensity number 1.2 0 – 4 Yes Emissive brightness multiplier on the glow parts.
explosionPower number 1.6 0 – 5 Yes power handed to the impact burst + smoke on detonation.
scorchRing boolean true Yes Expanding ground ring on detonation.
ringColor color [1, 0.55, 0.2] (#ff8c33) Yes Scorch-ring glow color.

Gameplay VFX: Charged Energy Shot

Template-backed layered projectile: directional mesh core, animated energy shell and filaments, internal motes, boundary sparks, travel trail, local light, and impact presentation.

Field Type Default Range / options Portable Description
enabled boolean true Yes Master toggle for the effect.
length number 1.8 0.6 – 4 Yes Projectile length in meters at full charge.
radius number 0.46 0.12 – 1.2 Yes Projectile radius in meters at full charge.
coreIntensity number 2.4 0 – 5 Yes Emission multiplier for the directional inner body.
shellIntensity number 1.35 0 – 4 Yes Emission multiplier for the outer energy volume.
filamentDensity number 1.25 0.25 – 3 Yes Density of animated veins across the outer shell.
filamentSpeed number 1.2 0 – 4 Yes Flow speed of shell veins and internal streaks.
circulationEnabled boolean true Yes Procedural seeded energy arcs that move over the projectile volume.
energyMotionTheme text 'electric-orbit' Yes Authored starting theme or custom parameter set.
circulationCount number 6 1 – 12 Yes Primary surface arcs before branch forks.
circulationSpeed number 1.6 0 – 4 Yes Cycles per authored motion unit.
circulationDirection text 'alternating' Yes Clockwise, counter-clockwise, or alternating per arc.
circulationCoverage number 0.3 0.08 – 1 Yes Fraction of a full orbit covered by each arc.
circulationIrregularity number 0.72 0 – 1 Yes Seeded angular and axial deviation from a uniform orbit.
circulationBranching number 0.42 0 – 1 Yes Frequency and reach of connected lightning forks.
circulationThickness number 0.022 0.006 – 0.08 Yes Normalized width of the bright surface ribbon.
circulationSurfaceOffset number 1.68 1.05 – 2.4 Yes Visible gap between the main projectile body and the circulating lightning.
circulationAxialWander number 0.52 0 – 1 Yes How far an arc travels between nose and tail.
circulationPlaneVariation number 0.78 0 – 1 Yes Tilts arcs onto different seeded planes and adds non-planar depth wobble.
circulationFlicker number 0.68 0 – 1 Yes Seeded disappearance and reformation instead of continuous uniform bands.
releaseDepth number 0.28 0.05 – 0.65 Yes Out-of-plane depth along the firing axis.
releaseIrregularity number 0.38 0 – 0.75 Yes Restrained seeded variation around the loop.
releaseLobes number 3 2 – 7 Yes Gentle undulations around the closed loop.
turbulence number 0.7 0 – 2 Yes Internal-particle motion and boundary instability.
trailLength number 1.15 0 – 3 Yes Lifetime and visual reach of particles shed behind the projectile.
particleRate number 160 0 – 500 Yes Internal motes and boundary sparks emitted per second.
impactPower number 2.2 0 – 5 Yes Presentation power of the contact flash, shockwave, sparks, and smoke.
coreColor color [0.9, 0.98, 1] (#e6faff) Yes Hot inner energy color.
edgeColor color [0.28, 0.62, 1] (#479eff) Yes Outer shell and travel-trail color.
accentColor color [0.55, 0.82, 1] (#8cd1ff) Yes Filament, compression-ring, and impact accent color.
lightIntensity number 2.4 0 – 8 Yes Optional local point-light intensity at full charge.
bloomContribution number 0.8 0 – 2 Yes Authored bloom recommendation exposed to compatible host post stacks.

Gameplay VFX: Footstep Dust

Small chunky dust puffs kicked up at a footfall. Cheap enough to fire every step.

Field Type Default Range / options Portable Description
enabled boolean true Yes Master toggle for the effect.
puffCount number 5 0 – 20 Yes Dust puffs per footfall.
sizeRange vector2 [0.1, 0.22] Yes Min/max puff size in meters (puffs grow ~2× over life).
color color [0.78, 0.72, 0.62] (#c7b89e) Yes Dust color — sample the ground palette.
lifetime number 0.55 0.05 – 2 Yes Seconds a puff lives.
rise number 0.5 0 – 2 Yes Upward drift in m/s — heavier dust settles faster.
spread number 0.22 0 – 1 Yes Horizontal scatter radius in meters around the footfall.

Gameplay VFX: Landing Ring

The classic landing hit: a radial ring of dust puffs expanding outward from the touch-down point. power at spawn scales radius and count.

Field Type Default Range / options Portable Description
enabled boolean true Yes Master toggle for the effect.
puffCount number 14 0 – 40 Yes Puffs around the ring at power 1; spawn power scales this.
ringRadius number 1.1 0.2 – 5 Yes Meters the dust ring expands to at power 1.
sizeRange vector2 [0.18, 0.38] Yes Min/max puff size in meters.
color color [0.78, 0.72, 0.62] (#c7b89e) Yes Dust color — sample the ground palette.
lifetime number 0.7 0.05 – 2 Yes Seconds the ring takes to expand and fade.

Fauna

Module: toonlab/fauna — 5 groups, 48 fields.

Settings are nested per species group: createFauna({ settings: { birds: { fleeRadius: 15 } } }). Populations are passed separately: createFauna({ species: { birds: 40, fish: 80 } }).

Fauna: Shared

Cross-species simulation budgets: the staggered steering-tick share and the distance beyond which agents degrade to scripted loops.

Field Type Default Range / options Portable Description
tickShare number 0.25 0.05 – 0.5 Yes Fraction of all agents that receive a full steering tick per update; the rest integrate their last velocity. 0.25 = every agent steers at ~15 Hz on a 60 Hz host.
farDistance number 150 40 – 400 Yes Meters from the follow target beyond which agents stop steering entirely and fly scripted circles (fish keep their depth clamps).

Fauna: Birds

Flocking boids in a roaming altitude band; perch on registered points (or terrain) and flush when the follow target approaches.

Field Type Default Range / options Portable Description
altitudeMin number 7 1 – 40 Yes Bottom of the preferred flight band, meters above the local terrain.
altitudeMax number 26 2 – 80 Yes Top of the preferred flight band, meters above the local terrain.
cruiseSpeed number 7 1 – 20 Yes Relaxed flight speed in m/s; flocks settle around it.
maxSpeed number 12 2 – 30 Yes Hard speed cap in m/s, reached when fleeing.
neighborRadius number 14 2 – 30 Yes Meters within which flockmates influence cohesion and alignment.
separationRadius number 2.6 0.5 – 8 Yes Personal-space radius in meters; closer neighbors are pushed away.
cohesion number 0.9 0 – 2 Yes Pull toward the local flock center — the flock-tightness knob.
alignment number 0.8 0 – 2 Yes Pull toward the local average heading.
separation number 1.3 0 – 3 Yes Push away from neighbors inside the separation radius.
wander number 0.45 0 – 2 Yes Per-bird sinusoidal drift so flocks meander instead of orbiting.
fleeRadius number 12 0 – 40 Yes Meters from the follow target at which flying birds scatter and perched birds flush.
perchChance number 0.5 0 – 1 Yes Appetite for landing: expected perch attempts scale with this per ~10 s of flight.
perchDuration number 11 2 – 40 Yes Mean seconds a bird stays perched (each stay jitters ±40%).
flapHz number 3.4 0.5 – 8 Yes Wingbeats per second; the GPU flap phase/speed attributes derive from it. Birds glide (near-zero amplitude) when descending.
scale number 1 0.4 – 2.5 Yes Uniform body scale multiplier (±12% per-bird jitter on top).
palette select 'swallow' swallow | egret | finch Yes Named body palette; each palette carries 2–4 vertex-colored variants.

Fauna: Butterflies

Individual noise-wanderers anchored to flower-mask points, hovering just above the terrain.

Field Type Default Range / options Portable Description
hoverMin number 0.5 0.1 – 3 Yes Bottom of the flutter band, meters above the local terrain.
hoverMax number 1.7 0.2 – 5 Yes Top of the flutter band, meters above the local terrain.
speed number 1.3 0.2 – 4 Yes Typical flutter speed in m/s.
wanderRadius number 6 2 – 30 Yes Meters a butterfly may drift from its flower-mask anchor before being pulled back.
fleeRadius number 3.5 0 – 15 Yes Meters from the follow target at which butterflies scatter upward.
flapHz number 8.5 2 – 16 Yes Wingbeats per second for the GPU wing fold.
scale number 1 0.4 – 2.5 Yes Uniform body scale multiplier (±20% per-agent jitter on top).
palette select 'meadow' meadow | twilight Yes Named wing palette; each palette carries up to 4 vertex-colored variants.

Fauna: Dragonflies

Hover-and-dart flyers anchored to the water margin, holding a fixed height above the water surface.

Field Type Default Range / options Portable Description
hoverHeight number 0.6 0.2 – 3 Yes Meters above the water surface dragonflies hold.
hoverRadius number 5 1 – 20 Yes Meters of drift allowed around the current hover anchor.
dartSpeed number 7 1 – 16 Yes Straight-line speed in m/s when relocating to a new anchor.
dartChance number 0.5 0 – 1 Yes Appetite for relocating: expected darts scale with this per ~8 s of hovering.
flapHz number 36 10 – 60 Yes Wing oscillations per second; high rates read as the classic wing shimmer.
scale number 1 0.4 – 2.5 Yes Uniform body scale multiplier.
palette select 'pond' pond | ember Yes Named body palette; each palette carries 2–3 vertex-colored variants.

Fauna: Fish

Schooling boids clamped between the water surface and the bed; visible from above through the water refraction pass.

Field Type Default Range / options Portable Description
surfaceMargin number 0.3 0.1 – 2 Yes Minimum meters a fish stays below the water surface (never breaches).
bedMargin number 0.35 0.1 – 2 Yes Minimum meters a fish stays above the terrain bed.
minSpawnDepth number 1.1 0.3 – 5 Yes Meters of water column required for a fish spawn point; shallower bounds simply hold fewer fish.
cruiseSpeed number 1.5 0.2 – 5 Yes Relaxed swim speed in m/s.
maxSpeed number 3.2 0.5 – 8 Yes Hard speed cap in m/s, reached when fleeing.
neighborRadius number 4 1 – 12 Yes Meters within which schoolmates influence cohesion and alignment.
separationRadius number 0.8 0.2 – 4 Yes Personal-space radius in meters.
cohesion number 0.9 0 – 2 Yes Pull toward the local school center — schooling tightness.
alignment number 0.85 0 – 2 Yes Pull toward the local average heading.
separation number 1.1 0 – 3 Yes Push away from neighbors inside the separation radius.
wander number 0.5 0 – 2 Yes Per-fish sinusoidal drift so schools roam the basin.
fleeRadius number 7 0 – 25 Yes Meters from the follow target (a swimmer, a bridge walker) at which fish scatter.
swayHz number 2.8 0.5 – 8 Yes Tail-sway cycles per second for the GPU body flex.
scale number 1 0.3 – 3 Yes Uniform body scale multiplier (±25% per-fish jitter on top).
palette select 'koi' koi | silver Yes Named body palette: koi for ponds and lakes, silver for open water.

Procedural textures

Module: toonlab/texgen — 10 groups, 166 fields.

Grouped settings consumed by evaluateTextureMaps(settings) and serialized in texture recipes (createTextureSettings).

Procedural textures: Seed

Deterministic seed shared by every layer.

Field Type Default Range / options Portable Description
seed number 1337 0 – 99999 Yes Deterministic seed — every value is a different texture with the same recipe.

Procedural textures: Base pattern

The primary structure: pattern, frequency, warp.

Field Type Default Range / options Portable Description
generator select 'fbm' fbm | billow | ridged | turbulence | value | perlin | worley | worleyF2 | cells | cracks | caustics | speckle | bricks | tiles | hex | checker | grid | stripes | chevron | weave | basketWeave | scales | dots | marble | woodGrain | flat Yes Primary structure of the material: this drives height, color banding, and pattern cells.
contrast number 0 -1 – 1 Yes Sharpens (+) or flattens (-) the base pattern.
bias number 0 -0.5 – 0.5 Yes Shifts the whole pattern up or down the ramp.
invert boolean false Yes Flips the base pattern (crevices become ridges).
scale number 6 1 – 64 Yes Feature cells across the tile. Higher = finer features.
rotate90 boolean false Yes Turns the pattern a quarter turn (planks run vertical, strata run horizontal). Tiling stays exact.
detail number 4 1 – 8 Yes Fractal octaves layered into the noise.
detailGain number 0.5 0.15 – 0.85 Yes How much each finer octave contributes.
stretchX number 1 0.25 – 8 Yes Horizontal anisotropy (brushed metal, wood planks).
stretchY number 1 0.25 – 8 Yes Vertical anisotropy (drips, strata, fibers).
warp number 0 0 – 1 Yes Domain warp: melts straight features into organic meanders.
warpScale number 3 1 – 32 Yes Frequency of the warp field.
columns number 4 1 – 64 Yes Pattern cells across the tile.
rows number 8 1 – 64 Yes Pattern cells down the tile.
gap number 0.06 0 – 0.4 Yes Mortar/groove width between pattern cells.
bevel number 0.12 0 – 0.5 Yes Edge ramp from groove up to the cell face.
cellJitter number 1 0 – 1 Yes Randomizes cell centers: 0 = perfect grid, 1 = organic.
cellVariation number 0.35 0 – 1 Yes Per-cell brightness variance (brick tint shifts).
edgeWidth number 0.12 0.01 – 0.6 Yes Width of cracks / caustic filaments / speckle chips.
rings number 6 1 – 32 Yes Ring or vein count across the tile (wood, marble).
grain number 0.5 0 – 1 Yes Streak amount (wood) or vein sharpness (marble).

Procedural textures: Detail layer A

Mid-frequency relief blended over the base.

Field Type Default Range / options Portable Description
enabled boolean true Yes Toggles this detail layer.
generator select 'fbm' fbm | billow | ridged | turbulence | value | perlin | worley | worleyF2 | cells | cracks | caustics | speckle | bricks | tiles | hex | checker | grid | stripes | chevron | weave | basketWeave | scales | dots | marble | woodGrain | flat Yes Pattern blended over the base height.
blend select 'overlay' overlay | add | multiply | screen | min | max | mix Yes How this layer combines with the height underneath.
amount number 0.35 0 – 1 Yes Blend strength of this layer.
invert boolean false Yes Flips the layer before blending.
contrast number 0 -1 – 1 Yes Sharpens (+) or flattens (-) the layer.
scale number 18 1 – 64 Yes Feature cells across the tile. Higher = finer features.
rotate90 boolean false Yes Turns the pattern a quarter turn (planks run vertical, strata run horizontal). Tiling stays exact.
detail number 4 1 – 8 Yes Fractal octaves layered into the noise.
detailGain number 0.5 0.15 – 0.85 Yes How much each finer octave contributes.
stretchX number 1 0.25 – 8 Yes Horizontal anisotropy (brushed metal, wood planks).
stretchY number 1 0.25 – 8 Yes Vertical anisotropy (drips, strata, fibers).
warp number 0 0 – 1 Yes Domain warp: melts straight features into organic meanders.
warpScale number 3 1 – 32 Yes Frequency of the warp field.
columns number 4 1 – 64 Yes Pattern cells across the tile.
rows number 8 1 – 64 Yes Pattern cells down the tile.
gap number 0.06 0 – 0.4 Yes Mortar/groove width between pattern cells.
bevel number 0.12 0 – 0.5 Yes Edge ramp from groove up to the cell face.
cellJitter number 1 0 – 1 Yes Randomizes cell centers: 0 = perfect grid, 1 = organic.
cellVariation number 0.35 0 – 1 Yes Per-cell brightness variance (brick tint shifts).
edgeWidth number 0.12 0.01 – 0.6 Yes Width of cracks / caustic filaments / speckle chips.
rings number 6 1 – 32 Yes Ring or vein count across the tile (wood, marble).
grain number 0.5 0 – 1 Yes Streak amount (wood) or vein sharpness (marble).

Procedural textures: Detail layer B

Fine grain, pores, chips.

Field Type Default Range / options Portable Description
enabled boolean false Yes Toggles this detail layer.
generator select 'speckle' fbm | billow | ridged | turbulence | value | perlin | worley | worleyF2 | cells | cracks | caustics | speckle | bricks | tiles | hex | checker | grid | stripes | chevron | weave | basketWeave | scales | dots | marble | woodGrain | flat Yes Pattern blended over the base height.
blend select 'add' overlay | add | multiply | screen | min | max | mix Yes How this layer combines with the height underneath.
amount number 0.2 0 – 1 Yes Blend strength of this layer.
invert boolean false Yes Flips the layer before blending.
contrast number 0 -1 – 1 Yes Sharpens (+) or flattens (-) the layer.
scale number 24 1 – 64 Yes Feature cells across the tile. Higher = finer features.
rotate90 boolean false Yes Turns the pattern a quarter turn (planks run vertical, strata run horizontal). Tiling stays exact.
detail number 4 1 – 8 Yes Fractal octaves layered into the noise.
detailGain number 0.5 0.15 – 0.85 Yes How much each finer octave contributes.
stretchX number 1 0.25 – 8 Yes Horizontal anisotropy (brushed metal, wood planks).
stretchY number 1 0.25 – 8 Yes Vertical anisotropy (drips, strata, fibers).
warp number 0 0 – 1 Yes Domain warp: melts straight features into organic meanders.
warpScale number 3 1 – 32 Yes Frequency of the warp field.
columns number 4 1 – 64 Yes Pattern cells across the tile.
rows number 8 1 – 64 Yes Pattern cells down the tile.
gap number 0.06 0 – 0.4 Yes Mortar/groove width between pattern cells.
bevel number 0.12 0 – 0.5 Yes Edge ramp from groove up to the cell face.
cellJitter number 1 0 – 1 Yes Randomizes cell centers: 0 = perfect grid, 1 = organic.
cellVariation number 0.35 0 – 1 Yes Per-cell brightness variance (brick tint shifts).
edgeWidth number 0.12 0.01 – 0.6 Yes Width of cracks / caustic filaments / speckle chips.
rings number 6 1 – 32 Yes Ring or vein count across the tile (wood, marble).
grain number 0.5 0 – 1 Yes Streak amount (wood) or vein sharpness (marble).

Procedural textures: Color

Five-stop height ramp, painterly jitter, cavity & sheen, final grade.

Field Type Default Range / options Portable Description
color0 color [0.16, 0.14, 0.13] (#292421) Yes Ramp stop at the darkest crevices.
color1 color [0.35, 0.31, 0.28] (#594f47) Yes Ramp stop between crevices and the mid tone.
color2 color [0.55, 0.5, 0.45] (#8c8073) Yes Ramp stop for the average surface.
color3 color [0.72, 0.68, 0.62] (#b8ad9e) Yes Ramp stop approaching the ridges.
color4 color [0.88, 0.85, 0.79] (#e0d9c9) Yes Ramp stop at the highest ridges.
pos1 number 0.25 0.02 – 0.98 Yes Where the Low stop sits on the height ramp.
pos2 number 0.5 0.02 – 0.98 Yes Where the Mid stop sits on the height ramp.
pos3 number 0.75 0.02 – 0.98 Yes Where the High stop sits on the height ramp.
rampSmooth number 1 0 – 1 Yes 1 = smooth gradient, 0 = hard cel bands between the five stops.
jitterHue number 0.04 0 – 0.5 Yes Painterly hue drift across the surface.
jitterValue number 0.08 0 – 0.5 Yes Painterly brightness drift across the surface.
jitterScale number 24 2 – 64 Yes Frequency of the painterly drift.
jitterCells boolean false Yes Applies drift per pattern cell (per brick / plank / scale) instead of smoothly.
cavity number 0.35 0 – 1 Yes Darkens crevices toward the cavity tint — the hand-painted occlusion read.
cavityTint color [0.13, 0.09, 0.08] (#211714) Yes Color the crevices sink toward.
sheen number 0.18 0 – 1 Yes Screens the sheen tint over ridges and edges — worn highlight.
sheenTint color [1, 0.97, 0.88] (#fff7e0) Yes Color of the ridge highlight.
hueShift number 0 -0.5 – 0.5 Yes Rotates the final palette hue.
saturation number 1 0 – 2 Yes Final color saturation.
brightness number 1 0.25 – 1.75 Yes Final brightness multiplier.
contrast number 0 -1 – 1 Yes Final color contrast.
gamma number 1 0.4 – 2.5 Yes Final gamma on the albedo.

Procedural textures: Wear & tear

One-knob damage and dirt macros layered over everything.

Field Type Default Range / options Portable Description
damage number 0 0 – 1 Yes Universal wear macro: carves seeded scratches and chips into the surface and roughens them. One knob, many parameters.
dirt number 0 0 – 1 Yes Grime macro: darkens crevices with pooled dirt and raises their roughness, independent of the overlay slots.

Procedural textures: Overlay A

Masked colored overlay: moss, rust, dirt, snow, lichen…

Field Type Default Range / options Portable Description
enabled boolean false Yes Toggles this overlay.
generator select 'fbm' fbm | billow | ridged | turbulence | value | perlin | worley | worleyF2 | cells | cracks | caustics | speckle | bricks | tiles | hex | checker | grid | stripes | chevron | weave | basketWeave | scales | dots | marble | woodGrain | flat Yes Mask pattern deciding where the overlay lands.
color color [0.35, 0.48, 0.22] (#597a38) Yes Overlay color where the mask is strongest.
colorB color [0.52, 0.62, 0.28] (#859e47) Yes Secondary overlay color for variation within the mask.
coverage number 0.35 0 – 1 Yes How much of the surface the overlay claims.
softness number 0.18 0.01 – 0.6 Yes Feather width of the overlay border.
creviceBias number 0.5 -1 – 1 Yes +1 pools into crevices (moss, grime); -1 caps ridges and peaks (snow, wear).
blend select 'normal' normal | multiply | overlay | screen Yes How the overlay color mixes into the albedo.
roughnessShift number 0.25 -1 – 1 Yes Overlay area gets rougher (+) or glossier (-).
heightShift number 0.05 -0.5 – 0.5 Yes Overlay area rises (+) or sinks (-) in the height map.
metalShift number 0 -1 – 1 Yes Overlay area gains (+) or loses (-) metalness — rust strips metal.
contrast number 0 -1 – 1 Yes Sharpens (+) or flattens (-) the mask pattern.
invert boolean false Yes Flips the mask before thresholding.
scale number 5 1 – 64 Yes Feature cells across the tile. Higher = finer features.
rotate90 boolean false Yes Turns the pattern a quarter turn (planks run vertical, strata run horizontal). Tiling stays exact.
detail number 4 1 – 8 Yes Fractal octaves layered into the noise.
detailGain number 0.5 0.15 – 0.85 Yes How much each finer octave contributes.
stretchX number 1 0.25 – 8 Yes Horizontal anisotropy (brushed metal, wood planks).
stretchY number 1 0.25 – 8 Yes Vertical anisotropy (drips, strata, fibers).
warp number 0.3 0 – 1 Yes Domain warp: melts straight features into organic meanders.
warpScale number 3 1 – 32 Yes Frequency of the warp field.
columns number 4 1 – 64 Yes Pattern cells across the tile.
rows number 8 1 – 64 Yes Pattern cells down the tile.
gap number 0.06 0 – 0.4 Yes Mortar/groove width between pattern cells.
bevel number 0.12 0 – 0.5 Yes Edge ramp from groove up to the cell face.
cellJitter number 1 0 – 1 Yes Randomizes cell centers: 0 = perfect grid, 1 = organic.
cellVariation number 0.35 0 – 1 Yes Per-cell brightness variance (brick tint shifts).
edgeWidth number 0.12 0.01 – 0.6 Yes Width of cracks / caustic filaments / speckle chips.
rings number 6 1 – 32 Yes Ring or vein count across the tile (wood, marble).
grain number 0.5 0 – 1 Yes Streak amount (wood) or vein sharpness (marble).

Procedural textures: Overlay B

Second masked overlay: grime, stains, scorch, drips…

Field Type Default Range / options Portable Description
enabled boolean false Yes Toggles this overlay.
generator select 'turbulence' fbm | billow | ridged | turbulence | value | perlin | worley | worleyF2 | cells | cracks | caustics | speckle | bricks | tiles | hex | checker | grid | stripes | chevron | weave | basketWeave | scales | dots | marble | woodGrain | flat Yes Mask pattern deciding where the overlay lands.
color color [0.16, 0.12, 0.09] (#291f17) Yes Overlay color where the mask is strongest.
colorB color [0.3, 0.24, 0.18] (#4d3d2e) Yes Secondary overlay color for variation within the mask.
coverage number 0.3 0 – 1 Yes How much of the surface the overlay claims.
softness number 0.22 0.01 – 0.6 Yes Feather width of the overlay border.
creviceBias number 0.6 -1 – 1 Yes +1 pools into crevices (moss, grime); -1 caps ridges and peaks (snow, wear).
blend select 'multiply' normal | multiply | overlay | screen Yes How the overlay color mixes into the albedo.
roughnessShift number 0.2 -1 – 1 Yes Overlay area gets rougher (+) or glossier (-).
heightShift number -0.03 -0.5 – 0.5 Yes Overlay area rises (+) or sinks (-) in the height map.
metalShift number 0 -1 – 1 Yes Overlay area gains (+) or loses (-) metalness — rust strips metal.
contrast number 0 -1 – 1 Yes Sharpens (+) or flattens (-) the mask pattern.
invert boolean false Yes Flips the mask before thresholding.
scale number 4 1 – 64 Yes Feature cells across the tile. Higher = finer features.
rotate90 boolean false Yes Turns the pattern a quarter turn (planks run vertical, strata run horizontal). Tiling stays exact.
detail number 4 1 – 8 Yes Fractal octaves layered into the noise.
detailGain number 0.5 0.15 – 0.85 Yes How much each finer octave contributes.
stretchX number 1 0.25 – 8 Yes Horizontal anisotropy (brushed metal, wood planks).
stretchY number 1 0.25 – 8 Yes Vertical anisotropy (drips, strata, fibers).
warp number 0.25 0 – 1 Yes Domain warp: melts straight features into organic meanders.
warpScale number 3 1 – 32 Yes Frequency of the warp field.
columns number 4 1 – 64 Yes Pattern cells across the tile.
rows number 8 1 – 64 Yes Pattern cells down the tile.
gap number 0.06 0 – 0.4 Yes Mortar/groove width between pattern cells.
bevel number 0.12 0 – 0.5 Yes Edge ramp from groove up to the cell face.
cellJitter number 1 0 – 1 Yes Randomizes cell centers: 0 = perfect grid, 1 = organic.
cellVariation number 0.35 0 – 1 Yes Per-cell brightness variance (brick tint shifts).
edgeWidth number 0.12 0.01 – 0.6 Yes Width of cracks / caustic filaments / speckle chips.
rings number 6 1 – 32 Yes Ring or vein count across the tile (wood, marble).
grain number 0.5 0 – 1 Yes Streak amount (wood) or vein sharpness (marble).

Procedural textures: Surface

PBR response: relief, occlusion, roughness, metalness.

Field Type Default Range / options Portable Description
heightScale number 0.5 0 – 1 Yes Overall relief strength — feeds the normal map, AO, and displacement.
normalStrength number 1 0 – 3 Yes Extra multiplier on the derived normal map.
invertHeight boolean false Yes Flips the height map (grooves become ridges).
aoStrength number 0.55 0 – 1 Yes Baked ambient occlusion depth in the crevices.
roughness number 0.75 0 – 1 Yes Base roughness: 0 = mirror gloss, 1 = fully matte.
roughnessContrast number 0.35 -1 – 1 Yes +1 = crevices rough & ridges polished; -1 = the reverse.
metalness number 0 0 – 1 Yes Base metalness of the material.

Procedural textures: Glow

Optional emissive map.

Field Type Default Range / options Portable Description
enabled boolean false Yes Adds a glow map (lava cracks, sci-fi circuits, embers).
color color [1, 0.45, 0.12] (#ff731f) Yes Emissive color.
intensity number 2 0 – 8 Yes Emissive brightness (preview material intensity).
source select 'crevices' crevices | peaks | band | accentA | accentB | everywhere Yes Which part of the surface glows.
threshold number 0.5 0 – 1 Yes Height level the glow hugs (band / crevices / peaks).
width number 0.25 0.02 – 0.8 Yes Thickness of the glowing region.
softness number 0.2 0.01 – 0.6 Yes Feather on the glow border.