import { GpuShaderDefinition } from '../../gpu/porters'; import { schema as d } from '../../std'; import { transformColor } from '../../utilities/transformations'; export interface ComponentProps { /** * Named Gray-Scott regime — drives the feed & kill rates for a whole family of patterns. Choose Custom to dial feed & kill by hand * * Accepts one of: `"coral"`, `"mitosis"`, `"spots"`, `"maze"`, `"worms"`, `"fingerprints"`, `"holes"`, `"solitons"`, `"bubbles"`, `"waves"`, `"flowers"`, `"custom"`. * @default "coral" */ preset: string; /** * Feed rate — how fast chemical U is replenished (used when Pattern = Custom) * * Accepts a number between 0.01 and 0.1. * @default 0.0545 */ feed: number; /** * Kill rate — how fast chemical V is removed (used when Pattern = Custom) * * Accepts a number between 0.03 and 0.07. * @default 0.062 */ kill: number; /** * Ratio of the two chemicals * * Accepts a number between 0.2 and 0.9. * @default 0.5 */ diffusionRatio: number; /** * Size of the pattern features — lower shows finer, smaller cells; higher magnifies them into larger cells * * Accepts a number between 1 and 6. * @default 3 */ featureSize: number; /** * Simulation steps per frame — higher evolves the pattern faster * * Accepts a number within the specified range. * @default 6 */ speed: number; /** * Radius of the cursor brush that seeds new reagent as you drag * * Accepts a number between 0.01 and 0.3. * @default 0.04 */ brushSize: number; /** * How much reagent the cursor injects while dragging * * Accepts a number between 0 and 1. * @default 0.6 */ brushStrength: number; /** * Background color (empty regions between cells) * * Accepts hex strings (`#ff0000`), RGB objects (`{ r, g, b }`), or CSS color names (`limegreen`). * @default "transparent" */ colorA: Parameters[0]; /** * Color of the dense cell interiors (high pattern values) * * Accepts hex strings (`#ff0000`), RGB objects (`{ r, g, b }`), or CSS color names (`limegreen`). * @default "#e2f5ff" */ colorB: Parameters[0]; /** * Accent color at the cell walls (mid pattern values) * * Accepts hex strings (`#ff0000`), RGB objects (`{ r, g, b }`), or CSS color names (`limegreen`). * @default "#38bdf8" */ colorC: Parameters[0]; /** * Sharpness of the cell walls — higher gives crisper, more graphic edges * * @default 0.5 */ contrast: number; /** * Pattern level the colors are centered on — shifts the balance of background vs. cells * * @default 0.28 */ threshold: number; /** * Color space for color interpolation * * Accepts one of the predefined option values. * @default "oklch" */ colorSpace: string; /** * Treats the pattern as a raised surface and shades it with a light — higher gives a more sculpted, three-dimensional look (0 for a flat, graphic look) * * @default 0.4 */ relief: number; /** * Direction the surface light comes from, in degrees * * @default 135 */ lightAngle: number; /** * When a child layer is nested, how strongly its brightness biases the pattern — the preset sets the character, the child steers where it grows dense vs. sparse (0 ignores the child) * * @default 0.6 */ childInfluence: number; /** * Contrast applied to the child * * @default 0.5 */ childContrast: number; /** * Brightness level of the child that reads as neutral — shifts which tones grow the pattern vs. clear it * * @default 0.5 */ childThreshold: number; /** * Flip which tones of the child grow the pattern (bright vs. dark areas) * * Accepts a boolean value (`true` or `false`). * @default false */ childInvert: boolean; } export declare const reactionKernel: import('../../gpu/porters').GridKernel; export declare const reactionKernelChild: import('../../gpu/porters').GridKernel; export declare const seedKernel: import('typegpu').TgpuFn<(cx: d.U32, cy: d.U32) => d.Void>; export declare const outputKernel: import('typegpu').TgpuFn<(cx: d.U32, cy: d.U32) => d.Void>; export declare const componentDefinition: GpuShaderDefinition; export default componentDefinition; //# sourceMappingURL=index.d.ts.map