asciify-engine 4.20.0 → 4.22.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 (40) hide show
  1. package/README.md +14 -0
  2. package/dist/{animation-presets-ZujFF3i8.d.ts → animation-presets-CEdD0FMM.d.cts} +42 -28
  3. package/dist/{animation-presets-DhswE0D_.d.cts → animation-presets-KnEWoJ_q.d.ts} +42 -28
  4. package/dist/core.cjs +1 -1
  5. package/dist/core.d.cts +4 -4
  6. package/dist/core.d.ts +4 -4
  7. package/dist/core.js +1 -1
  8. package/dist/field.cjs +1 -1
  9. package/dist/field.d.cts +3 -1
  10. package/dist/field.d.ts +3 -1
  11. package/dist/field.js +1 -1
  12. package/dist/hover-guide-CAfsLjFZ.d.cts +190 -0
  13. package/dist/hover-guide-CAfsLjFZ.d.ts +190 -0
  14. package/dist/hover.cjs +1 -1
  15. package/dist/hover.d.cts +14 -7
  16. package/dist/hover.d.ts +14 -7
  17. package/dist/hover.js +1 -1
  18. package/dist/index.cjs +1 -1
  19. package/dist/index.d.cts +3 -3
  20. package/dist/index.d.ts +3 -3
  21. package/dist/index.js +1 -1
  22. package/dist/{model-9SbRVqqI.d.cts → model-BHIQYYk-.d.ts} +11 -2
  23. package/dist/{model-DXHhQhxP.d.ts → model-BzgEEqzP.d.cts} +11 -2
  24. package/dist/studio.cjs +1 -1
  25. package/dist/studio.d.cts +4 -5
  26. package/dist/studio.d.ts +4 -5
  27. package/dist/studio.js +1 -1
  28. package/dist/{types-CM4452nD.d.ts → types-C9lka3yC.d.ts} +2 -2
  29. package/dist/{types-FkqhgDYx.d.cts → types-DOl5f2x3.d.cts} +2 -2
  30. package/package.json +1 -1
  31. package/skills/asciify-engine/SKILL.md +3 -3
  32. package/skills/asciify-engine/references/design-matching.md +2 -1
  33. package/skills/asciify-engine/references/glyph-field.md +1 -1
  34. package/skills/asciify-engine/references/hero-finish.md +3 -0
  35. package/skills/asciify-engine/references/looks.md +55 -55
  36. package/skills/asciify-engine/references/studio-effects.md +73 -24
  37. package/skills/asciify-engine/references/studio-workspace.md +6 -7
  38. package/skills/asciify-engine/references/upgrading.md +6 -0
  39. package/dist/hover-catalog-D85jh6dR.d.cts +0 -173
  40. package/dist/hover-catalog-D85jh6dR.d.ts +0 -173
@@ -1,8 +1,8 @@
1
- import { A as AmbientMotion } from './hover-catalog-D85jh6dR.js';
1
+ import { A as AmbientMotion, L as LegacyAmbientMotion } from './hover-guide-CAfsLjFZ.js';
2
2
 
3
3
  type ColorMode = 'grayscale' | 'fullcolor' | 'matrix' | 'accent';
4
4
  type RenderMode = 'ascii' | 'dots';
5
- type AnimationStyle = AmbientMotion;
5
+ type AnimationStyle = AmbientMotion | LegacyAmbientMotion;
6
6
  /** Core media draws ASCII/dots; use StudioStyle for the 15 render styles. */
7
7
  type ArtStyle = 'classic';
8
8
  type HoverEffect = 'spotlight' | 'magnify' | 'repel' | 'glow' | 'colorShift' | 'attract' | 'shatter' | 'trail' | 'glitchText';
@@ -1,8 +1,8 @@
1
- import { A as AmbientMotion } from './hover-catalog-D85jh6dR.cjs';
1
+ import { A as AmbientMotion, L as LegacyAmbientMotion } from './hover-guide-CAfsLjFZ.cjs';
2
2
 
3
3
  type ColorMode = 'grayscale' | 'fullcolor' | 'matrix' | 'accent';
4
4
  type RenderMode = 'ascii' | 'dots';
5
- type AnimationStyle = AmbientMotion;
5
+ type AnimationStyle = AmbientMotion | LegacyAmbientMotion;
6
6
  /** Core media draws ASCII/dots; use StudioStyle for the 15 render styles. */
7
7
  type ArtStyle = 'classic';
8
8
  type HoverEffect = 'spotlight' | 'magnify' | 'repel' | 'glow' | 'colorShift' | 'attract' | 'shatter' | 'trail' | 'glitchText';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "asciify-engine",
3
- "version": "4.20.0",
3
+ "version": "4.22.0",
4
4
  "description": "Framework-agnostic ASCII art engine. Convert images, videos, and GIFs into ASCII art rendered on canvas, or run full-bleed GPU character fields with a fluid cursor wake.",
5
5
  "type": "module",
6
6
  "main": "./dist/index.cjs",
@@ -2,13 +2,13 @@
2
2
  name: asciify-engine
3
3
  description: Apply Asciify the way asciify.org does - ASCII components and backgrounds that belong in a real interface, inked from the theme, clear around text, inside the page's radii and motion. Use for UI components in characters (loading, status, toasts, tabs, AI states, charts, transitions, pages), animated ASCII backgrounds, and also photo, video and GIF conversion, GPU character fields, artwork looks for wallpapers, posters and prints, art styles and export, hover and motion, layered typography and rendering performance.
4
4
  metadata:
5
- tested-engine: "4.20.0"
5
+ tested-engine: "4.22.0"
6
6
  updated: "2026-10-17"
7
7
  ---
8
8
 
9
9
  # Asciify Engine
10
10
 
11
- Use the published `asciify-engine` npm package. Tested against **4.20.0**. Check the application's installed version and its public types before using newer options; a local checkout can contain unpublished changes.
11
+ Use the published `asciify-engine` npm package. Tested against **4.22.0**. Check the application's installed version and its public types before using newer options; a local checkout can contain unpublished changes.
12
12
 
13
13
  - Agent entry: https://asciify.org/skill (redirects to this Markdown document).
14
14
  - Components: https://asciify.org/components · Looks: https://asciify.org/looks · Backgrounds: https://asciify.org/backgrounds
@@ -153,7 +153,7 @@ Preview it: letter glyph densities differ, so arbitrary words are not automatica
153
153
 
154
154
  The core `HoverEffect` IDs are `spotlight`, `magnify`, `repel`, `glow`, `colorShift`, `attract`, `shatter`, `trail`, and `glitchText`. Those remain valid APIs, but they are **not identical to the current website's enhanced interactions**.
155
155
 
156
- The website offers **Trail, Water, Contour, Dissolve, Silk, Vortex, Magnetic Pull, Scatter, Emboss, Elastic, Rake, Lens wake, Smudge, Ripple rings, and Off** through an optional studio surface module. Its fourteen still-image motions—Caustics, Slow Current, Reveal & Reform, Sheen, Tidal Rings, Living Grain, Parallax, Woven Flow, Print Shift, Contour Light, Relight, Shimmer, Breeze, Unfold—and fine-dither treatments ship in the same `asciify-engine/hover` module. Use its typed options rather than converting display names into engine `hoverEffect` or `animationStyle` values.
156
+ The website offers **Trail, Dissolve, Contour, Emboss, Ripple rings, Ink bleed, Water, Silk, Vortex, Magnetic Pull, Scatter, Elastic, Lens wake, Smudge, Loupe, Reveal, Repel, Tilt, Heat haze, and Off** through an optional studio surface module, each with `scope: 'all' | 'subject' | 'outside'` to keep it on a cut-out subject or around it (`rake` is retired and plays Silk). Its ten photo-aware still-image motions—Relight, Specular sweep, Highlight bloom, Glints, Parallax, Slow push, Focus pull, Mist, Drift, Develop—read the image's own light and depth (retired IDs such as `caustics` load as their closest replacement), and they and the fine-dither treatments ship in the same `asciify-engine/hover` module. Use its typed options rather than converting display names into engine `hoverEffect` or `animationStyle` values.
157
157
 
158
158
  To reproduce those interactions, read [references/studio-effects.md](references/studio-effects.md). Import `mountHover` from `asciify-engine/hover`; no separate download is needed. Keep engine `hoverStrength: 0` and `animationStyle: 'none'` when using it, to avoid applying two effects. Trail is the site's default. Prefer a stationary-grid effect such as Trail or Dissolve when the user wants a wake without spatial displacement.
159
159
 
@@ -66,6 +66,7 @@ Hover choice by intent:
66
66
  - **Pure characters, the classic Asciify feel:** Trail. In the wake the characters fold their tone, sparse marks fill in and dense marks open up, then they settle; nothing bends. On `/field` use `hover: 'trail'` with `backdrop: 0` (GPU, 120 fps class); in `/studio` or `/hover` use `hover: { effect: 'trail' }` with a solid backdrop in the page color and `effects.characterBloom: 0`. Both run the same ink field with the same `strength` and `radius`, so the canvas renderer is a faithful fallback.
67
67
  - **Subtle but premium, no watery distortion:** field `hover: 'lantern'`. A soft light glides after the pointer and lifts the characters it passes, with a short fading tail. Good near text, on product imagery and on calm brands.
68
68
  - **Canvas pipelines (`/hover`, `/studio`):** Trail or Dissolve keep the image still; Water and Ripple are liquid; Magnetic and Scatter are playful; Lens magnifies detail.
69
+ - **Premium, cursor-attached (`/hover`, `/studio`):** Loupe for products and detail, Reveal to show the photograph through the characters, Tilt for covers and posters, Repel for stickers and tiles, Heat haze for neon and dusk, Ink bleed for print and ink looks. For a cut-out or a subject on a plain ground add `scope: 'subject'` (or `'outside'` for an aura around it).
69
70
  - **Off:** when the art sits behind body text, in dense UIs, or when the user asks for none.
70
71
 
71
72
  ## Living or still
@@ -81,7 +82,7 @@ A still photo can be made to feel alive, and many users want that. Others want i
81
82
  | API | Living | Still |
82
83
  | --- | --- | --- |
83
84
  | `/field` | `drift: 0.15–0.35` so a photo breathes; or a video `source`; or `scene: 'flow' \| 'orb'` with no media | A media `source`, `drift: 0`, and `hover: 'lantern'` or `'none'`. With no pointer it draws once and stops working |
84
- | `/studio` | `motion: { type: 'sheen' \| 'breeze' \| 'relight' \| 'shimmer', speed: 0.4–0.8, amount: 0.3–0.6 }` for calm life; `'current'`, `'tidal'`, `'caustics'` for stronger; or a `STUDIO_ANIMATION_PRESETS` entry such as `quiet-light` | `motion: { type: 'none' }`, and `hover.effect: 'none'` or a stationary one such as `'trail'` |
85
+ | `/studio` | `motion: { type: 'relight' \| 'sheen' \| 'glow' \| 'mist', speed: 0.4–0.8, amount: 0.5–0.9 }` for calm life; `'parallax'`, `'push'`, `'focus'`, `'current'` for depth; or a `STUDIO_ANIMATION_PRESETS` entry such as `quiet-light` | `motion: { type: 'none' }`, and `hover.effect: 'none'` or a stationary one such as `'trail'` |
85
86
  | `/hover` over a core render | `motion: 'sheen'` (any `AmbientMotion`) | `motion: 'none'`; core `animationStyle: 'none'` |
86
87
 
87
88
  Autonomous motion that lasts longer than five seconds needs a visible pause control (WCAG 2.2.2). Prefer slow speeds; motion should be noticed on the second look, not the first.
@@ -55,7 +55,7 @@ Size the canvas with CSS (for example `position:absolute; inset:0; width:100%; h
55
55
  | `fit`, `focus` | `'cover'`, centre | `focus` moves the cover crop (0–1 on each axis). |
56
56
  | `vignette` | `0` | Darkens toward the corners. |
57
57
  | `drift`, `speed` | `0`, `1` | Slow ambient sampling drift keeps a still image alive; `speed` scales drift and generated scenes. |
58
- | `hover` | `'fluid'` | `'fluid'`: an ink-in-water wake that bends the image and swirls the characters. `'lantern'`: a soft light that follows the pointer and lifts characters with no distortion. `'trail'`: the Asciify Trail, the same ink field as the studio's Trail hover: in the wake, sparse characters fill in and dense ones open up, then settle, with no distortion. `'none'`: still under the pointer. `FIELD_HOVERS` lists them with labels. |
58
+ | `hover` | `'fluid'` | `'fluid'`: an ink-in-water wake that bends the image and swirls the characters. `'lantern'`: a soft light that follows the pointer and lifts characters with no distortion. `'trail'`: the Asciify Trail, the same ink field as the studio's Trail hover: in the wake, sparse characters fill in and dense ones open up, then settle, with no distortion. `'loupe'`: a glass loupe glides after the pointer and magnifies the characters it covers through a soft rim. `'reveal'`: under a soft spotlight the characters take the source's own colours (best over a photo in one ink). Loupe and Reveal use the `lantern` radius, strength and follow. `'none'`: still under the pointer. `FIELD_HOVERS` lists them with labels. The field has no `scope`; for a cut-out subject use `/studio` or `/hover`. |
59
59
  | `trail` | `{ strength: 0.55, radius: 0.45 }` | Same meaning and defaults as the studio's Trail hover, so a look moves between renderers unchanged. |
60
60
  | `lantern` | soft | `radius` (fraction of height), `strength`, `trail` (seconds its tail takes to fade), `follow` (how tightly the light catches the pointer). |
61
61
  | `fluid` | on | Settings for the fluid hover; `false` turns it off. `radius` (fraction of height), `force`, `dissipation` (per second; higher settles sooner), `curl` (vorticity: how strongly the wake curls into eddies, 0 is a straight smear), `refraction` (how far the flow bends sampling), `glow` (how strongly the flow lights characters), `resolution` (simulation grid, longest side). |
@@ -59,6 +59,9 @@ For live video, coordinate the source loop with `animated: true, fps: 30` (or th
59
59
  | `colorMode` | `fullcolor` | Match source frame rendering: `fullcolor`, `grayscale`, `accent`, or `matrix`. |
60
60
  | `accentColor` | `#888888` | Six-digit hex ink color for `colorMode: 'accent'`. |
61
61
  | `effect` | `trail` | Trail transports cached source detail and remaps character density on a fixed grid. Other hover modes retain their own behavior. |
62
+ | `scope` | `all` | `subject` keeps the hover on the subject, `outside` on the ground around it; read from the canvas's transparency or a plain ground. See studio-effects.md. |
63
+ | `decay` | `0.5` | How long the effect lingers after the pointer moves on or leaves, 0–1. |
64
+ | `touch` | `true` | Follow touch drags; scrolling still wins a vertical swipe. |
62
65
 
63
66
  `createTextMask(host, elements, onChange)` is also exported for custom integrations. Its `read()` returns a cached `{ canvas, revision }`; `invalidate()` refreshes it and `destroy()` releases observers. This helper does not itself draw ASCII.
64
67
 
@@ -212,8 +212,8 @@ const art = await mountStudio(canvas, '/your-photo.jpg', {
212
212
 
213
213
  ## stadium: Stadium
214
214
  Category: Projects
215
- Use it for: athletes and action against 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.3, brightness .2 so open sky stays paper. Export 2400×3200.
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
217
 
218
218
  Prompt:
219
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.”
@@ -225,7 +225,7 @@ const art = await mountStudio(canvas, '/your-photo.jpg', {
225
225
  settings: {
226
226
  aspectRatio: '3:4', style: 'dither', cellSize: 6, ink: '#151413',
227
227
  backdrop: { mode: 'solid', color: '#f2ebdd' },
228
- color: { contrast: 1.3, brightness: .2 },
228
+ color: { contrast: 1.35, whitePoint: .85, gamma: .85 },
229
229
  dither: { algorithm: 'halftone', palette: 'custom', colors: ['#f2ebdd', '#d7322a', '#151413'], scale: 3 },
230
230
  },
231
231
  width: frame.clientWidth, height: frame.clientHeight, maxCells: 131072,
@@ -308,7 +308,7 @@ const art = await mountStudio(canvas, '/your-photo.jpg', {
308
308
  ## wirephoto: Wire photo
309
309
  Category: Projects
310
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.35, brightness −.08, grain .3, vignette .2. Export 2400×1800.
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
312
 
313
313
  Prompt:
314
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.”
@@ -320,7 +320,7 @@ const art = await mountStudio(canvas, '/your-photo.jpg', {
320
320
  settings: {
321
321
  style: 'dither', cellSize: 6, ink: '#1c1b18',
322
322
  backdrop: { mode: 'solid', color: '#e9e3d6' },
323
- color: { contrast: 1.35, brightness: -.08 },
323
+ color: { contrast: 1.25, whitePoint: .72, shadows: .35 },
324
324
  dither: { algorithm: 'halftone', palette: 'custom', colors: ['#e9e3d6', '#1c1b18'], scale: 2 },
325
325
  effects: { grain: .3, vignette: .2 },
326
326
  },
@@ -405,7 +405,7 @@ Use it for: sunsets, skylines and silhouettes as white frost characters over a s
405
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.
406
406
 
407
407
  Prompt:
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 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.”
409
409
 
410
410
  ```ts
411
411
  import { mountStudio } from 'asciify-engine/studio';
@@ -427,7 +427,7 @@ Use it for: flowers, gardens and lights as glowing color dots over their own sof
427
427
  Settings: dots, 6px cells, source color at saturation 1.3, brightness .12, over the source blurred 32px, character glow .25.
428
428
 
429
429
  Prompt:
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 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.”
431
431
 
432
432
  ```ts
433
433
  import { mountStudio } from 'asciify-engine/studio';
@@ -449,7 +449,7 @@ Use it for: a subject on a dark or plain background as a sticker with a transpar
449
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.
450
450
 
451
451
  Prompt:
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 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.”
453
453
 
454
454
  ```ts
455
455
  import { mountStudio } from 'asciify-engine/studio';
@@ -471,7 +471,7 @@ Use it for: a glowing white dot artwork with a transparent ground, to lay over v
471
471
  Settings: dots, 5px cells, `#f4f1ea` ink, transparent backdrop, character glow .4.
472
472
 
473
473
  Prompt:
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 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.”
475
475
 
476
476
  ```ts
477
477
  import { mountStudio } from 'asciify-engine/studio';
@@ -494,7 +494,7 @@ Use it for: a bright figure or object on black, redrawn in warm light characters
494
494
  Settings: ASCII, 4px cells, black point .25, `#fff0dc` ink over a gradient from `#1c1433` to `#b4492f`, character glow .3.
495
495
 
496
496
  Prompt:
497
- “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].”
498
498
 
499
499
  ```ts
500
500
  import { mountStudio } from 'asciify-engine/studio';
@@ -517,7 +517,7 @@ Use it for: night photos with bright, saturated lights, redrawn as glowing color
517
517
  Settings: ASCII, 4px cells, source color at saturation 1.3 on `#07070a`, character glow .6.
518
518
 
519
519
  Prompt:
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 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.”
521
521
 
522
522
  ```ts
523
523
  import { mountStudio } from 'asciify-engine/studio';
@@ -539,7 +539,7 @@ Use it for: a pale sculpture, portrait or product on a dark ground, set in cream
539
539
  Settings: ASCII, 3px cells, `#f2ede2` ink on solid `#1f3ea8`, contrast 1.3, black point .15.
540
540
 
541
541
  Prompt:
542
- “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.”
543
543
 
544
544
  ```ts
545
545
  import { mountStudio } from 'asciify-engine/studio';
@@ -561,7 +561,7 @@ Use it for: a portrait engraved inside an oval on warm paper, like a stamp or ba
561
561
  Settings: engraving, 4px cells, `#2a2620` on `#ece6d8`, `print.invert: true`, angle −30, inside an ellipse mask.
562
562
 
563
563
  Prompt:
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 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.”
565
565
 
566
566
  ```ts
567
567
  import { mountStudio } from 'asciify-engine/studio';
@@ -584,7 +584,7 @@ Use it for: jewelry, watches, metalwork and ornament as gold engraving on black;
584
584
  Settings: engraving, 4px cells, gold `#d9b26a` on `#0b0a08`, angle −35, weight 1.1, contrast 1.35, character glow .2.
585
585
 
586
586
  Prompt:
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 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.”
588
588
 
589
589
  ```ts
590
590
  import { mountStudio } from 'asciify-engine/studio';
@@ -607,7 +607,7 @@ Use it for: bright photos with hard, graphic shadows, where the shadows fill wit
607
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.
608
608
 
609
609
  Prompt:
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 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.”
611
611
 
612
612
  ```ts
613
613
  import { mountStudio } from 'asciify-engine/studio';
@@ -628,7 +628,7 @@ Use it for: landscapes, roads and wide scenes as a film still: warm-white charac
628
628
  Settings: ASCII, 4px cells, warm-white `#fff1de` ink over the source blurred 14px, contrast 1.15, vignette .45, grain .22, bloom .15.
629
629
 
630
630
  Prompt:
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 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].”
632
632
 
633
633
  ```ts
634
634
  import { mountStudio } from 'asciify-engine/studio';
@@ -651,7 +651,7 @@ Use it for: still lifes, portraits and low-key photos as a print glowing out of
651
651
  Settings: ASCII, 5px cells, `#efe6d6` on `#080706`, contrast 1.15, brightness .35, midtones 2, vignette .45, bloom .4, grain .12.
652
652
 
653
653
  Prompt:
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 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.”
655
655
 
656
656
  ```ts
657
657
  import { mountStudio } from 'asciify-engine/studio';
@@ -673,7 +673,7 @@ Use it for: space, sport and news-like photos as a live transmission: a fine pix
673
673
  Settings: pixel, 3px cells, source color at saturation 1.15, scanlines .35, prism .3, RGB split .25, CRT .15, vignette .25.
674
674
 
675
675
  Prompt:
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×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.”
677
677
 
678
678
  ```ts
679
679
  import { mountStudio } from 'asciify-engine/studio';
@@ -695,7 +695,7 @@ Use it for: action, skate and music photos as a worn tape frame: halftone dots i
695
695
  Settings: dots, 4px cells, source color at saturation 1.3, brightness .15, glitch .15, RGB split .35, scanlines .2, grain .25.
696
696
 
697
697
  Prompt:
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 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.”
699
699
 
700
700
  ```ts
701
701
  import { mountStudio } from 'asciify-engine/studio';
@@ -718,7 +718,7 @@ Use it for: aerial views of towns, harbors and crowds as a tilt-shift model, sha
718
718
  Settings: pixel, 4px cells, source color at saturation 1.35, progressive blur 6 focused at .55, sharpen .3.
719
719
 
720
720
  Prompt:
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 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.”
722
722
 
723
723
  ```ts
724
724
  import { mountStudio } from 'asciify-engine/studio';
@@ -741,7 +741,7 @@ Use it for: historic, travel and heritage photos as an aged print, with sepia in
741
741
  Settings: ASCII, 4px cells, sepia ink `#e9d8b4` on `#17130e`, contrast 1.4, dust .45, grain .3, vignette .4.
742
742
 
743
743
  Prompt:
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 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.”
745
745
 
746
746
  ```ts
747
747
  import { mountStudio } from 'asciify-engine/studio';
@@ -763,7 +763,7 @@ Use it for: headlights, tunnels and anything rushing toward the camera, with a r
763
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.
764
764
 
765
765
  Prompt:
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×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].”
767
767
 
768
768
  ```ts
769
769
  import { mountStudio } from 'asciify-engine/studio';
@@ -785,7 +785,7 @@ Use it for: bold, saturated product and car photos as a comic-print page, with a
785
785
  Settings: blocks, 4px cells, source color at saturation 1.4 lifted (brightness .2, midtones 1.3), halftone screen .35, sharpen .4.
786
786
 
787
787
  Prompt:
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 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.”
789
789
 
790
790
  ```ts
791
791
  import { mountStudio } from 'asciify-engine/studio';
@@ -807,7 +807,7 @@ Use it for: the house look; a portrait, sculpture or product as a dark wallpaper
807
807
  Settings: `studioLook('ascii')`: ASCII, 4px cells, paper-white `#ece9e0` on `#0b0b0a`, contrast 1.25, midtones 1.25, character glow .12.
808
808
 
809
809
  Prompt:
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 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.”
811
811
 
812
812
  ```ts
813
813
  import { mountStudio, studioLook } from 'asciify-engine/studio';
@@ -825,7 +825,7 @@ Use it for: moodier, filmic portraits and night scenes; album art and dark poste
825
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.
826
826
 
827
827
  Prompt:
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 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.”
829
829
 
830
830
  ```ts
831
831
  import { mountStudio, studioLook } from 'asciify-engine/studio';
@@ -843,7 +843,7 @@ Use it for: a CRT or terminal feel on a portrait or product; developer-tool hero
843
843
  Settings: `studioLook('terminal')`: ASCII, sage `#a4c9b3` on `#0a0d0b`, bloom .16, scanlines .12, CRT .06.
844
844
 
845
845
  Prompt:
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, 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.”
847
847
 
848
848
  ```ts
849
849
  import { mountStudio, studioLook } from 'asciify-engine/studio';
@@ -858,10 +858,10 @@ const art = await mountStudio(canvas, '/your-video.mp4', {
858
858
  ## wallpaper: Wallpaper
859
859
  Category: Characters
860
860
  Use it for: a living desktop or phone wallpaper, a screensaver, or a full-bleed artwork that moves on its own.
861
- Settings: `studioLook('wallpaper')`: ASCII, `#e6e3da` ink over the source blurred 18px at .4 opacity on `#0b0b0a`, caustics motion at speed .35.
861
+ Settings: `studioLook('wallpaper')`: ASCII, `#e6e3da` ink over the source blurred 18px at .4 opacity on `#0b0b0a`, Relight motion at speed .35 and strength .8.
862
862
 
863
863
  Prompt:
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×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.”
865
865
 
866
866
  ```ts
867
867
  import { exportStudio, loadStudioMedia, studioLook } from 'asciify-engine/studio';
@@ -870,8 +870,8 @@ const settings = studioLook('wallpaper');
870
870
  const media = await loadStudioMedia(file);
871
871
  try {
872
872
  const loop = await exportStudio({ frame: () => media.frame(0) }, settings, {
873
- format: 'mp4', width: 1920, height: 1080, referenceWidth: 960, fps: 30,
874
- duration: 12 / settings.motion.speed, maxCells: 131072, // one full caustics cycle loops cleanly
873
+ format: 'mp4', width: 1920, height: 1440, referenceWidth: 960, fps: 30,
874
+ duration: 12 / settings.motion.speed, maxCells: 131072, // one full Relight orbit loops cleanly
875
875
  });
876
876
  } finally { media.destroy(); }
877
877
  ```
@@ -882,7 +882,7 @@ Use it for: architecture, machines and products drawn as technical linework; eng
882
882
  Settings: `studioLook('blueprint')`: lines style, 6px cells, pale blue `#b3c9d8` on navy `#0e1b28`.
883
883
 
884
884
  Prompt:
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×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.”
886
886
 
887
887
  ```ts
888
888
  import { mountStudio, studioLook } from 'asciify-engine/studio';
@@ -899,7 +899,7 @@ Use it for: a playful, typographic take on a colorful subject; posters, merch an
899
899
  Settings: mixed style, 5px cells, source color, contrast 1.2, brightness .15 on `#0b0b0a`.
900
900
 
901
901
  Prompt:
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 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.”
903
903
 
904
904
  ```ts
905
905
  import { mountStudio } from 'asciify-engine/studio';
@@ -920,7 +920,7 @@ Use it for: bold, colorful subjects as shaded block characters, like ANSI art fr
920
920
  Settings: blocks style (` ░▒▓█`), 5px cells, source color at saturation 1.15, contrast 1.1 on `#0b0b0a`.
921
921
 
922
922
  Prompt:
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 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.”
924
924
 
925
925
  ```ts
926
926
  import { mountStudio } from 'asciify-engine/studio';
@@ -941,7 +941,7 @@ Use it for: fine, graphic subjects on black (leaves, feathers, line-like forms)
941
941
  Settings: braille style (` ⠁⠃⠇⡇⣇⣧⣷⣿`), 3px cells, source color at saturation 1.3 on `#0b0b0a`, contrast 1.4, brightness .15, midtones 1.3.
942
942
 
943
943
  Prompt:
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 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.”
945
945
 
946
946
  ```ts
947
947
  import { mountStudio } from 'asciify-engine/studio';
@@ -962,7 +962,7 @@ Use it for: birds, flowers and folk subjects as colored stitches on dark cloth;
962
962
  Settings: cross style (` ·+xX#`), 4px cells, source color at saturation 1.5, brightness .2, contrast 1.2 on indigo cloth `#191d26`.
963
963
 
964
964
  Prompt:
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 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.”
966
966
 
967
967
  ```ts
968
968
  import { mountStudio } from 'asciify-engine/studio';
@@ -983,7 +983,7 @@ Use it for: rain, wind and streaks of light drawn in slanted strokes; moody post
983
983
  Settings: diagonal style (` /╱╳`), 4px cells, `#eef3f5` on blue-black `#10161b`, contrast 1.25, brightness .15, midtones 1.8.
984
984
 
985
985
  Prompt:
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 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.”
987
987
 
988
988
  ```ts
989
989
  import { mountStudio } from 'asciify-engine/studio';
@@ -1004,7 +1004,7 @@ Use it for: iridescent, richly colored subjects (feathers, gems, beetles, fabric
1004
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.
1005
1005
 
1006
1006
  Prompt:
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 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.”
1008
1008
 
1009
1009
  ```ts
1010
1010
  import { mountStudio } from 'asciify-engine/studio';
@@ -1026,7 +1026,7 @@ Use it for: bright, high-key photos as an editorial print; zines, press pages, q
1026
1026
  Settings: `studioLook('print')`: Floyd–Steinberg dither, scale 2, `#1d1c19` on warm paper `#efece4`.
1027
1027
 
1028
1028
  Prompt:
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 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.”
1030
1030
 
1031
1031
  ```ts
1032
1032
  import { mountStudio, studioLook } from 'asciify-engine/studio';
@@ -1043,7 +1043,7 @@ Use it for: a nostalgic, low-fi portrait or pet photo; game and music artwork.
1043
1043
  Settings: `studioLook('handheld')`: Bayer 4×4 ordered dither, scale 2, four graphite tones `#121211 #3e3d39 #8a8880 #dedbd2`.
1044
1044
 
1045
1045
  Prompt:
1046
- “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.”
1047
1047
 
1048
1048
  ```ts
1049
1049
  import { mountStudio, studioLook } from 'asciify-engine/studio';
@@ -1060,7 +1060,7 @@ Use it for: posters, gig flyers and covers with a printed, two-color feel on war
1060
1060
  Settings: `studioLook('riso')`: Atkinson dither, scale 2, paper `#f0ece3` with coral `#c27461` and blue `#3d5068`.
1061
1061
 
1062
1062
  Prompt:
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 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.”
1064
1064
 
1065
1065
  ```ts
1066
1066
  import { mountStudio, studioLook } from 'asciify-engine/studio';
@@ -1079,7 +1079,7 @@ Use it for: a bold, graphic portrait; band posters, covers and dark heroes that
1079
1079
  Settings: dots style, 5px cells, `#e6e3da` on `#0b0b0a`, contrast 1.3, brightness .15.
1080
1080
 
1081
1081
  Prompt:
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 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.”
1083
1083
 
1084
1084
  ```ts
1085
1085
  import { mountStudio } from 'asciify-engine/studio';
@@ -1100,7 +1100,7 @@ Use it for: bright, saturated product and still-life photos as a pop print; pack
1100
1100
  Settings: CMYK style, 5px cells, source color; it always prints on white paper.
1101
1101
 
1102
1102
  Prompt:
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 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.”
1104
1104
 
1105
1105
  ```ts
1106
1106
  import { mountStudio } from 'asciify-engine/studio';
@@ -1117,7 +1117,7 @@ Use it for: a quiet, drawn portrait in fine dots; book covers, editorial portrai
1117
1117
  Settings: stipple style, 4px cells, `#e6e3da` on `#0b0b0a`, contrast 1.35, brightness .2, midtones 1.3.
1118
1118
 
1119
1119
  Prompt:
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 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.”
1121
1121
 
1122
1122
  ```ts
1123
1123
  import { mountStudio } from 'asciify-engine/studio';
@@ -1138,7 +1138,7 @@ Use it for: architecture, portraits and objects as a steel engraving; certificat
1138
1138
  Settings: engraving style, 5px cells, dark ink `#22201c` on paper `#ece8de`, `print.invert: true`, angle −35, weight 1.1, contrast 1.25.
1139
1139
 
1140
1140
  Prompt:
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 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.”
1142
1142
 
1143
1143
  ```ts
1144
1144
  import { mountStudio } from 'asciify-engine/studio';
@@ -1161,7 +1161,7 @@ Use it for: sculpture, portraits and figures drawn in crossing pen lines; editor
1161
1161
  Settings: crosshatch style, 5px cells, `#22201c` on `#ece8de`, `print.invert: true`.
1162
1162
 
1163
1163
  Prompt:
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 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.”
1165
1165
 
1166
1166
  ```ts
1167
1167
  import { mountStudio } from 'asciify-engine/studio';
@@ -1182,7 +1182,7 @@ Use it for: still lifes, fruit, flowers and landscapes as a painted canvas; gall
1182
1182
  Settings: pointillism style, 3px cells, source color, brightness .25, saturation 1.3 on `#0b0b0a`.
1183
1183
 
1184
1184
  Prompt:
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 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.”
1186
1186
 
1187
1187
  ```ts
1188
1188
  import { mountStudio } from 'asciify-engine/studio';
@@ -1203,7 +1203,7 @@ Use it for: landscapes and silhouettes with big tonal masses as a carved woodblo
1203
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.
1204
1204
 
1205
1205
  Prompt:
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 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.”
1207
1207
 
1208
1208
  ```ts
1209
1209
  import { mountStudio } from 'asciify-engine/studio';
@@ -1225,7 +1225,7 @@ Use it for: bright, saturated photos (pools, sport, summer) as a two-screen riso
1225
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.
1226
1226
 
1227
1227
  Prompt:
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 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.”
1229
1229
 
1230
1230
  ```ts
1231
1231
  import { mountStudio } from 'asciify-engine/studio';
@@ -1248,7 +1248,7 @@ Use it for: colorful subjects as separated tiles; gallery walls, covers and calm
1248
1248
  Settings: `studioLook('mosaic')`: mosaic style, 9px cells, source color at saturation .55, contrast 1.05 on `#0b0b0a`.
1249
1249
 
1250
1250
  Prompt:
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 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.”
1252
1252
 
1253
1253
  ```ts
1254
1254
  import { mountStudio, studioLook } from 'asciify-engine/studio';
@@ -1265,7 +1265,7 @@ Use it for: a toy-brick build of a photo; playful posters, kids' and game artwor
1265
1265
  Settings: `studioLook('bricks')`: lego style, 12px studded cells, source color at saturation .55 on `#0b0b0a`.
1266
1266
 
1267
1267
  Prompt:
1268
- “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.”
1269
1269
 
1270
1270
  ```ts
1271
1271
  import { mountStudio, studioLook } from 'asciify-engine/studio';
@@ -1282,7 +1282,7 @@ Use it for: a photo as small isometric blocks; game, 3D and product artwork with
1282
1282
  Settings: `studioLook('voxel')`: voxel style, 12px cells, source color at saturation .5 on `#0b0b0a`.
1283
1283
 
1284
1284
  Prompt:
1285
- “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.”
1286
1286
 
1287
1287
  ```ts
1288
1288
  import { mountStudio, studioLook } from 'asciify-engine/studio';
@@ -1299,7 +1299,7 @@ Use it for: night scenes, music and event artwork as faceted mirror tiles under
1299
1299
  Settings: `studioLook('disco')`: disco style, 11px cells, source color at saturation .5, one soft light at (.35, .25).
1300
1300
 
1301
1301
  Prompt:
1302
- “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].”
1303
1303
 
1304
1304
  ```ts
1305
1305
  import { mountStudio, studioLook } from 'asciify-engine/studio';
@@ -1317,7 +1317,7 @@ Use it for: an eight-bit take on a colorful photo; game, music and avatar artwor
1317
1317
  Settings: pixel style, 6px cells, source color at saturation .85 on `#0b0b0a`.
1318
1318
 
1319
1319
  Prompt:
1320
- “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.”
1321
1321
 
1322
1322
  ```ts
1323
1323
  import { mountStudio } from 'asciify-engine/studio';
@@ -1338,7 +1338,7 @@ Use it for: landscapes, water and skies as hexagonal tiles; calm wallpapers and
1338
1338
  Settings: hex style, 7px cells, source color at saturation .6 on `#0b0b0a`.
1339
1339
 
1340
1340
  Prompt:
1341
- “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.”
1342
1342
 
1343
1343
  ```ts
1344
1344
  import { mountStudio } from 'asciify-engine/studio';
@@ -1359,7 +1359,7 @@ Use it for: cities, stages and night photos as a wall of round emitters; event,
1359
1359
  Settings: LED style, 5px cells, source color at saturation 1.2, contrast 1.1, brightness .2 on `#0b0b0a`.
1360
1360
 
1361
1361
  Prompt:
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×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.”
1363
1363
 
1364
1364
  ```ts
1365
1365
  import { mountStudio } from 'asciify-engine/studio';