@3driseai/3drise-core 1.0.21 → 1.0.23
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/autoAnimate/composer.d.ts +6 -0
- package/dist/autoAnimate/composer.d.ts.map +1 -1
- package/dist/autoAnimate/composer.js +4 -3
- package/dist/autoAnimate/describeScene.js +1 -1
- package/dist/catalog/catalogInfo.d.ts +22 -0
- package/dist/catalog/catalogInfo.d.ts.map +1 -0
- package/dist/catalog/catalogInfo.js +204 -0
- package/dist/catalog/index.d.ts +3 -0
- package/dist/catalog/index.d.ts.map +1 -0
- package/dist/catalog/index.js +2 -0
- package/dist/catalog/objectCatalog.d.ts +33 -0
- package/dist/catalog/objectCatalog.d.ts.map +1 -0
- package/dist/catalog/objectCatalog.js +94 -0
- package/dist/data/allMaterials.js +2 -2
- package/dist/data/defaults.d.ts +0 -12
- package/dist/data/defaults.d.ts.map +1 -1
- package/dist/data/defaults.js +0 -12
- package/dist/data/environmentDefaults.d.ts +10 -0
- package/dist/data/environmentDefaults.d.ts.map +1 -0
- package/dist/data/environmentDefaults.js +126 -0
- package/dist/data/gridsDefaults.d.ts +2 -0
- package/dist/data/gridsDefaults.d.ts.map +1 -1
- package/dist/data/gridsDefaults.js +57 -0
- package/dist/data/index.d.ts +4 -0
- package/dist/data/index.d.ts.map +1 -1
- package/dist/data/index.js +4 -0
- package/dist/data/landDefaults.d.ts +26 -0
- package/dist/data/landDefaults.d.ts.map +1 -0
- package/dist/data/landDefaults.js +76 -0
- package/dist/data/spaceDefaults.d.ts +10 -0
- package/dist/data/spaceDefaults.d.ts.map +1 -0
- package/dist/data/spaceDefaults.js +46 -0
- package/dist/data/textDefaults.d.ts +16 -0
- package/dist/data/textDefaults.d.ts.map +1 -0
- package/dist/data/textDefaults.js +219 -0
- package/dist/environment/oceanConfigs.d.ts +5 -4
- package/dist/environment/oceanConfigs.d.ts.map +1 -1
- package/dist/environment/oceanConfigs.js +2 -2
- package/dist/environment/terrainConfigs.d.ts +78 -0
- package/dist/environment/terrainConfigs.d.ts.map +1 -1
- package/dist/environment/terrainConfigs.js +72 -2
- package/dist/index.d.ts +3 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -1
- package/dist/properties/registry.d.ts +15 -1
- package/dist/properties/registry.d.ts.map +1 -1
- package/dist/properties/registry.js +99 -13
- package/dist/properties/tables/environmentProperties.d.ts +9 -0
- package/dist/properties/tables/environmentProperties.d.ts.map +1 -0
- package/dist/properties/tables/environmentProperties.js +127 -0
- package/dist/properties/tables/geometryProperties.d.ts +7 -0
- package/dist/properties/tables/geometryProperties.d.ts.map +1 -1
- package/dist/properties/tables/geometryProperties.js +9 -1
- package/dist/properties/tables/gridProperties.d.ts.map +1 -1
- package/dist/properties/tables/gridProperties.js +117 -93
- package/dist/properties/tables/index.d.ts +4 -0
- package/dist/properties/tables/index.d.ts.map +1 -1
- package/dist/properties/tables/index.js +4 -0
- package/dist/properties/tables/landProperties.d.ts +5 -0
- package/dist/properties/tables/landProperties.d.ts.map +1 -0
- package/dist/properties/tables/landProperties.js +24 -0
- package/dist/properties/tables/optionalProperties.d.ts +1 -2
- package/dist/properties/tables/optionalProperties.d.ts.map +1 -1
- package/dist/properties/tables/optionalProperties.js +22 -0
- package/dist/properties/tables/spaceProperties.d.ts +8 -0
- package/dist/properties/tables/spaceProperties.d.ts.map +1 -0
- package/dist/properties/tables/spaceProperties.js +42 -0
- package/dist/properties/tables/textProperties.d.ts +4 -0
- package/dist/properties/tables/textProperties.d.ts.map +1 -0
- package/dist/properties/tables/textProperties.js +387 -0
- package/dist/properties/types.d.ts +1 -1
- package/dist/properties/types.d.ts.map +1 -1
- package/dist/services/MaterialRegistry.d.ts.map +1 -1
- package/dist/services/MaterialRegistry.js +2 -0
- package/dist/services/SceneActions.d.ts +9 -0
- package/dist/services/SceneActions.d.ts.map +1 -1
- package/dist/services/SceneActions.js +30 -0
- package/dist/services/SkySystemManager.d.ts +22 -0
- package/dist/services/SkySystemManager.d.ts.map +1 -1
- package/dist/services/SkySystemManager.js +50 -18
- package/dist/services/TextureResolver.d.ts.map +1 -1
- package/dist/services/TextureResolver.js +22 -0
- package/dist/services/index.d.ts +1 -1
- package/dist/services/index.d.ts.map +1 -1
- package/dist/services/index.js +1 -1
- package/dist/shaders/SkyboxMaterial.js +3 -3
- package/dist/shaders/StarsMaterial.d.ts +5 -0
- package/dist/shaders/StarsMaterial.d.ts.map +1 -1
- package/dist/shaders/StarsMaterial.js +59 -57
- package/dist/three/LetterV.d.ts +7 -1
- package/dist/three/LetterV.d.ts.map +1 -1
- package/dist/three/Text2DV.d.ts +7 -1
- package/dist/three/Text2DV.d.ts.map +1 -1
- package/dist/three/Text3DV.d.ts +7 -1
- package/dist/three/Text3DV.d.ts.map +1 -1
- package/dist/types/actions.d.ts +6 -6
- package/dist/types/actions.d.ts.map +1 -1
- package/dist/types/commands.d.ts +61 -0
- package/dist/types/commands.d.ts.map +1 -0
- package/dist/types/commands.js +1 -0
- package/dist/types/environment.d.ts +34 -1
- package/dist/types/environment.d.ts.map +1 -1
- package/dist/types/environment.js +15 -0
- package/dist/types/environmentObjects.d.ts +152 -0
- package/dist/types/environmentObjects.d.ts.map +1 -0
- package/dist/types/environmentObjects.js +10 -0
- package/dist/types/index.d.ts +5 -2
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/landObjects.d.ts +15 -0
- package/dist/types/landObjects.d.ts.map +1 -0
- package/dist/types/landObjects.js +1 -0
- package/dist/types/objectSettings.d.ts +189 -16
- package/dist/types/objectSettings.d.ts.map +1 -1
- package/dist/types/objectsConfigs.d.ts +0 -3
- package/dist/types/objectsConfigs.d.ts.map +1 -1
- package/dist/types/scene3d.d.ts +12 -5
- package/dist/types/scene3d.d.ts.map +1 -1
- package/dist/types/spaceObjects.d.ts +65 -0
- package/dist/types/spaceObjects.d.ts.map +1 -0
- package/dist/types/spaceObjects.js +11 -0
- package/dist/types/textObjects.d.ts +371 -0
- package/dist/types/textObjects.d.ts.map +1 -0
- package/dist/types/textObjects.js +14 -0
- package/dist/types/types.d.ts +3 -6
- package/dist/types/types.d.ts.map +1 -1
- package/dist/types/users.d.ts +3 -1
- package/dist/types/users.d.ts.map +1 -1
- package/dist/types/users.js +2 -0
- package/dist/ui/index.d.ts +5 -0
- package/dist/ui/index.d.ts.map +1 -0
- package/dist/ui/index.js +4 -0
- package/dist/ui/uiBindings.d.ts +45 -0
- package/dist/ui/uiBindings.d.ts.map +1 -0
- package/dist/ui/uiBindings.js +172 -0
- package/dist/ui/uiKeys.d.ts +14 -0
- package/dist/ui/uiKeys.d.ts.map +1 -0
- package/dist/ui/uiKeys.js +22 -0
- package/dist/ui/uiSanitize.d.ts +18 -0
- package/dist/ui/uiSanitize.d.ts.map +1 -0
- package/dist/ui/uiSanitize.js +251 -0
- package/dist/ui/uiSpec.d.ts +116 -0
- package/dist/ui/uiSpec.d.ts.map +1 -0
- package/dist/ui/uiSpec.js +173 -0
- package/dist/utils/dataUtils.d.ts.map +1 -1
- package/dist/utils/dataUtils.js +0 -6
- package/dist/utils/environmentMigration.d.ts +3 -0
- package/dist/utils/environmentMigration.d.ts.map +1 -0
- package/dist/utils/environmentMigration.js +50 -0
- package/dist/utils/generativeAnimatable.d.ts +1 -1
- package/dist/utils/generativeAnimatable.d.ts.map +1 -1
- package/dist/utils/generativeAnimatable.js +12 -0
- package/dist/utils/getAnimatableProperties.d.ts +1 -1
- package/dist/utils/getAnimatableProperties.d.ts.map +1 -1
- package/dist/utils/getAnimatableProperties.js +1 -1
- package/dist/utils/gridMigration.d.ts +3 -0
- package/dist/utils/gridMigration.d.ts.map +1 -0
- package/dist/utils/gridMigration.js +34 -0
- package/dist/utils/index.d.ts +6 -0
- package/dist/utils/index.d.ts.map +1 -1
- package/dist/utils/index.js +6 -0
- package/dist/utils/objectEffects.d.ts +24 -2
- package/dist/utils/objectEffects.d.ts.map +1 -1
- package/dist/utils/objectEffects.js +28 -2
- package/dist/utils/objectMigration.d.ts +9 -0
- package/dist/utils/objectMigration.d.ts.map +1 -0
- package/dist/utils/objectMigration.js +13 -0
- package/dist/utils/skyPhase.d.ts +61 -0
- package/dist/utils/skyPhase.d.ts.map +1 -0
- package/dist/utils/skyPhase.js +93 -0
- package/dist/utils/spaceMigration.d.ts +3 -0
- package/dist/utils/spaceMigration.d.ts.map +1 -0
- package/dist/utils/spaceMigration.js +46 -0
- package/dist/utils/sunUtils.d.ts +26 -1
- package/dist/utils/sunUtils.d.ts.map +1 -1
- package/dist/utils/sunUtils.js +37 -6
- package/dist/utils/textMigration.d.ts +3 -0
- package/dist/utils/textMigration.d.ts.map +1 -0
- package/dist/utils/textMigration.js +56 -0
- package/package.json +1 -1
|
@@ -0,0 +1,387 @@
|
|
|
1
|
+
// =============================================================================
|
|
2
|
+
// TEXT OBJECTS OPTIONAL PROPERTIES
|
|
3
|
+
// Order: the look's own knobs, then the shared ones: text, font, draw, erase, playback.
|
|
4
|
+
// =============================================================================
|
|
5
|
+
export const TEXT_PROPERTIES = {
|
|
6
|
+
handwriting: [
|
|
7
|
+
{ name: 'weight', label: 'Pen weight', description: 'Thickness of the pen line', type: 'number', min: 0.4, max: 2.5, step: 0.01 },
|
|
8
|
+
{ name: 'color', label: 'Ink', description: 'Colour of the dry ink', type: 'color' },
|
|
9
|
+
{ name: 'color2', label: 'Wet ink', description: 'Colour of the ink while it is still wet', type: 'color' },
|
|
10
|
+
{ name: 'wetTime', label: 'Drying time', description: 'How long the ink takes to dry', type: 'number', min: 0.2, max: 3, step: 0.05, unit: 's' },
|
|
11
|
+
{ name: 'sheen', label: 'Sheen', description: 'A faint glint that drifts over the dry ink', type: 'number', min: 0, max: 1, step: 0.01 },
|
|
12
|
+
{ name: 'penGlow', label: 'Pen glow', description: 'Glow at the pen tip while writing', type: 'number', min: 0, max: 2, step: 0.05 },
|
|
13
|
+
{ name: 'opacity', label: 'Opacity', description: 'Overall opacity', type: 'number', min: 0, max: 1, step: 0.01 },
|
|
14
|
+
{ name: 'text', label: 'Text', description: 'The words; a new line starts a second line', type: 'string' },
|
|
15
|
+
{ name: 'font', label: 'Font', description: 'Typeface of the text (every look uses the same fonts)', type: 'select', options: ['inter', 'roboto', 'montserrat', 'poppins', 'oswald', 'bebas-neue', 'playfair-display', 'lora', 'caveat', 'kalam', 'handlee', 'patrick-hand', 'architects-daughter', 'indie-flower', 'gochi-hand', 'nanum-pen-script', 'mynerve', 'dancing-script', 'courgette', 'satisfy', 'kaushan-script', 'sriracha', 'pacifico'], optionLabels: ['Inter', 'Roboto', 'Montserrat', 'Poppins', 'Oswald', 'Bebas Neue', 'Playfair Display', 'Lora', 'Caveat', 'Kalam', 'Handlee', 'Patrick Hand', 'Architect\'s Daughter', 'Indie Flower', 'Gochi Hand', 'Nanum Pen', 'Mynerve', 'Dancing Script', 'Courgette', 'Satisfy', 'Kaushan Script', 'Sriracha', 'Pacifico'] },
|
|
16
|
+
{ name: 'drawMethod', label: 'Draw', description: 'How the text appears when it is shown (rebuilds)', type: 'select', options: ['pen', 'trace', 'bothEnds', 'wipe', 'radial', 'scatter', 'dissolve', 'fade', 'none'], optionLabels: ['Pen', 'Trace', 'Both ends', 'Wipe', 'Radial', 'Scatter', 'Dissolve', 'Fade', 'Off'] },
|
|
17
|
+
{ name: 'drawDuration', label: 'Draw duration', description: 'How long the draw animation takes', type: 'number', min: 0.2, max: 15, step: 0.05, unit: 's' },
|
|
18
|
+
{ name: 'drawEase', label: 'Draw easing', description: 'Easing of the draw animation', type: 'select', options: ['easeInOut', 'linear', 'easeOut', 'easeIn'], optionLabels: ['Smooth', 'Linear', 'Out', 'In'] },
|
|
19
|
+
{ name: 'drawStagger', label: 'Draw stagger', description: 'How much the letters are staggered in time, for Trace and Both ends (rebuilds)', type: 'number', min: 0, max: 0.95, step: 0.01 },
|
|
20
|
+
{ name: 'drawAngle', label: 'Draw direction', description: 'Direction of the sweep, for Wipe (rebuilds)', type: 'number', min: -180, max: 180, step: 1, unit: '°' },
|
|
21
|
+
{ name: 'eraseMethod', label: 'Erase', description: 'How the text disappears when it is switched off (rebuilds)', type: 'select', options: ['fade', 'undraw', 'wipe', 'radial', 'scatter', 'dissolve', 'trace', 'bothEnds', 'pen', 'cut', 'none'], optionLabels: ['Fade', 'Reverse', 'Wipe', 'Radial', 'Scatter', 'Dissolve', 'Trace', 'Both ends', 'Pen', 'Cut', 'Off'] },
|
|
22
|
+
{ name: 'eraseDuration', label: 'Erase duration', description: 'How long the erase animation takes', type: 'number', min: 0.2, max: 15, step: 0.05, unit: 's' },
|
|
23
|
+
{ name: 'eraseEase', label: 'Erase easing', description: 'Easing of the erase animation', type: 'select', options: ['easeInOut', 'linear', 'easeOut', 'easeIn'], optionLabels: ['Smooth', 'Linear', 'Out', 'In'] },
|
|
24
|
+
{ name: 'eraseStagger', label: 'Erase stagger', description: 'How much the letters are staggered in time, for Trace and Both ends (rebuilds)', type: 'number', min: 0, max: 0.95, step: 0.01 },
|
|
25
|
+
{ name: 'eraseAngle', label: 'Erase direction', description: 'Direction of the sweep, for Wipe (rebuilds)', type: 'number', min: -180, max: 180, step: 1, unit: '°' },
|
|
26
|
+
{ name: 'autoPlay', label: 'Play on load', description: 'Play the draw animation when the scene starts', type: 'boolean' },
|
|
27
|
+
{ name: 'loop', label: 'Loop', description: 'Repeat hidden, draw, hold, erase, hidden', type: 'boolean' },
|
|
28
|
+
{ name: 'yoyo', label: 'Yoyo', description: 'Play the whole cycle forward, then backward', type: 'boolean' },
|
|
29
|
+
{ name: 'holdTime', label: 'Hold', description: 'How long the finished text stays before it is erased (loop)', type: 'number', min: 0, max: 10, step: 0.1, unit: 's' },
|
|
30
|
+
{ name: 'hiddenTime', label: 'Hidden pause', description: 'Pause with nothing shown between cycles (loop)', type: 'number', min: 0, max: 5, step: 0.1, unit: 's' },
|
|
31
|
+
],
|
|
32
|
+
neonTube: [
|
|
33
|
+
{ name: 'color', label: 'Tube colour', description: 'Colour of the glowing gas', type: 'color' },
|
|
34
|
+
{ name: 'glow', label: 'Glow', description: 'Strength of the halo', type: 'number', min: 0, max: 2, step: 0.05 },
|
|
35
|
+
{ name: 'tube', label: 'Tube thickness', description: 'Thickness of the glass tube', type: 'number', min: 0.015, max: 0.12, step: 0.001 },
|
|
36
|
+
{ name: 'flicker', label: 'Flicker', description: 'Stutter on ignition, mains hum and the odd micro-dip', type: 'number', min: 0, max: 1, step: 0.05 },
|
|
37
|
+
{ name: 'color2', label: 'Hot core', description: 'Colour of the hot core', type: 'color' },
|
|
38
|
+
{ name: 'core', label: 'Core width', description: 'Width of the bright core', type: 'number', min: 0.08, max: 0.5, step: 0.01 },
|
|
39
|
+
{ name: 'offLevel', label: 'Unlit glass', description: 'How visible the tube is before it ignites', type: 'number', min: 0, max: 0.4, step: 0.01 },
|
|
40
|
+
{ name: 'opacity', label: 'Opacity', description: 'Overall opacity', type: 'number', min: 0, max: 1, step: 0.01 },
|
|
41
|
+
{ name: 'text', label: 'Text', description: 'The words; a new line starts a second line', type: 'string' },
|
|
42
|
+
{ name: 'font', label: 'Font', description: 'Typeface of the text (every look uses the same fonts)', type: 'select', options: ['inter', 'roboto', 'montserrat', 'poppins', 'oswald', 'bebas-neue', 'playfair-display', 'lora', 'caveat', 'kalam', 'handlee', 'patrick-hand', 'architects-daughter', 'indie-flower', 'gochi-hand', 'nanum-pen-script', 'mynerve', 'dancing-script', 'courgette', 'satisfy', 'kaushan-script', 'sriracha', 'pacifico'], optionLabels: ['Inter', 'Roboto', 'Montserrat', 'Poppins', 'Oswald', 'Bebas Neue', 'Playfair Display', 'Lora', 'Caveat', 'Kalam', 'Handlee', 'Patrick Hand', 'Architect\'s Daughter', 'Indie Flower', 'Gochi Hand', 'Nanum Pen', 'Mynerve', 'Dancing Script', 'Courgette', 'Satisfy', 'Kaushan Script', 'Sriracha', 'Pacifico'] },
|
|
43
|
+
{ name: 'drawMethod', label: 'Draw', description: 'How the text appears when it is shown (rebuilds)', type: 'select', options: ['trace', 'pen', 'bothEnds', 'wipe', 'radial', 'scatter', 'dissolve', 'fade', 'none'], optionLabels: ['Trace', 'Pen', 'Both ends', 'Wipe', 'Radial', 'Scatter', 'Dissolve', 'Fade', 'Off'] },
|
|
44
|
+
{ name: 'drawDuration', label: 'Draw duration', description: 'How long the draw animation takes', type: 'number', min: 0.2, max: 15, step: 0.05, unit: 's' },
|
|
45
|
+
{ name: 'drawEase', label: 'Draw easing', description: 'Easing of the draw animation', type: 'select', options: ['easeInOut', 'linear', 'easeOut', 'easeIn'], optionLabels: ['Smooth', 'Linear', 'Out', 'In'] },
|
|
46
|
+
{ name: 'drawStagger', label: 'Draw stagger', description: 'How much the letters are staggered in time, for Trace and Both ends (rebuilds)', type: 'number', min: 0, max: 0.95, step: 0.01 },
|
|
47
|
+
{ name: 'drawAngle', label: 'Draw direction', description: 'Direction of the sweep, for Wipe (rebuilds)', type: 'number', min: -180, max: 180, step: 1, unit: '°' },
|
|
48
|
+
{ name: 'eraseMethod', label: 'Erase', description: 'How the text disappears when it is switched off (rebuilds)', type: 'select', options: ['fade', 'undraw', 'wipe', 'radial', 'scatter', 'dissolve', 'trace', 'bothEnds', 'pen', 'cut', 'none'], optionLabels: ['Fade', 'Reverse', 'Wipe', 'Radial', 'Scatter', 'Dissolve', 'Trace', 'Both ends', 'Pen', 'Cut', 'Off'] },
|
|
49
|
+
{ name: 'eraseDuration', label: 'Erase duration', description: 'How long the erase animation takes', type: 'number', min: 0.2, max: 15, step: 0.05, unit: 's' },
|
|
50
|
+
{ name: 'eraseEase', label: 'Erase easing', description: 'Easing of the erase animation', type: 'select', options: ['easeInOut', 'linear', 'easeOut', 'easeIn'], optionLabels: ['Smooth', 'Linear', 'Out', 'In'] },
|
|
51
|
+
{ name: 'eraseStagger', label: 'Erase stagger', description: 'How much the letters are staggered in time, for Trace and Both ends (rebuilds)', type: 'number', min: 0, max: 0.95, step: 0.01 },
|
|
52
|
+
{ name: 'eraseAngle', label: 'Erase direction', description: 'Direction of the sweep, for Wipe (rebuilds)', type: 'number', min: -180, max: 180, step: 1, unit: '°' },
|
|
53
|
+
{ name: 'autoPlay', label: 'Play on load', description: 'Play the draw animation when the scene starts', type: 'boolean' },
|
|
54
|
+
{ name: 'loop', label: 'Loop', description: 'Repeat hidden, draw, hold, erase, hidden', type: 'boolean' },
|
|
55
|
+
{ name: 'yoyo', label: 'Yoyo', description: 'Play the whole cycle forward, then backward', type: 'boolean' },
|
|
56
|
+
{ name: 'holdTime', label: 'Hold', description: 'How long the finished text stays before it is erased (loop)', type: 'number', min: 0, max: 10, step: 0.1, unit: 's' },
|
|
57
|
+
{ name: 'hiddenTime', label: 'Hidden pause', description: 'Pause with nothing shown between cycles (loop)', type: 'number', min: 0, max: 5, step: 0.1, unit: 's' },
|
|
58
|
+
],
|
|
59
|
+
fourierSketch: [
|
|
60
|
+
{ name: 'color', label: 'Line colour', description: 'Colour of the traced letters', type: 'color' },
|
|
61
|
+
{ name: 'terms', label: 'Detail', description: 'Number of circles per letter: more is sharper', type: 'number', min: 6, max: 128, step: 1 },
|
|
62
|
+
{ name: 'circles', label: 'Circles', description: 'How visible the rotating circles are while drawing', type: 'number', min: 0, max: 1, step: 0.01 },
|
|
63
|
+
{ name: 'glint', label: 'Glints', description: 'Glints that keep circling the finished letters', type: 'number', min: 0, max: 1, step: 0.01 },
|
|
64
|
+
{ name: 'color2', label: 'Hot colour', description: 'Colour of fresh strokes and glints', type: 'color' },
|
|
65
|
+
{ name: 'line', label: 'Line width', description: 'Thickness of the traced line', type: 'number', min: 0.01, max: 0.1, step: 0.001 },
|
|
66
|
+
{ name: 'trail', label: 'Trail', description: 'How long fresh strokes stay hot', type: 'number', min: 0.1, max: 4, step: 0.05, unit: 's' },
|
|
67
|
+
{ name: 'bridges', label: 'Bridges', description: 'Visibility of the lines joining outlines to counters', type: 'number', min: 0, max: 0.6, step: 0.01 },
|
|
68
|
+
{ name: 'opacity', label: 'Opacity', description: 'Overall opacity', type: 'number', min: 0, max: 1, step: 0.01 },
|
|
69
|
+
{ name: 'text', label: 'Text', description: 'The words; a new line starts a second line', type: 'string' },
|
|
70
|
+
{ name: 'font', label: 'Font', description: 'Typeface of the text (every look uses the same fonts)', type: 'select', options: ['inter', 'roboto', 'montserrat', 'poppins', 'oswald', 'bebas-neue', 'playfair-display', 'lora', 'caveat', 'kalam', 'handlee', 'patrick-hand', 'architects-daughter', 'indie-flower', 'gochi-hand', 'nanum-pen-script', 'mynerve', 'dancing-script', 'courgette', 'satisfy', 'kaushan-script', 'sriracha', 'pacifico'], optionLabels: ['Inter', 'Roboto', 'Montserrat', 'Poppins', 'Oswald', 'Bebas Neue', 'Playfair Display', 'Lora', 'Caveat', 'Kalam', 'Handlee', 'Patrick Hand', 'Architect\'s Daughter', 'Indie Flower', 'Gochi Hand', 'Nanum Pen', 'Mynerve', 'Dancing Script', 'Courgette', 'Satisfy', 'Kaushan Script', 'Sriracha', 'Pacifico'] },
|
|
71
|
+
{ name: 'drawMethod', label: 'Draw', description: 'How the text appears when it is shown (rebuilds)', type: 'select', options: ['epicycle', 'trace', 'pen', 'bothEnds', 'wipe', 'radial', 'scatter', 'dissolve', 'fade', 'none'], optionLabels: ['Epicycles', 'Trace', 'Pen', 'Both ends', 'Wipe', 'Radial', 'Scatter', 'Dissolve', 'Fade', 'Off'] },
|
|
72
|
+
{ name: 'drawDuration', label: 'Draw duration', description: 'How long the draw animation takes', type: 'number', min: 0.2, max: 15, step: 0.05, unit: 's' },
|
|
73
|
+
{ name: 'drawEase', label: 'Draw easing', description: 'Easing of the draw animation', type: 'select', options: ['easeInOut', 'linear', 'easeOut', 'easeIn'], optionLabels: ['Smooth', 'Linear', 'Out', 'In'] },
|
|
74
|
+
{ name: 'drawStagger', label: 'Draw stagger', description: 'How much the letters are staggered in time, for Trace and Both ends (rebuilds)', type: 'number', min: 0, max: 0.95, step: 0.01 },
|
|
75
|
+
{ name: 'drawAngle', label: 'Draw direction', description: 'Direction of the sweep, for Wipe (rebuilds)', type: 'number', min: -180, max: 180, step: 1, unit: '°' },
|
|
76
|
+
{ name: 'eraseMethod', label: 'Erase', description: 'How the text disappears when it is switched off (rebuilds)', type: 'select', options: ['fade', 'undraw', 'wipe', 'radial', 'scatter', 'dissolve', 'trace', 'bothEnds', 'pen', 'cut', 'none'], optionLabels: ['Fade', 'Reverse', 'Wipe', 'Radial', 'Scatter', 'Dissolve', 'Trace', 'Both ends', 'Pen', 'Cut', 'Off'] },
|
|
77
|
+
{ name: 'eraseDuration', label: 'Erase duration', description: 'How long the erase animation takes', type: 'number', min: 0.2, max: 15, step: 0.05, unit: 's' },
|
|
78
|
+
{ name: 'eraseEase', label: 'Erase easing', description: 'Easing of the erase animation', type: 'select', options: ['easeInOut', 'linear', 'easeOut', 'easeIn'], optionLabels: ['Smooth', 'Linear', 'Out', 'In'] },
|
|
79
|
+
{ name: 'eraseStagger', label: 'Erase stagger', description: 'How much the letters are staggered in time, for Trace and Both ends (rebuilds)', type: 'number', min: 0, max: 0.95, step: 0.01 },
|
|
80
|
+
{ name: 'eraseAngle', label: 'Erase direction', description: 'Direction of the sweep, for Wipe (rebuilds)', type: 'number', min: -180, max: 180, step: 1, unit: '°' },
|
|
81
|
+
{ name: 'autoPlay', label: 'Play on load', description: 'Play the draw animation when the scene starts', type: 'boolean' },
|
|
82
|
+
{ name: 'loop', label: 'Loop', description: 'Repeat hidden, draw, hold, erase, hidden', type: 'boolean' },
|
|
83
|
+
{ name: 'yoyo', label: 'Yoyo', description: 'Play the whole cycle forward, then backward', type: 'boolean' },
|
|
84
|
+
{ name: 'holdTime', label: 'Hold', description: 'How long the finished text stays before it is erased (loop)', type: 'number', min: 0, max: 10, step: 0.1, unit: 's' },
|
|
85
|
+
{ name: 'hiddenTime', label: 'Hidden pause', description: 'Pause with nothing shown between cycles (loop)', type: 'number', min: 0, max: 5, step: 0.1, unit: 's' },
|
|
86
|
+
],
|
|
87
|
+
frostGrowth: [
|
|
88
|
+
{ name: 'reach', label: 'Reach', description: 'How far the frost spreads from the letters', type: 'number', min: 0.04, max: 0.5, step: 0.005, unit: 'em' },
|
|
89
|
+
{ name: 'branching', label: 'Branching', description: 'Side-branch density of the ice ferns', type: 'number', min: 0.3, max: 1.8, step: 0.05 },
|
|
90
|
+
{ name: 'grains', label: 'Grains', description: 'Number of crystal grains; each has its own lattice orientation', type: 'number', min: 1, max: 9, step: 1 },
|
|
91
|
+
{ name: 'sparkle', label: 'Sparkle', description: 'Sharp glints travelling over the crystal facets', type: 'number', min: 0, max: 1, step: 0.01 },
|
|
92
|
+
{ name: 'thickness', label: 'Thickness', description: 'Thickness of the ice arms', type: 'number', min: 0.4, max: 2.5, step: 0.05 },
|
|
93
|
+
{ name: 'seams', label: 'Grain seams', description: 'Brightness of the boundary lines where grains meet', type: 'number', min: 0, max: 1, step: 0.01 },
|
|
94
|
+
{ name: 'haze', label: 'Frost haze', description: 'Soft frosted glow around the ice', type: 'number', min: 0, max: 1.5, step: 0.01 },
|
|
95
|
+
{ name: 'color', label: 'Ice', description: 'Pale colour of thin edges and tips', type: 'color' },
|
|
96
|
+
{ name: 'color2', label: 'Deep ice', description: 'Cooler deeper tone of thick spines', type: 'color' },
|
|
97
|
+
{ name: 'opacity', label: 'Opacity', description: 'Overall opacity', type: 'number', min: 0, max: 1, step: 0.01 },
|
|
98
|
+
{ name: 'seed', label: 'Seed', description: 'Random seed of the crystal pattern', type: 'number', min: 0, max: 999, step: 1 },
|
|
99
|
+
{ name: 'text', label: 'Text', description: 'The words; a new line starts a second line', type: 'string' },
|
|
100
|
+
{ name: 'font', label: 'Font', description: 'Typeface of the text (every look uses the same fonts)', type: 'select', options: ['inter', 'roboto', 'montserrat', 'poppins', 'oswald', 'bebas-neue', 'playfair-display', 'lora', 'caveat', 'kalam', 'handlee', 'patrick-hand', 'architects-daughter', 'indie-flower', 'gochi-hand', 'nanum-pen-script', 'mynerve', 'dancing-script', 'courgette', 'satisfy', 'kaushan-script', 'sriracha', 'pacifico'], optionLabels: ['Inter', 'Roboto', 'Montserrat', 'Poppins', 'Oswald', 'Bebas Neue', 'Playfair Display', 'Lora', 'Caveat', 'Kalam', 'Handlee', 'Patrick Hand', 'Architect\'s Daughter', 'Indie Flower', 'Gochi Hand', 'Nanum Pen', 'Mynerve', 'Dancing Script', 'Courgette', 'Satisfy', 'Kaushan Script', 'Sriracha', 'Pacifico'] },
|
|
101
|
+
{ name: 'drawMethod', label: 'Draw', description: 'How the text appears when it is shown (rebuilds)', type: 'select', options: ['grow', 'pen', 'trace', 'bothEnds', 'wipe', 'radial', 'scatter', 'dissolve', 'fade', 'none'], optionLabels: ['Grow', 'Pen', 'Trace', 'Both ends', 'Wipe', 'Radial', 'Scatter', 'Dissolve', 'Fade', 'Off'] },
|
|
102
|
+
{ name: 'drawDuration', label: 'Draw duration', description: 'How long the draw animation takes', type: 'number', min: 0.2, max: 15, step: 0.05, unit: 's' },
|
|
103
|
+
{ name: 'drawEase', label: 'Draw easing', description: 'Easing of the draw animation', type: 'select', options: ['easeInOut', 'linear', 'easeOut', 'easeIn'], optionLabels: ['Smooth', 'Linear', 'Out', 'In'] },
|
|
104
|
+
{ name: 'drawStagger', label: 'Draw stagger', description: 'How much the letters are staggered in time, for Trace and Both ends (rebuilds)', type: 'number', min: 0, max: 0.95, step: 0.01 },
|
|
105
|
+
{ name: 'drawAngle', label: 'Draw direction', description: 'Direction of the sweep, for Wipe (rebuilds)', type: 'number', min: -180, max: 180, step: 1, unit: '°' },
|
|
106
|
+
{ name: 'eraseMethod', label: 'Erase', description: 'How the text disappears when it is switched off (rebuilds)', type: 'select', options: ['sublimate', 'fade', 'undraw', 'wipe', 'radial', 'scatter', 'dissolve', 'trace', 'bothEnds', 'pen', 'cut', 'none'], optionLabels: ['Sublimate', 'Fade', 'Reverse', 'Wipe', 'Radial', 'Scatter', 'Dissolve', 'Trace', 'Both ends', 'Pen', 'Cut', 'Off'] },
|
|
107
|
+
{ name: 'eraseDuration', label: 'Erase duration', description: 'How long the erase animation takes', type: 'number', min: 0.2, max: 15, step: 0.05, unit: 's' },
|
|
108
|
+
{ name: 'eraseEase', label: 'Erase easing', description: 'Easing of the erase animation', type: 'select', options: ['easeInOut', 'linear', 'easeOut', 'easeIn'], optionLabels: ['Smooth', 'Linear', 'Out', 'In'] },
|
|
109
|
+
{ name: 'eraseStagger', label: 'Erase stagger', description: 'How much the letters are staggered in time, for Trace and Both ends (rebuilds)', type: 'number', min: 0, max: 0.95, step: 0.01 },
|
|
110
|
+
{ name: 'eraseAngle', label: 'Erase direction', description: 'Direction of the sweep, for Wipe (rebuilds)', type: 'number', min: -180, max: 180, step: 1, unit: '°' },
|
|
111
|
+
{ name: 'autoPlay', label: 'Play on load', description: 'Play the draw animation when the scene starts', type: 'boolean' },
|
|
112
|
+
{ name: 'loop', label: 'Loop', description: 'Repeat hidden, draw, hold, erase, hidden', type: 'boolean' },
|
|
113
|
+
{ name: 'yoyo', label: 'Yoyo', description: 'Play the whole cycle forward, then backward', type: 'boolean' },
|
|
114
|
+
{ name: 'holdTime', label: 'Hold', description: 'How long the finished text stays before it is erased (loop)', type: 'number', min: 0, max: 10, step: 0.1, unit: 's' },
|
|
115
|
+
{ name: 'hiddenTime', label: 'Hidden pause', description: 'Pause with nothing shown between cycles (loop)', type: 'number', min: 0, max: 5, step: 0.1, unit: 's' },
|
|
116
|
+
],
|
|
117
|
+
plasmaDischarge: [
|
|
118
|
+
{ name: 'branches', label: 'Branching', description: 'How many streamers fork off the letters', type: 'number', min: 0, max: 1, step: 0.01 },
|
|
119
|
+
{ name: 'reach', label: 'Reach', description: 'How far the streamers reach from the letters', type: 'number', min: 0.05, max: 1, step: 0.01 },
|
|
120
|
+
{ name: 'branchiness', label: 'Branchiness', description: 'Low: straight streamers that follow the field closely. High: wandering, bushy, more forks', type: 'number', min: 0, max: 1, step: 0.01 },
|
|
121
|
+
{ name: 'glow', label: 'Glow', description: 'Brightness and size of the plasma halo', type: 'number', min: 0, max: 2, step: 0.01 },
|
|
122
|
+
{ name: 'pulse', label: 'Current pulses', description: 'Strength of the current pulses travelling along the channels', type: 'number', min: 0, max: 1.5, step: 0.01 },
|
|
123
|
+
{ name: 'spectrum', label: 'Emission lines', description: 'Orange-red atomic-line tinge in the hottest channel and the faint recombination afterglow', type: 'number', min: 0, max: 1, step: 0.01 },
|
|
124
|
+
{ name: 'core', label: 'Core width', description: 'Thickness of the white-hot arc core', type: 'number', min: 0.002, max: 0.02, step: 0.0005 },
|
|
125
|
+
{ name: 'color', label: 'Plasma', description: 'Colour of the plasma halo and cooling channels', type: 'color' },
|
|
126
|
+
{ name: 'color2', label: 'Hot core', description: 'Colour of the hottest, freshly struck channel', type: 'color' },
|
|
127
|
+
{ name: 'opacity', label: 'Opacity', description: 'Overall opacity', type: 'number', min: 0, max: 1, step: 0.01 },
|
|
128
|
+
{ name: 'seed', label: 'Seed', description: 'Different streamer layout', type: 'number', min: 0, max: 99, step: 1 },
|
|
129
|
+
{ name: 'text', label: 'Text', description: 'The words; a new line starts a second line', type: 'string' },
|
|
130
|
+
{ name: 'font', label: 'Font', description: 'Typeface of the text (every look uses the same fonts)', type: 'select', options: ['inter', 'roboto', 'montserrat', 'poppins', 'oswald', 'bebas-neue', 'playfair-display', 'lora', 'caveat', 'kalam', 'handlee', 'patrick-hand', 'architects-daughter', 'indie-flower', 'gochi-hand', 'nanum-pen-script', 'mynerve', 'dancing-script', 'courgette', 'satisfy', 'kaushan-script', 'sriracha', 'pacifico'], optionLabels: ['Inter', 'Roboto', 'Montserrat', 'Poppins', 'Oswald', 'Bebas Neue', 'Playfair Display', 'Lora', 'Caveat', 'Kalam', 'Handlee', 'Patrick Hand', 'Architect\'s Daughter', 'Indie Flower', 'Gochi Hand', 'Nanum Pen', 'Mynerve', 'Dancing Script', 'Courgette', 'Satisfy', 'Kaushan Script', 'Sriracha', 'Pacifico'] },
|
|
131
|
+
{ name: 'drawMethod', label: 'Draw', description: 'How the text appears when it is shown (rebuilds)', type: 'select', options: ['strike', 'pen', 'trace', 'bothEnds', 'wipe', 'radial', 'scatter', 'dissolve', 'fade', 'none'], optionLabels: ['Strike', 'Pen', 'Trace', 'Both ends', 'Wipe', 'Radial', 'Scatter', 'Dissolve', 'Fade', 'Off'] },
|
|
132
|
+
{ name: 'drawDuration', label: 'Draw duration', description: 'How long the draw animation takes', type: 'number', min: 0.2, max: 15, step: 0.05, unit: 's' },
|
|
133
|
+
{ name: 'drawEase', label: 'Draw easing', description: 'Easing of the draw animation', type: 'select', options: ['easeInOut', 'linear', 'easeOut', 'easeIn'], optionLabels: ['Smooth', 'Linear', 'Out', 'In'] },
|
|
134
|
+
{ name: 'drawStagger', label: 'Draw stagger', description: 'How much the letters are staggered in time, for Trace and Both ends (rebuilds)', type: 'number', min: 0, max: 0.95, step: 0.01 },
|
|
135
|
+
{ name: 'drawAngle', label: 'Draw direction', description: 'Direction of the sweep, for Wipe (rebuilds)', type: 'number', min: -180, max: 180, step: 1, unit: '°' },
|
|
136
|
+
{ name: 'eraseMethod', label: 'Erase', description: 'How the text disappears when it is switched off (rebuilds)', type: 'select', options: ['fade', 'undraw', 'wipe', 'radial', 'scatter', 'dissolve', 'trace', 'bothEnds', 'pen', 'cut', 'none'], optionLabels: ['Fade', 'Reverse', 'Wipe', 'Radial', 'Scatter', 'Dissolve', 'Trace', 'Both ends', 'Pen', 'Cut', 'Off'] },
|
|
137
|
+
{ name: 'eraseDuration', label: 'Erase duration', description: 'How long the erase animation takes', type: 'number', min: 0.2, max: 15, step: 0.05, unit: 's' },
|
|
138
|
+
{ name: 'eraseEase', label: 'Erase easing', description: 'Easing of the erase animation', type: 'select', options: ['easeInOut', 'linear', 'easeOut', 'easeIn'], optionLabels: ['Smooth', 'Linear', 'Out', 'In'] },
|
|
139
|
+
{ name: 'eraseStagger', label: 'Erase stagger', description: 'How much the letters are staggered in time, for Trace and Both ends (rebuilds)', type: 'number', min: 0, max: 0.95, step: 0.01 },
|
|
140
|
+
{ name: 'eraseAngle', label: 'Erase direction', description: 'Direction of the sweep, for Wipe (rebuilds)', type: 'number', min: -180, max: 180, step: 1, unit: '°' },
|
|
141
|
+
{ name: 'autoPlay', label: 'Play on load', description: 'Play the draw animation when the scene starts', type: 'boolean' },
|
|
142
|
+
{ name: 'loop', label: 'Loop', description: 'Repeat hidden, draw, hold, erase, hidden', type: 'boolean' },
|
|
143
|
+
{ name: 'yoyo', label: 'Yoyo', description: 'Play the whole cycle forward, then backward', type: 'boolean' },
|
|
144
|
+
{ name: 'holdTime', label: 'Hold', description: 'How long the finished text stays before it is erased (loop)', type: 'number', min: 0, max: 10, step: 0.1, unit: 's' },
|
|
145
|
+
{ name: 'hiddenTime', label: 'Hidden pause', description: 'Pause with nothing shown between cycles (loop)', type: 'number', min: 0, max: 5, step: 0.1, unit: 's' },
|
|
146
|
+
],
|
|
147
|
+
burnAway: [
|
|
148
|
+
{ name: 'char', label: 'Char', description: 'How much cracked char and ash is left behind the fire (0 = clean burn).', type: 'number', min: 0, max: 1, step: 0.01 },
|
|
149
|
+
{ name: 'spread', label: 'Spread', description: 'Speed of the fire front; faster fronts leave their remains lingering longer.', type: 'number', min: 0.3, max: 2.2, step: 0.01 },
|
|
150
|
+
{ name: 'ember', label: 'Ember', description: 'Brightness and size of the embers, sparks and the glowing front.', type: 'number', min: 0, max: 2, step: 0.01 },
|
|
151
|
+
{ name: 'color', label: 'Paper', description: 'Colour of the paper.', type: 'color' },
|
|
152
|
+
{ name: 'color2', label: 'Ember colour', description: 'Hue of the glowing embers (tints the blackbody ramp).', type: 'color' },
|
|
153
|
+
{ name: 'roughness', label: 'Raggedness', description: 'How unevenly the fire spreads and how ragged the front is.', type: 'number', min: 0, max: 1, step: 0.01 },
|
|
154
|
+
{ name: 'singe', label: 'Singe', description: 'Width and depth of the scorched brown rim at rest.', type: 'number', min: 0, max: 1, step: 0.01 },
|
|
155
|
+
{ name: 'ashLace', label: 'Ash lace', description: 'How much of the writing stays as a fragile ash skeleton before it flakes away.', type: 'number', min: 0, max: 1, step: 0.01 },
|
|
156
|
+
{ name: 'curl', label: 'Curl', description: 'How strongly the charring paper edge curls up toward the viewer.', type: 'number', min: 0, max: 1, step: 0.01 },
|
|
157
|
+
{ name: 'opacity', label: 'Opacity', description: 'Overall opacity.', type: 'number', min: 0, max: 1, step: 0.01 },
|
|
158
|
+
{ name: 'seed', label: 'Seed', description: 'Where the fire starts and how it spreads.', type: 'number', min: 0, max: 99, step: 1 },
|
|
159
|
+
{ name: 'text', label: 'Text', description: 'The words; a new line starts a second line', type: 'string' },
|
|
160
|
+
{ name: 'font', label: 'Font', description: 'Typeface of the text (every look uses the same fonts)', type: 'select', options: ['inter', 'roboto', 'montserrat', 'poppins', 'oswald', 'bebas-neue', 'playfair-display', 'lora', 'caveat', 'kalam', 'handlee', 'patrick-hand', 'architects-daughter', 'indie-flower', 'gochi-hand', 'nanum-pen-script', 'mynerve', 'dancing-script', 'courgette', 'satisfy', 'kaushan-script', 'sriracha', 'pacifico'], optionLabels: ['Inter', 'Roboto', 'Montserrat', 'Poppins', 'Oswald', 'Bebas Neue', 'Playfair Display', 'Lora', 'Caveat', 'Kalam', 'Handlee', 'Patrick Hand', 'Architect\'s Daughter', 'Indie Flower', 'Gochi Hand', 'Nanum Pen', 'Mynerve', 'Dancing Script', 'Courgette', 'Satisfy', 'Kaushan Script', 'Sriracha', 'Pacifico'] },
|
|
161
|
+
{ name: 'drawMethod', label: 'Draw', description: 'How the text appears when it is shown (rebuilds)', type: 'select', options: ['pen', 'trace', 'bothEnds', 'wipe', 'radial', 'scatter', 'dissolve', 'fade', 'none'], optionLabels: ['Pen', 'Trace', 'Both ends', 'Wipe', 'Radial', 'Scatter', 'Dissolve', 'Fade', 'Off'] },
|
|
162
|
+
{ name: 'drawDuration', label: 'Draw duration', description: 'How long the draw animation takes', type: 'number', min: 0.2, max: 15, step: 0.05, unit: 's' },
|
|
163
|
+
{ name: 'drawEase', label: 'Draw easing', description: 'Easing of the draw animation', type: 'select', options: ['easeInOut', 'linear', 'easeOut', 'easeIn'], optionLabels: ['Smooth', 'Linear', 'Out', 'In'] },
|
|
164
|
+
{ name: 'drawStagger', label: 'Draw stagger', description: 'How much the letters are staggered in time, for Trace and Both ends (rebuilds)', type: 'number', min: 0, max: 0.95, step: 0.01 },
|
|
165
|
+
{ name: 'drawAngle', label: 'Draw direction', description: 'Direction of the sweep, for Wipe (rebuilds)', type: 'number', min: -180, max: 180, step: 1, unit: '°' },
|
|
166
|
+
{ name: 'eraseMethod', label: 'Erase', description: 'How the text disappears when it is switched off (rebuilds)', type: 'select', options: ['burn', 'fade', 'undraw', 'wipe', 'radial', 'scatter', 'dissolve', 'trace', 'bothEnds', 'pen', 'cut', 'none'], optionLabels: ['Burn', 'Fade', 'Reverse', 'Wipe', 'Radial', 'Scatter', 'Dissolve', 'Trace', 'Both ends', 'Pen', 'Cut', 'Off'] },
|
|
167
|
+
{ name: 'eraseDuration', label: 'Erase duration', description: 'How long the erase animation takes', type: 'number', min: 0.2, max: 15, step: 0.05, unit: 's' },
|
|
168
|
+
{ name: 'eraseEase', label: 'Erase easing', description: 'Easing of the erase animation', type: 'select', options: ['easeInOut', 'linear', 'easeOut', 'easeIn'], optionLabels: ['Smooth', 'Linear', 'Out', 'In'] },
|
|
169
|
+
{ name: 'eraseStagger', label: 'Erase stagger', description: 'How much the letters are staggered in time, for Trace and Both ends (rebuilds)', type: 'number', min: 0, max: 0.95, step: 0.01 },
|
|
170
|
+
{ name: 'eraseAngle', label: 'Erase direction', description: 'Direction of the sweep, for Wipe (rebuilds)', type: 'number', min: -180, max: 180, step: 1, unit: '°' },
|
|
171
|
+
{ name: 'autoPlay', label: 'Play on load', description: 'Play the draw animation when the scene starts', type: 'boolean' },
|
|
172
|
+
{ name: 'loop', label: 'Loop', description: 'Repeat hidden, draw, hold, erase, hidden', type: 'boolean' },
|
|
173
|
+
{ name: 'yoyo', label: 'Yoyo', description: 'Play the whole cycle forward, then backward', type: 'boolean' },
|
|
174
|
+
{ name: 'holdTime', label: 'Hold', description: 'How long the finished text stays before it is erased (loop)', type: 'number', min: 0, max: 10, step: 0.1, unit: 's' },
|
|
175
|
+
{ name: 'hiddenTime', label: 'Hidden pause', description: 'Pause with nothing shown between cycles (loop)', type: 'number', min: 0, max: 5, step: 0.1, unit: 's' },
|
|
176
|
+
],
|
|
177
|
+
lightPainting: [
|
|
178
|
+
{ name: 'exposure', label: 'Exposure', description: 'How long the shutter stayed open: trail brightness, bleaching towards white and persistence.', type: 'number', min: 0.2, max: 2.5, step: 0.01 },
|
|
179
|
+
{ name: 'temperature', label: 'Temperature', description: 'Colour temperature of the light source: low is ember red, high is cold white. Fresh trail is hotter and cools to this.', type: 'number', min: 1200, max: 9000, step: 10, unit: 'K' },
|
|
180
|
+
{ name: 'strobe', label: 'Strobe', description: 'The light pulses while writing: the trail becomes dots whose spacing shows pen speed (dense where slow). 0 is continuous.', type: 'number', min: 0, max: 1, step: 0.01 },
|
|
181
|
+
{ name: 'sparks', label: 'Sparks', description: 'Sparkler mode: sparks thrown per second by the pen tip while writing. 0 is a plain LED torch.', type: 'number', min: 0, max: 400, step: 1, unit: '/s' },
|
|
182
|
+
{ name: 'width', label: 'Trail width', description: 'Width of the light trail (the source image on the sensor).', type: 'number', min: 0.004, max: 0.03, step: 0.0005, unit: 'em' },
|
|
183
|
+
{ name: 'halation', label: 'Halation', description: 'Film halation: a wide dim red-orange glow bleeding around the brightest exposure.', type: 'number', min: 0, max: 2, step: 0.01 },
|
|
184
|
+
{ name: 'tremor', label: 'Hand tremor', description: 'Physiological 8-12 Hz tremor of the hand: a faint fine ripple on the lines, smaller where the pen is slow.', type: 'number', min: 0, max: 1, step: 0.01 },
|
|
185
|
+
{ name: 'spread', label: 'Spread', description: 'How violently the sparks are thrown out; low sparks drip, high sparks fan out wide.', type: 'number', min: 0, max: 1.6, step: 0.01 },
|
|
186
|
+
{ name: 'bloom', label: 'Bloom', description: 'Lens bloom and thin streak cross on the glowing pen tip.', type: 'number', min: 0, max: 2, step: 0.01 },
|
|
187
|
+
{ name: 'color', label: 'Colour', description: 'Resting colour of the trail (gel over the source), balanced by the temperature.', type: 'color' },
|
|
188
|
+
{ name: 'color2', label: 'Hot core', description: 'Colour of the fresh, hot trail and the tip.', type: 'color' },
|
|
189
|
+
{ name: 'opacity', label: 'Opacity', description: 'Overall opacity of the light.', type: 'number', min: 0, max: 1, step: 0.01 },
|
|
190
|
+
{ name: 'text', label: 'Text', description: 'The words; a new line starts a second line', type: 'string' },
|
|
191
|
+
{ name: 'font', label: 'Font', description: 'Typeface of the text (every look uses the same fonts)', type: 'select', options: ['inter', 'roboto', 'montserrat', 'poppins', 'oswald', 'bebas-neue', 'playfair-display', 'lora', 'caveat', 'kalam', 'handlee', 'patrick-hand', 'architects-daughter', 'indie-flower', 'gochi-hand', 'nanum-pen-script', 'mynerve', 'dancing-script', 'courgette', 'satisfy', 'kaushan-script', 'sriracha', 'pacifico'], optionLabels: ['Inter', 'Roboto', 'Montserrat', 'Poppins', 'Oswald', 'Bebas Neue', 'Playfair Display', 'Lora', 'Caveat', 'Kalam', 'Handlee', 'Patrick Hand', 'Architect\'s Daughter', 'Indie Flower', 'Gochi Hand', 'Nanum Pen', 'Mynerve', 'Dancing Script', 'Courgette', 'Satisfy', 'Kaushan Script', 'Sriracha', 'Pacifico'] },
|
|
192
|
+
{ name: 'drawMethod', label: 'Draw', description: 'How the text appears when it is shown (rebuilds)', type: 'select', options: ['pen', 'trace', 'bothEnds', 'wipe', 'radial', 'scatter', 'dissolve', 'fade', 'none'], optionLabels: ['Pen', 'Trace', 'Both ends', 'Wipe', 'Radial', 'Scatter', 'Dissolve', 'Fade', 'Off'] },
|
|
193
|
+
{ name: 'drawDuration', label: 'Draw duration', description: 'How long the draw animation takes', type: 'number', min: 0.2, max: 15, step: 0.05, unit: 's' },
|
|
194
|
+
{ name: 'drawEase', label: 'Draw easing', description: 'Easing of the draw animation', type: 'select', options: ['easeInOut', 'linear', 'easeOut', 'easeIn'], optionLabels: ['Smooth', 'Linear', 'Out', 'In'] },
|
|
195
|
+
{ name: 'drawStagger', label: 'Draw stagger', description: 'How much the letters are staggered in time, for Trace and Both ends (rebuilds)', type: 'number', min: 0, max: 0.95, step: 0.01 },
|
|
196
|
+
{ name: 'drawAngle', label: 'Draw direction', description: 'Direction of the sweep, for Wipe (rebuilds)', type: 'number', min: -180, max: 180, step: 1, unit: '°' },
|
|
197
|
+
{ name: 'eraseMethod', label: 'Erase', description: 'How the text disappears when it is switched off (rebuilds)', type: 'select', options: ['fade', 'undraw', 'wipe', 'radial', 'scatter', 'dissolve', 'trace', 'bothEnds', 'pen', 'cut', 'none'], optionLabels: ['Fade', 'Reverse', 'Wipe', 'Radial', 'Scatter', 'Dissolve', 'Trace', 'Both ends', 'Pen', 'Cut', 'Off'] },
|
|
198
|
+
{ name: 'eraseDuration', label: 'Erase duration', description: 'How long the erase animation takes', type: 'number', min: 0.2, max: 15, step: 0.05, unit: 's' },
|
|
199
|
+
{ name: 'eraseEase', label: 'Erase easing', description: 'Easing of the erase animation', type: 'select', options: ['easeInOut', 'linear', 'easeOut', 'easeIn'], optionLabels: ['Smooth', 'Linear', 'Out', 'In'] },
|
|
200
|
+
{ name: 'eraseStagger', label: 'Erase stagger', description: 'How much the letters are staggered in time, for Trace and Both ends (rebuilds)', type: 'number', min: 0, max: 0.95, step: 0.01 },
|
|
201
|
+
{ name: 'eraseAngle', label: 'Erase direction', description: 'Direction of the sweep, for Wipe (rebuilds)', type: 'number', min: -180, max: 180, step: 1, unit: '°' },
|
|
202
|
+
{ name: 'autoPlay', label: 'Play on load', description: 'Play the draw animation when the scene starts', type: 'boolean' },
|
|
203
|
+
{ name: 'loop', label: 'Loop', description: 'Repeat hidden, draw, hold, erase, hidden', type: 'boolean' },
|
|
204
|
+
{ name: 'yoyo', label: 'Yoyo', description: 'Play the whole cycle forward, then backward', type: 'boolean' },
|
|
205
|
+
{ name: 'holdTime', label: 'Hold', description: 'How long the finished text stays before it is erased (loop)', type: 'number', min: 0, max: 10, step: 0.1, unit: 's' },
|
|
206
|
+
{ name: 'hiddenTime', label: 'Hidden pause', description: 'Pause with nothing shown between cycles (loop)', type: 'number', min: 0, max: 5, step: 0.1, unit: 's' },
|
|
207
|
+
],
|
|
208
|
+
constellation: [
|
|
209
|
+
{ name: 'stars', label: 'Stars', description: 'Stars per em of pen stroke (density along the figure)', type: 'number', min: 3, max: 16, step: 0.5, unit: '/em' },
|
|
210
|
+
{ name: 'brightness', label: 'Brightness', description: 'Limiting magnitude shift: brighter, larger stars and more of the faint dust show', type: 'number', min: -1.5, max: 1.5, step: 0.05, unit: 'mag' },
|
|
211
|
+
{ name: 'temperature', label: 'Temperature', description: 'Shifts the whole star population cooler (amber) or hotter (blue-white)', type: 'number', min: -1, max: 1, step: 0.02 },
|
|
212
|
+
{ name: 'lines', label: 'Chart lines', description: 'Visibility of the lines joining the stars', type: 'number', min: 0, max: 1.5, step: 0.02 },
|
|
213
|
+
{ name: 'twinkle', label: 'Twinkle', description: 'Scintillation strength (0 = steady stars)', type: 'number', min: 0, max: 2, step: 0.02 },
|
|
214
|
+
{ name: 'color', label: 'Line colour', description: 'Colour of the chart lines', type: 'color' },
|
|
215
|
+
{ name: 'color2', label: 'Highlight / tint', description: 'Pulse highlight on the lines and a soft tint on the stars', type: 'color' },
|
|
216
|
+
{ name: 'opacity', label: 'Opacity', description: 'Overall opacity', type: 'number', min: 0, max: 1, step: 0.01 },
|
|
217
|
+
{ name: 'seed', label: 'Seed', description: 'Which sky: star positions, magnitudes and colours', type: 'number', min: 0, max: 999, step: 1 },
|
|
218
|
+
{ name: 'text', label: 'Text', description: 'The words; a new line starts a second line', type: 'string' },
|
|
219
|
+
{ name: 'font', label: 'Font', description: 'Typeface of the text (every look uses the same fonts)', type: 'select', options: ['inter', 'roboto', 'montserrat', 'poppins', 'oswald', 'bebas-neue', 'playfair-display', 'lora', 'caveat', 'kalam', 'handlee', 'patrick-hand', 'architects-daughter', 'indie-flower', 'gochi-hand', 'nanum-pen-script', 'mynerve', 'dancing-script', 'courgette', 'satisfy', 'kaushan-script', 'sriracha', 'pacifico'], optionLabels: ['Inter', 'Roboto', 'Montserrat', 'Poppins', 'Oswald', 'Bebas Neue', 'Playfair Display', 'Lora', 'Caveat', 'Kalam', 'Handlee', 'Patrick Hand', 'Architect\'s Daughter', 'Indie Flower', 'Gochi Hand', 'Nanum Pen', 'Mynerve', 'Dancing Script', 'Courgette', 'Satisfy', 'Kaushan Script', 'Sriracha', 'Pacifico'] },
|
|
220
|
+
{ name: 'drawMethod', label: 'Draw', description: 'How the text appears when it is shown (rebuilds)', type: 'select', options: ['pen', 'trace', 'bothEnds', 'wipe', 'radial', 'scatter', 'dissolve', 'fade', 'none'], optionLabels: ['Pen', 'Trace', 'Both ends', 'Wipe', 'Radial', 'Scatter', 'Dissolve', 'Fade', 'Off'] },
|
|
221
|
+
{ name: 'drawDuration', label: 'Draw duration', description: 'How long the draw animation takes', type: 'number', min: 0.2, max: 15, step: 0.05, unit: 's' },
|
|
222
|
+
{ name: 'drawEase', label: 'Draw easing', description: 'Easing of the draw animation', type: 'select', options: ['easeInOut', 'linear', 'easeOut', 'easeIn'], optionLabels: ['Smooth', 'Linear', 'Out', 'In'] },
|
|
223
|
+
{ name: 'drawStagger', label: 'Draw stagger', description: 'How much the letters are staggered in time, for Trace and Both ends (rebuilds)', type: 'number', min: 0, max: 0.95, step: 0.01 },
|
|
224
|
+
{ name: 'drawAngle', label: 'Draw direction', description: 'Direction of the sweep, for Wipe (rebuilds)', type: 'number', min: -180, max: 180, step: 1, unit: '°' },
|
|
225
|
+
{ name: 'eraseMethod', label: 'Erase', description: 'How the text disappears when it is switched off (rebuilds)', type: 'select', options: ['fade', 'undraw', 'wipe', 'radial', 'scatter', 'dissolve', 'trace', 'bothEnds', 'pen', 'cut', 'none'], optionLabels: ['Fade', 'Reverse', 'Wipe', 'Radial', 'Scatter', 'Dissolve', 'Trace', 'Both ends', 'Pen', 'Cut', 'Off'] },
|
|
226
|
+
{ name: 'eraseDuration', label: 'Erase duration', description: 'How long the erase animation takes', type: 'number', min: 0.2, max: 15, step: 0.05, unit: 's' },
|
|
227
|
+
{ name: 'eraseEase', label: 'Erase easing', description: 'Easing of the erase animation', type: 'select', options: ['easeInOut', 'linear', 'easeOut', 'easeIn'], optionLabels: ['Smooth', 'Linear', 'Out', 'In'] },
|
|
228
|
+
{ name: 'eraseStagger', label: 'Erase stagger', description: 'How much the letters are staggered in time, for Trace and Both ends (rebuilds)', type: 'number', min: 0, max: 0.95, step: 0.01 },
|
|
229
|
+
{ name: 'eraseAngle', label: 'Erase direction', description: 'Direction of the sweep, for Wipe (rebuilds)', type: 'number', min: -180, max: 180, step: 1, unit: '°' },
|
|
230
|
+
{ name: 'autoPlay', label: 'Play on load', description: 'Play the draw animation when the scene starts', type: 'boolean' },
|
|
231
|
+
{ name: 'loop', label: 'Loop', description: 'Repeat hidden, draw, hold, erase, hidden', type: 'boolean' },
|
|
232
|
+
{ name: 'yoyo', label: 'Yoyo', description: 'Play the whole cycle forward, then backward', type: 'boolean' },
|
|
233
|
+
{ name: 'holdTime', label: 'Hold', description: 'How long the finished text stays before it is erased (loop)', type: 'number', min: 0, max: 10, step: 0.1, unit: 's' },
|
|
234
|
+
{ name: 'hiddenTime', label: 'Hidden pause', description: 'Pause with nothing shown between cycles (loop)', type: 'number', min: 0, max: 5, step: 0.1, unit: 's' },
|
|
235
|
+
],
|
|
236
|
+
inkBleed: [
|
|
237
|
+
{ name: 'bleed', label: 'Bleed', description: 'How far the ink feathers into the paper', type: 'number', min: 0, max: 0.12, step: 0.002, unit: 'em' },
|
|
238
|
+
{ name: 'color', label: 'Ink', description: 'Colour of the dense dye (the dark core)', type: 'color' },
|
|
239
|
+
{ name: 'weight', label: 'Pen weight', description: 'Thickness of the pen line', type: 'number', min: 0.3, max: 1.6, step: 0.01 },
|
|
240
|
+
{ name: 'paper', label: 'Paper', description: '0 = ink only, 1 = a sheet of paper behind the text', type: 'number', min: 0, max: 1, step: 0.01 },
|
|
241
|
+
{ name: 'color2', label: 'Fringe dye', description: 'Colour of the lighter dye that separates into the halo', type: 'color' },
|
|
242
|
+
{ name: 'dryTime', label: 'Drying time', description: 'How long the ink keeps wicking before it dries', type: 'number', min: 0.3, max: 8, step: 0.05, unit: 's' },
|
|
243
|
+
{ name: 'fibre', label: 'Fibre', description: 'How strongly the paper fibres guide and rag the feathering', type: 'number', min: 0, max: 1.5, step: 0.01 },
|
|
244
|
+
{ name: 'pooling', label: 'Pooling', description: 'Dark rim where the ink collects as it dries', type: 'number', min: 0, max: 1.5, step: 0.01 },
|
|
245
|
+
{ name: 'oxidation', label: 'Oxidation', description: 'Seconds the ink takes to darken from pale blue-grey to its final colour (iron-gall oxidation)', type: 'number', min: 0.3, max: 20, step: 0.1, unit: 's' },
|
|
246
|
+
{ name: 'burn', label: 'Ink burn', description: 'Slow browning of the paper around the lines, strongest where the pen pressed hard', type: 'number', min: 0, max: 1.5, step: 0.01 },
|
|
247
|
+
{ name: 'char', label: 'Char', description: 'How much cracked char and ash the fire leaves behind (0 = clean burn); used by the Burn erase', type: 'number', min: 0, max: 1, step: 0.01 },
|
|
248
|
+
{ name: 'spread', label: 'Spread', description: 'Speed of the fire front; faster fronts leave their remains lingering longer (Burn erase)', type: 'number', min: 0.3, max: 2.2, step: 0.01 },
|
|
249
|
+
{ name: 'opacity', label: 'Opacity', description: 'Overall opacity', type: 'number', min: 0, max: 1, step: 0.01 },
|
|
250
|
+
{ name: 'text', label: 'Text', description: 'The words; a new line starts a second line', type: 'string' },
|
|
251
|
+
{ name: 'font', label: 'Font', description: 'Typeface of the text (every look uses the same fonts)', type: 'select', options: ['inter', 'roboto', 'montserrat', 'poppins', 'oswald', 'bebas-neue', 'playfair-display', 'lora', 'caveat', 'kalam', 'handlee', 'patrick-hand', 'architects-daughter', 'indie-flower', 'gochi-hand', 'nanum-pen-script', 'mynerve', 'dancing-script', 'courgette', 'satisfy', 'kaushan-script', 'sriracha', 'pacifico'], optionLabels: ['Inter', 'Roboto', 'Montserrat', 'Poppins', 'Oswald', 'Bebas Neue', 'Playfair Display', 'Lora', 'Caveat', 'Kalam', 'Handlee', 'Patrick Hand', 'Architect\'s Daughter', 'Indie Flower', 'Gochi Hand', 'Nanum Pen', 'Mynerve', 'Dancing Script', 'Courgette', 'Satisfy', 'Kaushan Script', 'Sriracha', 'Pacifico'] },
|
|
252
|
+
{ name: 'drawMethod', label: 'Draw', description: 'How the text appears when it is shown (rebuilds)', type: 'select', options: ['pen', 'trace', 'bothEnds', 'wipe', 'radial', 'scatter', 'dissolve', 'fade', 'none'], optionLabels: ['Pen', 'Trace', 'Both ends', 'Wipe', 'Radial', 'Scatter', 'Dissolve', 'Fade', 'Off'] },
|
|
253
|
+
{ name: 'drawDuration', label: 'Draw duration', description: 'How long the draw animation takes', type: 'number', min: 0.2, max: 15, step: 0.05, unit: 's' },
|
|
254
|
+
{ name: 'drawEase', label: 'Draw easing', description: 'Easing of the draw animation', type: 'select', options: ['easeInOut', 'linear', 'easeOut', 'easeIn'], optionLabels: ['Smooth', 'Linear', 'Out', 'In'] },
|
|
255
|
+
{ name: 'drawStagger', label: 'Draw stagger', description: 'How much the letters are staggered in time, for Trace and Both ends (rebuilds)', type: 'number', min: 0, max: 0.95, step: 0.01 },
|
|
256
|
+
{ name: 'drawAngle', label: 'Draw direction', description: 'Direction of the sweep, for Wipe (rebuilds)', type: 'number', min: -180, max: 180, step: 1, unit: '°' },
|
|
257
|
+
{ name: 'eraseMethod', label: 'Erase', description: 'How the text disappears when it is switched off (rebuilds)', type: 'select', options: ['burn', 'fade', 'undraw', 'wipe', 'radial', 'scatter', 'dissolve', 'trace', 'bothEnds', 'pen', 'cut', 'none'], optionLabels: ['Burn', 'Fade', 'Reverse', 'Wipe', 'Radial', 'Scatter', 'Dissolve', 'Trace', 'Both ends', 'Pen', 'Cut', 'Off'] },
|
|
258
|
+
{ name: 'eraseDuration', label: 'Erase duration', description: 'How long the erase animation takes', type: 'number', min: 0.2, max: 15, step: 0.05, unit: 's' },
|
|
259
|
+
{ name: 'eraseEase', label: 'Erase easing', description: 'Easing of the erase animation', type: 'select', options: ['easeInOut', 'linear', 'easeOut', 'easeIn'], optionLabels: ['Smooth', 'Linear', 'Out', 'In'] },
|
|
260
|
+
{ name: 'eraseStagger', label: 'Erase stagger', description: 'How much the letters are staggered in time, for Trace and Both ends (rebuilds)', type: 'number', min: 0, max: 0.95, step: 0.01 },
|
|
261
|
+
{ name: 'eraseAngle', label: 'Erase direction', description: 'Direction of the sweep, for Wipe (rebuilds)', type: 'number', min: -180, max: 180, step: 1, unit: '°' },
|
|
262
|
+
{ name: 'autoPlay', label: 'Play on load', description: 'Play the draw animation when the scene starts', type: 'boolean' },
|
|
263
|
+
{ name: 'loop', label: 'Loop', description: 'Repeat hidden, draw, hold, erase, hidden', type: 'boolean' },
|
|
264
|
+
{ name: 'yoyo', label: 'Yoyo', description: 'Play the whole cycle forward, then backward', type: 'boolean' },
|
|
265
|
+
{ name: 'holdTime', label: 'Hold', description: 'How long the finished text stays before it is erased (loop)', type: 'number', min: 0, max: 10, step: 0.1, unit: 's' },
|
|
266
|
+
{ name: 'hiddenTime', label: 'Hidden pause', description: 'Pause with nothing shown between cycles (loop)', type: 'number', min: 0, max: 5, step: 0.1, unit: 's' },
|
|
267
|
+
],
|
|
268
|
+
liquidMetal: [
|
|
269
|
+
{ name: 'thickness', label: 'Thickness', description: 'Puddle depth: the radius of the rounded meniscus at the rim of every letter.', type: 'number', min: 0.01, max: 0.2, step: 0.005, unit: 'em' },
|
|
270
|
+
{ name: 'environment', label: 'Environment', description: 'Contrast and brightness of the studio the metal mirrors.', type: 'number', min: 0.2, max: 1.5, step: 0.01 },
|
|
271
|
+
{ name: 'color', label: 'Metal colour', description: 'Colour of the metal at normal incidence (silver, gold, copper, blue-steel).', type: 'color' },
|
|
272
|
+
{ name: 'tint', label: 'Metal tint', description: 'How strongly the metal colours its reflection (0 = neutral chrome, 1 = full colour).', type: 'number', min: 0, max: 1, step: 0.01 },
|
|
273
|
+
{ name: 'melt', label: 'Melt', description: 'Erase: how long the metal stays liquid and runs before it dewets (0 = dewets early, 1 = long liquid phase).', type: 'number', min: 0, max: 1, step: 0.01 },
|
|
274
|
+
{ name: 'drips', label: 'Drips', description: 'Erase: density of gravity-fed rivulets and falling drops under the strokes.', type: 'number', min: 0, max: 1, step: 0.01 },
|
|
275
|
+
{ name: 'spikes', label: 'Spikes', description: 'Magnetic field: the pool breaks into a hexagonal lattice of sharp cones (Rosensweig instability).', type: 'number', min: 0, max: 1, step: 0.01 },
|
|
276
|
+
{ name: 'oxide', label: 'Oxide skin', description: 'Nanometre oxide film: thin-film interference tint and fine creases where the skin is compressed.', type: 'number', min: 0, max: 1, step: 0.01 },
|
|
277
|
+
{ name: 'reflectivity', label: 'Reflectivity', description: 'Normal-incidence reflectance of the metal (mercury and chrome are ~0.6-0.9).', type: 'number', min: 0.3, max: 1, step: 0.01 },
|
|
278
|
+
{ name: 'roughness', label: 'Ripples', description: 'Amplitude of the surface swells and capillary ripples that tilt the mirror.', type: 'number', min: 0, max: 2, step: 0.01 },
|
|
279
|
+
{ name: 'rippleSpeed', label: 'Ripple speed', description: 'Speed of the travelling surface waves.', type: 'number', min: 0, max: 3, step: 0.01 },
|
|
280
|
+
{ name: 'color2', label: 'Edge tint', description: 'Colour of the reflection at grazing angles and on the rim.', type: 'color' },
|
|
281
|
+
{ name: 'opacity', label: 'Opacity', description: 'Overall opacity.', type: 'number', min: 0, max: 1, step: 0.01 },
|
|
282
|
+
{ name: 'text', label: 'Text', description: 'The words; a new line starts a second line', type: 'string' },
|
|
283
|
+
{ name: 'font', label: 'Font', description: 'Typeface of the text (every look uses the same fonts)', type: 'select', options: ['inter', 'roboto', 'montserrat', 'poppins', 'oswald', 'bebas-neue', 'playfair-display', 'lora', 'caveat', 'kalam', 'handlee', 'patrick-hand', 'architects-daughter', 'indie-flower', 'gochi-hand', 'nanum-pen-script', 'mynerve', 'dancing-script', 'courgette', 'satisfy', 'kaushan-script', 'sriracha', 'pacifico'], optionLabels: ['Inter', 'Roboto', 'Montserrat', 'Poppins', 'Oswald', 'Bebas Neue', 'Playfair Display', 'Lora', 'Caveat', 'Kalam', 'Handlee', 'Patrick Hand', 'Architect\'s Daughter', 'Indie Flower', 'Gochi Hand', 'Nanum Pen', 'Mynerve', 'Dancing Script', 'Courgette', 'Satisfy', 'Kaushan Script', 'Sriracha', 'Pacifico'] },
|
|
284
|
+
{ name: 'drawMethod', label: 'Draw', description: 'How the text appears when it is shown (rebuilds)', type: 'select', options: ['flow', 'pen', 'trace', 'bothEnds', 'wipe', 'radial', 'scatter', 'dissolve', 'fade', 'none'], optionLabels: ['Flow', 'Pen', 'Trace', 'Both ends', 'Wipe', 'Radial', 'Scatter', 'Dissolve', 'Fade', 'Off'] },
|
|
285
|
+
{ name: 'drawDuration', label: 'Draw duration', description: 'How long the draw animation takes', type: 'number', min: 0.2, max: 15, step: 0.05, unit: 's' },
|
|
286
|
+
{ name: 'drawEase', label: 'Draw easing', description: 'Easing of the draw animation', type: 'select', options: ['easeInOut', 'linear', 'easeOut', 'easeIn'], optionLabels: ['Smooth', 'Linear', 'Out', 'In'] },
|
|
287
|
+
{ name: 'drawStagger', label: 'Draw stagger', description: 'How much the letters are staggered in time, for Trace and Both ends (rebuilds)', type: 'number', min: 0, max: 0.95, step: 0.01 },
|
|
288
|
+
{ name: 'drawAngle', label: 'Draw direction', description: 'Direction of the sweep, for Wipe (rebuilds)', type: 'number', min: -180, max: 180, step: 1, unit: '°' },
|
|
289
|
+
{ name: 'eraseMethod', label: 'Erase', description: 'How the text disappears when it is switched off (rebuilds)', type: 'select', options: ['melt', 'beads', 'fade', 'undraw', 'wipe', 'radial', 'scatter', 'dissolve', 'trace', 'bothEnds', 'pen', 'cut', 'none'], optionLabels: ['Melt', 'Beads', 'Fade', 'Reverse', 'Wipe', 'Radial', 'Scatter', 'Dissolve', 'Trace', 'Both ends', 'Pen', 'Cut', 'Off'] },
|
|
290
|
+
{ name: 'eraseDuration', label: 'Erase duration', description: 'How long the erase animation takes', type: 'number', min: 0.2, max: 15, step: 0.05, unit: 's' },
|
|
291
|
+
{ name: 'eraseEase', label: 'Erase easing', description: 'Easing of the erase animation', type: 'select', options: ['easeInOut', 'linear', 'easeOut', 'easeIn'], optionLabels: ['Smooth', 'Linear', 'Out', 'In'] },
|
|
292
|
+
{ name: 'eraseStagger', label: 'Erase stagger', description: 'How much the letters are staggered in time, for Trace and Both ends (rebuilds)', type: 'number', min: 0, max: 0.95, step: 0.01 },
|
|
293
|
+
{ name: 'eraseAngle', label: 'Erase direction', description: 'Direction of the sweep, for Wipe (rebuilds)', type: 'number', min: -180, max: 180, step: 1, unit: '°' },
|
|
294
|
+
{ name: 'autoPlay', label: 'Play on load', description: 'Play the draw animation when the scene starts', type: 'boolean' },
|
|
295
|
+
{ name: 'loop', label: 'Loop', description: 'Repeat hidden, draw, hold, erase, hidden', type: 'boolean' },
|
|
296
|
+
{ name: 'yoyo', label: 'Yoyo', description: 'Play the whole cycle forward, then backward', type: 'boolean' },
|
|
297
|
+
{ name: 'holdTime', label: 'Hold', description: 'How long the finished text stays before it is erased (loop)', type: 'number', min: 0, max: 10, step: 0.1, unit: 's' },
|
|
298
|
+
{ name: 'hiddenTime', label: 'Hidden pause', description: 'Pause with nothing shown between cycles (loop)', type: 'number', min: 0, max: 5, step: 0.1, unit: 's' },
|
|
299
|
+
],
|
|
300
|
+
embroidery: [
|
|
301
|
+
{ name: 'color', label: 'Thread', description: 'Main satin thread colour', type: 'color' },
|
|
302
|
+
{ name: 'sheen', label: 'Sheen', description: 'Strength of the silk highlight that sweeps over the stitching', type: 'number', min: 0, max: 2, step: 0.01 },
|
|
303
|
+
{ name: 'density', label: 'Density', description: 'Stitches per em along the stroke', type: 'number', min: 14, max: 70, step: 1, unit: '/em' },
|
|
304
|
+
{ name: 'thickness', label: 'Thickness', description: 'Width of the satin column relative to the pen stroke', type: 'number', min: 0.6, max: 2.4, step: 0.01 },
|
|
305
|
+
{ name: 'color2', label: 'Contrast thread', description: 'Border running-stitch thread', type: 'color' },
|
|
306
|
+
{ name: 'relief', label: 'Relief', description: 'Raised look: thread height, groove shadows and stitch ends diving under neighbours', type: 'number', min: 0, max: 1.5, step: 0.01 },
|
|
307
|
+
{ name: 'outline', label: 'Border row', description: 'Visibility of the contrast running-stitch border', type: 'number', min: 0, max: 1, step: 0.01 },
|
|
308
|
+
{ name: 'fabric', label: 'Fabric', description: 'Faint linen weave behind the stitching', type: 'number', min: 0, max: 1, step: 0.01 },
|
|
309
|
+
{ name: 'pucker', label: 'Pucker', description: 'Dense stitching gathers the cloth: soft wrinkles around the stitching, deeper tight counters (fabric layer only)', type: 'number', min: 0, max: 1, step: 0.01 },
|
|
310
|
+
{ name: 'style', label: 'Stitch style', description: 'Automatic picks per stroke: satin, stem stitch, couching, French knots. Or force one', type: 'select', options: ['auto', 'satin', 'stem', 'couching'], optionLabels: ['Automatic', 'Satin', 'Stem', 'Couching'] },
|
|
311
|
+
{ name: 'slant', label: 'Slant', description: 'Satin stitch angle to the stroke direction', type: 'number', min: 40, max: 85, step: 1, unit: '°' },
|
|
312
|
+
{ name: 'opacity', label: 'Opacity', description: 'Overall opacity', type: 'number', min: 0, max: 1, step: 0.01 },
|
|
313
|
+
{ name: 'text', label: 'Text', description: 'The words; a new line starts a second line', type: 'string' },
|
|
314
|
+
{ name: 'font', label: 'Font', description: 'Typeface of the text (every look uses the same fonts)', type: 'select', options: ['inter', 'roboto', 'montserrat', 'poppins', 'oswald', 'bebas-neue', 'playfair-display', 'lora', 'caveat', 'kalam', 'handlee', 'patrick-hand', 'architects-daughter', 'indie-flower', 'gochi-hand', 'nanum-pen-script', 'mynerve', 'dancing-script', 'courgette', 'satisfy', 'kaushan-script', 'sriracha', 'pacifico'], optionLabels: ['Inter', 'Roboto', 'Montserrat', 'Poppins', 'Oswald', 'Bebas Neue', 'Playfair Display', 'Lora', 'Caveat', 'Kalam', 'Handlee', 'Patrick Hand', 'Architect\'s Daughter', 'Indie Flower', 'Gochi Hand', 'Nanum Pen', 'Mynerve', 'Dancing Script', 'Courgette', 'Satisfy', 'Kaushan Script', 'Sriracha', 'Pacifico'] },
|
|
315
|
+
{ name: 'drawMethod', label: 'Draw', description: 'How the text appears when it is shown (rebuilds)', type: 'select', options: ['stitch', 'pen', 'trace', 'bothEnds', 'wipe', 'radial', 'scatter', 'dissolve', 'fade', 'none'], optionLabels: ['Stitch', 'Pen', 'Trace', 'Both ends', 'Wipe', 'Radial', 'Scatter', 'Dissolve', 'Fade', 'Off'] },
|
|
316
|
+
{ name: 'drawDuration', label: 'Draw duration', description: 'How long the draw animation takes', type: 'number', min: 0.2, max: 15, step: 0.05, unit: 's' },
|
|
317
|
+
{ name: 'drawEase', label: 'Draw easing', description: 'Easing of the draw animation', type: 'select', options: ['easeInOut', 'linear', 'easeOut', 'easeIn'], optionLabels: ['Smooth', 'Linear', 'Out', 'In'] },
|
|
318
|
+
{ name: 'drawStagger', label: 'Draw stagger', description: 'How much the letters are staggered in time, for Trace and Both ends (rebuilds)', type: 'number', min: 0, max: 0.95, step: 0.01 },
|
|
319
|
+
{ name: 'drawAngle', label: 'Draw direction', description: 'Direction of the sweep, for Wipe (rebuilds)', type: 'number', min: -180, max: 180, step: 1, unit: '°' },
|
|
320
|
+
{ name: 'eraseMethod', label: 'Erase', description: 'How the text disappears when it is switched off (rebuilds)', type: 'select', options: ['undraw', 'unpick', 'fade', 'wipe', 'radial', 'scatter', 'dissolve', 'trace', 'bothEnds', 'pen', 'cut', 'none'], optionLabels: ['Reverse', 'Unpick', 'Fade', 'Wipe', 'Radial', 'Scatter', 'Dissolve', 'Trace', 'Both ends', 'Pen', 'Cut', 'Off'] },
|
|
321
|
+
{ name: 'eraseDuration', label: 'Erase duration', description: 'How long the erase animation takes', type: 'number', min: 0.2, max: 15, step: 0.05, unit: 's' },
|
|
322
|
+
{ name: 'eraseEase', label: 'Erase easing', description: 'Easing of the erase animation', type: 'select', options: ['easeInOut', 'linear', 'easeOut', 'easeIn'], optionLabels: ['Smooth', 'Linear', 'Out', 'In'] },
|
|
323
|
+
{ name: 'eraseStagger', label: 'Erase stagger', description: 'How much the letters are staggered in time, for Trace and Both ends (rebuilds)', type: 'number', min: 0, max: 0.95, step: 0.01 },
|
|
324
|
+
{ name: 'eraseAngle', label: 'Erase direction', description: 'Direction of the sweep, for Wipe (rebuilds)', type: 'number', min: -180, max: 180, step: 1, unit: '°' },
|
|
325
|
+
{ name: 'autoPlay', label: 'Play on load', description: 'Play the draw animation when the scene starts', type: 'boolean' },
|
|
326
|
+
{ name: 'loop', label: 'Loop', description: 'Repeat hidden, draw, hold, erase, hidden', type: 'boolean' },
|
|
327
|
+
{ name: 'yoyo', label: 'Yoyo', description: 'Play the whole cycle forward, then backward', type: 'boolean' },
|
|
328
|
+
{ name: 'holdTime', label: 'Hold', description: 'How long the finished text stays before it is erased (loop)', type: 'number', min: 0, max: 10, step: 0.1, unit: 's' },
|
|
329
|
+
{ name: 'hiddenTime', label: 'Hidden pause', description: 'Pause with nothing shown between cycles (loop)', type: 'number', min: 0, max: 5, step: 0.1, unit: 's' },
|
|
330
|
+
],
|
|
331
|
+
chalkboard: [
|
|
332
|
+
{ name: 'pressure', label: 'Pressure', description: 'How hard the chalk is pressed: light = broken grainy line, heavy = nearly solid', type: 'number', min: 0, max: 1, step: 0.01 },
|
|
333
|
+
{ name: 'chatter', label: 'Chatter', description: 'Stick-slip skipping: fast, light strokes break into dashes whose spacing follows pen speed', type: 'number', min: 0, max: 1, step: 0.01 },
|
|
334
|
+
{ name: 'grain', label: 'Grain', description: 'Contrast of the board relief the chalk catches on', type: 'number', min: 0, max: 1, step: 0.01 },
|
|
335
|
+
{ name: 'dust', label: 'Dust', description: 'Falling chalk dust at the tip while writing', type: 'number', min: 0, max: 1, step: 0.01 },
|
|
336
|
+
{ name: 'weight', label: 'Weight', description: 'Thickness of the chalk stick', type: 'number', min: 0.4, max: 2.5, step: 0.01 },
|
|
337
|
+
{ name: 'swing', label: 'Swing', description: 'Curvature of the felt swipe: 0 = straight band, 1 = tight arc about the elbow', type: 'number', min: 0, max: 1, step: 0.01 },
|
|
338
|
+
{ name: 'ghost', label: 'Ghost', description: 'Chalk residue left by the smudge erase before it fades out', type: 'number', min: 0, max: 1, step: 0.01 },
|
|
339
|
+
{ name: 'board', label: 'Board', description: 'Slate board behind the text with faint old writing', type: 'number', min: 0, max: 1, step: 0.01 },
|
|
340
|
+
{ name: 'opacity', label: 'Opacity', description: 'Overall opacity', type: 'number', min: 0, max: 1, step: 0.01 },
|
|
341
|
+
{ name: 'color', label: 'Chalk', description: 'Chalk colour', type: 'color' },
|
|
342
|
+
{ name: 'color2', label: 'Highlight', description: 'Tint of the dense deposit', type: 'color' },
|
|
343
|
+
{ name: 'text', label: 'Text', description: 'The words; a new line starts a second line', type: 'string' },
|
|
344
|
+
{ name: 'font', label: 'Font', description: 'Typeface of the text (every look uses the same fonts)', type: 'select', options: ['inter', 'roboto', 'montserrat', 'poppins', 'oswald', 'bebas-neue', 'playfair-display', 'lora', 'caveat', 'kalam', 'handlee', 'patrick-hand', 'architects-daughter', 'indie-flower', 'gochi-hand', 'nanum-pen-script', 'mynerve', 'dancing-script', 'courgette', 'satisfy', 'kaushan-script', 'sriracha', 'pacifico'], optionLabels: ['Inter', 'Roboto', 'Montserrat', 'Poppins', 'Oswald', 'Bebas Neue', 'Playfair Display', 'Lora', 'Caveat', 'Kalam', 'Handlee', 'Patrick Hand', 'Architect\'s Daughter', 'Indie Flower', 'Gochi Hand', 'Nanum Pen', 'Mynerve', 'Dancing Script', 'Courgette', 'Satisfy', 'Kaushan Script', 'Sriracha', 'Pacifico'] },
|
|
345
|
+
{ name: 'drawMethod', label: 'Draw', description: 'How the text appears when it is shown (rebuilds)', type: 'select', options: ['pen', 'trace', 'bothEnds', 'wipe', 'radial', 'scatter', 'dissolve', 'fade', 'none'], optionLabels: ['Pen', 'Trace', 'Both ends', 'Wipe', 'Radial', 'Scatter', 'Dissolve', 'Fade', 'Off'] },
|
|
346
|
+
{ name: 'drawDuration', label: 'Draw duration', description: 'How long the draw animation takes', type: 'number', min: 0.2, max: 15, step: 0.05, unit: 's' },
|
|
347
|
+
{ name: 'drawEase', label: 'Draw easing', description: 'Easing of the draw animation', type: 'select', options: ['easeInOut', 'linear', 'easeOut', 'easeIn'], optionLabels: ['Smooth', 'Linear', 'Out', 'In'] },
|
|
348
|
+
{ name: 'drawStagger', label: 'Draw stagger', description: 'How much the letters are staggered in time, for Trace and Both ends (rebuilds)', type: 'number', min: 0, max: 0.95, step: 0.01 },
|
|
349
|
+
{ name: 'drawAngle', label: 'Draw direction', description: 'Direction of the sweep, for Wipe (rebuilds)', type: 'number', min: -180, max: 180, step: 1, unit: '°' },
|
|
350
|
+
{ name: 'eraseMethod', label: 'Erase', description: 'How the text disappears when it is switched off (rebuilds)', type: 'select', options: ['smudge', 'fade', 'undraw', 'wipe', 'radial', 'scatter', 'dissolve', 'trace', 'bothEnds', 'pen', 'cut', 'none'], optionLabels: ['Smudge', 'Fade', 'Reverse', 'Wipe', 'Radial', 'Scatter', 'Dissolve', 'Trace', 'Both ends', 'Pen', 'Cut', 'Off'] },
|
|
351
|
+
{ name: 'eraseDuration', label: 'Erase duration', description: 'How long the erase animation takes', type: 'number', min: 0.2, max: 15, step: 0.05, unit: 's' },
|
|
352
|
+
{ name: 'eraseEase', label: 'Erase easing', description: 'Easing of the erase animation', type: 'select', options: ['easeInOut', 'linear', 'easeOut', 'easeIn'], optionLabels: ['Smooth', 'Linear', 'Out', 'In'] },
|
|
353
|
+
{ name: 'eraseStagger', label: 'Erase stagger', description: 'How much the letters are staggered in time, for Trace and Both ends (rebuilds)', type: 'number', min: 0, max: 0.95, step: 0.01 },
|
|
354
|
+
{ name: 'eraseAngle', label: 'Erase direction', description: 'Direction of the sweep, for Wipe (rebuilds)', type: 'number', min: -180, max: 180, step: 1, unit: '°' },
|
|
355
|
+
{ name: 'autoPlay', label: 'Play on load', description: 'Play the draw animation when the scene starts', type: 'boolean' },
|
|
356
|
+
{ name: 'loop', label: 'Loop', description: 'Repeat hidden, draw, hold, erase, hidden', type: 'boolean' },
|
|
357
|
+
{ name: 'yoyo', label: 'Yoyo', description: 'Play the whole cycle forward, then backward', type: 'boolean' },
|
|
358
|
+
{ name: 'holdTime', label: 'Hold', description: 'How long the finished text stays before it is erased (loop)', type: 'number', min: 0, max: 10, step: 0.1, unit: 's' },
|
|
359
|
+
{ name: 'hiddenTime', label: 'Hidden pause', description: 'Pause with nothing shown between cycles (loop)', type: 'number', min: 0, max: 5, step: 0.1, unit: 's' },
|
|
360
|
+
],
|
|
361
|
+
plain: [
|
|
362
|
+
{ name: 'color', label: 'Colour', description: 'Colour of the face', type: 'color' },
|
|
363
|
+
{ name: 'weight', label: 'Weight', description: 'Bolder (right) or lighter (left) face: offsets every edge of the letters', type: 'number', min: -0.04, max: 0.05, step: 0.001, unit: 'em' },
|
|
364
|
+
{ name: 'outline', label: 'Outline', description: 'Width of the outline drawn just outside the face (0 = none)', type: 'number', min: 0, max: 0.08, step: 0.001, unit: 'em' },
|
|
365
|
+
{ name: 'opacity', label: 'Opacity', description: 'Overall opacity', type: 'number', min: 0, max: 1, step: 0.01 },
|
|
366
|
+
{ name: 'color2', label: 'Outline colour', description: 'Colour of the outline', type: 'color' },
|
|
367
|
+
{ name: 'fill', label: 'Fill', description: 'Opacity of the face alone (0 with an outline = hollow letters)', type: 'number', min: 0, max: 1, step: 0.01 },
|
|
368
|
+
{ name: 'softness', label: 'Softness', description: 'Width of the edge transition: 0 is crisp, more is a soft printed edge', type: 'number', min: 0, max: 0.06, step: 0.001, unit: 'em' },
|
|
369
|
+
{ name: 'text', label: 'Text', description: 'The words; a new line starts a second line', type: 'string' },
|
|
370
|
+
{ name: 'font', label: 'Font', description: 'Typeface of the text (every look uses the same fonts)', type: 'select', options: ['inter', 'roboto', 'montserrat', 'poppins', 'oswald', 'bebas-neue', 'playfair-display', 'lora', 'caveat', 'kalam', 'handlee', 'patrick-hand', 'architects-daughter', 'indie-flower', 'gochi-hand', 'nanum-pen-script', 'mynerve', 'dancing-script', 'courgette', 'satisfy', 'kaushan-script', 'sriracha', 'pacifico'], optionLabels: ['Inter', 'Roboto', 'Montserrat', 'Poppins', 'Oswald', 'Bebas Neue', 'Playfair Display', 'Lora', 'Caveat', 'Kalam', 'Handlee', 'Patrick Hand', 'Architect\'s Daughter', 'Indie Flower', 'Gochi Hand', 'Nanum Pen', 'Mynerve', 'Dancing Script', 'Courgette', 'Satisfy', 'Kaushan Script', 'Sriracha', 'Pacifico'] },
|
|
371
|
+
{ name: 'drawMethod', label: 'Draw', description: 'How the text appears when it is shown (rebuilds)', type: 'select', options: ['pen', 'trace', 'bothEnds', 'wipe', 'radial', 'scatter', 'dissolve', 'fade', 'none'], optionLabels: ['Pen', 'Trace', 'Both ends', 'Wipe', 'Radial', 'Scatter', 'Dissolve', 'Fade', 'Off'] },
|
|
372
|
+
{ name: 'drawDuration', label: 'Draw duration', description: 'How long the draw animation takes', type: 'number', min: 0.2, max: 15, step: 0.05, unit: 's' },
|
|
373
|
+
{ name: 'drawEase', label: 'Draw easing', description: 'Easing of the draw animation', type: 'select', options: ['easeInOut', 'linear', 'easeOut', 'easeIn'], optionLabels: ['Smooth', 'Linear', 'Out', 'In'] },
|
|
374
|
+
{ name: 'drawStagger', label: 'Draw stagger', description: 'How much the letters are staggered in time, for Trace and Both ends (rebuilds)', type: 'number', min: 0, max: 0.95, step: 0.01 },
|
|
375
|
+
{ name: 'drawAngle', label: 'Draw direction', description: 'Direction of the sweep, for Wipe (rebuilds)', type: 'number', min: -180, max: 180, step: 1, unit: '°' },
|
|
376
|
+
{ name: 'eraseMethod', label: 'Erase', description: 'How the text disappears when it is switched off (rebuilds)', type: 'select', options: ['fade', 'undraw', 'wipe', 'radial', 'scatter', 'dissolve', 'trace', 'bothEnds', 'pen', 'cut', 'none'], optionLabels: ['Fade', 'Reverse', 'Wipe', 'Radial', 'Scatter', 'Dissolve', 'Trace', 'Both ends', 'Pen', 'Cut', 'Off'] },
|
|
377
|
+
{ name: 'eraseDuration', label: 'Erase duration', description: 'How long the erase animation takes', type: 'number', min: 0.2, max: 15, step: 0.05, unit: 's' },
|
|
378
|
+
{ name: 'eraseEase', label: 'Erase easing', description: 'Easing of the erase animation', type: 'select', options: ['easeInOut', 'linear', 'easeOut', 'easeIn'], optionLabels: ['Smooth', 'Linear', 'Out', 'In'] },
|
|
379
|
+
{ name: 'eraseStagger', label: 'Erase stagger', description: 'How much the letters are staggered in time, for Trace and Both ends (rebuilds)', type: 'number', min: 0, max: 0.95, step: 0.01 },
|
|
380
|
+
{ name: 'eraseAngle', label: 'Erase direction', description: 'Direction of the sweep, for Wipe (rebuilds)', type: 'number', min: -180, max: 180, step: 1, unit: '°' },
|
|
381
|
+
{ name: 'autoPlay', label: 'Play on load', description: 'Play the draw animation when the scene starts', type: 'boolean' },
|
|
382
|
+
{ name: 'loop', label: 'Loop', description: 'Repeat hidden, draw, hold, erase, hidden', type: 'boolean' },
|
|
383
|
+
{ name: 'yoyo', label: 'Yoyo', description: 'Play the whole cycle forward, then backward', type: 'boolean' },
|
|
384
|
+
{ name: 'holdTime', label: 'Hold', description: 'How long the finished text stays before it is erased (loop)', type: 'number', min: 0, max: 10, step: 0.1, unit: 's' },
|
|
385
|
+
{ name: 'hiddenTime', label: 'Hidden pause', description: 'Pause with nothing shown between cycles (loop)', type: 'number', min: 0, max: 5, step: 0.1, unit: 's' },
|
|
386
|
+
],
|
|
387
|
+
};
|
|
@@ -8,7 +8,7 @@ export type EnvironmentElement = (typeof ENVIRONMENT_ELEMENTS)[number];
|
|
|
8
8
|
* (getAnimatableProperties), plus 'shadow' (a light's shadow block) and 'config'
|
|
9
9
|
* (config knobs of objects with no animatable table: text, plain, mesh).
|
|
10
10
|
*/
|
|
11
|
-
export type PropertyDomain = 'transform' | 'material' | 'edges' | 'light' | 'shadow' | 'particles' | 'effect' | 'grid' | 'rain' | 'clouds' | 'config' | 'camera' | 'sky' | 'cirrus' | 'ocean' | 'terrain';
|
|
11
|
+
export type PropertyDomain = 'transform' | 'material' | 'edges' | 'light' | 'shadow' | 'particles' | 'effect' | 'grid' | 'environment' | 'space' | 'land' | 'text' | 'rain' | 'clouds' | 'config' | 'camera' | 'sky' | 'stars' | 'cirrus' | 'thunder' | 'ocean' | 'terrain';
|
|
12
12
|
export interface PropertyOption {
|
|
13
13
|
value: string;
|
|
14
14
|
label?: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/properties/types.ts"],"names":[],"mappings":"AAYA,MAAM,MAAM,YAAY,GAAG,QAAQ,GAAG,OAAO,GAAG,SAAS,GAAG,QAAQ,GAAG,MAAM,GAAG,MAAM,GAAG,QAAQ,GAAG,SAAS,CAAC;AAE9G,0GAA0G;AAC1G,MAAM,MAAM,eAAe,GAAG,QAAQ,GAAG,QAAQ,GAAG,KAAK,GAAG,QAAQ,GAAG,OAAO,GAAG,SAAS,CAAC;AAE3F,eAAO,MAAM,oBAAoB,gDAAiD,CAAC;AACnF,MAAM,MAAM,kBAAkB,GAAG,CAAC,OAAO,oBAAoB,CAAC,CAAC,MAAM,CAAC,CAAC;AAEvE;;;;GAIG;AACH,MAAM,MAAM,cAAc,GACpB,WAAW,GAAG,UAAU,GAAG,OAAO,GAClC,OAAO,GAAG,QAAQ,GAAG,WAAW,GAAG,QAAQ,GAAG,MAAM,GAAG,MAAM,GAAG,QAAQ,GAAG,QAAQ,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/properties/types.ts"],"names":[],"mappings":"AAYA,MAAM,MAAM,YAAY,GAAG,QAAQ,GAAG,OAAO,GAAG,SAAS,GAAG,QAAQ,GAAG,MAAM,GAAG,MAAM,GAAG,QAAQ,GAAG,SAAS,CAAC;AAE9G,0GAA0G;AAC1G,MAAM,MAAM,eAAe,GAAG,QAAQ,GAAG,QAAQ,GAAG,KAAK,GAAG,QAAQ,GAAG,OAAO,GAAG,SAAS,CAAC;AAE3F,eAAO,MAAM,oBAAoB,gDAAiD,CAAC;AACnF,MAAM,MAAM,kBAAkB,GAAG,CAAC,OAAO,oBAAoB,CAAC,CAAC,MAAM,CAAC,CAAC;AAEvE;;;;GAIG;AACH,MAAM,MAAM,cAAc,GACpB,WAAW,GAAG,UAAU,GAAG,OAAO,GAClC,OAAO,GAAG,QAAQ,GAAG,WAAW,GAAG,QAAQ,GAAG,MAAM,GAAG,aAAa,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,QAAQ,GAAG,QAAQ,GAC/H,QAAQ,GAAG,KAAK,GAAG,OAAO,GAAG,QAAQ,GAAG,SAAS,GAAG,OAAO,GAAG,SAAS,CAAC;AAE9E,MAAM,WAAW,cAAc;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,YAAY;IACzB;;yDAEqD;IACrD,GAAG,EAAE,MAAM,CAAC;IACZ,wFAAwF;IACxF,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,EAAE,YAAY,CAAC;IACnB,MAAM,EAAE,cAAc,CAAC;IACvB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,cAAc,EAAE,CAAC;IAC3B,8DAA8D;IAC9D,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,4DAA4D;IAC5D,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,6DAA6D;IAC7D,UAAU,EAAE,OAAO,CAAC;CACvB;AAED,MAAM,WAAW,iBAAkB,SAAQ,YAAY;IACnD,wEAAwE;IACxE,KAAK,EAAE,OAAO,CAAC;CAClB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MaterialRegistry.d.ts","sourceRoot":"","sources":["../../src/services/MaterialRegistry.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAKtC,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AACxD,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AACxC,MAAM,WAAW,YAAY;IACzB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,iBAAiB,EAAE,CAAC;CACjC;AAED,MAAM,WAAW,eAAe;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,GAAG,CAAC;IACnB,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IACtC,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,iBAAiB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC7B,aAAa,CAAC,EAAE,YAAY,CAAC;CAChC;AAED,MAAM,WAAW,kBAAkB;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,cAAc,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;CAC7C;AAED,MAAM,WAAW,WAAW;IACxB,KAAK,EAAE,GAAG,CAAC;IACX,IAAI,EAAE,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,SAAS,GAAG,SAAS,GAAG,KAAK,CAAC;IAC1E,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,gBAAgB;IAC7B,QAAQ,EAAE,QAAQ,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC9B,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;IACtC,IAAI,EAAE,YAAY,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;CACnB;AAMD,QAAA,MAAM,gBAAgB,EAAE,MAAM,CAAC,YAAY,EAAE,kBAAkB,CAAa,CAAC;AAkG7E,eAAO,MAAM,mBAAmB;;;;;;;IAoD5B;;;;OAIG;;IAuBH;;;OAGG;;;;;;;;;;;;;IAmHH;;;OAGG;;
|
|
1
|
+
{"version":3,"file":"MaterialRegistry.d.ts","sourceRoot":"","sources":["../../src/services/MaterialRegistry.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAKtC,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AACxD,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AACxC,MAAM,WAAW,YAAY;IACzB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,iBAAiB,EAAE,CAAC;CACjC;AAED,MAAM,WAAW,eAAe;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,GAAG,CAAC;IACnB,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IACtC,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,iBAAiB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC7B,aAAa,CAAC,EAAE,YAAY,CAAC;CAChC;AAED,MAAM,WAAW,kBAAkB;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,cAAc,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;CAC7C;AAED,MAAM,WAAW,WAAW;IACxB,KAAK,EAAE,GAAG,CAAC;IACX,IAAI,EAAE,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,SAAS,GAAG,SAAS,GAAG,KAAK,CAAC;IAC1E,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,gBAAgB;IAC7B,QAAQ,EAAE,QAAQ,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC9B,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;IACtC,IAAI,EAAE,YAAY,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;CACnB;AAMD,QAAA,MAAM,gBAAgB,EAAE,MAAM,CAAC,YAAY,EAAE,kBAAkB,CAAa,CAAC;AAkG7E,eAAO,MAAM,mBAAmB;;;;;;;IAoD5B;;;;OAIG;;IAuBH;;;OAGG;;;;;;;;;;;;;IAmHH;;;OAGG;;IA8BH;;OAEG;;IAYH;;OAEG;;IAOH;;;;OAIG;;IAgBH;;;;;;;;;;;;OAYG;;IA2DH;;;OAGG;;CAIN,CAAC;AAEF,OAAO,EAAE,gBAAgB,EAAE,CAAC;AAE5B,eAAe,mBAAmB,CAAC"}
|
|
@@ -323,6 +323,8 @@ export const MaterialRegistryAPI = {
|
|
|
323
323
|
description: asset.description || `User shader "${asset.name}"`,
|
|
324
324
|
materialClass: null,
|
|
325
325
|
defaultSettings,
|
|
326
|
+
// Every sampler2D is a texture to resolve (URL → Texture) — not only names with "map" / "texture".
|
|
327
|
+
textureProperties: asset.uniforms.filter((u) => u.type === 'sampler2D').map((u) => u.name),
|
|
326
328
|
_shaderSource: {
|
|
327
329
|
vertex: asset.vertex,
|
|
328
330
|
fragment: asset.fragment,
|
|
@@ -31,6 +31,8 @@ declare class SceneActions {
|
|
|
31
31
|
private stateListeners;
|
|
32
32
|
private eventListeners;
|
|
33
33
|
private version;
|
|
34
|
+
/** Layer id -> JSON of what it last set (setLayer is called every frame; only changes commit). */
|
|
35
|
+
private layers;
|
|
34
36
|
/** Apply an action. Re-applying moves its patches to the top of each stack. */
|
|
35
37
|
applyAction(action: ActionSequence, options?: ApplyActionOptions): void;
|
|
36
38
|
/** Remove an action's patches from every element it touched. */
|
|
@@ -39,6 +41,12 @@ declare class SceneActions {
|
|
|
39
41
|
toggleAction(action: ActionSequence): boolean;
|
|
40
42
|
isActionApplied(actionId: string): boolean;
|
|
41
43
|
getAppliedActionIds(): string[];
|
|
44
|
+
/**
|
|
45
|
+
* Set a layer's patches (state -> patch), replacing what it set before; null or {}
|
|
46
|
+
* removes it. A no-op when nothing changed, so it can be called every frame. A
|
|
47
|
+
* changed layer moves to the top of each stack it is on.
|
|
48
|
+
*/
|
|
49
|
+
setLayer(layerId: string, patches: Record<string, SettingsPatch> | null): void;
|
|
42
50
|
/** Drop every patch (project load, "reset" in the editor). */
|
|
43
51
|
reset(): void;
|
|
44
52
|
/** The merged patch for one element — stable identity until it changes. */
|
|
@@ -50,6 +58,7 @@ declare class SceneActions {
|
|
|
50
58
|
/** Monotonic counter, bumped on every change (a cheap useSyncExternalStore snapshot). */
|
|
51
59
|
getVersion(): number;
|
|
52
60
|
private removeEntries;
|
|
61
|
+
/** `event` absent: a layer change (silent). */
|
|
53
62
|
private commit;
|
|
54
63
|
}
|
|
55
64
|
declare const sceneActions: SceneActions;
|