import { colorInteractionControl, defaultColorInteractionSettings, } from './color-interactions'; import type { GardenAppConfig } from './types'; export const runtimeSettings: GardenAppConfig['runtimeSettings'] = { defaults: { agentBudgetMax: 1_000_000, agentCount: 0, selectedColorIndex: 0, spawnPerPixel: 0.22, moveSpeed: 82, turnSpeed: 58, sensorOffsetAngle: 34, sensorOffsetDistance: 38, turnWhenLost: 0.8, individualTrailWeight: 0.07, ...defaultColorInteractionSettings, diffusionRateTrails: 0.22, decayRateTrails: 965, diffusionRateBrush: 0.35, decayRateBrush: 18, brushEffectDuration: 8, clarity: 0.62, brushSize: 14, brushCurveResolution: 12, eraserSize: 96, mirrorSegmentCount: 1, brushSizeVariation: 0.5, startColorHue: 200, renderSpeed: 1, simulatedDelayMs: 0, }, controls: { agentBudgetMax: { folder: 'Runtime', integer: true, min: 500_000, max: 10_000_000, step: 50_000, }, agentCount: { folder: 'Runtime', integer: true, min: 0, max: 1_000_000, step: 1_000, }, color1ToColor1: colorInteractionControl('1 -> 1'), color1ToColor2: colorInteractionControl('1 -> 2'), color1ToColor3: colorInteractionControl('1 -> 3'), color2ToColor1: colorInteractionControl('2 -> 1'), color2ToColor2: colorInteractionControl('2 -> 2'), color2ToColor3: colorInteractionControl('2 -> 3'), color3ToColor1: colorInteractionControl('3 -> 1'), color3ToColor2: colorInteractionControl('3 -> 2'), color3ToColor3: colorInteractionControl('3 -> 3'), brushEffectDuration: { folder: 'Diffusion', min: 0.5, max: 20, step: 0.05, }, brushSize: { folder: 'Brush', min: 1, max: 60, step: 0.25, }, brushSizeVariation: { folder: 'Brush', min: 0, max: 1, step: 0.01, }, brushCurveResolution: { folder: 'Brush', integer: true, label: 'curve resolution', min: 1, max: 32, step: 1, }, clarity: { folder: 'Render', min: 0.00001, max: 1, step: 0.001, }, decayRateBrush: { folder: 'Diffusion', min: 0.1, max: 100, step: 0.1, }, decayRateTrails: { folder: 'Diffusion', min: 0.1, max: 5000, step: 1, }, diffusionRateBrush: { folder: 'Diffusion', min: 0.001, max: 1, step: 0.001, }, diffusionRateTrails: { folder: 'Diffusion', min: 0, max: 2, step: 0.001, }, eraserSize: { folder: 'Brush', integer: true, min: 24, max: 240, step: 1, }, individualTrailWeight: { folder: 'Agent', min: 0, max: 1, step: 0.001, }, mirrorSegmentCount: { folder: 'Brush', integer: true, min: 1, max: 12, step: 1, }, moveSpeed: { folder: 'Agent', min: 10, max: 500, step: 1, }, renderSpeed: { folder: 'Runtime', integer: true, min: 1, max: 10, step: 1, }, selectedColorIndex: { folder: 'Brush', integer: true, min: 0, max: 2, step: 1, }, sensorOffsetAngle: { folder: 'Agent', min: 0, max: 90, step: 1, }, sensorOffsetDistance: { folder: 'Agent', min: 0, max: 200, step: 1, }, simulatedDelayMs: { folder: 'Runtime', integer: true, min: 0, max: 2000, step: 1, }, spawnPerPixel: { folder: 'Agent', min: 0.01, max: 1, step: 0.001, }, startColorHue: { folder: 'Render', min: 0, max: 360, step: 1, }, turnSpeed: { folder: 'Agent', min: 1, max: 200, step: 1, }, turnWhenLost: { folder: 'Agent', min: 0, max: 1, step: 0.001, }, }, };