From 5a36bfb40b23da079cd8744b1b2541aeba31ce95 Mon Sep 17 00:00:00 2001 From: Bauke Date: Thu, 29 Feb 2024 14:09:11 +0100 Subject: [PATCH] Remove TypeScript files. --- source/2022/03/2022-03-06.ts | 66 ------------ source/2022/03/2022-03-07.ts | 68 ------------ source/2022/03/2022-03-08.ts | 42 -------- source/2022/03/2022-03-09.ts | 60 ----------- source/2022/03/2022-03-10.ts | 47 --------- source/2022/03/2022-03-11.ts | 61 ----------- source/2022/03/2022-03-12.ts | 51 --------- source/2022/03/2022-03-13.ts | 53 ---------- source/2022/03/2022-03-14.ts | 51 --------- source/2022/03/2022-03-15.ts | 90 ---------------- source/2022/03/2022-03-29.ts | 50 --------- source/2022/03/projects.ts | 29 ------ source/2022/projects.ts | 6 -- source/gegl/base.ts | 39 ------- source/gegl/bloom.ts | 30 ------ source/gegl/cartoon.ts | 24 ----- source/gegl/cell-noise.ts | 32 ------ source/gegl/crop.ts | 30 ------ source/gegl/diffraction-patterns.ts | 48 --------- source/gegl/exports.ts | 23 ----- source/gegl/focus-blur.ts | 48 --------- source/gegl/generic.ts | 22 ---- source/gegl/maze.ts | 34 ------ source/gegl/median-blur.ts | 32 ------ source/gegl/mirrors.ts | 46 --------- source/gegl/mosaic.ts | 48 --------- source/gegl/newsprint.ts | 58 ----------- source/gegl/noise-pick.ts | 26 ----- source/gegl/oilify.ts | 28 ----- source/gegl/plasma.ts | 32 ------ source/gegl/simplex-noise.ts | 26 ----- source/gegl/softglow.ts | 26 ----- source/gegl/stereographic-projection.ts | 36 ------- source/gegl/tile-glass.ts | 24 ----- source/gegl/tile-seamless.ts | 16 --- source/gegl/waterpixels.ts | 28 ----- source/gegl/waves.ts | 36 ------- source/interlinked.ts | 132 ------------------------ source/project.ts | 12 --- 39 files changed, 1610 deletions(-) delete mode 100644 source/2022/03/2022-03-06.ts delete mode 100644 source/2022/03/2022-03-07.ts delete mode 100644 source/2022/03/2022-03-08.ts delete mode 100644 source/2022/03/2022-03-09.ts delete mode 100644 source/2022/03/2022-03-10.ts delete mode 100644 source/2022/03/2022-03-11.ts delete mode 100644 source/2022/03/2022-03-12.ts delete mode 100644 source/2022/03/2022-03-13.ts delete mode 100644 source/2022/03/2022-03-14.ts delete mode 100644 source/2022/03/2022-03-15.ts delete mode 100644 source/2022/03/2022-03-29.ts delete mode 100644 source/2022/03/projects.ts delete mode 100644 source/2022/projects.ts delete mode 100644 source/gegl/base.ts delete mode 100644 source/gegl/bloom.ts delete mode 100644 source/gegl/cartoon.ts delete mode 100644 source/gegl/cell-noise.ts delete mode 100644 source/gegl/crop.ts delete mode 100644 source/gegl/diffraction-patterns.ts delete mode 100644 source/gegl/exports.ts delete mode 100644 source/gegl/focus-blur.ts delete mode 100644 source/gegl/generic.ts delete mode 100644 source/gegl/maze.ts delete mode 100644 source/gegl/median-blur.ts delete mode 100644 source/gegl/mirrors.ts delete mode 100644 source/gegl/mosaic.ts delete mode 100644 source/gegl/newsprint.ts delete mode 100644 source/gegl/noise-pick.ts delete mode 100644 source/gegl/oilify.ts delete mode 100644 source/gegl/plasma.ts delete mode 100644 source/gegl/simplex-noise.ts delete mode 100644 source/gegl/softglow.ts delete mode 100644 source/gegl/stereographic-projection.ts delete mode 100644 source/gegl/tile-glass.ts delete mode 100644 source/gegl/tile-seamless.ts delete mode 100644 source/gegl/waterpixels.ts delete mode 100644 source/gegl/waves.ts delete mode 100644 source/interlinked.ts delete mode 100644 source/project.ts diff --git a/source/2022/03/2022-03-06.ts b/source/2022/03/2022-03-06.ts deleted file mode 100644 index 932046c..0000000 --- a/source/2022/03/2022-03-06.ts +++ /dev/null @@ -1,66 +0,0 @@ -import { - FocusBlur, - Mirrors, - Newsprint, - SimplexNoise, - Softglow, - StereographicProjection, -} from '../../gegl/exports.js'; -import Project from '../../project.js'; - -const [width, height] = [1920, 1080]; - -const project: Project = { - createInputImage: false, - name: '2022-03-06', - operations: [ - new SimplexNoise({scale: 4, seed: 2_071_140_406}), - new Newsprint({ - colorModel: 'rgb', - pattern2: 'line', - period2: 200, - angle2: 15, - pattern3: 'line', - period3: 200, - angle3: 45, - pattern4: 'line', - period4: 200, - angle4: 0, - }), - new Mirrors(), - new Softglow(), - new Newsprint(), - new StereographicProjection({tilt: 123}), - new FocusBlur({ - blurType: 'gaussian', - blurRadius: 11.5, - radius: 0.9, - midpoint: 0.6, - }), - new Newsprint({ - colorModel: 'rgb', - pattern2: 'diamond', - period2: 200, - angle2: 0, - pattern3: 'diamond', - period3: 200, - angle3: 35, - pattern4: 'diamond', - period4: 200, - angle4: 55, - }), - new FocusBlur({ - blurType: 'gaussian', - blurRadius: 11.5, - radius: 0.9, - midpoint: 0.6, - }), - ], - resetAlpha: false, - resolution: { - width, - height, - }, -}; - -export default project; diff --git a/source/2022/03/2022-03-07.ts b/source/2022/03/2022-03-07.ts deleted file mode 100644 index d38fa9c..0000000 --- a/source/2022/03/2022-03-07.ts +++ /dev/null @@ -1,68 +0,0 @@ -import { - Cartoon, - MedianBlur, - Mirrors, - Mosaic, - Plasma, - Waterpixels, - Waves, -} from '../../gegl/exports.js'; -import Project from '../../project.js'; - -const [width, height] = [1920, 1080]; - -const project: Project = { - createInputImage: false, - name: '2022-03-07', - operations: [ - new Plasma({ - height, - seed: 2_000_111_903, - turbulence: 1, - width, - }), - new Mosaic({ - colorVariation: 1, - tileHeight: 5, - tileNeatness: 1, - tileSize: 116.53, - tileSurface: true, - tileType: 'triangles', - }), - new Waves({ - amplitude: 2.9, - clamp: true, - samplerType: 'cubic', - }), - new Waves({ - amplitude: 17.3, - clamp: true, - samplerType: 'cubic', - }), - new Mirrors({ - oX: 1, - oY: 0.353, - nSegs: 2, - }), - new Cartoon(), - new Waterpixels({ - fill: 'average', - size: 32, - smoothness: 1, - }), - new Mirrors({ - oX: 0.01, - oY: 0.01, - nSegs: 5, - rAngle: 342, - }), - new MedianBlur(), - ], - resetAlpha: false, - resolution: { - width, - height, - }, -}; - -export default project; diff --git a/source/2022/03/2022-03-08.ts b/source/2022/03/2022-03-08.ts deleted file mode 100644 index 0dd9bad..0000000 --- a/source/2022/03/2022-03-08.ts +++ /dev/null @@ -1,42 +0,0 @@ -import { - DiffractionPatterns, - FocusBlur, - Newsprint, - StereographicProjection, - TileSeamless, -} from '../../gegl/exports.js'; -import Project from '../../project.js'; - -const [width, height] = [1920, 1080]; - -const project: Project = { - createInputImage: false, - name: '2022-03-08', - operations: [ - new DiffractionPatterns({ - height, - width, - }), - new TileSeamless(), - new StereographicProjection(), - new Newsprint({ - colorModel: 'cmyk', - period: 4, - }), - new FocusBlur({ - blurRadius: 9.72, - blurType: 'lens', - focus: 0, - highlightFactor: 0.924, - radius: 1.173, - shape: 'circle', - }), - ], - resetAlpha: false, - resolution: { - width, - height, - }, -}; - -export default project; diff --git a/source/2022/03/2022-03-09.ts b/source/2022/03/2022-03-09.ts deleted file mode 100644 index 068a235..0000000 --- a/source/2022/03/2022-03-09.ts +++ /dev/null @@ -1,60 +0,0 @@ -import { - FocusBlur, - Maze, - MedianBlur, - Mirrors, - Newsprint, - Oilify, - TileGlass, - TileSeamless, - Waterpixels, - Waves, -} from '../../gegl/exports.js'; -import Project from '../../project.js'; - -const [width, height] = [1920, 1080]; - -const project: Project = { - createInputImage: true, - name: '2022-03-09', - operations: [ - new Maze(), - new TileGlass(), - new Waterpixels(), - new Newsprint({ - angle2: -55.4, - angle3: 60.77, - angle4: 103.55, - colorModel: 'rgb', - }), - new Waves({ - amplitude: 5.9, - clamp: true, - }), - new Oilify(), - new TileSeamless(), - new MedianBlur({ - percentile: 2.35, - }), - new Mirrors({ - nSegs: 3, - oX: 0.1, - oY: 0.2, - rAngle: 330, - }), - new FocusBlur({ - blurRadius: 33.57, - blurType: 'lens', - focus: 0.111, - highlightFactor: 0.529, - radius: 1.173, - }), - ], - resetAlpha: true, - resolution: { - width, - height, - }, -}; - -export default project; diff --git a/source/2022/03/2022-03-10.ts b/source/2022/03/2022-03-10.ts deleted file mode 100644 index 7953e7f..0000000 --- a/source/2022/03/2022-03-10.ts +++ /dev/null @@ -1,47 +0,0 @@ -import {Bloom, CellNoise, Newsprint, Waves} from '../../gegl/exports.js'; -import Project from '../../project.js'; - -const [width, height] = [3840, 2160]; - -const project: Project = { - createInputImage: false, - name: '2022-03-10', - operations: [ - new CellNoise({ - scale: 0.5, - seed: 2_762_328_325, - }), - new Newsprint({ - angle4: 75.85, - colorModel: 'rgb', - pattern2: 'circle', - pattern4: 'cross', - period2: 42.38, - period3: 0, - period4: 135.1, - turbulence: 0.454, - }), - new Waves({ - amplitude: 67.6, - clamp: true, - period: 514.8, - phi: -0.529, - samplerType: 'cubic', - x: -0.25, - y: -0.75, - }), - new Bloom({ - radius: 20, - softness: 57, - strength: 90, - threshold: 10, - }), - ], - resetAlpha: false, - resolution: { - width, - height, - }, -}; - -export default project; diff --git a/source/2022/03/2022-03-11.ts b/source/2022/03/2022-03-11.ts deleted file mode 100644 index bcd7dd4..0000000 --- a/source/2022/03/2022-03-11.ts +++ /dev/null @@ -1,61 +0,0 @@ -import { - Bloom, - Cartoon, - Newsprint, - NoisePick, - Plasma, - Waterpixels, -} from '../../gegl/exports.js'; -import Project from '../../project.js'; - -const [width, height] = [3840, 2160]; - -const project: Project = { - createInputImage: true, - name: '2022-03-11', - operations: [ - new Plasma({ - seed: 168_139_081, - turbulence: 1.5, - height, - width, - }), - new Cartoon({ - maskRadius: 40, - pctBlack: 0.2, - }), - new Waterpixels({ - size: 64, - }), - new Cartoon({ - maskRadius: 40, - pctBlack: 0.2, - }), - new Newsprint({ - colorModel: 'rgb', - pattern2: 'circle', - pattern3: 'cross', - pattern4: 'circle', - period2: 15, - period3: 150, - period4: 30, - turbulence: 0.9, - }), - new Bloom({ - radius: 7.48, - strength: 115.29, - threshold: 65.88, - }), - new NoisePick({ - repeat: 5, - seed: 0, - }), - ], - resetAlpha: false, - resolution: { - width, - height, - }, -}; - -export default project; diff --git a/source/2022/03/2022-03-12.ts b/source/2022/03/2022-03-12.ts deleted file mode 100644 index 3362c5e..0000000 --- a/source/2022/03/2022-03-12.ts +++ /dev/null @@ -1,51 +0,0 @@ -import { - DiffractionPatterns, - Generic, - MedianBlur, - Mirrors, - Newsprint, - Waterpixels, -} from '../../gegl/exports.js'; -import Project from '../../project.js'; - -const [width, height] = [3840, 2160]; - -const project: Project = { - createInputImage: false, - name: '2022-03-12', - operations: [ - new DiffractionPatterns({ - brightness: 0.382, - polarization: 0.67, - scattering: 53.21, - height, - width, - }), - new Waterpixels({ - smoothness: 2, - }), - new Generic('gegl:edge-neon', { - amount: 0.5, - radius: 3, - }), - new Mirrors({ - oX: 0.365, - oY: 0.694, - trimX: 0.375, - trimY: 0.375, - }), - new Newsprint({ - turbulence: 0.996, - }), - new MedianBlur({ - neighborhood: 'diamond', - }), - ], - resetAlpha: false, - resolution: { - width, - height, - }, -}; - -export default project; diff --git a/source/2022/03/2022-03-13.ts b/source/2022/03/2022-03-13.ts deleted file mode 100644 index 0bd955f..0000000 --- a/source/2022/03/2022-03-13.ts +++ /dev/null @@ -1,53 +0,0 @@ -import { - Cartoon, - Mirrors, - Oilify, - Plasma, - StereographicProjection, - Waterpixels, -} from '../../gegl/exports.js'; -import Project from '../../project.js'; - -const [width, height] = [3840, 2160]; - -const project: Project = { - createInputImage: false, - name: '2022-03-13', - operations: [ - new Plasma({ - seed: 65_198_886, - height, - width, - }), - new Cartoon({ - maskRadius: 50, - pctBlack: 1, - }), - new Waterpixels({ - size: 64, - }), - new Oilify({ - maskRadius: 8, - }), - new Mirrors({ - nSegs: 8, - oX: 0.829, - oY: 0.812, - trimX: 0.325, - trimY: 0.09, - }), - new StereographicProjection({ - tilt: -73.42, - }), - new Oilify({ - maskRadius: 8, - }), - ], - resetAlpha: false, - resolution: { - width, - height, - }, -}; - -export default project; diff --git a/source/2022/03/2022-03-14.ts b/source/2022/03/2022-03-14.ts deleted file mode 100644 index 2fde645..0000000 --- a/source/2022/03/2022-03-14.ts +++ /dev/null @@ -1,51 +0,0 @@ -import { - Cartoon, - DiffractionPatterns, - Generic, - MedianBlur, - Mirrors, -} from '../../gegl/exports.js'; -import Project from '../../project.js'; - -const [width, height] = [3840, 2160]; - -const project: Project = { - createInputImage: false, - name: '2022-03-14', - operations: [ - new DiffractionPatterns({ - height, - width, - }), - new Mirrors({ - nSegs: 7, - oX: 0.347, - oY: 0.1, - rAngle: 13, - trimX: 0.051, - trimY: 0.253, - }), - new Cartoon({ - maskRadius: 50, - pctBlack: 1, - }), - new MedianBlur({ - radius: 5, - }), - new Generic('gegl:edge', { - algorithm: 'prewitt', - amount: 10, - borderBehavior: 'clamp', - }), - new MedianBlur({ - radius: 5, - }), - ], - resetAlpha: false, - resolution: { - width, - height, - }, -}; - -export default project; diff --git a/source/2022/03/2022-03-15.ts b/source/2022/03/2022-03-15.ts deleted file mode 100644 index 143e390..0000000 --- a/source/2022/03/2022-03-15.ts +++ /dev/null @@ -1,90 +0,0 @@ -import { - Bloom, - Cartoon, - Crop, - FocusBlur, - Generic, - Mirrors, - Newsprint, - Waves, -} from '../../gegl/exports.js'; -import Project from '../../project.js'; - -const [width, height] = [3840, 2160]; - -const project: Project = { - createInputImage: false, - name: '2022-03-15', - operations: [ - new Generic('gegl:spiral', { - balance: 0.424, - color1: '#3078d2', - color2: '#ff00dc', - direction: 'cw', - height, - radius: 918.7, - type: 'linear', - width, - x: 0.307, - y: 0.542, - }), - new Crop({ - height, - width, - }), - new Cartoon({ - maskRadius: 50, - pctBlack: 1, - }), - new Newsprint({ - colorModel: 'rgb', - pattern2: 'line', - pattern3: 'diamond', - pattern4: 'pssquare', - period2: 105.96, - period3: 30.46, - period4: 125.83, - turbulence: 0.182, - }), - new Bloom({ - radius: 2.08, - softness: 87.94, - strength: 165.29, - }), - new Cartoon({ - maskRadius: 50, - pctBlack: 1, - }), - new Waves({ - amplitude: 65, - clamp: true, - period: 500, - phi: 0.5, - x: 0, - y: 1, - }), - new Mirrors({ - rAngle: 30, - nSegs: 3, - oX: 0.312, - oY: 1, - trimX: 0.162, - trimY: 0.031, - }), - new FocusBlur({ - blurRadius: 5.4, - blurType: 'lens', - focus: 0.154, - highlightFactor: 0.75, - midpoint: 0.38, - radius: 0.802, - }), - ], - resetAlpha: false, - resolution: { - width, - height, - }, -}; - -export default project; diff --git a/source/2022/03/2022-03-29.ts b/source/2022/03/2022-03-29.ts deleted file mode 100644 index 580a001..0000000 --- a/source/2022/03/2022-03-29.ts +++ /dev/null @@ -1,50 +0,0 @@ -import { - Bloom, - Cartoon, - FocusBlur, - Mirrors, - Oilify, - Plasma, -} from '../../gegl/exports.js'; -import Project from '../../project.js'; - -const [width, height] = [3840, 2160]; - -const project: Project = { - createInputImage: false, - name: '2022-03-29', - operations: [ - new Plasma({ - height, - seed: 3_474_742_930, - turbulence: 2, - width, - }), - new Cartoon({ - maskRadius: 50, - pctBlack: 1, - }), - new FocusBlur({ - blurType: 'lens', - }), - new Mirrors({ - oX: 0.406, - oY: 0.588, - }), - new Oilify({ - maskRadius: 8, - }), - new Bloom({ - radius: 2.08, - softness: 87.94, - strength: 165.29, - }), - ], - resetAlpha: false, - resolution: { - width, - height, - }, -}; - -export default project; diff --git a/source/2022/03/projects.ts b/source/2022/03/projects.ts deleted file mode 100644 index 2e6d920..0000000 --- a/source/2022/03/projects.ts +++ /dev/null @@ -1,29 +0,0 @@ -import Project from '../../project.js'; - -import p2022_03_06 from './2022-03-06.js'; -import p2022_03_07 from './2022-03-07.js'; -import p2022_03_08 from './2022-03-08.js'; -import p2022_03_09 from './2022-03-09.js'; -import p2022_03_10 from './2022-03-10.js'; -import p2022_03_11 from './2022-03-11.js'; -import p2022_03_12 from './2022-03-12.js'; -import p2022_03_13 from './2022-03-13.js'; -import p2022_03_14 from './2022-03-14.js'; -import p2022_03_15 from './2022-03-15.js'; -import p2022_03_29 from './2022-03-29.js'; - -const projects: Project[] = [ - p2022_03_06, - p2022_03_07, - p2022_03_08, - p2022_03_09, - p2022_03_10, - p2022_03_11, - p2022_03_12, - p2022_03_13, - p2022_03_14, - p2022_03_15, - p2022_03_29, -]; - -export default projects; diff --git a/source/2022/projects.ts b/source/2022/projects.ts deleted file mode 100644 index 9683a6d..0000000 --- a/source/2022/projects.ts +++ /dev/null @@ -1,6 +0,0 @@ -import Project from '../project.js'; -import p2022_03 from './03/projects.js'; - -const projects: Project[] = [...p2022_03]; - -export default projects; diff --git a/source/gegl/base.ts b/source/gegl/base.ts deleted file mode 100644 index 8d02557..0000000 --- a/source/gegl/base.ts +++ /dev/null @@ -1,39 +0,0 @@ -export abstract class BaseOperation

{ - public abstract get default(): P; - - public parameters: P; - - /** - * Some GEGL operations will run infinitely unless you limit the buffer in - * some way, so all operations must indicate whether or not they should be - * followed by a crop operation. - */ - public abstract appendCrop: boolean; - - /** The GEGL operation name, starting with `gegl:`. */ - public abstract name: string; - - constructor(parameters: P) { - this.parameters = parameters; - } - - public graph(includeDefaults = false): string[] { - const defaults = this.default; - const graph: string[] = [this.name]; - - for (const [key, value] of Object.entries(this.parameters)) { - if ( - !includeDefaults && - key in defaults && - (defaults as Record)[key] === value - ) { - continue; - } - - const kebabCasedKey = key.replace(/([A-Z])/g, '-$1').toLowerCase(); - graph.push(`${kebabCasedKey}=${value as string}`); - } - - return graph; - } -} diff --git a/source/gegl/bloom.ts b/source/gegl/bloom.ts deleted file mode 100644 index c05ae58..0000000 --- a/source/gegl/bloom.ts +++ /dev/null @@ -1,30 +0,0 @@ -import {BaseOperation} from './base.js'; - -export interface BloomParameters { - limitExposure: boolean; - radius: number; - softness: number; - strength: number; - threshold: number; -} - -export class Bloom extends BaseOperation { - public static default: BloomParameters = { - limitExposure: false, - radius: 10, - softness: 25, - strength: 50, - threshold: 50, - }; - - public get default() { - return Bloom.default; - } - - public appendCrop = false; - public name = 'gegl:bloom'; - - constructor(parameters?: Partial) { - super({...Bloom.default, ...parameters}); - } -} diff --git a/source/gegl/cartoon.ts b/source/gegl/cartoon.ts deleted file mode 100644 index 75f2207..0000000 --- a/source/gegl/cartoon.ts +++ /dev/null @@ -1,24 +0,0 @@ -import {BaseOperation} from './base.js'; - -export interface CartoonParameters { - maskRadius: number; - pctBlack: number; -} - -export class Cartoon extends BaseOperation { - public static default: CartoonParameters = { - maskRadius: 7, - pctBlack: 0.2, - }; - - public get default() { - return Cartoon.default; - } - - public appendCrop = true; - public name = 'gegl:cartoon'; - - constructor(parameters?: Partial) { - super({...Cartoon.default, ...parameters}); - } -} diff --git a/source/gegl/cell-noise.ts b/source/gegl/cell-noise.ts deleted file mode 100644 index 5084534..0000000 --- a/source/gegl/cell-noise.ts +++ /dev/null @@ -1,32 +0,0 @@ -import {BaseOperation} from './base.js'; - -export interface CellNoiseParameters { - iterations: number; - palettize: boolean; - rank: number; - scale: number; - seed: number; - shape: number; -} - -export class CellNoise extends BaseOperation { - public static default: CellNoiseParameters = { - iterations: 1, - palettize: false, - rank: 1, - scale: 1, - seed: 0, - shape: 2, - }; - - public get default() { - return CellNoise.default; - } - - public appendCrop = true; - public name = 'gegl:cell-noise'; - - constructor(parameters?: Partial) { - super({...CellNoise.default, ...parameters}); - } -} diff --git a/source/gegl/crop.ts b/source/gegl/crop.ts deleted file mode 100644 index 2c3fcea..0000000 --- a/source/gegl/crop.ts +++ /dev/null @@ -1,30 +0,0 @@ -import {BaseOperation} from './base.js'; - -export interface CropParameters { - height: number; - resetOrigin: boolean; - width: number; - x: number; - y: number; -} - -export class Crop extends BaseOperation { - public static default: CropParameters = { - height: 0, - resetOrigin: false, - width: 0, - x: 0, - y: 0, - }; - - public get default() { - return Crop.default; - } - - public appendCrop = false; - public name = 'gegl:crop'; - - constructor(parameters?: Partial) { - super({...Crop.default, ...parameters}); - } -} diff --git a/source/gegl/diffraction-patterns.ts b/source/gegl/diffraction-patterns.ts deleted file mode 100644 index 2e35e23..0000000 --- a/source/gegl/diffraction-patterns.ts +++ /dev/null @@ -1,48 +0,0 @@ -import {BaseOperation} from './base.js'; - -export interface DiffractionPatternsParameters { - blueContours: number; - blueFrequency: number; - blueSedges: number; - brightness: number; - greenContours: number; - greenFrequency: number; - greenSedges: number; - height: number; - polarization: number; - redContours: number; - redFrequency: number; - redSedges: number; - scattering: number; - width: number; -} - -export class DiffractionPatterns extends BaseOperation { - public static default: DiffractionPatternsParameters = { - blueContours: 0.97, - blueFrequency: 1.12, - blueSedges: 0.64, - brightness: 0.07, - greenContours: 0.82, - greenFrequency: 1.22, - greenSedges: 0.68, - height: 200, - polarization: -0.47, - redContours: 0.82, - redFrequency: 0.81, - redSedges: 0.61, - scattering: 37.13, - width: 200, - }; - - public get default() { - return DiffractionPatterns.default; - } - - public appendCrop = true; - public name = 'gegl:diffraction-patterns'; - - constructor(parameters?: Partial) { - super({...DiffractionPatterns.default, ...parameters}); - } -} diff --git a/source/gegl/exports.ts b/source/gegl/exports.ts deleted file mode 100644 index eeb4791..0000000 --- a/source/gegl/exports.ts +++ /dev/null @@ -1,23 +0,0 @@ -export * from './base.js'; -export * from './bloom.js'; -export * from './cartoon.js'; -export * from './cell-noise.js'; -export * from './crop.js'; -export * from './diffraction-patterns.js'; -export * from './focus-blur.js'; -export * from './generic.js'; -export * from './maze.js'; -export * from './median-blur.js'; -export * from './mirrors.js'; -export * from './mosaic.js'; -export * from './newsprint.js'; -export * from './noise-pick.js'; -export * from './oilify.js'; -export * from './plasma.js'; -export * from './simplex-noise.js'; -export * from './softglow.js'; -export * from './stereographic-projection.js'; -export * from './tile-glass.js'; -export * from './tile-seamless.js'; -export * from './waterpixels.js'; -export * from './waves.js'; diff --git a/source/gegl/focus-blur.ts b/source/gegl/focus-blur.ts deleted file mode 100644 index f3d5519..0000000 --- a/source/gegl/focus-blur.ts +++ /dev/null @@ -1,48 +0,0 @@ -import {BaseOperation} from './base.js'; - -export interface FocusBlurParameters { - aspectRatio: number; - blurRadius: number; - blurType: 'gaussian' | 'lens'; - focus: number; - highlightFactor: number; - highlightThresholdHigh: number; - highlightThresholdLow: number; - highQuality: boolean; - midpoint: number; - radius: number; - rotation: number; - shape: 'circle' | 'square' | 'diamond' | 'horizontal' | 'vertical'; - x: number; - y: number; -} - -export class FocusBlur extends BaseOperation { - public static default: FocusBlurParameters = { - aspectRatio: 0, - blurRadius: 25, - blurType: 'gaussian', - focus: 0.25, - highlightFactor: 0, - highlightThresholdHigh: 1, - highlightThresholdLow: 0, - highQuality: false, - midpoint: 0.5, - radius: 0.75, - rotation: 0, - shape: 'circle', - x: 0.5, - y: 0.5, - }; - - public get default() { - return FocusBlur.default; - } - - public appendCrop = false; - public name = 'gegl:focus-blur'; - - constructor(parameters?: Partial) { - super({...FocusBlur.default, ...parameters}); - } -} diff --git a/source/gegl/generic.ts b/source/gegl/generic.ts deleted file mode 100644 index 8341126..0000000 --- a/source/gegl/generic.ts +++ /dev/null @@ -1,22 +0,0 @@ -import {BaseOperation} from './base.js'; - -export type GenericParameters = Record; - -export class Generic extends BaseOperation { - public get default() { - return {}; - } - - public appendCrop: boolean; - public name: string; - - constructor( - name: string, - parameters?: GenericParameters, - appendCrop?: boolean, - ) { - super(parameters ?? {}); - this.name = name; - this.appendCrop = appendCrop ?? false; - } -} diff --git a/source/gegl/maze.ts b/source/gegl/maze.ts deleted file mode 100644 index f3b2088..0000000 --- a/source/gegl/maze.ts +++ /dev/null @@ -1,34 +0,0 @@ -import {BaseOperation} from './base.js'; - -export interface MazeParameters { - algorithmType: 'depth-first' | 'prim'; - bgColor: string; - fgColor: string; - seed: number; - tileable: boolean; - x: number; - y: number; -} - -export class Maze extends BaseOperation { - public static default: MazeParameters = { - algorithmType: 'depth-first', - bgColor: '#fff', - fgColor: '#000', - seed: 0, - tileable: false, - x: 16, - y: 16, - }; - - public get default() { - return Maze.default; - } - - public appendCrop = false; - public name = 'gegl:maze'; - - constructor(parameters?: Partial) { - super({...Maze.default, ...parameters}); - } -} diff --git a/source/gegl/median-blur.ts b/source/gegl/median-blur.ts deleted file mode 100644 index c656b9e..0000000 --- a/source/gegl/median-blur.ts +++ /dev/null @@ -1,32 +0,0 @@ -import {BaseOperation} from './base.js'; - -export interface MedianBlurParameters { - abyssPolicy: 'none' | 'clamp'; - alphaPercentile: number; - highPrecision: boolean; - neighborhood: 'square' | 'circle' | 'diamond'; - percentile: number; - radius: number; -} - -export class MedianBlur extends BaseOperation { - public static default: MedianBlurParameters = { - abyssPolicy: 'clamp', - alphaPercentile: 50, - highPrecision: false, - neighborhood: 'circle', - percentile: 50, - radius: 3, - }; - - public get default() { - return MedianBlur.default; - } - - public appendCrop = false; - public name = 'gegl:median-blur'; - - constructor(parameters?: Partial) { - super({...MedianBlur.default, ...parameters}); - } -} diff --git a/source/gegl/mirrors.ts b/source/gegl/mirrors.ts deleted file mode 100644 index 680c4d3..0000000 --- a/source/gegl/mirrors.ts +++ /dev/null @@ -1,46 +0,0 @@ -import {BaseOperation} from './base.js'; - -export interface MirrorsParameters { - clip: boolean; - cX: number; - cY: number; - inputScale: number; - mAngle: number; - nSegs: number; - outputScale: number; - oX: number; - oY: number; - rAngle: number; - trimX: number; - trimY: number; - warp: boolean; -} - -export class Mirrors extends BaseOperation { - public static default: MirrorsParameters = { - clip: true, - cX: 0.5, - cY: 0.5, - inputScale: 100, - mAngle: 0, - nSegs: 6, - outputScale: 1, - oX: 0, - oY: 0, - rAngle: 0, - trimX: 0, - trimY: 0, - warp: true, - }; - - public get default() { - return Mirrors.default; - } - - public appendCrop = false; - public name = 'gegl:mirrors'; - - constructor(parameters?: Partial) { - super({...Mirrors.default, ...parameters}); - } -} diff --git a/source/gegl/mosaic.ts b/source/gegl/mosaic.ts deleted file mode 100644 index bfb6643..0000000 --- a/source/gegl/mosaic.ts +++ /dev/null @@ -1,48 +0,0 @@ -import {BaseOperation} from './base.js'; - -export interface MosaicParameters { - antialiasing: boolean; - colorAveraging: boolean; - colorVariation: number; - jointsColor: string; - lightColor: string; - lightDir: number; - seed: number; - tileAllowSplit: boolean; - tileHeight: number; - tileNeatness: number; - tileSize: number; - tileSpacing: number; - tileSurface: boolean; - tileType: 'squares' | 'hexagons' | 'octagons' | 'triangles'; -} - -export class Mosaic extends BaseOperation { - public static default: MosaicParameters = { - antialiasing: true, - colorAveraging: true, - colorVariation: 0.2, - jointsColor: '#000', - lightColor: '#fff', - lightDir: 135, - seed: 0, - tileAllowSplit: true, - tileHeight: 4, - tileNeatness: 0.65, - tileSize: 15, - tileSpacing: 1, - tileSurface: false, - tileType: 'hexagons', - }; - - public get default() { - return Mosaic.default; - } - - public appendCrop = false; - public name = 'gegl:mosaic'; - - constructor(parameters?: Partial) { - super({...Mosaic.default, ...parameters}); - } -} diff --git a/source/gegl/newsprint.ts b/source/gegl/newsprint.ts deleted file mode 100644 index 40398b7..0000000 --- a/source/gegl/newsprint.ts +++ /dev/null @@ -1,58 +0,0 @@ -import {BaseOperation} from './base.js'; - -type NewsprintPattern = 'line' | 'circle' | 'diamond' | 'pssquare' | 'cross'; - -export interface NewsprintParameters { - aaSamples: number; - angle: number; - angle2: number; - angle3: number; - angle4: number; - angleboost: number; - blackPullout: number; - blocksize: number; - colorModel: 'black-on-white' | 'cmyk' | 'rgb' | 'white-on-black'; - pattern: NewsprintPattern; - pattern2: NewsprintPattern; - pattern3: NewsprintPattern; - pattern4: NewsprintPattern; - period: number; - period2: number; - period3: number; - period4: number; - turbulence: number; -} - -export class Newsprint extends BaseOperation { - public static default: NewsprintParameters = { - aaSamples: 16, - angle: 75, - angle2: 15, - angle3: 45, - angle4: 0, - angleboost: 0, - blackPullout: 1, - blocksize: -1, - colorModel: 'black-on-white', - pattern: 'line', - pattern2: 'line', - pattern3: 'line', - pattern4: 'line', - period: 12, - period2: 12, - period3: 12, - period4: 12, - turbulence: 0, - }; - - public get default() { - return Newsprint.default; - } - - public appendCrop = false; - public name = 'gegl:newsprint'; - - constructor(parameters?: Partial) { - super({...Newsprint.default, ...parameters}); - } -} diff --git a/source/gegl/noise-pick.ts b/source/gegl/noise-pick.ts deleted file mode 100644 index 04105dc..0000000 --- a/source/gegl/noise-pick.ts +++ /dev/null @@ -1,26 +0,0 @@ -import {BaseOperation} from './base.js'; - -export interface NoisePickParameters { - pctRandom: number; - repeat: number; - seed: number; -} - -export class NoisePick extends BaseOperation { - public static default: NoisePickParameters = { - pctRandom: 50, - repeat: 1, - seed: 0, - }; - - public get default() { - return NoisePick.default; - } - - public appendCrop = true; - public name = 'gegl:noise-pick'; - - constructor(parameters?: Partial) { - super({...NoisePick.default, ...parameters}); - } -} diff --git a/source/gegl/oilify.ts b/source/gegl/oilify.ts deleted file mode 100644 index df06951..0000000 --- a/source/gegl/oilify.ts +++ /dev/null @@ -1,28 +0,0 @@ -import {BaseOperation} from './base.js'; - -export interface OilifyParameters { - exponent: number; - intensities: number; - maskRadius: number; - useInten: boolean; -} - -export class Oilify extends BaseOperation { - public static default: OilifyParameters = { - exponent: 8, - intensities: 128, - maskRadius: 4, - useInten: true, - }; - - public get default() { - return Oilify.default; - } - - public appendCrop = false; - public name = 'gegl:oilify'; - - constructor(parameters?: Partial) { - super({...Oilify.default, ...parameters}); - } -} diff --git a/source/gegl/plasma.ts b/source/gegl/plasma.ts deleted file mode 100644 index fb73671..0000000 --- a/source/gegl/plasma.ts +++ /dev/null @@ -1,32 +0,0 @@ -import {BaseOperation} from './base.js'; - -export interface PlasmaParameters { - height: number; - seed: number; - turbulence: number; - width: number; - x: number; - y: number; -} - -export class Plasma extends BaseOperation { - public static default: PlasmaParameters = { - height: 768, - seed: 0, - turbulence: 1, - width: 1024, - x: 0, - y: 0, - }; - - public get default() { - return Plasma.default; - } - - public appendCrop = false; - public name = 'gegl:plasma'; - - constructor(parameters?: Partial) { - super({...Plasma.default, ...parameters}); - } -} diff --git a/source/gegl/simplex-noise.ts b/source/gegl/simplex-noise.ts deleted file mode 100644 index 6f94688..0000000 --- a/source/gegl/simplex-noise.ts +++ /dev/null @@ -1,26 +0,0 @@ -import {BaseOperation} from './base.js'; - -export interface SimplexNoiseParameters { - iterations: number; - scale: number; - seed: number; -} - -export class SimplexNoise extends BaseOperation { - public static default: SimplexNoiseParameters = { - iterations: 1, - scale: 1, - seed: 1, - }; - - public get default() { - return SimplexNoise.default; - } - - public appendCrop = true; - public name = 'gegl:simplex-noise'; - - constructor(parameters?: Partial) { - super({...SimplexNoise.default, ...parameters}); - } -} diff --git a/source/gegl/softglow.ts b/source/gegl/softglow.ts deleted file mode 100644 index cb8a1a0..0000000 --- a/source/gegl/softglow.ts +++ /dev/null @@ -1,26 +0,0 @@ -import {BaseOperation} from './base.js'; - -export interface SoftglowParameters { - brightness: number; - glowRadius: number; - sharpness: number; -} - -export class Softglow extends BaseOperation { - public static default: SoftglowParameters = { - brightness: 0.3, - glowRadius: 10, - sharpness: 0.85, - }; - - public get default() { - return Softglow.default; - } - - public appendCrop = false; - public name = 'gegl:softglow'; - - constructor(parameters?: Partial) { - super({...Softglow.default, ...parameters}); - } -} diff --git a/source/gegl/stereographic-projection.ts b/source/gegl/stereographic-projection.ts deleted file mode 100644 index 4cd525d..0000000 --- a/source/gegl/stereographic-projection.ts +++ /dev/null @@ -1,36 +0,0 @@ -import {BaseOperation} from './base.js'; - -export interface StereographicProjectionParameters { - height: number; - inverse: boolean; - pan: number; - samplerType: 'nearest' | 'linear' | 'cubic' | 'nohalo' | 'lohalo'; - spin: number; - tilt: number; - width: number; - zoom: number; -} - -export class StereographicProjection extends BaseOperation { - public static default: StereographicProjectionParameters = { - height: -1, - inverse: false, - pan: 0, - samplerType: 'nearest', - spin: 0, - tilt: 90, - width: -1, - zoom: 100, - }; - - public get default() { - return StereographicProjection.default; - } - - public appendCrop = false; - public name = 'gegl:stereographic-projection'; - - constructor(parameters?: Partial) { - super({...StereographicProjection.default, ...parameters}); - } -} diff --git a/source/gegl/tile-glass.ts b/source/gegl/tile-glass.ts deleted file mode 100644 index 08160da..0000000 --- a/source/gegl/tile-glass.ts +++ /dev/null @@ -1,24 +0,0 @@ -import {BaseOperation} from './base.js'; - -export interface TileGlassParameters { - tileHeight: number; - tileWidth: number; -} - -export class TileGlass extends BaseOperation { - public static default: TileGlassParameters = { - tileHeight: 25, - tileWidth: 25, - }; - - public get default() { - return TileGlass.default; - } - - public appendCrop = false; - public name = 'gegl:tile-glass'; - - constructor(parameters?: Partial) { - super({...TileGlass.default, ...parameters}); - } -} diff --git a/source/gegl/tile-seamless.ts b/source/gegl/tile-seamless.ts deleted file mode 100644 index b72ad1d..0000000 --- a/source/gegl/tile-seamless.ts +++ /dev/null @@ -1,16 +0,0 @@ -import {BaseOperation} from './base.js'; - -export type TileSeamlessParameters = Record; - -export class TileSeamless extends BaseOperation { - public get default() { - return {}; - } - - public appendCrop = false; - public name = 'gegl:tile-seamless'; - - constructor() { - super({}); - } -} diff --git a/source/gegl/waterpixels.ts b/source/gegl/waterpixels.ts deleted file mode 100644 index f58fff1..0000000 --- a/source/gegl/waterpixels.ts +++ /dev/null @@ -1,28 +0,0 @@ -import {BaseOperation} from './base.js'; - -export interface WaterpixelsParameters { - fill: 'average' | 'random'; - regularization: number; - size: number; - smoothness: number; -} - -export class Waterpixels extends BaseOperation { - public static default: WaterpixelsParameters = { - fill: 'average', - regularization: 0, - size: 32, - smoothness: 1, - }; - - public get default() { - return Waterpixels.default; - } - - public appendCrop = false; - public name = 'gegl:waterpixels'; - - constructor(parameters?: Partial) { - super({...Waterpixels.default, ...parameters}); - } -} diff --git a/source/gegl/waves.ts b/source/gegl/waves.ts deleted file mode 100644 index f66c993..0000000 --- a/source/gegl/waves.ts +++ /dev/null @@ -1,36 +0,0 @@ -import {BaseOperation} from './base.js'; - -export interface WavesParameters { - amplitude: number; - aspect: number; - clamp: boolean; - period: number; - phi: number; - samplerType: 'nearest' | 'linear' | 'cubic' | 'nohalo' | 'lohalo'; - x: number; - y: number; -} - -export class Waves extends BaseOperation { - public static default: WavesParameters = { - amplitude: 25, - aspect: 1, - clamp: false, - period: 100, - phi: 0, - samplerType: 'cubic', - x: 0.5, - y: 0.5, - }; - - public get default() { - return Waves.default; - } - - public appendCrop = true; - public name = 'gegl:waves'; - - constructor(parameters?: Partial) { - super({...Waves.default, ...parameters}); - } -} diff --git a/source/interlinked.ts b/source/interlinked.ts deleted file mode 100644 index e0d696e..0000000 --- a/source/interlinked.ts +++ /dev/null @@ -1,132 +0,0 @@ -import fsp from 'node:fs/promises'; -import path from 'node:path'; -import {performance} from 'node:perf_hooks'; - -import {execa} from 'execa'; -import meow from 'meow'; - -import {Crop} from './gegl/exports.js'; -import Project from './project.js'; - -import p2022 from './2022/projects.js'; - -async function main(): Promise { - const cli = meow( - ` - Options - --filter Only render projects starting with . - --include-defaults Include default GEGL operation parameters. - --no-render Don't render any images. - `, - { - flags: { - filter: { - default: '', - type: 'string', - }, - includeDefaults: { - default: false, - type: 'boolean', - }, - render: { - default: true, - type: 'boolean', - }, - }, - importMeta: import.meta, - }, - ); - - const includeDefaults = cli.flags.includeDefaults; - const noRender = !cli.flags.render; - - const projects: Project[] = [...p2022].filter((project) => - project.name.startsWith(cli.flags.filter), - ); - - for (const { - createInputImage, - name, - operations, - resolution, - resetAlpha, - } of projects) { - const dataStart = performance.now(); - const {width, height} = resolution; - - const baseDir = path.resolve(`./output/${name}`); - await fsp.mkdir(baseDir, {recursive: true}); - - console.log(`# ${name}`); - console.log(`* ${width}x${height}`); - console.log(`* ${operations.length} operations`); - - const graph = operations.flatMap((operation) => { - const graph = operation.graph(includeDefaults); - if (operation.appendCrop) { - graph.push(...new Crop({height, width}).graph(includeDefaults)); - } - - return graph; - }); - - const prettyGraph = graph.map((operation) => - operation.startsWith('gegl:') ? `\n${operation}\n` : ` ${operation}\n`, - ); - - const graphFile = `${name}.txt`; - const outputFile = `${name}.png`; - const compressedFile = `${outputFile.slice(0, -4)}.jpeg`; - - console.log(`* Writing ${graphFile}`); - await fsp.writeFile( - path.join(baseDir, graphFile), - prettyGraph.join('').trimStart(), - ); - - if (noRender) { - console.log(`* Skipped ${outputFile}`); - } else { - const fullOutputFile = path.join(baseDir, outputFile); - if (createInputImage) { - await execa('convert', [ - '-size', - `${width}x${height}`, - 'xc:white', - fullOutputFile, - ]); - } - - console.log(`* Writing ${outputFile}`); - await execa('gegl', [ - ...(createInputImage ? ['-i', fullOutputFile] : []), - '-o', - fullOutputFile, - '--', - ...graph, - ]); - - if (resetAlpha) { - await execa('convert', [ - fullOutputFile, - '-alpha', - 'Off', - fullOutputFile, - ]); - } - - console.log(`* Writing ${compressedFile}`); - await execa('convert', [ - fullOutputFile, - '-quality', - '92', - path.join(baseDir, compressedFile), - ]); - } - - const time = (performance.now() - dataStart).toFixed(2); - console.log(`* Generated in ${time}ms`); - } -} - -void main(); diff --git a/source/project.ts b/source/project.ts deleted file mode 100644 index 9e93adc..0000000 --- a/source/project.ts +++ /dev/null @@ -1,12 +0,0 @@ -import {BaseOperation} from './gegl/exports.js'; - -export default interface Project { - createInputImage: boolean; - name: string; - operations: Array>; - resetAlpha: boolean; - resolution: { - height: number; - width: number; - }; -}