asciify-engine 4.17.0 → 4.19.0
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/README.md +18 -0
- package/dist/{characters-BgG9AZQl.d.cts → characters-BgECi5Lf.d.cts} +2 -2
- package/dist/{characters-BgG9AZQl.d.ts → characters-BgECi5Lf.d.ts} +2 -2
- package/dist/core.cjs +1 -1
- package/dist/core.d.cts +1 -1
- package/dist/core.d.ts +1 -1
- package/dist/core.js +1 -1
- package/dist/field.cjs +1 -1
- package/dist/field.d.cts +18 -5
- package/dist/field.d.ts +18 -5
- package/dist/field.js +1 -1
- package/dist/index.cjs +1 -1
- package/dist/index.d.cts +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.js +1 -1
- package/dist/kit.cjs +1 -1
- package/dist/kit.d.cts +267 -69
- package/dist/kit.d.ts +267 -69
- package/dist/kit.js +1 -1
- package/dist/studio.cjs +1 -1
- package/dist/studio.d.cts +1 -1
- package/dist/studio.d.ts +1 -1
- package/dist/studio.js +1 -1
- package/package.json +1 -1
- package/skills/asciify-engine/SKILL.md +14 -16
- package/skills/asciify-engine/references/applying-asciify.md +11 -13
- package/skills/asciify-engine/references/components.md +38 -42
- package/skills/asciify-engine/references/design-matching.md +1 -1
- package/skills/asciify-engine/references/glyph-field.md +2 -1
- package/skills/asciify-engine/references/kit.md +73 -66
- package/skills/asciify-engine/references/looks.md +1043 -0
- package/skills/asciify-engine/references/media-api.md +4 -6
- package/skills/asciify-engine/references/upgrading.md +1 -1
|
@@ -0,0 +1,1043 @@
|
|
|
1
|
+
# Asciify looks
|
|
2
|
+
|
|
3
|
+
Finished artwork looks for a person's own photo, video or GIF: wallpapers, posters, album and cover art, hero artwork, prints and social images. Each look has the prompt a person gives you and the exact `/studio` settings that reproduce it. Every look is shown live at https://asciify.org/looks on a source image made for it, and opens in the editor at https://asciify.org/editor with the same settings. Every Studio render style has at least one look.
|
|
4
|
+
|
|
5
|
+
These are artworks, not interface components. For a loading state, a background behind text or another UI piece, use [components.md](components.md) and the kit instead.
|
|
6
|
+
|
|
7
|
+
Twelve looks are the engine's curated presets: apply them with `studioLook(id)` and enumerate `STUDIO_LOOKS` rather than copying their values. The others are written out in full settings: render styles the presets do not cover, Composed looks that use the backdrop (blur, the photo itself, gradients, transparency) and masks, and Finished looks that turn on the optical finish (vignette, grain, bloom, scanlines, fringe, blur). All of them use the `asciify-engine/studio` entry ([studio-workspace.md](studio-workspace.md), [print-styles.md](print-styles.md)); nothing is uploaded, and the person's media stays in the browser.
|
|
8
|
+
|
|
9
|
+
## Reproduce a look
|
|
10
|
+
|
|
11
|
+
Mount it on a canvas, sized to the element it fills. Cell sizes are logical pixels: the renderer draws at the width and height you pass, and multiplies cells by the pixel ratio. Pass the element's CSS size times the ratio, with that ratio, to keep the density you see on asciify.org with sharp marks. The source is cover-cropped into that frame. Raise `maxCells` for fine dither and print looks.
|
|
12
|
+
|
|
13
|
+
```ts
|
|
14
|
+
import { mountStudio, studioLook } from 'asciify-engine/studio';
|
|
15
|
+
|
|
16
|
+
const box = frame.getBoundingClientRect(), ratio = Math.min(devicePixelRatio, 2);
|
|
17
|
+
const width = Math.round(box.width * ratio), height = Math.round(box.height * ratio);
|
|
18
|
+
const art = await mountStudio(canvas, '/your-photo.jpg', {
|
|
19
|
+
settings: studioLook('riso'), // or a full settings object from an entry below
|
|
20
|
+
width, height, maxDimension: 2048, maxCells: 65536,
|
|
21
|
+
});
|
|
22
|
+
art.resize(width, height, ratio); // the same grid as at 1×, drawn sharper; call again when the frame resizes
|
|
23
|
+
// Let the cursor work through the artwork: art.update({ hover: { effect: 'trail' } });
|
|
24
|
+
// On unmount: art.destroy();
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
The entries below pass the element's CSS size at 1× for brevity; add the ratio as above for high-density screens.
|
|
28
|
+
|
|
29
|
+
Give the canvas `width: 100%; height: 100%` in CSS and an `aria-label` or adjacent caption describing the image; the artwork is an image, not text. Keep `crop.x`/`crop.y` (0–1) to frame the subject, and `aspectRatio` (`'1:1'`, `'4:3'`, `'3:4'`, `'16:9'`, `'9:16'`, `'21:9'`) when the frame is fixed rather than the element's.
|
|
30
|
+
|
|
31
|
+
## Export a wallpaper, poster or loop
|
|
32
|
+
|
|
33
|
+
Export renders a separate, deterministic frame; it never screenshots the live canvas. `referenceWidth` is the logical width the look is designed at, so the same cells scale up sharply instead of multiplying.
|
|
34
|
+
|
|
35
|
+
```ts
|
|
36
|
+
import { exportStudio, loadStudioMedia, normalizeStudioSettings, studioLook } from 'asciify-engine/studio';
|
|
37
|
+
|
|
38
|
+
const media = await loadStudioMedia(file);
|
|
39
|
+
try {
|
|
40
|
+
const settings = studioLook('ascii'); // or normalizeStudioSettings({ ...an entry's settings })
|
|
41
|
+
const wallpaper = await exportStudio({ frame: () => media.frame(0) }, settings, {
|
|
42
|
+
format: 'png', width: 3840, height: 2160, referenceWidth: 960, maxCells: 262144,
|
|
43
|
+
});
|
|
44
|
+
const phone = await exportStudio({ frame: () => media.frame(0) }, settings, {
|
|
45
|
+
format: 'png', width: 1290, height: 2796, referenceWidth: 430, maxCells: 262144,
|
|
46
|
+
});
|
|
47
|
+
// Looks with motion loop every 12 / motion.speed seconds; export one loop for a seamless video wallpaper.
|
|
48
|
+
const loop = await exportStudio({ frame: async (t, signal) => { await media.seek(t, signal); return media.frame(t); } }, settings, {
|
|
49
|
+
format: 'mp4', width: 1920, height: 1080, referenceWidth: 960, fps: 30,
|
|
50
|
+
duration: settings.motion.type === 'none' ? 6 : 12 / settings.motion.speed, maxCells: 131072,
|
|
51
|
+
});
|
|
52
|
+
} finally {
|
|
53
|
+
media.destroy();
|
|
54
|
+
}
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
Common sizes: desktop 3840×2160 (`referenceWidth: 960`), phone 1290×2796 (`430`), square post 2160×2160 (`720`), A4 at 300 dpi 2480×3508 (`620`). Stills are bounded at 4096 pixels a side and 16 megapixels, so larger print sizes need a lower dpi. MP4 needs a WebCodecs encoder and even dimensions; report an encoder error rather than switching format silently. Hover is live only and is never recorded.
|
|
58
|
+
|
|
59
|
+
## How to choose
|
|
60
|
+
|
|
61
|
+
- The person names a look, or describes one ("newsprint", "riso", "phosphor", "Lego", "engraving", "film still"): use the entry, then adjust only what they asked for.
|
|
62
|
+
- Dark, contrasty sources (a subject on black, night scenes) suit character looks and source-color tiles. Bright, high-key sources (white architecture, paper, daylight) suit the paper-ground looks: Newsprint, Two inks, Banknote, Four-color press, Riso duotone, Woodcut, Overprint.
|
|
63
|
+
- Subjects with strong local color (fruit, fish, birds, a painting) suit source-color looks: Mosaic study, Brickwork, Pixel, Honeycomb, Pointillist, ANSI blocks, Jewel box.
|
|
64
|
+
- The artwork goes over something else (video, a gradient, a brand color, a product page): use a transparent look (Cutout, Halo overlay) and export PNG, which keeps the alpha.
|
|
65
|
+
- The person wants the photo itself to stay present: Frosted glass and Bokeh draw over its blur, Overprint over the sharp original.
|
|
66
|
+
- The person asks for a grade, film, broadcast or vintage feel: use a Finished look. Finish effects need WebGL; check `art.capabilities.gpuFinish` and say so when it is unavailable.
|
|
67
|
+
- Keep artwork with motion off for video sources unless asked; the footage already moves.
|
|
68
|
+
- Say in one line which look you chose and offer one alternative from this file.
|
|
69
|
+
|
|
70
|
+
## frost: Frosted glass
|
|
71
|
+
Category: Composed
|
|
72
|
+
Use it for: sunsets, skylines and silhouettes as white frost characters over a soft, full-color blur of the photo; premium wallpapers and covers.
|
|
73
|
+
Settings: ASCII, 5px cells, ink `#121110` with the tone curve inverted so shadows carry the characters, over the source blurred 24px at full opacity.
|
|
74
|
+
|
|
75
|
+
Prompt:
|
|
76
|
+
“Frost [my photo] like glass with asciify-engine: fine white characters where the photo is bright, over a soft, full-color blur of the same photo, so dark shapes stay clean silhouettes. Export a 3840×2160 PNG wallpaper and a 1290×2796 phone version.”
|
|
77
|
+
|
|
78
|
+
```ts
|
|
79
|
+
import { mountStudio } from 'asciify-engine/studio';
|
|
80
|
+
|
|
81
|
+
const art = await mountStudio(canvas, '/your-photo.jpg', {
|
|
82
|
+
settings: {
|
|
83
|
+
style: 'ascii', cellSize: 4, ink: '#fff7ef',
|
|
84
|
+
backdrop: { mode: 'blurred', blur: 10, opacity: 1 },
|
|
85
|
+
color: { contrast: 1.2, brightness: .05 },
|
|
86
|
+
},
|
|
87
|
+
width: frame.clientWidth, height: frame.clientHeight, maxCells: 65536,
|
|
88
|
+
});
|
|
89
|
+
// The blur is the untouched photo; color adjustments only change the characters.
|
|
90
|
+
```
|
|
91
|
+
|
|
92
|
+
## bokeh: Bokeh
|
|
93
|
+
Category: Composed
|
|
94
|
+
Use it for: flowers, gardens and lights as glowing color dots over their own soft focus; spring campaigns, calm wallpapers, music covers.
|
|
95
|
+
Settings: dots, 6px cells, source color at saturation 1.3, brightness .12, over the source blurred 32px, character glow .25.
|
|
96
|
+
|
|
97
|
+
Prompt:
|
|
98
|
+
“Turn [my photo] into a bokeh artwork with asciify-engine: halftone dots in the photo's own colors, slightly brighter, floating over a deep blur of the same photo with a soft glow. Export a 2160×2700 PNG.”
|
|
99
|
+
|
|
100
|
+
```ts
|
|
101
|
+
import { mountStudio } from 'asciify-engine/studio';
|
|
102
|
+
|
|
103
|
+
const art = await mountStudio(canvas, '/your-photo.jpg', {
|
|
104
|
+
settings: {
|
|
105
|
+
style: 'dots', cellSize: 6, colorMode: 'source',
|
|
106
|
+
backdrop: { mode: 'blurred', blur: 32, opacity: 1 },
|
|
107
|
+
color: { saturation: 1.3, brightness: .12, contrast: 1.1 },
|
|
108
|
+
effects: { characterBloom: .25 },
|
|
109
|
+
},
|
|
110
|
+
width: frame.clientWidth, height: frame.clientHeight, maxCells: 65536,
|
|
111
|
+
});
|
|
112
|
+
```
|
|
113
|
+
|
|
114
|
+
## cutout: Cutout
|
|
115
|
+
Category: Composed
|
|
116
|
+
Use it for: a subject on a dark or plain background as a sticker with a transparent ground; overlays on any color, product cut-outs, layered heroes.
|
|
117
|
+
Settings: mixed type, 4px cells, source color at saturation 1.4, brightness .15, transparent backdrop.
|
|
118
|
+
|
|
119
|
+
Prompt:
|
|
120
|
+
“Cut [my subject on a dark background] out as an ASCII sticker with asciify-engine: fine mixed type in the photo's colors on a transparent ground, so only the subject remains. Place it over [our brand color] in the hero and export a transparent 2160×2160 PNG.”
|
|
121
|
+
|
|
122
|
+
```ts
|
|
123
|
+
import { mountStudio } from 'asciify-engine/studio';
|
|
124
|
+
|
|
125
|
+
const art = await mountStudio(canvas, '/your-photo.jpg', {
|
|
126
|
+
settings: {
|
|
127
|
+
style: 'mixed', cellSize: 4, colorMode: 'source',
|
|
128
|
+
backdrop: { mode: 'transparent' },
|
|
129
|
+
color: { saturation: 1.4, contrast: 1.2, brightness: .15 },
|
|
130
|
+
},
|
|
131
|
+
width: frame.clientWidth, height: frame.clientHeight, maxCells: 65536,
|
|
132
|
+
});
|
|
133
|
+
// Export as PNG to keep the transparency; JPEG and MP4 fill it with black.
|
|
134
|
+
```
|
|
135
|
+
|
|
136
|
+
## halo: Halo overlay
|
|
137
|
+
Category: Composed
|
|
138
|
+
Use it for: a glowing white dot artwork with a transparent ground, to lay over video, gradients or brand color; launch heroes and title cards.
|
|
139
|
+
Settings: dots, 5px cells, `#f4f1ea` ink, transparent backdrop, character glow .4.
|
|
140
|
+
|
|
141
|
+
Prompt:
|
|
142
|
+
“Make [my photo] a glowing dot overlay with asciify-engine: white halftone dots with a soft halo on a transparent ground, so it sits over [our hero gradient]. Keep the canvas pointer-events free and export a transparent 3840×2160 PNG.”
|
|
143
|
+
|
|
144
|
+
```ts
|
|
145
|
+
import { mountStudio } from 'asciify-engine/studio';
|
|
146
|
+
|
|
147
|
+
const art = await mountStudio(canvas, '/your-photo.jpg', {
|
|
148
|
+
settings: {
|
|
149
|
+
style: 'dots', cellSize: 5, ink: '#f4f1ea',
|
|
150
|
+
backdrop: { mode: 'transparent' },
|
|
151
|
+
color: { contrast: 1.2 },
|
|
152
|
+
effects: { characterBloom: .4 },
|
|
153
|
+
},
|
|
154
|
+
width: frame.clientWidth, height: frame.clientHeight, maxCells: 65536,
|
|
155
|
+
});
|
|
156
|
+
// canvas { position: absolute; inset: 0; pointer-events: none } over the layer it decorates.
|
|
157
|
+
```
|
|
158
|
+
|
|
159
|
+
## afterglow: Afterglow
|
|
160
|
+
Category: Composed
|
|
161
|
+
Use it for: a bright figure or object on black, redrawn in warm light characters over a dusk gradient; event posters, music and campaign heroes.
|
|
162
|
+
Settings: ASCII, 4px cells, black point .25, `#fff0dc` ink over a gradient from `#1c1433` to `#b4492f`, character glow .3.
|
|
163
|
+
|
|
164
|
+
Prompt:
|
|
165
|
+
“Draw [my photo] in warm light characters over a dusk gradient with asciify-engine: violet into ember, the characters glowing softly. Export a 2160×2700 PNG poster and let me swap the two gradient colors for [our palette].”
|
|
166
|
+
|
|
167
|
+
```ts
|
|
168
|
+
import { mountStudio } from 'asciify-engine/studio';
|
|
169
|
+
|
|
170
|
+
const art = await mountStudio(canvas, '/your-photo.jpg', {
|
|
171
|
+
settings: {
|
|
172
|
+
style: 'ascii', cellSize: 4, ink: '#fff0dc',
|
|
173
|
+
backdrop: { mode: 'gradient', color: '#1c1433', color2: '#b4492f' },
|
|
174
|
+
color: { contrast: 1.2, blackPoint: .25 },
|
|
175
|
+
effects: { characterBloom: .3 },
|
|
176
|
+
},
|
|
177
|
+
width: frame.clientWidth, height: frame.clientHeight, maxCells: 65536,
|
|
178
|
+
});
|
|
179
|
+
art.update({ backdrop: { color: '#0e2a3a', color2: '#d98f3c' } }); // the gradient runs top left to bottom right
|
|
180
|
+
```
|
|
181
|
+
|
|
182
|
+
## neon: Neon
|
|
183
|
+
Category: Composed
|
|
184
|
+
Use it for: night photos with bright, saturated lights, redrawn as glowing colored characters; nightlife, festival and music artwork.
|
|
185
|
+
Settings: ASCII, 4px cells, source color at saturation 1.3 on `#07070a`, character glow .6.
|
|
186
|
+
|
|
187
|
+
Prompt:
|
|
188
|
+
“Light [my night photo] up as neon with asciify-engine: fine characters in the photo's own saturated colors, each glowing like a lit tube, on black. Play it live in [the hero] and export a 2160×2700 PNG.”
|
|
189
|
+
|
|
190
|
+
```ts
|
|
191
|
+
import { mountStudio } from 'asciify-engine/studio';
|
|
192
|
+
|
|
193
|
+
const art = await mountStudio(canvas, '/your-photo.jpg', {
|
|
194
|
+
settings: {
|
|
195
|
+
style: 'ascii', cellSize: 4, colorMode: 'source',
|
|
196
|
+
backdrop: { mode: 'solid', color: '#07070a' },
|
|
197
|
+
color: { saturation: 1.3 },
|
|
198
|
+
effects: { characterBloom: .6 },
|
|
199
|
+
},
|
|
200
|
+
width: frame.clientWidth, height: frame.clientHeight, maxCells: 65536,
|
|
201
|
+
});
|
|
202
|
+
```
|
|
203
|
+
|
|
204
|
+
## cobalt: Cobalt
|
|
205
|
+
Category: Composed
|
|
206
|
+
Use it for: a pale sculpture, portrait or product on a dark ground, set in cream characters on saturated ultramarine; gallery posters and confident brand heroes.
|
|
207
|
+
Settings: ASCII, 3px cells, `#f2ede2` ink on solid `#1f3ea8`, contrast 1.3, black point .15.
|
|
208
|
+
|
|
209
|
+
Prompt:
|
|
210
|
+
“Set [my photo] in cream characters on deep cobalt blue with asciify-engine, like a gallery poster. Export a 2480×3508 PNG, and let me swap the blue for [our brand color] without changing the ink.”
|
|
211
|
+
|
|
212
|
+
```ts
|
|
213
|
+
import { mountStudio } from 'asciify-engine/studio';
|
|
214
|
+
|
|
215
|
+
const art = await mountStudio(canvas, '/your-photo.jpg', {
|
|
216
|
+
settings: {
|
|
217
|
+
style: 'ascii', cellSize: 3, ink: '#f2ede2',
|
|
218
|
+
backdrop: { mode: 'solid', color: '#1f3ea8' },
|
|
219
|
+
color: { contrast: 1.3, blackPoint: .15 },
|
|
220
|
+
},
|
|
221
|
+
width: frame.clientWidth, height: frame.clientHeight, maxCells: 65536,
|
|
222
|
+
});
|
|
223
|
+
art.update({ backdrop: { color: '#0f5c4a' } });
|
|
224
|
+
```
|
|
225
|
+
|
|
226
|
+
## cameo: Cameo
|
|
227
|
+
Category: Composed
|
|
228
|
+
Use it for: a portrait engraved inside an oval on warm paper, like a stamp or banknote vignette; invitations, about pages, memorial and heritage artwork.
|
|
229
|
+
Settings: engraving, 4px cells, `#2a2620` on `#ece6d8`, `print.invert: true`, angle −30, inside an ellipse mask.
|
|
230
|
+
|
|
231
|
+
Prompt:
|
|
232
|
+
“Engrave [my portrait] inside an oval cameo with asciify-engine: fine parallel cuts in dark ink on warm paper, only within a centered oval, the paper plain around it. Export a 2480×3508 PNG for an invitation.”
|
|
233
|
+
|
|
234
|
+
```ts
|
|
235
|
+
import { mountStudio } from 'asciify-engine/studio';
|
|
236
|
+
|
|
237
|
+
const art = await mountStudio(canvas, '/your-photo.jpg', {
|
|
238
|
+
settings: {
|
|
239
|
+
style: 'engraving', cellSize: 4, ink: '#2a2620',
|
|
240
|
+
backdrop: { mode: 'solid', color: '#ece6d8' },
|
|
241
|
+
print: { invert: true, angle: -30, weight: 1.05 },
|
|
242
|
+
mask: { enabled: true, shapes: [{ kind: 'ellipse', x: .31, y: .1, width: .38, height: .8 }] },
|
|
243
|
+
},
|
|
244
|
+
width: frame.clientWidth, height: frame.clientHeight, maxCells: 131072,
|
|
245
|
+
});
|
|
246
|
+
// Mask shapes are 0–1 of the frame (left, top, width, height); move the oval to frame the face.
|
|
247
|
+
```
|
|
248
|
+
|
|
249
|
+
## gilded: Gilded
|
|
250
|
+
Category: Composed
|
|
251
|
+
Use it for: jewelry, watches, metalwork and ornament as gold engraving on black; luxury product pages, labels and premium dark heroes.
|
|
252
|
+
Settings: engraving, 4px cells, gold `#d9b26a` on `#0b0a08`, angle −35, weight 1.1, contrast 1.35, character glow .2.
|
|
253
|
+
|
|
254
|
+
Prompt:
|
|
255
|
+
“Engrave [my product photo] in gold on black with asciify-engine: fine parallel cuts in warm gold whose weight follows the light, with a faint glow. Export a 2160×2160 PNG and a 3840×2160 wallpaper.”
|
|
256
|
+
|
|
257
|
+
```ts
|
|
258
|
+
import { mountStudio } from 'asciify-engine/studio';
|
|
259
|
+
|
|
260
|
+
const art = await mountStudio(canvas, '/your-photo.jpg', {
|
|
261
|
+
settings: {
|
|
262
|
+
style: 'engraving', cellSize: 4, ink: '#d9b26a',
|
|
263
|
+
backdrop: { mode: 'solid', color: '#0b0a08' },
|
|
264
|
+
print: { angle: -35, weight: 1.1 },
|
|
265
|
+
color: { contrast: 1.35, brightness: .05 },
|
|
266
|
+
effects: { characterBloom: .2 },
|
|
267
|
+
},
|
|
268
|
+
width: frame.clientWidth, height: frame.clientHeight, maxCells: 131072,
|
|
269
|
+
});
|
|
270
|
+
```
|
|
271
|
+
|
|
272
|
+
## overprint: Overprint
|
|
273
|
+
Category: Composed
|
|
274
|
+
Use it for: bright, airy photos with dark characters printed straight over the sharp original; travel, editorial and summer campaign artwork.
|
|
275
|
+
Settings: ASCII, 5px cells, deep teal `#0f2a33` ink, contrast 1.2, over the source photo at full opacity.
|
|
276
|
+
|
|
277
|
+
Prompt:
|
|
278
|
+
“Overprint [my bright photo] with asciify-engine: keep the photo sharp underneath and print deep teal characters over its light areas, like a type screen inked onto the print. Export a 2160×2700 PNG.”
|
|
279
|
+
|
|
280
|
+
```ts
|
|
281
|
+
import { mountStudio } from 'asciify-engine/studio';
|
|
282
|
+
|
|
283
|
+
const art = await mountStudio(canvas, '/your-photo.jpg', {
|
|
284
|
+
settings: {
|
|
285
|
+
style: 'ascii', cellSize: 5, ink: '#0f2a33',
|
|
286
|
+
backdrop: { mode: 'source', opacity: 1 },
|
|
287
|
+
color: { contrast: 1.2 },
|
|
288
|
+
},
|
|
289
|
+
width: frame.clientWidth, height: frame.clientHeight, maxCells: 65536,
|
|
290
|
+
});
|
|
291
|
+
```
|
|
292
|
+
|
|
293
|
+
## cinema: Cinema
|
|
294
|
+
Category: Finished
|
|
295
|
+
Use it for: landscapes, roads and wide scenes as a film still: warm-white characters over the photo's own soft color, with a vignette, film grain and a little bloom; trailers, story heroes and posters.
|
|
296
|
+
Settings: ASCII, 4px cells, warm-white `#fff1de` ink over the source blurred 14px, contrast 1.15, vignette .45, grain .22, bloom .15.
|
|
297
|
+
|
|
298
|
+
Prompt:
|
|
299
|
+
“Grade [my photo] like a film still with asciify-engine: fine warm-white characters over a soft blur of the photo's own colors, finished with a vignette, a little bloom and film grain. Export a 3840×1646 PNG in 21:9 and keep it live in [the hero].”
|
|
300
|
+
|
|
301
|
+
```ts
|
|
302
|
+
import { mountStudio } from 'asciify-engine/studio';
|
|
303
|
+
|
|
304
|
+
const art = await mountStudio(canvas, '/your-photo.jpg', {
|
|
305
|
+
settings: {
|
|
306
|
+
style: 'ascii', cellSize: 4, ink: '#fff1de',
|
|
307
|
+
backdrop: { mode: 'blurred', blur: 14, opacity: 1 },
|
|
308
|
+
color: { contrast: 1.15 },
|
|
309
|
+
effects: { vignette: .45, grain: .22, bloom: .15 },
|
|
310
|
+
},
|
|
311
|
+
width: frame.clientWidth, height: frame.clientHeight, maxCells: 65536,
|
|
312
|
+
});
|
|
313
|
+
// Finish effects need WebGL: check art.capabilities.gpuFinish before saying they were applied.
|
|
314
|
+
```
|
|
315
|
+
|
|
316
|
+
## darkroom: Darkroom
|
|
317
|
+
Category: Finished
|
|
318
|
+
Use it for: still lifes, portraits and low-key photos as a print glowing out of the dark; book covers, gallery walls and quiet dark heroes.
|
|
319
|
+
Settings: ASCII, 5px cells, `#efe6d6` on `#080706`, contrast 1.2, brightness .3, midtones 1.7, vignette .55, bloom .35, grain .12.
|
|
320
|
+
|
|
321
|
+
Prompt:
|
|
322
|
+
“Print [my photo] like it is coming up in a darkroom with asciify-engine: warm paper-white characters on black, a heavy vignette, a soft glow on the highlights and a little grain. Export a 2480×3508 PNG.”
|
|
323
|
+
|
|
324
|
+
```ts
|
|
325
|
+
import { mountStudio } from 'asciify-engine/studio';
|
|
326
|
+
|
|
327
|
+
const art = await mountStudio(canvas, '/your-photo.jpg', {
|
|
328
|
+
settings: {
|
|
329
|
+
style: 'ascii', cellSize: 5, ink: '#efe6d6',
|
|
330
|
+
backdrop: { mode: 'solid', color: '#080706' },
|
|
331
|
+
color: { contrast: 1.2, brightness: .3, gamma: 1.7 },
|
|
332
|
+
effects: { vignette: .55, bloom: .35, grain: .12 },
|
|
333
|
+
},
|
|
334
|
+
width: frame.clientWidth, height: frame.clientHeight, maxCells: 65536,
|
|
335
|
+
});
|
|
336
|
+
```
|
|
337
|
+
|
|
338
|
+
## broadcast: Broadcast
|
|
339
|
+
Category: Finished
|
|
340
|
+
Use it for: space, sport and news-like photos as a live transmission: a fine pixel picture with scanlines, a chromatic fringe, RGB split and a slight tube curve; launch and live-event artwork.
|
|
341
|
+
Settings: pixel, 3px cells, source color at saturation 1.15, scanlines .35, prism .3, RGB split .25, CRT .15, vignette .25.
|
|
342
|
+
|
|
343
|
+
Prompt:
|
|
344
|
+
“Make [my photo] look like a live broadcast with asciify-engine: a fine pixel picture in the photo's colors on a screen with scanlines, a chromatic fringe, a little RGB split and a slight tube curve. Show it live in [the hero] and export a 1920×1080 PNG.”
|
|
345
|
+
|
|
346
|
+
```ts
|
|
347
|
+
import { mountStudio } from 'asciify-engine/studio';
|
|
348
|
+
|
|
349
|
+
const art = await mountStudio(canvas, '/your-photo.jpg', {
|
|
350
|
+
settings: {
|
|
351
|
+
style: 'pixel', cellSize: 3, colorMode: 'source',
|
|
352
|
+
backdrop: { mode: 'solid', color: '#06080b' },
|
|
353
|
+
color: { saturation: 1.15, contrast: 1.05 },
|
|
354
|
+
effects: { scanlines: .35, prism: .3, rgbSplit: .25, crt: .15, vignette: .25 },
|
|
355
|
+
},
|
|
356
|
+
width: frame.clientWidth, height: frame.clientHeight, maxCells: 131072,
|
|
357
|
+
});
|
|
358
|
+
```
|
|
359
|
+
|
|
360
|
+
## tape: Tape
|
|
361
|
+
Category: Finished
|
|
362
|
+
Use it for: action, skate and music photos as a worn tape frame: halftone dots in source color with glitch bands, color split, scanlines and grain; merch, flyers and social cuts.
|
|
363
|
+
Settings: dots, 4px cells, source color at saturation 1.3, brightness .15, glitch .15, RGB split .35, scanlines .2, grain .25.
|
|
364
|
+
|
|
365
|
+
Prompt:
|
|
366
|
+
“Run [my photo] through an old tape with asciify-engine: halftone dots in the photo's colors with glitch bands, an RGB split, faint scanlines and grain. Export a 1080×1350 PNG and a 6-second 1080×1350 MP4 loop.”
|
|
367
|
+
|
|
368
|
+
```ts
|
|
369
|
+
import { mountStudio } from 'asciify-engine/studio';
|
|
370
|
+
|
|
371
|
+
const art = await mountStudio(canvas, '/your-photo.jpg', {
|
|
372
|
+
settings: {
|
|
373
|
+
style: 'dots', cellSize: 4, colorMode: 'source',
|
|
374
|
+
backdrop: { mode: 'solid', color: '#0b0a0c' },
|
|
375
|
+
color: { saturation: 1.3, contrast: 1.1, brightness: .15 },
|
|
376
|
+
effects: { glitch: .15, rgbSplit: .35, scanlines: .2, grain: .25 },
|
|
377
|
+
},
|
|
378
|
+
width: frame.clientWidth, height: frame.clientHeight, maxCells: 65536,
|
|
379
|
+
});
|
|
380
|
+
// Glitch bands move over time; mountStudio holds still under prefers-reduced-motion.
|
|
381
|
+
```
|
|
382
|
+
|
|
383
|
+
## miniature: Miniature
|
|
384
|
+
Category: Finished
|
|
385
|
+
Use it for: aerial views of towns, harbors and crowds as a tilt-shift model, sharp in a band and softly blurred above and below; travel and city artwork.
|
|
386
|
+
Settings: pixel, 4px cells, source color at saturation 1.35, progressive blur 6 focused at .55, sharpen .3.
|
|
387
|
+
|
|
388
|
+
Prompt:
|
|
389
|
+
“Turn [my aerial photo] into a tilt-shift miniature with asciify-engine: small square pixels in boosted source colors, sharp through the middle band and blurring toward the top and bottom. Export a 3840×2160 PNG wallpaper.”
|
|
390
|
+
|
|
391
|
+
```ts
|
|
392
|
+
import { mountStudio } from 'asciify-engine/studio';
|
|
393
|
+
|
|
394
|
+
const art = await mountStudio(canvas, '/your-photo.jpg', {
|
|
395
|
+
settings: {
|
|
396
|
+
style: 'pixel', cellSize: 4, colorMode: 'source',
|
|
397
|
+
backdrop: { mode: 'solid', color: '#0b0b0a' },
|
|
398
|
+
color: { saturation: 1.35, contrast: 1.1 },
|
|
399
|
+
effects: { blur: 6, blurType: 'progressive', focus: .55, sharpen: .3 },
|
|
400
|
+
},
|
|
401
|
+
width: frame.clientWidth, height: frame.clientHeight, maxCells: 65536,
|
|
402
|
+
});
|
|
403
|
+
art.update({ effects: { focus: .4 } }); // moves the sharp band
|
|
404
|
+
```
|
|
405
|
+
|
|
406
|
+
## archive: Archive
|
|
407
|
+
Category: Finished
|
|
408
|
+
Use it for: historic, travel and heritage photos as an aged print, with sepia ink, dust, grain and a vignette; anniversaries, museums and about pages.
|
|
409
|
+
Settings: ASCII, 4px cells, sepia ink `#e9d8b4` on `#17130e`, contrast 1.4, dust .45, grain .3, vignette .4.
|
|
410
|
+
|
|
411
|
+
Prompt:
|
|
412
|
+
“Age [my photo] into an archive print with asciify-engine: warm sepia characters on dark brown with dust, film grain and a vignette, like a print found in a drawer. Export a 2480×3508 PNG.”
|
|
413
|
+
|
|
414
|
+
```ts
|
|
415
|
+
import { mountStudio } from 'asciify-engine/studio';
|
|
416
|
+
|
|
417
|
+
const art = await mountStudio(canvas, '/your-photo.jpg', {
|
|
418
|
+
settings: {
|
|
419
|
+
style: 'ascii', cellSize: 4, ink: '#e9d8b4',
|
|
420
|
+
backdrop: { mode: 'solid', color: '#17130e' },
|
|
421
|
+
color: { contrast: 1.4 },
|
|
422
|
+
effects: { dust: .45, grain: .3, vignette: .4 },
|
|
423
|
+
},
|
|
424
|
+
width: frame.clientWidth, height: frame.clientHeight, maxCells: 65536,
|
|
425
|
+
});
|
|
426
|
+
```
|
|
427
|
+
|
|
428
|
+
## velocity: Velocity
|
|
429
|
+
Category: Finished
|
|
430
|
+
Use it for: headlights, tunnels and anything rushing toward the camera, with a radial speed blur and glowing highlights; automotive, sport and launch heroes.
|
|
431
|
+
Settings: ASCII, 4px cells, source color at saturation 1.25 lifted (brightness .2, midtones 1.3), radial blur 4 around the center, bloom .3, vignette .25.
|
|
432
|
+
|
|
433
|
+
Prompt:
|
|
434
|
+
“Give [my photo] speed with asciify-engine: characters in the photo's colors streaking out from the center with a radial blur, glowing highlights and a vignette. Export a 1920×1080 PNG and keep it live in [the hero].”
|
|
435
|
+
|
|
436
|
+
```ts
|
|
437
|
+
import { mountStudio } from 'asciify-engine/studio';
|
|
438
|
+
|
|
439
|
+
const art = await mountStudio(canvas, '/your-photo.jpg', {
|
|
440
|
+
settings: {
|
|
441
|
+
style: 'ascii', cellSize: 4, colorMode: 'source',
|
|
442
|
+
backdrop: { mode: 'solid', color: '#08080a' },
|
|
443
|
+
color: { saturation: 1.25, brightness: .2, gamma: 1.3 },
|
|
444
|
+
effects: { blur: 4, blurType: 'radial', focus: .5, bloom: .3, vignette: .25 },
|
|
445
|
+
},
|
|
446
|
+
width: frame.clientWidth, height: frame.clientHeight, maxCells: 65536,
|
|
447
|
+
});
|
|
448
|
+
```
|
|
449
|
+
|
|
450
|
+
## poppress: Pop press
|
|
451
|
+
Category: Finished
|
|
452
|
+
Use it for: bold, saturated product and car photos as a comic-print page, with a halftone screen over shaded blocks in source color; packaging, merch and pop posters.
|
|
453
|
+
Settings: blocks, 4px cells, source color at saturation 1.4 lifted (brightness .2, midtones 1.3), halftone screen .35, sharpen .4.
|
|
454
|
+
|
|
455
|
+
Prompt:
|
|
456
|
+
“Print [my photo] as a pop comic page with asciify-engine: shaded blocks in the photo's saturated colors under a halftone screen, sharpened. Export a 2480×3508 PNG poster.”
|
|
457
|
+
|
|
458
|
+
```ts
|
|
459
|
+
import { mountStudio } from 'asciify-engine/studio';
|
|
460
|
+
|
|
461
|
+
const art = await mountStudio(canvas, '/your-photo.jpg', {
|
|
462
|
+
settings: {
|
|
463
|
+
style: 'blocks', cellSize: 4, colorMode: 'source',
|
|
464
|
+
backdrop: { mode: 'solid', color: '#0b0b0a' },
|
|
465
|
+
color: { saturation: 1.4, contrast: 1.15, brightness: .2, gamma: 1.3 },
|
|
466
|
+
effects: { halftone: .35, sharpen: .4 },
|
|
467
|
+
},
|
|
468
|
+
width: frame.clientWidth, height: frame.clientHeight, maxCells: 65536,
|
|
469
|
+
});
|
|
470
|
+
```
|
|
471
|
+
|
|
472
|
+
## ascii: Signature ASCII
|
|
473
|
+
Category: Characters
|
|
474
|
+
Use it for: the house look; a portrait, sculpture or product as a dark wallpaper, a hero artwork or a cover.
|
|
475
|
+
Settings: `studioLook('ascii')`: ASCII, 5px cells, paper-white `#e6e3da` on `#0b0b0a`, contrast 1.12.
|
|
476
|
+
|
|
477
|
+
Prompt:
|
|
478
|
+
“Turn [my photo] into Signature ASCII artwork with asciify-engine: paper-white characters on near black, fine 5px cells. Show it live on a canvas that fills [the hero], let the cursor leave a soft trail, and add a button that downloads a 3840×2160 PNG wallpaper.”
|
|
479
|
+
|
|
480
|
+
```ts
|
|
481
|
+
import { mountStudio, studioLook } from 'asciify-engine/studio';
|
|
482
|
+
|
|
483
|
+
const art = await mountStudio(canvas, '/your-photo.jpg', {
|
|
484
|
+
settings: { ...studioLook('ascii'), hover: { effect: 'trail', strength: .7, radius: .4 } },
|
|
485
|
+
width: frame.clientWidth, height: frame.clientHeight, maxCells: 65536,
|
|
486
|
+
});
|
|
487
|
+
// On unmount: art.destroy();
|
|
488
|
+
```
|
|
489
|
+
|
|
490
|
+
## night: Night signal
|
|
491
|
+
Category: Characters
|
|
492
|
+
Use it for: moodier, filmic portraits and night scenes; album art and dark posters.
|
|
493
|
+
Settings: `studioLook('night')`: ASCII, graphite ink `#a9a69d` on `#0b0b0a`, prism .18, scanlines .08, vignette .25.
|
|
494
|
+
|
|
495
|
+
Prompt:
|
|
496
|
+
“Make [my photo] a Night signal poster with asciify-engine: graphite characters on near black with a faint prism fringe, scanlines and a vignette. Export a 2160×2700 PNG for an album cover and keep the settings so I can reuse the look.”
|
|
497
|
+
|
|
498
|
+
```ts
|
|
499
|
+
import { mountStudio, studioLook } from 'asciify-engine/studio';
|
|
500
|
+
|
|
501
|
+
const art = await mountStudio(canvas, '/your-photo.jpg', {
|
|
502
|
+
settings: studioLook('night'),
|
|
503
|
+
width: frame.clientWidth, height: frame.clientHeight, maxCells: 65536,
|
|
504
|
+
});
|
|
505
|
+
// Optical finish needs WebGL: check art.capabilities.gpuFinish before saying it was applied.
|
|
506
|
+
```
|
|
507
|
+
|
|
508
|
+
## terminal: Phosphor
|
|
509
|
+
Category: Characters
|
|
510
|
+
Use it for: a CRT or terminal feel on a portrait or product; developer-tool heroes and dark wallpapers.
|
|
511
|
+
Settings: `studioLook('terminal')`: ASCII, sage `#a4c9b3` on `#0a0d0b`, bloom .16, scanlines .12, CRT .06.
|
|
512
|
+
|
|
513
|
+
Prompt:
|
|
514
|
+
“Render [my video] in the Phosphor look with asciify-engine: soft sage characters on a near-black green, a faint glow, scanlines and a slight CRT curve. Play it live in [the hero], muted and looping, and keep it still for reduced motion.”
|
|
515
|
+
|
|
516
|
+
```ts
|
|
517
|
+
import { mountStudio, studioLook } from 'asciify-engine/studio';
|
|
518
|
+
|
|
519
|
+
const art = await mountStudio(canvas, '/your-video.mp4', {
|
|
520
|
+
settings: studioLook('terminal'),
|
|
521
|
+
width: frame.clientWidth, height: frame.clientHeight, maxCells: 32768,
|
|
522
|
+
});
|
|
523
|
+
// mountStudio pauses off screen and under prefers-reduced-motion; on unmount: art.destroy();
|
|
524
|
+
```
|
|
525
|
+
|
|
526
|
+
## wallpaper: Wallpaper
|
|
527
|
+
Category: Characters
|
|
528
|
+
Use it for: a living desktop or phone wallpaper, a screensaver, or a full-bleed artwork that moves on its own.
|
|
529
|
+
Settings: `studioLook('wallpaper')`: ASCII, `#e6e3da` ink over the source blurred 18px at .4 opacity on `#0b0b0a`, caustics motion at speed .35.
|
|
530
|
+
|
|
531
|
+
Prompt:
|
|
532
|
+
“Make [my photo] into a living wallpaper with asciify-engine: ASCII characters over a softened, blurred copy of the photo, with slow caustic light moving through them. Export one seamless loop as a 1920×1080 MP4, plus a 3840×2160 PNG still and a 1290×2796 phone version.”
|
|
533
|
+
|
|
534
|
+
```ts
|
|
535
|
+
import { exportStudio, loadStudioMedia, studioLook } from 'asciify-engine/studio';
|
|
536
|
+
|
|
537
|
+
const settings = studioLook('wallpaper');
|
|
538
|
+
const media = await loadStudioMedia(file);
|
|
539
|
+
try {
|
|
540
|
+
const loop = await exportStudio({ frame: () => media.frame(0) }, settings, {
|
|
541
|
+
format: 'mp4', width: 1920, height: 1080, referenceWidth: 960, fps: 30,
|
|
542
|
+
duration: 12 / settings.motion.speed, maxCells: 131072, // one full caustics cycle loops cleanly
|
|
543
|
+
});
|
|
544
|
+
} finally { media.destroy(); }
|
|
545
|
+
```
|
|
546
|
+
|
|
547
|
+
## blueprint: Blueprint
|
|
548
|
+
Category: Characters
|
|
549
|
+
Use it for: architecture, machines and products drawn as technical linework; engineering and hardware heroes.
|
|
550
|
+
Settings: `studioLook('blueprint')`: lines style, 6px cells, pale blue `#b3c9d8` on navy `#0e1b28`.
|
|
551
|
+
|
|
552
|
+
Prompt:
|
|
553
|
+
“Turn [my product photo] into a Blueprint artwork with asciify-engine: fine line marks in pale blue on deep navy, like a technical drawing. Put it live behind [our hardware page's hero] with the copy kept clear, and export a 2400×1600 PNG.”
|
|
554
|
+
|
|
555
|
+
```ts
|
|
556
|
+
import { mountStudio, studioLook } from 'asciify-engine/studio';
|
|
557
|
+
|
|
558
|
+
const art = await mountStudio(canvas, '/your-photo.jpg', {
|
|
559
|
+
settings: studioLook('blueprint'),
|
|
560
|
+
width: frame.clientWidth, height: frame.clientHeight, maxCells: 65536,
|
|
561
|
+
});
|
|
562
|
+
```
|
|
563
|
+
|
|
564
|
+
## mixed: Type case
|
|
565
|
+
Category: Characters
|
|
566
|
+
Use it for: a playful, typographic take on a colorful subject; posters, merch and editorial openers.
|
|
567
|
+
Settings: mixed style, 5px cells, source color, contrast 1.2, brightness .15 on `#0b0b0a`.
|
|
568
|
+
|
|
569
|
+
Prompt:
|
|
570
|
+
“Set [my photo] in mixed type with asciify-engine: a blend of character shapes in the photo's own colors on black, like a type specimen. Export it as a 2160×2160 square for social and a 2480×3508 poster.”
|
|
571
|
+
|
|
572
|
+
```ts
|
|
573
|
+
import { mountStudio } from 'asciify-engine/studio';
|
|
574
|
+
|
|
575
|
+
const art = await mountStudio(canvas, '/your-photo.jpg', {
|
|
576
|
+
settings: {
|
|
577
|
+
style: 'mixed', cellSize: 5, colorMode: 'source',
|
|
578
|
+
backdrop: { mode: 'solid', color: '#0b0b0a' },
|
|
579
|
+
color: { contrast: 1.2, brightness: .15 },
|
|
580
|
+
},
|
|
581
|
+
width: frame.clientWidth, height: frame.clientHeight, maxCells: 65536,
|
|
582
|
+
});
|
|
583
|
+
```
|
|
584
|
+
|
|
585
|
+
## blocks: ANSI blocks
|
|
586
|
+
Category: Characters
|
|
587
|
+
Use it for: bold, colorful subjects as shaded block characters, like ANSI art from a BBS; retro, game and music artwork.
|
|
588
|
+
Settings: blocks style (` ░▒▓█`), 5px cells, source color at saturation 1.15, contrast 1.1 on `#0b0b0a`.
|
|
589
|
+
|
|
590
|
+
Prompt:
|
|
591
|
+
“Draw [my photo] in ANSI blocks with asciify-engine: shaded block characters in the photo's own colors on black, like a BBS splash screen. Export a 2160×2160 PNG and a 3840×2160 wallpaper.”
|
|
592
|
+
|
|
593
|
+
```ts
|
|
594
|
+
import { mountStudio } from 'asciify-engine/studio';
|
|
595
|
+
|
|
596
|
+
const art = await mountStudio(canvas, '/your-photo.jpg', {
|
|
597
|
+
settings: {
|
|
598
|
+
style: 'blocks', cellSize: 5, colorMode: 'source',
|
|
599
|
+
backdrop: { mode: 'solid', color: '#0b0b0a' },
|
|
600
|
+
color: { saturation: 1.15, contrast: 1.1 },
|
|
601
|
+
},
|
|
602
|
+
width: frame.clientWidth, height: frame.clientHeight, maxCells: 65536,
|
|
603
|
+
});
|
|
604
|
+
```
|
|
605
|
+
|
|
606
|
+
## braille: Braille
|
|
607
|
+
Category: Characters
|
|
608
|
+
Use it for: fine, graphic subjects on black (leaves, feathers, line-like forms) drawn in tiny braille dots; delicate dark wallpapers and editorial openers.
|
|
609
|
+
Settings: braille style (` ⠁⠃⠇⡇⣇⣧⣷⣿`), 3px cells, source color at saturation 1.3 on `#0b0b0a`, contrast 1.4, brightness .15, midtones 1.3.
|
|
610
|
+
|
|
611
|
+
Prompt:
|
|
612
|
+
“Draw [my photo] in braille dots with asciify-engine: fine braille characters in the photo's own colors on black, so the light shapes read as clusters of dots. Export a 3840×2160 PNG wallpaper.”
|
|
613
|
+
|
|
614
|
+
```ts
|
|
615
|
+
import { mountStudio } from 'asciify-engine/studio';
|
|
616
|
+
|
|
617
|
+
const art = await mountStudio(canvas, '/your-photo.jpg', {
|
|
618
|
+
settings: {
|
|
619
|
+
style: 'braille', cellSize: 3, colorMode: 'source',
|
|
620
|
+
backdrop: { mode: 'solid', color: '#0b0b0a' },
|
|
621
|
+
color: { contrast: 1.4, brightness: .15, saturation: 1.3, gamma: 1.3 },
|
|
622
|
+
},
|
|
623
|
+
width: frame.clientWidth, height: frame.clientHeight, maxCells: 65536,
|
|
624
|
+
});
|
|
625
|
+
```
|
|
626
|
+
|
|
627
|
+
## cross: Cross-stitch
|
|
628
|
+
Category: Characters
|
|
629
|
+
Use it for: birds, flowers and folk subjects as colored stitches on dark cloth; craft, seasonal and gift artwork.
|
|
630
|
+
Settings: cross style (` ·+xX#`), 4px cells, source color at saturation 1.5, brightness .2, contrast 1.2 on indigo cloth `#191d26`.
|
|
631
|
+
|
|
632
|
+
Prompt:
|
|
633
|
+
“Stitch [my photo] in cross-stitch with asciify-engine: small crosses in the photo's colors on dark indigo cloth, like an embroidered sampler. Export a 2160×2160 PNG for a card.”
|
|
634
|
+
|
|
635
|
+
```ts
|
|
636
|
+
import { mountStudio } from 'asciify-engine/studio';
|
|
637
|
+
|
|
638
|
+
const art = await mountStudio(canvas, '/your-photo.jpg', {
|
|
639
|
+
settings: {
|
|
640
|
+
style: 'cross', cellSize: 4, colorMode: 'source',
|
|
641
|
+
backdrop: { mode: 'solid', color: '#191d26' },
|
|
642
|
+
color: { saturation: 1.5, brightness: .2, contrast: 1.2 },
|
|
643
|
+
},
|
|
644
|
+
width: frame.clientWidth, height: frame.clientHeight, maxCells: 65536,
|
|
645
|
+
});
|
|
646
|
+
```
|
|
647
|
+
|
|
648
|
+
## diagonal: Storm
|
|
649
|
+
Category: Characters
|
|
650
|
+
Use it for: rain, wind and streaks of light drawn in slanted strokes; moody posters, weather stories and dark section artwork.
|
|
651
|
+
Settings: diagonal style (` /╱╳`), 4px cells, `#dfe7ea` on `#0c1013`, contrast 1.3, midtones 1.3.
|
|
652
|
+
|
|
653
|
+
Prompt:
|
|
654
|
+
“Draw [my photo] in slanted strokes with asciify-engine: diagonal line characters in cool grey on blue-black, like rain across the image. Export a 2160×2700 PNG.”
|
|
655
|
+
|
|
656
|
+
```ts
|
|
657
|
+
import { mountStudio } from 'asciify-engine/studio';
|
|
658
|
+
|
|
659
|
+
const art = await mountStudio(canvas, '/your-photo.jpg', {
|
|
660
|
+
settings: {
|
|
661
|
+
style: 'diagonal', cellSize: 4, ink: '#dfe7ea',
|
|
662
|
+
backdrop: { mode: 'solid', color: '#0c1013' },
|
|
663
|
+
color: { contrast: 1.3, gamma: 1.3 },
|
|
664
|
+
},
|
|
665
|
+
width: frame.clientWidth, height: frame.clientHeight, maxCells: 65536,
|
|
666
|
+
});
|
|
667
|
+
```
|
|
668
|
+
|
|
669
|
+
## diamond: Jewel box
|
|
670
|
+
Category: Characters
|
|
671
|
+
Use it for: iridescent, richly colored subjects (feathers, gems, beetles, fabric) set in diamond characters; fashion, beauty and jewelry artwork.
|
|
672
|
+
Settings: diamond style (` ·◇◈◆`), 7px cells, source color at saturation 1.5, brightness .35, midtones 1.5 on `#0b0b0a`, character glow .3.
|
|
673
|
+
|
|
674
|
+
Prompt:
|
|
675
|
+
“Set [my photo] in diamond characters with asciify-engine: diamonds in the photo's jewel colors on black with a soft sparkle, solid where it is bright and outlined where it is dim. Export a 2160×2700 PNG.”
|
|
676
|
+
|
|
677
|
+
```ts
|
|
678
|
+
import { mountStudio } from 'asciify-engine/studio';
|
|
679
|
+
|
|
680
|
+
const art = await mountStudio(canvas, '/your-photo.jpg', {
|
|
681
|
+
settings: {
|
|
682
|
+
style: 'diamond', cellSize: 7, colorMode: 'source',
|
|
683
|
+
backdrop: { mode: 'solid', color: '#0b0b0a' },
|
|
684
|
+
color: { saturation: 1.5, brightness: .35, gamma: 1.5 },
|
|
685
|
+
effects: { characterBloom: .3 },
|
|
686
|
+
},
|
|
687
|
+
width: frame.clientWidth, height: frame.clientHeight, maxCells: 65536,
|
|
688
|
+
});
|
|
689
|
+
```
|
|
690
|
+
|
|
691
|
+
## print: Newsprint
|
|
692
|
+
Category: Dither
|
|
693
|
+
Use it for: bright, high-key photos as an editorial print; zines, press pages, quiet light-theme heroes.
|
|
694
|
+
Settings: `studioLook('print')`: Floyd–Steinberg dither, scale 2, `#1d1c19` on warm paper `#efece4`.
|
|
695
|
+
|
|
696
|
+
Prompt:
|
|
697
|
+
“Print [my photo] as Newsprint with asciify-engine: fine Floyd–Steinberg diffusion in soft black on warm paper. Show it on [our press page] and export a 2480×3508 PNG poster at the same grain.”
|
|
698
|
+
|
|
699
|
+
```ts
|
|
700
|
+
import { mountStudio, studioLook } from 'asciify-engine/studio';
|
|
701
|
+
|
|
702
|
+
const art = await mountStudio(canvas, '/your-photo.jpg', {
|
|
703
|
+
settings: studioLook('print'),
|
|
704
|
+
width: frame.clientWidth, height: frame.clientHeight, maxCells: 131072, // dither cells are fine
|
|
705
|
+
});
|
|
706
|
+
```
|
|
707
|
+
|
|
708
|
+
## handheld: Pocket camera
|
|
709
|
+
Category: Dither
|
|
710
|
+
Use it for: a nostalgic, low-fi portrait or pet photo; game and music artwork.
|
|
711
|
+
Settings: `studioLook('handheld')`: Bayer 4×4 ordered dither, scale 2, four graphite tones `#121211 #3e3d39 #8a8880 #dedbd2`.
|
|
712
|
+
|
|
713
|
+
Prompt:
|
|
714
|
+
“Make [my photo] look like it came off a pocket camera with asciify-engine: a four-tone ordered dither in graphite. Export a 1080×1350 PNG for a post, and a 1290×2796 phone wallpaper.”
|
|
715
|
+
|
|
716
|
+
```ts
|
|
717
|
+
import { mountStudio, studioLook } from 'asciify-engine/studio';
|
|
718
|
+
|
|
719
|
+
const art = await mountStudio(canvas, '/your-photo.jpg', {
|
|
720
|
+
settings: studioLook('handheld'),
|
|
721
|
+
width: frame.clientWidth, height: frame.clientHeight, maxCells: 131072,
|
|
722
|
+
});
|
|
723
|
+
```
|
|
724
|
+
|
|
725
|
+
## riso: Two inks
|
|
726
|
+
Category: Dither
|
|
727
|
+
Use it for: posters, gig flyers and covers with a printed, two-color feel on warm paper.
|
|
728
|
+
Settings: `studioLook('riso')`: Atkinson dither, scale 2, paper `#f0ece3` with coral `#c27461` and blue `#3d5068`.
|
|
729
|
+
|
|
730
|
+
Prompt:
|
|
731
|
+
“Turn [my photo] into a two-ink riso-style print with asciify-engine: Atkinson dither in muted blue and coral on warm paper. Make a 2480×3508 poster PNG, and let me swap the two inks for [our brand colors] without changing the grain.”
|
|
732
|
+
|
|
733
|
+
```ts
|
|
734
|
+
import { mountStudio, studioLook } from 'asciify-engine/studio';
|
|
735
|
+
|
|
736
|
+
const art = await mountStudio(canvas, '/your-photo.jpg', {
|
|
737
|
+
settings: studioLook('riso'),
|
|
738
|
+
width: frame.clientWidth, height: frame.clientHeight, maxCells: 131072,
|
|
739
|
+
});
|
|
740
|
+
// Swap inks; colors replace the palette array in order (paper first):
|
|
741
|
+
art.update({ ink: '#1f3b73', dither: { colors: ['#f0ece3', '#e0674a', '#1f3b73'] } });
|
|
742
|
+
```
|
|
743
|
+
|
|
744
|
+
## dots: Halftone
|
|
745
|
+
Category: Print
|
|
746
|
+
Use it for: a bold, graphic portrait; band posters, covers and dark heroes that read from far away.
|
|
747
|
+
Settings: dots style, 5px cells, `#e6e3da` on `#0b0b0a`, contrast 1.3, brightness .15.
|
|
748
|
+
|
|
749
|
+
Prompt:
|
|
750
|
+
“Make [my photo] a halftone artwork with asciify-engine: round dots in paper white on near black whose size carries the image. Export a 2160×2700 PNG and a 3840×2160 wallpaper at the same dot size.”
|
|
751
|
+
|
|
752
|
+
```ts
|
|
753
|
+
import { mountStudio } from 'asciify-engine/studio';
|
|
754
|
+
|
|
755
|
+
const art = await mountStudio(canvas, '/your-photo.jpg', {
|
|
756
|
+
settings: {
|
|
757
|
+
style: 'dots', cellSize: 5, ink: '#e6e3da',
|
|
758
|
+
backdrop: { mode: 'solid', color: '#0b0b0a' },
|
|
759
|
+
color: { contrast: 1.3, brightness: .15 },
|
|
760
|
+
},
|
|
761
|
+
width: frame.clientWidth, height: frame.clientHeight, maxCells: 65536,
|
|
762
|
+
});
|
|
763
|
+
```
|
|
764
|
+
|
|
765
|
+
## cmyk: Four-color press
|
|
766
|
+
Category: Print
|
|
767
|
+
Use it for: bright, saturated product and still-life photos as a pop print; packaging, merch and posters.
|
|
768
|
+
Settings: CMYK style, 5px cells, source color; it always prints on white paper.
|
|
769
|
+
|
|
770
|
+
Prompt:
|
|
771
|
+
“Print [my product photo] as a four-color press halftone with asciify-engine: offset cyan, magenta, yellow and black dots on white paper, in the photo's colors. Export a 2480×3508 poster PNG.”
|
|
772
|
+
|
|
773
|
+
```ts
|
|
774
|
+
import { mountStudio } from 'asciify-engine/studio';
|
|
775
|
+
|
|
776
|
+
const art = await mountStudio(canvas, '/your-photo.jpg', {
|
|
777
|
+
settings: { style: 'cmyk', cellSize: 5, colorMode: 'source' },
|
|
778
|
+
width: frame.clientWidth, height: frame.clientHeight, maxCells: 65536,
|
|
779
|
+
});
|
|
780
|
+
```
|
|
781
|
+
|
|
782
|
+
## stipple: Stipple
|
|
783
|
+
Category: Print
|
|
784
|
+
Use it for: a quiet, drawn portrait in fine dots; book covers, editorial portraits, dark wallpapers.
|
|
785
|
+
Settings: stipple style, 4px cells, `#e6e3da` on `#0b0b0a`, contrast 1.35, brightness .2, midtones 1.3.
|
|
786
|
+
|
|
787
|
+
Prompt:
|
|
788
|
+
“Draw [my portrait] in stipple with asciify-engine: thousands of fine paper-white dots on near black, scattered so the light shapes the face. Export a 2480×3508 PNG for a book cover.”
|
|
789
|
+
|
|
790
|
+
```ts
|
|
791
|
+
import { mountStudio } from 'asciify-engine/studio';
|
|
792
|
+
|
|
793
|
+
const art = await mountStudio(canvas, '/your-photo.jpg', {
|
|
794
|
+
settings: {
|
|
795
|
+
style: 'stipple', cellSize: 4, ink: '#e6e3da',
|
|
796
|
+
backdrop: { mode: 'solid', color: '#0b0b0a' },
|
|
797
|
+
color: { contrast: 1.35, brightness: .2, gamma: 1.3 },
|
|
798
|
+
},
|
|
799
|
+
width: frame.clientWidth, height: frame.clientHeight, maxCells: 131072,
|
|
800
|
+
});
|
|
801
|
+
```
|
|
802
|
+
|
|
803
|
+
## engraving: Banknote
|
|
804
|
+
Category: Print
|
|
805
|
+
Use it for: architecture, portraits and objects as a steel engraving; certificates, invitations, premium light-theme heroes.
|
|
806
|
+
Settings: engraving style, 5px cells, dark ink `#22201c` on paper `#ece8de`, `print.invert: true`, angle −35, weight 1.1, contrast 1.25.
|
|
807
|
+
|
|
808
|
+
Prompt:
|
|
809
|
+
“Engrave [my photo] like a banknote with asciify-engine: parallel cuts in dark ink on warm paper whose weight follows the shadows. Export a 2480×3508 PNG, and keep the line angle adjustable.”
|
|
810
|
+
|
|
811
|
+
```ts
|
|
812
|
+
import { mountStudio } from 'asciify-engine/studio';
|
|
813
|
+
|
|
814
|
+
const art = await mountStudio(canvas, '/your-photo.jpg', {
|
|
815
|
+
settings: {
|
|
816
|
+
style: 'engraving', cellSize: 5, ink: '#22201c',
|
|
817
|
+
backdrop: { mode: 'solid', color: '#ece8de' },
|
|
818
|
+
print: { invert: true, angle: -35, weight: 1.1 },
|
|
819
|
+
color: { contrast: 1.25 },
|
|
820
|
+
},
|
|
821
|
+
width: frame.clientWidth, height: frame.clientHeight, maxCells: 131072,
|
|
822
|
+
});
|
|
823
|
+
art.update({ print: { angle: 20 } }); // keeps the other print settings
|
|
824
|
+
```
|
|
825
|
+
|
|
826
|
+
## crosshatch: Pen and ink
|
|
827
|
+
Category: Print
|
|
828
|
+
Use it for: sculpture, portraits and figures drawn in crossing pen lines; editorial illustration and posters.
|
|
829
|
+
Settings: crosshatch style, 5px cells, `#22201c` on `#ece8de`, `print.invert: true`.
|
|
830
|
+
|
|
831
|
+
Prompt:
|
|
832
|
+
“Draw [my photo] in pen and ink with asciify-engine: crossing hatch lines in dark ink on warm paper, building up in the shadows. Export a 2480×3508 PNG illustration.”
|
|
833
|
+
|
|
834
|
+
```ts
|
|
835
|
+
import { mountStudio } from 'asciify-engine/studio';
|
|
836
|
+
|
|
837
|
+
const art = await mountStudio(canvas, '/your-photo.jpg', {
|
|
838
|
+
settings: {
|
|
839
|
+
style: 'crosshatch', cellSize: 5, ink: '#22201c',
|
|
840
|
+
backdrop: { mode: 'solid', color: '#ece8de' },
|
|
841
|
+
print: { invert: true },
|
|
842
|
+
},
|
|
843
|
+
width: frame.clientWidth, height: frame.clientHeight, maxCells: 131072,
|
|
844
|
+
});
|
|
845
|
+
```
|
|
846
|
+
|
|
847
|
+
## pointillism: Pointillist
|
|
848
|
+
Category: Print
|
|
849
|
+
Use it for: still lifes, fruit, flowers and landscapes as a painted canvas; gallery-style wallpapers.
|
|
850
|
+
Settings: pointillism style, 3px cells, source color, brightness .25, saturation 1.3 on `#0b0b0a`.
|
|
851
|
+
|
|
852
|
+
Prompt:
|
|
853
|
+
“Paint [my photo] in pointillist strokes with asciify-engine: small dabs of the photo's own colors on black, like a Seurat up close. Export a 3840×2160 PNG wallpaper.”
|
|
854
|
+
|
|
855
|
+
```ts
|
|
856
|
+
import { mountStudio } from 'asciify-engine/studio';
|
|
857
|
+
|
|
858
|
+
const art = await mountStudio(canvas, '/your-photo.jpg', {
|
|
859
|
+
settings: {
|
|
860
|
+
style: 'pointillism', cellSize: 3, colorMode: 'source', print: { weight: 1.6, density: 1.3 },
|
|
861
|
+
backdrop: { mode: 'solid', color: '#0b0b0a' },
|
|
862
|
+
color: { brightness: .25, saturation: 1.3 },
|
|
863
|
+
},
|
|
864
|
+
width: frame.clientWidth, height: frame.clientHeight, maxCells: 131072,
|
|
865
|
+
});
|
|
866
|
+
```
|
|
867
|
+
|
|
868
|
+
## woodblock: Woodcut
|
|
869
|
+
Category: Print
|
|
870
|
+
Use it for: landscapes and silhouettes with big tonal masses as a carved woodblock print on paper; book covers, labels and outdoor brand artwork.
|
|
871
|
+
Settings: woodblock style, 8px cells, `#1d1a16` on `#ebe3d2`, `print.invert: true`, level bands (angle 0), roughness .3, weight .9, contrast 1.2, white point .7 so the sky stays bare paper, midtones 1.6 and shadows .3 so each ridge keeps its own band.
|
|
872
|
+
|
|
873
|
+
Prompt:
|
|
874
|
+
“Carve [my landscape photo] as a woodcut with asciify-engine: broad, rough-edged bands in dark ink on warm paper, stepping through a few tones. Export a 2480×3508 PNG print.”
|
|
875
|
+
|
|
876
|
+
```ts
|
|
877
|
+
import { mountStudio } from 'asciify-engine/studio';
|
|
878
|
+
|
|
879
|
+
const art = await mountStudio(canvas, '/your-photo.jpg', {
|
|
880
|
+
settings: {
|
|
881
|
+
style: 'woodblock', cellSize: 8, ink: '#1d1a16',
|
|
882
|
+
backdrop: { mode: 'solid', color: '#ebe3d2' },
|
|
883
|
+
print: { invert: true, angle: 0, roughness: .3, weight: .9 },
|
|
884
|
+
color: { contrast: 1.2, whitePoint: .7, gamma: 1.6, shadows: .3 },
|
|
885
|
+
},
|
|
886
|
+
width: frame.clientWidth, height: frame.clientHeight, maxCells: 131072,
|
|
887
|
+
});
|
|
888
|
+
```
|
|
889
|
+
|
|
890
|
+
## risograph: Riso duotone
|
|
891
|
+
Category: Print
|
|
892
|
+
Use it for: bright, saturated photos (pools, sport, summer) as a two-screen riso print with offset registration; zines, gig posters and summer campaigns.
|
|
893
|
+
Settings: risograph style, 5px cells, source color for the first screen, a coral `#f2594b` second screen overprinted on warm areas, on `#f4ebd0`, density 1.2, registration .35.
|
|
894
|
+
|
|
895
|
+
Prompt:
|
|
896
|
+
“Print [my photo] as a riso duotone with asciify-engine: a dot screen in the photo's own colors with a coral second screen overprinted slightly out of register on the warm areas, on cream paper. Export a 2480×3508 PNG poster.”
|
|
897
|
+
|
|
898
|
+
```ts
|
|
899
|
+
import { mountStudio } from 'asciify-engine/studio';
|
|
900
|
+
|
|
901
|
+
const art = await mountStudio(canvas, '/your-photo.jpg', {
|
|
902
|
+
settings: {
|
|
903
|
+
style: 'risograph', cellSize: 5, colorMode: 'source', ink: '#2853a5',
|
|
904
|
+
backdrop: { mode: 'solid', color: '#f4ebd0' },
|
|
905
|
+
print: { secondaryInk: '#f2594b', registration: .35, density: 1.2 },
|
|
906
|
+
},
|
|
907
|
+
width: frame.clientWidth, height: frame.clientHeight, maxCells: 131072,
|
|
908
|
+
});
|
|
909
|
+
// With colorMode 'accent' both screens use ink and secondaryInk; print.invert puts the ink in the shadows.
|
|
910
|
+
art.update({ print: { registration: .1 } }); // tighter registration
|
|
911
|
+
```
|
|
912
|
+
|
|
913
|
+
## mosaic: Mosaic study
|
|
914
|
+
Category: Tiles
|
|
915
|
+
Use it for: colorful subjects as separated tiles; gallery walls, covers and calm wallpapers.
|
|
916
|
+
Settings: `studioLook('mosaic')`: mosaic style, 9px cells, source color at saturation .55, contrast 1.05 on `#0b0b0a`.
|
|
917
|
+
|
|
918
|
+
Prompt:
|
|
919
|
+
“Lay [my photo] out as a mosaic with asciify-engine: separated square tiles in the photo's own colors, softened, on near black. Export a 2160×2160 square and a 3840×2160 wallpaper.”
|
|
920
|
+
|
|
921
|
+
```ts
|
|
922
|
+
import { mountStudio, studioLook } from 'asciify-engine/studio';
|
|
923
|
+
|
|
924
|
+
const art = await mountStudio(canvas, '/your-photo.jpg', {
|
|
925
|
+
settings: studioLook('mosaic'),
|
|
926
|
+
width: frame.clientWidth, height: frame.clientHeight, maxCells: 32768,
|
|
927
|
+
});
|
|
928
|
+
```
|
|
929
|
+
|
|
930
|
+
## bricks: Brickwork
|
|
931
|
+
Category: Tiles
|
|
932
|
+
Use it for: a toy-brick build of a photo; playful posters, kids' and game artwork.
|
|
933
|
+
Settings: `studioLook('bricks')`: lego style, 12px studded cells, source color at saturation .55 on `#0b0b0a`.
|
|
934
|
+
|
|
935
|
+
Prompt:
|
|
936
|
+
“Build [my photo] out of toy bricks with asciify-engine: studded square bricks in softened source colors on black. Export a 2160×2160 PNG and show the live version on [our page] with the cursor rippling through it.”
|
|
937
|
+
|
|
938
|
+
```ts
|
|
939
|
+
import { mountStudio, studioLook } from 'asciify-engine/studio';
|
|
940
|
+
|
|
941
|
+
const art = await mountStudio(canvas, '/your-photo.jpg', {
|
|
942
|
+
settings: { ...studioLook('bricks'), hover: { effect: 'water', radius: .35 } },
|
|
943
|
+
width: frame.clientWidth, height: frame.clientHeight, maxCells: 32768,
|
|
944
|
+
});
|
|
945
|
+
```
|
|
946
|
+
|
|
947
|
+
## voxel: Little volumes
|
|
948
|
+
Category: Tiles
|
|
949
|
+
Use it for: a photo as small isometric blocks; game, 3D and product artwork with depth.
|
|
950
|
+
Settings: `studioLook('voxel')`: voxel style, 12px cells, source color at saturation .5 on `#0b0b0a`.
|
|
951
|
+
|
|
952
|
+
Prompt:
|
|
953
|
+
“Rebuild [my photo] as little isometric volumes with asciify-engine: three-face voxel tiles in muted source colors on black. Export a 3840×2160 PNG wallpaper.”
|
|
954
|
+
|
|
955
|
+
```ts
|
|
956
|
+
import { mountStudio, studioLook } from 'asciify-engine/studio';
|
|
957
|
+
|
|
958
|
+
const art = await mountStudio(canvas, '/your-photo.jpg', {
|
|
959
|
+
settings: studioLook('voxel'),
|
|
960
|
+
width: frame.clientWidth, height: frame.clientHeight, maxCells: 32768,
|
|
961
|
+
});
|
|
962
|
+
```
|
|
963
|
+
|
|
964
|
+
## disco: Mirror room
|
|
965
|
+
Category: Tiles
|
|
966
|
+
Use it for: night scenes, music and event artwork as faceted mirror tiles under one light.
|
|
967
|
+
Settings: `studioLook('disco')`: disco style, 11px cells, source color at saturation .5, one soft light at (.35, .25).
|
|
968
|
+
|
|
969
|
+
Prompt:
|
|
970
|
+
“Turn [my photo] into a mirror-ball artwork with asciify-engine: faceted tiles in muted source colors under one soft light. Export a 2160×2700 PNG for an event poster, and move the light to [the top right].”
|
|
971
|
+
|
|
972
|
+
```ts
|
|
973
|
+
import { mountStudio, studioLook } from 'asciify-engine/studio';
|
|
974
|
+
|
|
975
|
+
const art = await mountStudio(canvas, '/your-photo.jpg', {
|
|
976
|
+
settings: studioLook('disco'),
|
|
977
|
+
width: frame.clientWidth, height: frame.clientHeight, maxCells: 32768,
|
|
978
|
+
});
|
|
979
|
+
art.update({ lights: [{ x: .75, y: .2, radius: .28, intensity: .28, color: '#f4efe4' }] }); // arrays replace
|
|
980
|
+
```
|
|
981
|
+
|
|
982
|
+
## pixel: Pixel
|
|
983
|
+
Category: Tiles
|
|
984
|
+
Use it for: an eight-bit take on a colorful photo; game, music and avatar artwork.
|
|
985
|
+
Settings: pixel style, 6px cells, source color at saturation .85 on `#0b0b0a`.
|
|
986
|
+
|
|
987
|
+
Prompt:
|
|
988
|
+
“Pixelate [my photo] into clean eight-bit art with asciify-engine: square pixels in the photo's colors at 6px. Export a 1080×1080 avatar and a 3840×2160 wallpaper with crisp, unsmoothed pixels.”
|
|
989
|
+
|
|
990
|
+
```ts
|
|
991
|
+
import { mountStudio } from 'asciify-engine/studio';
|
|
992
|
+
|
|
993
|
+
const art = await mountStudio(canvas, '/your-photo.jpg', {
|
|
994
|
+
settings: {
|
|
995
|
+
style: 'pixel', cellSize: 6, colorMode: 'source',
|
|
996
|
+
backdrop: { mode: 'solid', color: '#0b0b0a' },
|
|
997
|
+
color: { saturation: .85 },
|
|
998
|
+
},
|
|
999
|
+
width: frame.clientWidth, height: frame.clientHeight, maxCells: 65536,
|
|
1000
|
+
});
|
|
1001
|
+
```
|
|
1002
|
+
|
|
1003
|
+
## hex: Honeycomb
|
|
1004
|
+
Category: Tiles
|
|
1005
|
+
Use it for: landscapes, water and skies as hexagonal tiles; calm wallpapers and section artwork.
|
|
1006
|
+
Settings: hex style, 7px cells, source color at saturation .6 on `#0b0b0a`.
|
|
1007
|
+
|
|
1008
|
+
Prompt:
|
|
1009
|
+
“Tile [my landscape photo] as a honeycomb with asciify-engine: hexagonal cells in the photo's softened colors on black. Export a 3840×2160 desktop wallpaper and a 1290×2796 phone version.”
|
|
1010
|
+
|
|
1011
|
+
```ts
|
|
1012
|
+
import { mountStudio } from 'asciify-engine/studio';
|
|
1013
|
+
|
|
1014
|
+
const art = await mountStudio(canvas, '/your-photo.jpg', {
|
|
1015
|
+
settings: {
|
|
1016
|
+
style: 'hex', cellSize: 7, colorMode: 'source',
|
|
1017
|
+
backdrop: { mode: 'solid', color: '#0b0b0a' },
|
|
1018
|
+
color: { saturation: .6 },
|
|
1019
|
+
},
|
|
1020
|
+
width: frame.clientWidth, height: frame.clientHeight, maxCells: 65536,
|
|
1021
|
+
});
|
|
1022
|
+
```
|
|
1023
|
+
|
|
1024
|
+
## led: Scoreboard
|
|
1025
|
+
Category: Tiles
|
|
1026
|
+
Use it for: cities, stages and night photos as a wall of round emitters; event, sport and music artwork.
|
|
1027
|
+
Settings: LED style, 5px cells, source color at saturation 1.2, contrast 1.1, brightness .2 on `#0b0b0a`.
|
|
1028
|
+
|
|
1029
|
+
Prompt:
|
|
1030
|
+
“Show [my photo] on an LED wall with asciify-engine: round emitters in the photo's colors on black, like a stadium scoreboard. Play [my video] through it live in [the hero], and export a 1920×1080 MP4.”
|
|
1031
|
+
|
|
1032
|
+
```ts
|
|
1033
|
+
import { mountStudio } from 'asciify-engine/studio';
|
|
1034
|
+
|
|
1035
|
+
const art = await mountStudio(canvas, '/your-video.mp4', {
|
|
1036
|
+
settings: {
|
|
1037
|
+
style: 'led', cellSize: 5, colorMode: 'source',
|
|
1038
|
+
backdrop: { mode: 'solid', color: '#0b0b0a' },
|
|
1039
|
+
color: { saturation: 1.2, contrast: 1.1, brightness: .2 },
|
|
1040
|
+
},
|
|
1041
|
+
width: frame.clientWidth, height: frame.clientHeight, maxCells: 32768,
|
|
1042
|
+
});
|
|
1043
|
+
```
|