asciify-engine 4.19.0 → 4.21.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.
Files changed (39) hide show
  1. package/README.md +14 -0
  2. package/dist/{animation-presets-ZujFF3i8.d.ts → animation-presets-Bqupq1Gx.d.ts} +1 -1
  3. package/dist/{animation-presets-DhswE0D_.d.cts → animation-presets-DztfFvTc.d.cts} +1 -1
  4. package/dist/core.d.cts +4 -4
  5. package/dist/core.d.ts +4 -4
  6. package/dist/field.cjs +1 -1
  7. package/dist/field.d.cts +3 -1
  8. package/dist/field.d.ts +3 -1
  9. package/dist/field.js +1 -1
  10. package/dist/{hover-catalog-D85jh6dR.d.cts → hover-guide-DKRQPtDO.d.cts} +46 -8
  11. package/dist/{hover-catalog-D85jh6dR.d.ts → hover-guide-DKRQPtDO.d.ts} +46 -8
  12. package/dist/hover.cjs +1 -1
  13. package/dist/hover.d.cts +13 -6
  14. package/dist/hover.d.ts +13 -6
  15. package/dist/hover.js +1 -1
  16. package/dist/index.d.cts +3 -3
  17. package/dist/index.d.ts +3 -3
  18. package/dist/kit.cjs +1 -1
  19. package/dist/kit.d.cts +10 -7
  20. package/dist/kit.d.ts +10 -7
  21. package/dist/kit.js +1 -1
  22. package/dist/{model-DXHhQhxP.d.ts → model-BNShxUhx.d.cts} +11 -2
  23. package/dist/{model-9SbRVqqI.d.cts → model-D2L86aNZ.d.ts} +11 -2
  24. package/dist/studio.cjs +1 -1
  25. package/dist/studio.d.cts +4 -4
  26. package/dist/studio.d.ts +4 -4
  27. package/dist/studio.js +1 -1
  28. package/dist/{types-CM4452nD.d.ts → types-Bmu4dXdQ.d.ts} +1 -1
  29. package/dist/{types-FkqhgDYx.d.cts → types-Cn3wY-ST.d.cts} +1 -1
  30. package/package.json +1 -1
  31. package/skills/asciify-engine/SKILL.md +7 -7
  32. package/skills/asciify-engine/references/applying-asciify.md +2 -2
  33. package/skills/asciify-engine/references/components.md +2 -2
  34. package/skills/asciify-engine/references/design-matching.md +2 -1
  35. package/skills/asciify-engine/references/glyph-field.md +1 -1
  36. package/skills/asciify-engine/references/hero-finish.md +3 -0
  37. package/skills/asciify-engine/references/kit.md +3 -4
  38. package/skills/asciify-engine/references/looks.md +403 -71
  39. package/skills/asciify-engine/references/studio-effects.md +54 -20
@@ -4,7 +4,7 @@ Finished artwork looks for a person's own photo, video or GIF: wallpapers, poste
4
4
 
5
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
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.
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), and Projects looks built for a job, which also fix the frame's `aspectRatio` (a square cover, a 3:4 poster, a 16:9 hero, a 9:16 lock screen) and name the export size. 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
8
 
9
9
  ## Reproduce a look
10
10
 
@@ -61,19 +61,351 @@ Common sizes: desktop 3840×2160 (`referenceWidth: 960`), phone 1290×2796 (`430
61
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
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
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 person names a job (album cover, magazine portrait, product hero, poster, postcard, lookbook, game box art, sticker, lock screen): use its Projects entry; it sets the frame and the export size.
64
65
  - 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
66
  - The person wants the photo itself to stay present: Frosted glass and Bokeh draw over its blur, Overprint over the sharp original.
66
67
  - 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
68
  - Keep artwork with motion off for video sources unless asked; the footage already moves.
68
69
  - Say in one line which look you chose and offer one alternative from this file.
69
70
 
71
+ ## album: Album cover
72
+ Category: Projects
73
+ Use it for: a performer or portrait lit by colored light, as a square record or single cover; streaming artwork and gig visuals.
74
+ Settings: dots, 5px cells, square 1:1, source color at saturation 1.35 on `#060608`, character glow .35, vignette .3, grain .12. Export 3000×3000.
75
+
76
+ Prompt:
77
+ “Make [my photo] into a square album cover with asciify-engine: halftone dots in the photo's own colored light on black, a soft glow, a vignette and fine grain. Export a 3000×3000 PNG for the streaming stores.”
78
+
79
+ ```ts
80
+ import { mountStudio } from 'asciify-engine/studio';
81
+
82
+ const art = await mountStudio(canvas, '/your-photo.jpg', {
83
+ settings: {
84
+ aspectRatio: '1:1', style: 'dots', cellSize: 5, colorMode: 'source',
85
+ backdrop: { mode: 'solid', color: '#060608' },
86
+ color: { saturation: 1.35, brightness: .1, contrast: 1.1 },
87
+ effects: { characterBloom: .35, vignette: .3, grain: .12 },
88
+ },
89
+ width: frame.clientWidth, height: frame.clientHeight, maxCells: 65536,
90
+ });
91
+ // Export with the same settings ("Export a wallpaper, poster or loop" above): { format: 'png', width: 3000, height: 3000, referenceWidth: 720, maxCells: 262144 }
92
+ // A fixed aspectRatio letterboxes the artwork inside the canvas; size the frame to match.
93
+ ```
94
+
95
+ ## editorial: Editorial
96
+ Category: Projects
97
+ Use it for: a magazine-style portrait engraved in fine ink on warm paper, in a 3:4 cover frame; features, interviews, about pages and print.
98
+ Settings: engraving, 4px cells, 3:4, `#1b1a18` on `#f2eee6`, `print.invert: true`, angle −40, weight 1.15, contrast 1.4, midtones .85. Export 2400×3200.
99
+
100
+ Prompt:
101
+ “Engrave [my portrait] as an editorial cover with asciify-engine: fine parallel cuts in near-black ink on warm paper, in a 3:4 frame with room above the head for a masthead. Export a 2400×3200 PNG.”
102
+
103
+ ```ts
104
+ import { mountStudio } from 'asciify-engine/studio';
105
+
106
+ const art = await mountStudio(canvas, '/your-photo.jpg', {
107
+ settings: {
108
+ aspectRatio: '3:4', style: 'engraving', cellSize: 4, ink: '#1b1a18',
109
+ backdrop: { mode: 'solid', color: '#f2eee6' },
110
+ print: { invert: true, angle: -40, weight: 1.15 },
111
+ color: { contrast: 1.4, gamma: .85 },
112
+ },
113
+ width: frame.clientWidth, height: frame.clientHeight, maxCells: 131072,
114
+ });
115
+ // Export with the same settings ("Export a wallpaper, poster or loop" above): { format: 'png', width: 2400, height: 3200, referenceWidth: 600, maxCells: 262144 }
116
+ // A fixed aspectRatio letterboxes the artwork inside the canvas; size the frame to match.
117
+ ```
118
+
119
+ ## product: Studio product
120
+ Category: Projects
121
+ Use it for: a product on a plain backdrop, painted in small strokes of its own colors over a soft studio gradient; product heroes, launch pages and packaging shots.
122
+ Settings: pointillism, 3px cells, source color at saturation 1.35, `print.invert: true` so the product carries the strokes, density 1.3, over a gradient from `#f4f1ec` to `#dcd5ca`. Export 3200×2400.
123
+
124
+ Prompt:
125
+ “Redraw [my product photo] for a product hero with asciify-engine: small pigment strokes in the product's own colors, gathered where it is darkest and richest, over a soft warm-grey studio gradient. Export a 3200×2400 PNG and keep it live on [the product page].”
126
+
127
+ ```ts
128
+ import { mountStudio } from 'asciify-engine/studio';
129
+
130
+ const art = await mountStudio(canvas, '/your-photo.jpg', {
131
+ settings: {
132
+ style: 'pointillism', cellSize: 3, colorMode: 'source',
133
+ backdrop: { mode: 'gradient', color: '#f4f1ec', color2: '#dcd5ca' },
134
+ print: { invert: true, density: 1.3, weight: 1.2 },
135
+ color: { saturation: 1.35, contrast: 1.25 },
136
+ },
137
+ width: frame.clientWidth, height: frame.clientHeight, maxCells: 65536,
138
+ });
139
+ // Export with the same settings ("Export a wallpaper, poster or loop" above): { format: 'png', width: 3200, height: 2400, referenceWidth: 960, maxCells: 262144 }
140
+ ```
141
+
142
+ ## concrete: Concrete poster
143
+ Category: Projects
144
+ Use it for: architecture with a strong repeating structure, cut as cream engraving into a terracotta poster; exhibition, property and city posters.
145
+ Settings: engraving, 4px cells, 3:4, cream `#f3e9d8` on terracotta `#a8432a`, angle 0, weight 1.2, contrast 1.6, midtones .8. Export 2400×3200.
146
+
147
+ Prompt:
148
+ “Make [my architecture photo] a poster with asciify-engine: level cream engraving cuts on a terracotta ground, in a 3:4 frame. Export a 2400×3200 PNG and let me swap the ground for [our color].”
149
+
150
+ ```ts
151
+ import { mountStudio } from 'asciify-engine/studio';
152
+
153
+ const art = await mountStudio(canvas, '/your-photo.jpg', {
154
+ settings: {
155
+ aspectRatio: '3:4', style: 'engraving', cellSize: 4, ink: '#f3e9d8',
156
+ backdrop: { mode: 'solid', color: '#a8432a' },
157
+ print: { angle: 0, weight: 1.2 },
158
+ color: { contrast: 1.6, gamma: .8 },
159
+ },
160
+ width: frame.clientWidth, height: frame.clientHeight, maxCells: 131072,
161
+ });
162
+ // Export with the same settings ("Export a wallpaper, poster or loop" above): { format: 'png', width: 2400, height: 3200, referenceWidth: 600, maxCells: 262144 }
163
+ // A fixed aspectRatio letterboxes the artwork inside the canvas; size the frame to match.
164
+ ```
165
+
166
+ ## postcard: Postcard
167
+ Category: Projects
168
+ Use it for: sunny travel photos as a vintage travel poster in five flat inks; postcards, travel guides, tourism and summer campaigns.
169
+ Settings: dither, Atkinson at scale 3, five-ink palette navy `#16324f`, teal `#2f7f86`, mustard `#e9b44c`, coral `#e76f51`, cream `#f4ead5`. Export 2400×1800.
170
+
171
+ Prompt:
172
+ “Print [my travel photo] as a vintage travel postcard with asciify-engine: Atkinson dither in five flat inks (navy, teal, mustard, coral and cream). Export a 2400×1800 PNG.”
173
+
174
+ ```ts
175
+ import { mountStudio } from 'asciify-engine/studio';
176
+
177
+ const art = await mountStudio(canvas, '/your-photo.jpg', {
178
+ settings: {
179
+ style: 'dither', cellSize: 6, ink: '#16324f',
180
+ backdrop: { mode: 'solid', color: '#f4ead5' },
181
+ color: { saturation: 1.2, contrast: 1.1 },
182
+ dither: { algorithm: 'atkinson', palette: 'custom', colors: ['#16324f', '#2f7f86', '#e9b44c', '#e76f51', '#f4ead5'], scale: 3 },
183
+ },
184
+ width: frame.clientWidth, height: frame.clientHeight, maxCells: 131072,
185
+ });
186
+ // Export with the same settings ("Export a wallpaper, poster or loop" above): { format: 'png', width: 2400, height: 1800, referenceWidth: 960, maxCells: 262144 }
187
+ ```
188
+
189
+ ## botanical: Botanical plate
190
+ Category: Projects
191
+ Use it for: a single flower, leaf or specimen on a plain ground as a hand-colored botanical plate; prints, packaging, wellness and garden brands.
192
+ Settings: crosshatch, 4px cells, 3:4, source color at saturation 1.3 on paper `#f3efe4`, `print.invert: true`. Export 2480×3307.
193
+
194
+ Prompt:
195
+ “Draw [my flower photo] as a botanical plate with asciify-engine: crossing pen lines in the flower's own colors on warm paper, in a 3:4 frame. Export a 2480×3307 PNG to print.”
196
+
197
+ ```ts
198
+ import { mountStudio } from 'asciify-engine/studio';
199
+
200
+ const art = await mountStudio(canvas, '/your-photo.jpg', {
201
+ settings: {
202
+ aspectRatio: '3:4', style: 'crosshatch', cellSize: 4, colorMode: 'source',
203
+ backdrop: { mode: 'solid', color: '#f3efe4' },
204
+ print: { invert: true },
205
+ color: { saturation: 1.3, contrast: 1.15 },
206
+ },
207
+ width: frame.clientWidth, height: frame.clientHeight, maxCells: 131072,
208
+ });
209
+ // Export with the same settings ("Export a wallpaper, poster or loop" above): { format: 'png', width: 2480, height: 3307, referenceWidth: 620, maxCells: 262144 }
210
+ // A fixed aspectRatio letterboxes the artwork inside the canvas; size the frame to match.
211
+ ```
212
+
213
+ ## stadium: Stadium
214
+ Category: Projects
215
+ Use it for: athletes and action against a pale, open sky as a bold two-ink halftone poster; sports, events, fitness and match-day graphics.
216
+ Settings: dither, halftone at scale 3, 3:4, red `#d7322a` and black `#151413` on cream `#f2ebdd`, contrast 1.35, white point .85 so the pale sky stays paper, midtones .85. Export 2400×3200.
217
+
218
+ Prompt:
219
+ “Make [my sports photo] a match-day poster with asciify-engine: a bold halftone in red and black on cream, in a 3:4 frame. Export a 2400×3200 PNG.”
220
+
221
+ ```ts
222
+ import { mountStudio } from 'asciify-engine/studio';
223
+
224
+ const art = await mountStudio(canvas, '/your-photo.jpg', {
225
+ settings: {
226
+ aspectRatio: '3:4', style: 'dither', cellSize: 6, ink: '#151413',
227
+ backdrop: { mode: 'solid', color: '#f2ebdd' },
228
+ color: { contrast: 1.35, whitePoint: .85, gamma: .85 },
229
+ dither: { algorithm: 'halftone', palette: 'custom', colors: ['#f2ebdd', '#d7322a', '#151413'], scale: 3 },
230
+ },
231
+ width: frame.clientWidth, height: frame.clientHeight, maxCells: 131072,
232
+ });
233
+ // Export with the same settings ("Export a wallpaper, poster or loop" above): { format: 'png', width: 2400, height: 3200, referenceWidth: 600, maxCells: 262144 }
234
+ // A fixed aspectRatio letterboxes the artwork inside the canvas; size the frame to match.
235
+ ```
236
+
237
+ ## lookbook: Lookbook
238
+ Category: Projects
239
+ Use it for: full-length fashion and product shots on a pale studio ground, stippled in the garment colors; lookbooks, shop pages and campaign posters.
240
+ Settings: stipple, 3px cells, 3:4, source color at saturation 1.5, `print.invert: true`, density 1.4, weight 1.3, on off-white `#efebe4`; the pale set stays bare paper and the garment carries the dots. Export 2400×3200.
241
+
242
+ Prompt:
243
+ “Set [my fashion photo] as a lookbook page with asciify-engine: fine stipple in the garment's own colors on an off-white ground, the pale set left as bare paper, in a 3:4 frame. Export a 2400×3200 PNG.”
244
+
245
+ ```ts
246
+ import { mountStudio } from 'asciify-engine/studio';
247
+
248
+ const art = await mountStudio(canvas, '/your-photo.jpg', {
249
+ settings: {
250
+ aspectRatio: '3:4', style: 'stipple', cellSize: 3, colorMode: 'source',
251
+ backdrop: { mode: 'solid', color: '#efebe4' },
252
+ print: { invert: true, density: 1.4, weight: 1.3 },
253
+ color: { saturation: 1.5, contrast: 1.3 },
254
+ },
255
+ width: frame.clientWidth, height: frame.clientHeight, maxCells: 65536,
256
+ });
257
+ // Export with the same settings ("Export a wallpaper, poster or loop" above): { format: 'png', width: 2400, height: 3200, referenceWidth: 600, maxCells: 262144 }
258
+ // A fixed aspectRatio letterboxes the artwork inside the canvas; size the frame to match.
259
+ ```
260
+
261
+ ## nightcity: Night city
262
+ Category: Projects
263
+ Use it for: neon streets, rain and city lights as a glowing 16:9 cyberpunk frame; game, music, tech and event heroes.
264
+ Settings: dots, 4px cells, 16:9, source color at saturation 1.5, brightness .25, character glow .45, RGB split .15, scanlines .12, vignette .3. Export 3840×2160.
265
+
266
+ Prompt:
267
+ “Make [my night street photo] a cyberpunk frame with asciify-engine: halftone dots in the neon's own colors with a strong glow, a slight RGB split, faint scanlines and a vignette, in 16:9. Show it live in [the hero] and export a 3840×2160 PNG.”
268
+
269
+ ```ts
270
+ import { mountStudio } from 'asciify-engine/studio';
271
+
272
+ const art = await mountStudio(canvas, '/your-photo.jpg', {
273
+ settings: {
274
+ aspectRatio: '16:9', style: 'dots', cellSize: 4, colorMode: 'source',
275
+ backdrop: { mode: 'solid', color: '#05050a' },
276
+ color: { saturation: 1.5, brightness: .25, gamma: 1.3 },
277
+ effects: { characterBloom: .45, rgbSplit: .15, scanlines: .12, vignette: .3 },
278
+ },
279
+ width: frame.clientWidth, height: frame.clientHeight, maxCells: 65536,
280
+ });
281
+ // Export with the same settings ("Export a wallpaper, poster or loop" above): { format: 'png', width: 3840, height: 2160, referenceWidth: 960, maxCells: 262144 }
282
+ // A fixed aspectRatio letterboxes the artwork inside the canvas; size the frame to match.
283
+ ```
284
+
285
+ ## sumi: Sumi ink
286
+ Category: Projects
287
+ Use it for: quiet, misty subjects with lots of empty space as an ink-wash study; tea, wellness, calm brands and minimal print.
288
+ Settings: stipple, 4px cells, sumi `#161513` on washi `#efe8da`, `print.invert: true`, density 1.3, weight 1.3, contrast 1.6. Export 3000×2250.
289
+
290
+ Prompt:
291
+ “Paint [my photo] as a sumi ink study with asciify-engine: fine ink dots on warm washi paper that gather only in the darks, leaving the mist as bare paper. Export a 3000×2250 PNG.”
292
+
293
+ ```ts
294
+ import { mountStudio } from 'asciify-engine/studio';
295
+
296
+ const art = await mountStudio(canvas, '/your-photo.jpg', {
297
+ settings: {
298
+ style: 'stipple', cellSize: 4, ink: '#161513',
299
+ backdrop: { mode: 'solid', color: '#efe8da' },
300
+ print: { invert: true, density: 1.3, weight: 1.3 },
301
+ color: { contrast: 1.6 },
302
+ },
303
+ width: frame.clientWidth, height: frame.clientHeight, maxCells: 131072,
304
+ });
305
+ // Export with the same settings ("Export a wallpaper, poster or loop" above): { format: 'png', width: 3000, height: 2250, referenceWidth: 960, maxCells: 262144 }
306
+ ```
307
+
308
+ ## wirephoto: Wire photo
309
+ Category: Projects
310
+ Use it for: news-like and historic moments as a grainy wire-service halftone on newsprint; anniversaries, timelines, editorial and documentary pages.
311
+ Settings: dither, halftone at scale 2, `#1c1b18` on newsprint `#e9e3d6`, contrast 1.25, white point .72 so the sky and smoke print as clean paper, shadows lifted .35, grain .3, vignette .2. Export 2400×1800.
312
+
313
+ Prompt:
314
+ “Print [my photo] like a wire photo in an old newspaper with asciify-engine: a coarse black halftone on yellowed newsprint with grain and a soft vignette. Export a 2400×1800 PNG.”
315
+
316
+ ```ts
317
+ import { mountStudio } from 'asciify-engine/studio';
318
+
319
+ const art = await mountStudio(canvas, '/your-photo.jpg', {
320
+ settings: {
321
+ style: 'dither', cellSize: 6, ink: '#1c1b18',
322
+ backdrop: { mode: 'solid', color: '#e9e3d6' },
323
+ color: { contrast: 1.25, whitePoint: .72, shadows: .35 },
324
+ dither: { algorithm: 'halftone', palette: 'custom', colors: ['#e9e3d6', '#1c1b18'], scale: 2 },
325
+ effects: { grain: .3, vignette: .2 },
326
+ },
327
+ width: frame.clientWidth, height: frame.clientHeight, maxCells: 131072,
328
+ });
329
+ // Export with the same settings ("Export a wallpaper, poster or loop" above): { format: 'png', width: 2400, height: 1800, referenceWidth: 960, maxCells: 262144 }
330
+ ```
331
+
332
+ ## gamebox: Game box
333
+ Category: Projects
334
+ Use it for: fantasy and adventure scenes as 16-color box art from an old cartridge; indie game pages, streams and merch.
335
+ Settings: dither, Bayer 4×4 at scale 3, PICO-8 palette, saturation 1.2. Export 1200×900.
336
+
337
+ Prompt:
338
+ “Make [my fantasy illustration or photo] into retro game box art with asciify-engine: a Bayer 4×4 dither in the 16-color PICO-8 palette with chunky pixels. Export a 1200×900 PNG with crisp, unsmoothed pixels.”
339
+
340
+ ```ts
341
+ import { mountStudio } from 'asciify-engine/studio';
342
+
343
+ const art = await mountStudio(canvas, '/your-photo.jpg', {
344
+ settings: {
345
+ style: 'dither', cellSize: 6, ink: '#fff1e8',
346
+ backdrop: { mode: 'solid', color: '#000000' },
347
+ color: { saturation: 1.2, contrast: 1.1 },
348
+ dither: { algorithm: 'bayer4', palette: 'pico8', scale: 3 },
349
+ },
350
+ width: frame.clientWidth, height: frame.clientHeight, maxCells: 131072,
351
+ });
352
+ // Export with the same settings ("Export a wallpaper, poster or loop" above): { format: 'png', width: 1200, height: 900, referenceWidth: 960, maxCells: 262144 }
353
+ ```
354
+
355
+ ## sticker: Mascot sticker
356
+ Category: Projects
357
+ Use it for: a character, toy or logo mark on a plain dark ground as a chunky transparent sticker; mascots, app icons, chat stickers and merch.
358
+ Settings: blocks, 5px cells, square 1:1, source color at saturation 1.4, transparent backdrop. Export 2048×2048.
359
+
360
+ Prompt:
361
+ “Turn [my mascot on a dark background] into a sticker with asciify-engine: shaded blocks in its own colors on a transparent ground, square. Export a transparent 2048×2048 PNG.”
362
+
363
+ ```ts
364
+ import { mountStudio } from 'asciify-engine/studio';
365
+
366
+ const art = await mountStudio(canvas, '/your-photo.jpg', {
367
+ settings: {
368
+ aspectRatio: '1:1', style: 'blocks', cellSize: 5, colorMode: 'source',
369
+ backdrop: { mode: 'transparent' },
370
+ color: { saturation: 1.4, contrast: 1.15, brightness: .05 },
371
+ },
372
+ width: frame.clientWidth, height: frame.clientHeight, maxCells: 65536,
373
+ });
374
+ // Export with the same settings ("Export a wallpaper, poster or loop" above): { format: 'png', width: 2048, height: 2048, referenceWidth: 720, maxCells: 262144 }
375
+ // PNG keeps the transparency; JPEG and MP4 fill it with black.
376
+ ```
377
+
378
+ ## lockscreen: Lock screen
379
+ Category: Projects
380
+ Use it for: tall subjects (waterfalls, trees, towers, a standing figure) as a 9:16 phone wallpaper with glowing dots over a deep gradient.
381
+ Settings: dots, 4px cells, 9:16, source color at saturation 1.3 over a gradient from `#04120d` to `#12332a`, character glow .3. Export 1290×2293.
382
+
383
+ Prompt:
384
+ “Make [my photo] a phone lock screen with asciify-engine: dots in the photo's own colors with a soft glow over a deep green gradient, in 9:16 with the subject down the middle. Export a 1290×2293 PNG and a 1080×1920 version.”
385
+
386
+ ```ts
387
+ import { mountStudio } from 'asciify-engine/studio';
388
+
389
+ const art = await mountStudio(canvas, '/your-photo.jpg', {
390
+ settings: {
391
+ aspectRatio: '9:16', style: 'dots', cellSize: 4, colorMode: 'source',
392
+ backdrop: { mode: 'gradient', color: '#04120d', color2: '#12332a' },
393
+ color: { saturation: 1.3, brightness: .1, contrast: 1.1 },
394
+ effects: { characterBloom: .3 },
395
+ },
396
+ width: frame.clientWidth, height: frame.clientHeight, maxCells: 65536,
397
+ });
398
+ // Export with the same settings ("Export a wallpaper, poster or loop" above): { format: 'png', width: 1290, height: 2293, referenceWidth: 430, maxCells: 262144 }
399
+ // A fixed aspectRatio letterboxes the artwork inside the canvas; size the frame to match.
400
+ ```
401
+
70
402
  ## frost: Frosted glass
71
403
  Category: Composed
72
404
  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
405
  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
406
 
75
407
  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.”
408
+ “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 3200×2400 PNG wallpaper.”
77
409
 
78
410
  ```ts
79
411
  import { mountStudio } from 'asciify-engine/studio';
@@ -95,7 +427,7 @@ Use it for: flowers, gardens and lights as glowing color dots over their own sof
95
427
  Settings: dots, 6px cells, source color at saturation 1.3, brightness .12, over the source blurred 32px, character glow .25.
96
428
 
97
429
  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.”
430
+ “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 3200×2400 PNG.”
99
431
 
100
432
  ```ts
101
433
  import { mountStudio } from 'asciify-engine/studio';
@@ -114,19 +446,19 @@ const art = await mountStudio(canvas, '/your-photo.jpg', {
114
446
  ## cutout: Cutout
115
447
  Category: Composed
116
448
  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.
449
+ Settings: mixed type, 5px cells, source color at saturation 1.8, contrast 1.3, a `#7d7368` multiply tint at .45, transparent backdrop; the tint pulls white areas down to mid-tones, so every mark reads on light and dark grounds alike.
118
450
 
119
451
  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.”
452
+ “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 2400×1800 PNG.”
121
453
 
122
454
  ```ts
123
455
  import { mountStudio } from 'asciify-engine/studio';
124
456
 
125
457
  const art = await mountStudio(canvas, '/your-photo.jpg', {
126
458
  settings: {
127
- style: 'mixed', cellSize: 4, colorMode: 'source',
459
+ style: 'mixed', cellSize: 5, colorMode: 'source',
128
460
  backdrop: { mode: 'transparent' },
129
- color: { saturation: 1.4, contrast: 1.2, brightness: .15 },
461
+ color: { saturation: 1.8, contrast: 1.3, tint: '#7d7368', amount: .45, blend: 'multiply' },
130
462
  },
131
463
  width: frame.clientWidth, height: frame.clientHeight, maxCells: 65536,
132
464
  });
@@ -139,7 +471,7 @@ Use it for: a glowing white dot artwork with a transparent ground, to lay over v
139
471
  Settings: dots, 5px cells, `#f4f1ea` ink, transparent backdrop, character glow .4.
140
472
 
141
473
  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.”
474
+ “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 3200×2400 PNG.”
143
475
 
144
476
  ```ts
145
477
  import { mountStudio } from 'asciify-engine/studio';
@@ -162,7 +494,7 @@ Use it for: a bright figure or object on black, redrawn in warm light characters
162
494
  Settings: ASCII, 4px cells, black point .25, `#fff0dc` ink over a gradient from `#1c1433` to `#b4492f`, character glow .3.
163
495
 
164
496
  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].”
497
+ “Draw [my photo] in warm light characters over a dusk gradient with asciify-engine: violet into ember, the characters glowing softly. Export a 3200×2400 PNG poster and let me swap the two gradient colors for [our palette].”
166
498
 
167
499
  ```ts
168
500
  import { mountStudio } from 'asciify-engine/studio';
@@ -185,7 +517,7 @@ Use it for: night photos with bright, saturated lights, redrawn as glowing color
185
517
  Settings: ASCII, 4px cells, source color at saturation 1.3 on `#07070a`, character glow .6.
186
518
 
187
519
  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.”
520
+ “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 3200×2400 PNG.”
189
521
 
190
522
  ```ts
191
523
  import { mountStudio } from 'asciify-engine/studio';
@@ -207,7 +539,7 @@ Use it for: a pale sculpture, portrait or product on a dark ground, set in cream
207
539
  Settings: ASCII, 3px cells, `#f2ede2` ink on solid `#1f3ea8`, contrast 1.3, black point .15.
208
540
 
209
541
  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.”
542
+ “Set [my photo] in cream characters on deep cobalt blue with asciify-engine, like a gallery poster. Export a 3200×2400 PNG, and let me swap the blue for [our brand color] without changing the ink.”
211
543
 
212
544
  ```ts
213
545
  import { mountStudio } from 'asciify-engine/studio';
@@ -229,7 +561,7 @@ Use it for: a portrait engraved inside an oval on warm paper, like a stamp or ba
229
561
  Settings: engraving, 4px cells, `#2a2620` on `#ece6d8`, `print.invert: true`, angle −30, inside an ellipse mask.
230
562
 
231
563
  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.”
564
+ “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 3200×2400 PNG for an invitation.”
233
565
 
234
566
  ```ts
235
567
  import { mountStudio } from 'asciify-engine/studio';
@@ -239,7 +571,7 @@ const art = await mountStudio(canvas, '/your-photo.jpg', {
239
571
  style: 'engraving', cellSize: 4, ink: '#2a2620',
240
572
  backdrop: { mode: 'solid', color: '#ece6d8' },
241
573
  print: { invert: true, angle: -30, weight: 1.05 },
242
- mask: { enabled: true, shapes: [{ kind: 'ellipse', x: .31, y: .1, width: .38, height: .8 }] },
574
+ mask: { enabled: true, shapes: [{ kind: 'ellipse', x: .32, y: .12, width: .36, height: .76 }] },
243
575
  },
244
576
  width: frame.clientWidth, height: frame.clientHeight, maxCells: 131072,
245
577
  });
@@ -252,7 +584,7 @@ Use it for: jewelry, watches, metalwork and ornament as gold engraving on black;
252
584
  Settings: engraving, 4px cells, gold `#d9b26a` on `#0b0a08`, angle −35, weight 1.1, contrast 1.35, character glow .2.
253
585
 
254
586
  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.”
587
+ “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 3200×2400 PNG wallpaper.”
256
588
 
257
589
  ```ts
258
590
  import { mountStudio } from 'asciify-engine/studio';
@@ -271,20 +603,20 @@ const art = await mountStudio(canvas, '/your-photo.jpg', {
271
603
 
272
604
  ## overprint: Overprint
273
605
  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.
606
+ Use it for: bright photos with hard, graphic shadows, where the shadows fill with type over the sharp original; travel, editorial and summer campaign artwork.
607
+ Settings: ASCII, 6px cells, deep teal `#0b2530` ink, plain levels and a steep inverted tone curve so only the shadows carry type, over the source photo at full opacity.
276
608
 
277
609
  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.”
610
+ “Overprint [my bright photo] with asciify-engine: keep the photo sharp underneath and print deep teal characters only into its shadows, so the lit areas stay clean, like a type screen inked onto the print. Export a 3200×2400 PNG.”
279
611
 
280
612
  ```ts
281
613
  import { mountStudio } from 'asciify-engine/studio';
282
614
 
283
615
  const art = await mountStudio(canvas, '/your-photo.jpg', {
284
616
  settings: {
285
- style: 'ascii', cellSize: 5, ink: '#0f2a33',
617
+ style: 'ascii', cellSize: 6, ink: '#0b2530',
286
618
  backdrop: { mode: 'source', opacity: 1 },
287
- color: { contrast: 1.2 },
619
+ color: { levels: 'none', curves: { rgb: [[0, 1], [.3, 1], [.45, 0], [1, 0]] } },
288
620
  },
289
621
  width: frame.clientWidth, height: frame.clientHeight, maxCells: 65536,
290
622
  });
@@ -296,7 +628,7 @@ Use it for: landscapes, roads and wide scenes as a film still: warm-white charac
296
628
  Settings: ASCII, 4px cells, warm-white `#fff1de` ink over the source blurred 14px, contrast 1.15, vignette .45, grain .22, bloom .15.
297
629
 
298
630
  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].”
631
+ “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 3200×2400 PNG and keep it live in [the hero].”
300
632
 
301
633
  ```ts
302
634
  import { mountStudio } from 'asciify-engine/studio';
@@ -316,10 +648,10 @@ const art = await mountStudio(canvas, '/your-photo.jpg', {
316
648
  ## darkroom: Darkroom
317
649
  Category: Finished
318
650
  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.
651
+ Settings: ASCII, 5px cells, `#efe6d6` on `#080706`, contrast 1.15, brightness .35, midtones 2, vignette .45, bloom .4, grain .12.
320
652
 
321
653
  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.”
654
+ “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 3200×2400 PNG.”
323
655
 
324
656
  ```ts
325
657
  import { mountStudio } from 'asciify-engine/studio';
@@ -328,8 +660,8 @@ const art = await mountStudio(canvas, '/your-photo.jpg', {
328
660
  settings: {
329
661
  style: 'ascii', cellSize: 5, ink: '#efe6d6',
330
662
  backdrop: { mode: 'solid', color: '#080706' },
331
- color: { contrast: 1.2, brightness: .3, gamma: 1.7 },
332
- effects: { vignette: .55, bloom: .35, grain: .12 },
663
+ color: { contrast: 1.15, brightness: .35, gamma: 2 },
664
+ effects: { vignette: .45, bloom: .4, grain: .12 },
333
665
  },
334
666
  width: frame.clientWidth, height: frame.clientHeight, maxCells: 65536,
335
667
  });
@@ -341,7 +673,7 @@ Use it for: space, sport and news-like photos as a live transmission: a fine pix
341
673
  Settings: pixel, 3px cells, source color at saturation 1.15, scanlines .35, prism .3, RGB split .25, CRT .15, vignette .25.
342
674
 
343
675
  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.”
676
+ “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×1440 PNG.”
345
677
 
346
678
  ```ts
347
679
  import { mountStudio } from 'asciify-engine/studio';
@@ -363,7 +695,7 @@ Use it for: action, skate and music photos as a worn tape frame: halftone dots i
363
695
  Settings: dots, 4px cells, source color at saturation 1.3, brightness .15, glitch .15, RGB split .35, scanlines .2, grain .25.
364
696
 
365
697
  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.”
698
+ “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 2400×1800 PNG and a 6-second 2400×1800 MP4 loop.”
367
699
 
368
700
  ```ts
369
701
  import { mountStudio } from 'asciify-engine/studio';
@@ -386,7 +718,7 @@ Use it for: aerial views of towns, harbors and crowds as a tilt-shift model, sha
386
718
  Settings: pixel, 4px cells, source color at saturation 1.35, progressive blur 6 focused at .55, sharpen .3.
387
719
 
388
720
  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.”
721
+ “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 3200×2400 PNG wallpaper.”
390
722
 
391
723
  ```ts
392
724
  import { mountStudio } from 'asciify-engine/studio';
@@ -409,7 +741,7 @@ Use it for: historic, travel and heritage photos as an aged print, with sepia in
409
741
  Settings: ASCII, 4px cells, sepia ink `#e9d8b4` on `#17130e`, contrast 1.4, dust .45, grain .3, vignette .4.
410
742
 
411
743
  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.”
744
+ “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 3200×2400 PNG.”
413
745
 
414
746
  ```ts
415
747
  import { mountStudio } from 'asciify-engine/studio';
@@ -431,7 +763,7 @@ Use it for: headlights, tunnels and anything rushing toward the camera, with a r
431
763
  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
764
 
433
765
  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].”
766
+ “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×1440 PNG and keep it live in [the hero].”
435
767
 
436
768
  ```ts
437
769
  import { mountStudio } from 'asciify-engine/studio';
@@ -453,7 +785,7 @@ Use it for: bold, saturated product and car photos as a comic-print page, with a
453
785
  Settings: blocks, 4px cells, source color at saturation 1.4 lifted (brightness .2, midtones 1.3), halftone screen .35, sharpen .4.
454
786
 
455
787
  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.”
788
+ “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 3200×2400 PNG poster.”
457
789
 
458
790
  ```ts
459
791
  import { mountStudio } from 'asciify-engine/studio';
@@ -472,10 +804,10 @@ const art = await mountStudio(canvas, '/your-photo.jpg', {
472
804
  ## ascii: Signature ASCII
473
805
  Category: Characters
474
806
  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.
807
+ Settings: `studioLook('ascii')`: ASCII, 4px cells, paper-white `#ece9e0` on `#0b0b0a`, contrast 1.25, midtones 1.25, character glow .12.
476
808
 
477
809
  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.”
810
+ “Turn [my photo] into Signature ASCII artwork with asciify-engine: paper-white characters on near black, fine 4px cells with a faint glow. Show it live on a canvas that fills [the hero], let the cursor leave a soft trail, and add a button that downloads a 3200×2400 PNG wallpaper.”
479
811
 
480
812
  ```ts
481
813
  import { mountStudio, studioLook } from 'asciify-engine/studio';
@@ -490,10 +822,10 @@ const art = await mountStudio(canvas, '/your-photo.jpg', {
490
822
  ## night: Night signal
491
823
  Category: Characters
492
824
  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.
825
+ Settings: `studioLook('night')`: ASCII, 4px cells, pale graphite `#cdc9be` on `#0b0b0a`, contrast 1.2, midtones 1.2, prism .2, scanlines .08, vignette .3, bloom .12.
494
826
 
495
827
  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.”
828
+ “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 3200×2400 PNG poster and keep the settings so I can reuse the look.”
497
829
 
498
830
  ```ts
499
831
  import { mountStudio, studioLook } from 'asciify-engine/studio';
@@ -511,7 +843,7 @@ Use it for: a CRT or terminal feel on a portrait or product; developer-tool hero
511
843
  Settings: `studioLook('terminal')`: ASCII, sage `#a4c9b3` on `#0a0d0b`, bloom .16, scanlines .12, CRT .06.
512
844
 
513
845
  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.”
846
+ “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, keep it still for reduced motion, and export a 2400×1800 PNG still.”
515
847
 
516
848
  ```ts
517
849
  import { mountStudio, studioLook } from 'asciify-engine/studio';
@@ -529,7 +861,7 @@ Use it for: a living desktop or phone wallpaper, a screensaver, or a full-bleed
529
861
  Settings: `studioLook('wallpaper')`: ASCII, `#e6e3da` ink over the source blurred 18px at .4 opacity on `#0b0b0a`, caustics motion at speed .35.
530
862
 
531
863
  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.”
864
+ “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×1440 MP4 and a 3200×2400 PNG still.”
533
865
 
534
866
  ```ts
535
867
  import { exportStudio, loadStudioMedia, studioLook } from 'asciify-engine/studio';
@@ -538,7 +870,7 @@ const settings = studioLook('wallpaper');
538
870
  const media = await loadStudioMedia(file);
539
871
  try {
540
872
  const loop = await exportStudio({ frame: () => media.frame(0) }, settings, {
541
- format: 'mp4', width: 1920, height: 1080, referenceWidth: 960, fps: 30,
873
+ format: 'mp4', width: 1920, height: 1440, referenceWidth: 960, fps: 30,
542
874
  duration: 12 / settings.motion.speed, maxCells: 131072, // one full caustics cycle loops cleanly
543
875
  });
544
876
  } finally { media.destroy(); }
@@ -550,7 +882,7 @@ Use it for: architecture, machines and products drawn as technical linework; eng
550
882
  Settings: `studioLook('blueprint')`: lines style, 6px cells, pale blue `#b3c9d8` on navy `#0e1b28`.
551
883
 
552
884
  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.”
885
+ “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×1800 PNG.”
554
886
 
555
887
  ```ts
556
888
  import { mountStudio, studioLook } from 'asciify-engine/studio';
@@ -567,7 +899,7 @@ Use it for: a playful, typographic take on a colorful subject; posters, merch an
567
899
  Settings: mixed style, 5px cells, source color, contrast 1.2, brightness .15 on `#0b0b0a`.
568
900
 
569
901
  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.”
902
+ “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 a 3200×2400 PNG poster and a 2400×1800 version for social.”
571
903
 
572
904
  ```ts
573
905
  import { mountStudio } from 'asciify-engine/studio';
@@ -588,7 +920,7 @@ Use it for: bold, colorful subjects as shaded block characters, like ANSI art fr
588
920
  Settings: blocks style (` ░▒▓█`), 5px cells, source color at saturation 1.15, contrast 1.1 on `#0b0b0a`.
589
921
 
590
922
  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.”
923
+ “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 3200×2400 PNG wallpaper.”
592
924
 
593
925
  ```ts
594
926
  import { mountStudio } from 'asciify-engine/studio';
@@ -609,7 +941,7 @@ Use it for: fine, graphic subjects on black (leaves, feathers, line-like forms)
609
941
  Settings: braille style (` ⠁⠃⠇⡇⣇⣧⣷⣿`), 3px cells, source color at saturation 1.3 on `#0b0b0a`, contrast 1.4, brightness .15, midtones 1.3.
610
942
 
611
943
  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.”
944
+ “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 3200×2400 PNG wallpaper.”
613
945
 
614
946
  ```ts
615
947
  import { mountStudio } from 'asciify-engine/studio';
@@ -630,7 +962,7 @@ Use it for: birds, flowers and folk subjects as colored stitches on dark cloth;
630
962
  Settings: cross style (` ·+xX#`), 4px cells, source color at saturation 1.5, brightness .2, contrast 1.2 on indigo cloth `#191d26`.
631
963
 
632
964
  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.”
965
+ “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 2400×1800 PNG for a card.”
634
966
 
635
967
  ```ts
636
968
  import { mountStudio } from 'asciify-engine/studio';
@@ -648,19 +980,19 @@ const art = await mountStudio(canvas, '/your-photo.jpg', {
648
980
  ## diagonal: Storm
649
981
  Category: Characters
650
982
  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.
983
+ Settings: diagonal style (` /╱╳`), 4px cells, `#eef3f5` on blue-black `#10161b`, contrast 1.25, brightness .15, midtones 1.8.
652
984
 
653
985
  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.”
986
+ “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 3200×2400 PNG.”
655
987
 
656
988
  ```ts
657
989
  import { mountStudio } from 'asciify-engine/studio';
658
990
 
659
991
  const art = await mountStudio(canvas, '/your-photo.jpg', {
660
992
  settings: {
661
- style: 'diagonal', cellSize: 4, ink: '#dfe7ea',
662
- backdrop: { mode: 'solid', color: '#0c1013' },
663
- color: { contrast: 1.3, gamma: 1.3 },
993
+ style: 'diagonal', cellSize: 4, ink: '#eef3f5',
994
+ backdrop: { mode: 'solid', color: '#10161b' },
995
+ color: { contrast: 1.25, brightness: .15, gamma: 1.8 },
664
996
  },
665
997
  width: frame.clientWidth, height: frame.clientHeight, maxCells: 65536,
666
998
  });
@@ -669,20 +1001,20 @@ const art = await mountStudio(canvas, '/your-photo.jpg', {
669
1001
  ## diamond: Jewel box
670
1002
  Category: Characters
671
1003
  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.
1004
+ Settings: diamond style (` ·◇◈◆`), 5px cells, source color at saturation 1.4, brightness .3, contrast 1.25, midtones 1.6, black point .15 on `#07070a`, character glow .35.
673
1005
 
674
1006
  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.”
1007
+ “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 3200×2400 PNG.”
676
1008
 
677
1009
  ```ts
678
1010
  import { mountStudio } from 'asciify-engine/studio';
679
1011
 
680
1012
  const art = await mountStudio(canvas, '/your-photo.jpg', {
681
1013
  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 },
1014
+ style: 'diamond', cellSize: 5, colorMode: 'source',
1015
+ backdrop: { mode: 'solid', color: '#07070a' },
1016
+ color: { saturation: 1.4, brightness: .3, contrast: 1.25, gamma: 1.6, blackPoint: .15 },
1017
+ effects: { characterBloom: .35 },
686
1018
  },
687
1019
  width: frame.clientWidth, height: frame.clientHeight, maxCells: 65536,
688
1020
  });
@@ -694,7 +1026,7 @@ Use it for: bright, high-key photos as an editorial print; zines, press pages, q
694
1026
  Settings: `studioLook('print')`: Floyd–Steinberg dither, scale 2, `#1d1c19` on warm paper `#efece4`.
695
1027
 
696
1028
  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.”
1029
+ “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 3200×2400 PNG poster at the same grain.”
698
1030
 
699
1031
  ```ts
700
1032
  import { mountStudio, studioLook } from 'asciify-engine/studio';
@@ -711,7 +1043,7 @@ Use it for: a nostalgic, low-fi portrait or pet photo; game and music artwork.
711
1043
  Settings: `studioLook('handheld')`: Bayer 4×4 ordered dither, scale 2, four graphite tones `#121211 #3e3d39 #8a8880 #dedbd2`.
712
1044
 
713
1045
  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.”
1046
+ “Make [my photo] look like it came off a pocket camera with asciify-engine: a four-tone ordered dither in graphite. Export a 2400×1800 PNG for a post.”
715
1047
 
716
1048
  ```ts
717
1049
  import { mountStudio, studioLook } from 'asciify-engine/studio';
@@ -728,7 +1060,7 @@ Use it for: posters, gig flyers and covers with a printed, two-color feel on war
728
1060
  Settings: `studioLook('riso')`: Atkinson dither, scale 2, paper `#f0ece3` with coral `#c27461` and blue `#3d5068`.
729
1061
 
730
1062
  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.”
1063
+ “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 3200×2400 poster PNG, and let me swap the two inks for [our brand colors] without changing the grain.”
732
1064
 
733
1065
  ```ts
734
1066
  import { mountStudio, studioLook } from 'asciify-engine/studio';
@@ -747,7 +1079,7 @@ Use it for: a bold, graphic portrait; band posters, covers and dark heroes that
747
1079
  Settings: dots style, 5px cells, `#e6e3da` on `#0b0b0a`, contrast 1.3, brightness .15.
748
1080
 
749
1081
  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.”
1082
+ “Make [my photo] a halftone artwork with asciify-engine: round dots in paper white on near black whose size carries the image. Export a 3200×2400 PNG at the same dot size.”
751
1083
 
752
1084
  ```ts
753
1085
  import { mountStudio } from 'asciify-engine/studio';
@@ -768,7 +1100,7 @@ Use it for: bright, saturated product and still-life photos as a pop print; pack
768
1100
  Settings: CMYK style, 5px cells, source color; it always prints on white paper.
769
1101
 
770
1102
  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.”
1103
+ “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 3200×2400 poster PNG.”
772
1104
 
773
1105
  ```ts
774
1106
  import { mountStudio } from 'asciify-engine/studio';
@@ -785,7 +1117,7 @@ Use it for: a quiet, drawn portrait in fine dots; book covers, editorial portrai
785
1117
  Settings: stipple style, 4px cells, `#e6e3da` on `#0b0b0a`, contrast 1.35, brightness .2, midtones 1.3.
786
1118
 
787
1119
  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.”
1120
+ “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 3200×2400 PNG for a book cover.”
789
1121
 
790
1122
  ```ts
791
1123
  import { mountStudio } from 'asciify-engine/studio';
@@ -806,7 +1138,7 @@ Use it for: architecture, portraits and objects as a steel engraving; certificat
806
1138
  Settings: engraving style, 5px cells, dark ink `#22201c` on paper `#ece8de`, `print.invert: true`, angle −35, weight 1.1, contrast 1.25.
807
1139
 
808
1140
  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.”
1141
+ “Engrave [my photo] like a banknote with asciify-engine: parallel cuts in dark ink on warm paper whose weight follows the shadows. Export a 3200×2400 PNG, and keep the line angle adjustable.”
810
1142
 
811
1143
  ```ts
812
1144
  import { mountStudio } from 'asciify-engine/studio';
@@ -829,7 +1161,7 @@ Use it for: sculpture, portraits and figures drawn in crossing pen lines; editor
829
1161
  Settings: crosshatch style, 5px cells, `#22201c` on `#ece8de`, `print.invert: true`.
830
1162
 
831
1163
  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.”
1164
+ “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 3200×2400 PNG illustration.”
833
1165
 
834
1166
  ```ts
835
1167
  import { mountStudio } from 'asciify-engine/studio';
@@ -850,7 +1182,7 @@ Use it for: still lifes, fruit, flowers and landscapes as a painted canvas; gall
850
1182
  Settings: pointillism style, 3px cells, source color, brightness .25, saturation 1.3 on `#0b0b0a`.
851
1183
 
852
1184
  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.”
1185
+ “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 3200×2400 PNG wallpaper.”
854
1186
 
855
1187
  ```ts
856
1188
  import { mountStudio } from 'asciify-engine/studio';
@@ -871,7 +1203,7 @@ Use it for: landscapes and silhouettes with big tonal masses as a carved woodblo
871
1203
  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
1204
 
873
1205
  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.”
1206
+ “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 3200×2400 PNG print.”
875
1207
 
876
1208
  ```ts
877
1209
  import { mountStudio } from 'asciify-engine/studio';
@@ -893,7 +1225,7 @@ Use it for: bright, saturated photos (pools, sport, summer) as a two-screen riso
893
1225
  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
1226
 
895
1227
  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.”
1228
+ “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 3200×2400 PNG poster.”
897
1229
 
898
1230
  ```ts
899
1231
  import { mountStudio } from 'asciify-engine/studio';
@@ -916,7 +1248,7 @@ Use it for: colorful subjects as separated tiles; gallery walls, covers and calm
916
1248
  Settings: `studioLook('mosaic')`: mosaic style, 9px cells, source color at saturation .55, contrast 1.05 on `#0b0b0a`.
917
1249
 
918
1250
  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.”
1251
+ “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 3200×2400 wallpaper and a 2400×1800 PNG.”
920
1252
 
921
1253
  ```ts
922
1254
  import { mountStudio, studioLook } from 'asciify-engine/studio';
@@ -933,7 +1265,7 @@ Use it for: a toy-brick build of a photo; playful posters, kids' and game artwor
933
1265
  Settings: `studioLook('bricks')`: lego style, 12px studded cells, source color at saturation .55 on `#0b0b0a`.
934
1266
 
935
1267
  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.”
1268
+ “Build [my photo] out of toy bricks with asciify-engine: studded square bricks in softened source colors on black. Export a 2400×1800 PNG and show the live version on [our page] with the cursor rippling through it.”
937
1269
 
938
1270
  ```ts
939
1271
  import { mountStudio, studioLook } from 'asciify-engine/studio';
@@ -950,7 +1282,7 @@ Use it for: a photo as small isometric blocks; game, 3D and product artwork with
950
1282
  Settings: `studioLook('voxel')`: voxel style, 12px cells, source color at saturation .5 on `#0b0b0a`.
951
1283
 
952
1284
  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.”
1285
+ “Rebuild [my photo] as little isometric volumes with asciify-engine: three-face voxel tiles in muted source colors on black. Export a 3200×2400 PNG wallpaper.”
954
1286
 
955
1287
  ```ts
956
1288
  import { mountStudio, studioLook } from 'asciify-engine/studio';
@@ -967,7 +1299,7 @@ Use it for: night scenes, music and event artwork as faceted mirror tiles under
967
1299
  Settings: `studioLook('disco')`: disco style, 11px cells, source color at saturation .5, one soft light at (.35, .25).
968
1300
 
969
1301
  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].”
1302
+ “Turn [my photo] into a mirror-ball artwork with asciify-engine: faceted tiles in muted source colors under one soft light. Export a 3200×2400 PNG for an event poster, and move the light to [the top right].”
971
1303
 
972
1304
  ```ts
973
1305
  import { mountStudio, studioLook } from 'asciify-engine/studio';
@@ -985,7 +1317,7 @@ Use it for: an eight-bit take on a colorful photo; game, music and avatar artwor
985
1317
  Settings: pixel style, 6px cells, source color at saturation .85 on `#0b0b0a`.
986
1318
 
987
1319
  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.”
1320
+ “Pixelate [my photo] into clean eight-bit art with asciify-engine: square pixels in the photo's colors at 6px. Export a 3200×2400 wallpaper and a 2400×1800 PNG with crisp, unsmoothed pixels.”
989
1321
 
990
1322
  ```ts
991
1323
  import { mountStudio } from 'asciify-engine/studio';
@@ -1006,7 +1338,7 @@ Use it for: landscapes, water and skies as hexagonal tiles; calm wallpapers and
1006
1338
  Settings: hex style, 7px cells, source color at saturation .6 on `#0b0b0a`.
1007
1339
 
1008
1340
  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.”
1341
+ “Tile [my landscape photo] as a honeycomb with asciify-engine: hexagonal cells in the photo's softened colors on black. Export a 3200×2400 desktop wallpaper.”
1010
1342
 
1011
1343
  ```ts
1012
1344
  import { mountStudio } from 'asciify-engine/studio';
@@ -1027,7 +1359,7 @@ Use it for: cities, stages and night photos as a wall of round emitters; event,
1027
1359
  Settings: LED style, 5px cells, source color at saturation 1.2, contrast 1.1, brightness .2 on `#0b0b0a`.
1028
1360
 
1029
1361
  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.”
1362
+ “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×1440 MP4.”
1031
1363
 
1032
1364
  ```ts
1033
1365
  import { mountStudio } from 'asciify-engine/studio';