# ascii.cafe: full agent and developer reference > Browser workflows, settings keys, engine options and export limits. Generated from the product overview and the reference records used by /devs. Read [the overview](https://ascii.cafe/llms.txt) for a shorter introduction or [the developer reference](https://ascii.cafe/devs) for interactive examples. The tables below share the website's reference data; implementation takes precedence if a description disagrees with runtime behavior. This document describes browser use, not a hosted rendering API. ## Product overview > Turn images, video, your camera and your screen into living ASCII, glyph, halftone and dither art in the browser. ascii.cafe is an interactive art workspace at /app, with a live playground, presets and curated artwork on the homepage. Rendering and file exports happen locally. Visitors do not need an account to create or export artwork. Optional feature submissions upload a rendered creation only after consent; original files are not uploaded, though enabled original backgrounds contribute rendered pixels. ### For AI agents Agents are welcome to use ascii.cafe to create artwork for users. Agents with browser-control tools can operate the same /app workspace, edit settings, and export within the active plan's limits. No account is needed for the free workflow. 1. Read the [settings reference](https://ascii.cafe/devs#links) for supported keys and values. 2. Open a configured workspace. For example, [a Terminal-colored sphere](https://ascii.cafe/app?v=1&s=orbit-sphere&cw=terminal&lv=8) starts with a procedural source and requires no media file. 3. Use the labeled controls to adjust the look, or import a settings link or JSON through Configuration. For user media, choose a supplied file or load a CORS-enabled public address, then wait for the source to render. 4. Use Export PNG, Copy as Text, Make GIF or Make MP4 as available. Wait for export completion and retrieve the resulting download or clipboard content through your browser tools. 5. Return the artwork and, when useful, its settings link. Explain that the link preserves the look but does not include local source media. A text-only agent can prepare a settings link for the user to open. Rendering and export require a browser with canvas and the relevant media capabilities. The engine API documented at /devs is a browser JavaScript API, not a hosted rendering endpoint. There is no documented public rendering REST API or MCP service. Camera and screen capture still require browser permission and a user action. Purchases, license activation and optional feature submissions follow the user's authorization; a request to create or export artwork does not itself request publication. ### Sources and workspace - Open or drag in an image or video, paste from the clipboard, or load a public media address. Remote media must allow browser access through CORS. - Preview a webcam or screen share after a user action and browser permission. Screen share requires a supported desktop browser; images, clips and camera work on supported mobile browsers. - Examples offer photo recipes, video clips and moving fields across all seven mark styles, with a suggested adjustment, Next Example and Reset Example. Loading one keeps your canvas size and replaces the look and animation. - Start without a file using built-in examples or procedural fields: Sphere, Donut, Jellyfish, Galaxy, Contour terrain, Bloom, Vortex, Drape, Weather, Merge, Converge, Dispatch and Sweep. A thought phrase seeds procedural imagery; this is not an AI image-generation service. - Images accept up to 32 MB and are scaled to a 2048-pixel long edge for rendering. Clips accept up to 512 MB. Playback performance depends on the device and source. - The mobile workspace places the preview above scrolling controls, with Expand Preview, Show Controls and Export shortcuts. The shared stage stays mounted across workspace layout changes so active media can continue. ### Editing controls The panel order is Configuration, Source, Examples, Algorithm, Colors, Knobs, Motion, Remove Colors, Layout, Developer, Animation and Export. Source-specific groups appear when applicable. - Algorithm: Characters, Halftone, Dither or Lines. Characters offers Alphabet and Text Portrait; Text Portrait repeats up to 96 characters with size and weight shaped by source tone. Alphabet uses presets or a custom ramp of up to 16 characters, ordered darkest to brightest. Leading spaces matter. Lines offers Engraving, Flow and Contour, with vertical or horizontal strokes without rotating the source. Halftone can vary disc brightness as well as size. - Colors: built-in colorways, custom ink, ink opacity, multitone palettes, foreground gradients, solid or gradient backgrounds, and Show Original Background with opacity. - Knobs: cell density and aspect, levels, contrast, brightness, dither and inversion. - Motion: source-dependent speed, pulse and redraw cadence. Clips also have playback controls. - Remove Colors: remove colors from the effect, original background, or both, with independent effect and background color lists, per-color tolerance controls and a removal preview. - Layout: Fit, Canvas Size, then Mat Inset. Canvas Size can follow the workspace (Auto) or use custom width and height in even pixels from 64 to 3840, with an area limit of 3840 x 2160. The preview scales to fit. Stage export uses the measured canvas pixels; export plan limits still apply. Settings links use cs=WIDTHxHEIGHT or cs=auto. - Developer: freely preview cursor halo and click ripples, including halo radius and ripple color. These are interactive page effects; PNG, GIF and MP4 exports do not carry them. - Animation: choose one motion at a time, adjust intensity and speed, and replay one-shot reveals. Groups are Motion, Color, Texture and Reveal. Options include Breathe, Jelly, Heartbeat, Shake, Wander, Color Cycle, Color Shimmer, Aurora, RGB Split, Shimmer, Flicker, Glow, Scanlines, Glitch, Code Glitch, Rain, Wave, Contour Wave Motion, Wavy Lines, Spotlight, Reveal, Focus, Typewriter and Wipe. Supported animations carry into rendered exports. Wander is a stage-only simulated pointer. Reduced-motion preferences disable the workspace animations and omit them from exports. ### Settings and saved looks Copy a settings link, import a link or query string, import/export settings as JSON, save one configuration on the current device, or reset the workspace. Pro adds multiple named Saved Looks. Settings links reproduce a look, not the visitor's local image or video. A public media URL can be included with the u key. Links use v=1 and URL-encoded values; default settings are omitted. Settings files include defaults. Unknown keys are ignored and numeric values are clamped. The developer reference documents the supported keys and values. ### Exports and plans - Forever Free ($0): all sources, built-in presets and alphabets; clean PNG up to 1080p; copy a frame as real text; GIF up to 1080p, six seconds and 30 fps with a small ascii.cafe stamp. Webcam and screen-share preview and stills are free; recording live sources requires Pro. - Monthly Pro ($8 per month): clean MP4 up to two minutes and clean GIF up to 30 seconds, PNG and motion export up to 4K, up to 60 fps with 4K capped at 30 fps, webcam/screen recording, and Saved Looks. Cancel any time. - Lifetime Pro (V1): $49 early bird, with an advertised $69 launch price. One payment for V1 Pro features and V1 updates, excluding major version upgrades. - Day Pass ($4): 24 hours of Pro on one device. Offered at the export upgrade step rather than on the main pricing board. Copy Image also places a PNG on the clipboard where the browser supports it. PNG and copied text never carry a watermark. Pro motion exports are clean. Exported artwork can be used commercially on every plan without attribution. Export sizes are Stage, 720p, 1080p and 4K, subject to plan limits. Dimensions preserve the artwork's aspect ratio. Live recordings use the stage size. Live stills can downsample to 1080p to meet free export limits. Motion length is a frame budget rather than a flat number: one run may ask for at most 7200 frames, so a higher frame rate buys fewer seconds, and 4K is capped at 30 fps because two minutes of 4K at 60 fps does not encode reliably in a browser tab. A long export keeps running while its tab is in the background; closing the tab stops it. MP4 availability depends on browser encoder support; memory and device performance can lower practical export limits. PNG supports a transparent background; MP4 uses an opaque background. See the developer reference for exact export behavior. Paid plans use hosted checkout and a license key pasted into the workspace. Checkout opens separately so an active camera or screen share can continue. Developer licenses and Pro export access are separate entitlements. ### Developer reference and availability The /devs reference covers settings links, integration patterns, source handling, interaction and motion, the engine API and lifecycle, ASCII captures, export limits and troubleshooting. The rendering engine uses Canvas 2D and is a single JavaScript file with no runtime dependencies. The documented Developer License is $39 once per website or project, for commercial embedding without required attribution. With an active validated Developer key, Developer > Download ZIP supplies Artwork.jsx, standalone index.html, the player modules, artwork.json, and Setup.pdf. Bake Frames captures 1 to 30 seconds at 32 fps. Include Original Asset bundles the full image or video and renders it live; generated fields and live feeds use baked frames. Keep all ZIP files together for React or module integration. The standalone HTML embeds its dependencies and artwork for offline playback. Halo and ripples stay interactive. Live baking requires a visible tab. Checkout availability depends on the selected catalogue. Example engine filenames in the reference are local package filenames, not public CDN URLs. Pro exports do not grant a license to embed the engine. The setup guide documents the 128 MB original-asset limit, the 32-million-cell bake limit, transparent baked backgrounds, layout preservation and troubleshooting. Read [Setup.pdf](https://ascii.cafe/developer/Setup.pdf) before integrating. Include Original Asset places the original media in your exported package; only distribute media you are authorized to share. ### Privacy and measurement Optional Google Analytics and performance measurement require consent. Developer ZIP attempts, successes, failures and cancellations are instrumented, along with reference copy outcomes and document-link clicks. Measurement distinguishes homepage and workspace activity, coarse device plan, preview visibility/selection/interaction, source attempts, export destinations, tool choices, help opens and observed route or visibility checkpoints. These signals do not prove confusion, abandonment or a new purchase. A document click is navigation intent, not confirmed download completion. Embedded developer players do not install the website analytics tag. ### Optional feature submissions When submissions are enabled, Request to feature lets visitors submit an interactive creation from their current canvas. It includes a six-second loop of ASCII text grids, playback settings, a cover preview, chosen public name, optional website or social link, and explicit permission. Original files are not uploaded, but Show Original Background includes rendered source pixels as bounded JPEG frames. Review the preview before consenting. Static PNG submissions and arbitrary file uploads are not offered. The captured grid retains its density in preview and pointer effects remain interactive. Submissions stay private until an administrator approves and publishes them. Declining a submission does not affect exports. Local export and optional publication are separate actions. ### Homepage and editorial content The homepage combines a live art playground, a preset menu, feature demonstrations, plan comparisons, a developer section, FAQs and a curated showcase. House artwork and selected submissions can open in the workspace. Selected X and Pinterest posts are editorial choices, not an automatic social feed. An authenticated content studio manages the menu and showcased content. The visual identity uses a lowercase monospace ascii.cafe wordmark, a contrasting pink dot, midnight and paper surfaces, and a capture-frame favicon. The homepage uses a playful cafe voice; the workspace uses plain tool labels and statuses. Reduced motion is respected. ### Links - [Full agent and developer reference](https://ascii.cafe/llms-full.txt): settings keys, engine options and methods, workflows, and export limits. - [Homepage](https://ascii.cafe/): live playground, preset menu, plans, FAQ and curated artwork. - [Workspace](https://ascii.cafe/app): create, edit, save settings and export artwork. - [Developer reference](https://ascii.cafe/devs): integration guides, settings keys, engine API, captures and export limits. - [Developer setup PDF](https://ascii.cafe/developer/Setup.pdf): React, HTML, playback modes, backgrounds, limits and troubleshooting. Mark motion: Shimmer, Spotlight, Code Glitch, Flicker, Scanlines, Breathe, Heartbeat, Focus and Wipe affect Characters with Alphabet style. Wave and Jelly bend Characters with Alphabet style and connected Lines, including Contour in either direction. Examples and Animation menus preview a candidate independently before selection. Plain text exports retain the base character grid; position changes and glow require a pixel or developer export. Animation compatibility: unavailable choices stay visible but cannot be selected. Switching algorithm or alphabet clears an incompatible active animation. Glow works across all algorithms, lighting pockets of the existing marks. Flicker changes small glyph clusters; Scanlines sweeps through glyph rows without painting over the background. Animation menu previews render the current artwork in a separate local renderer. Images and live media use current source frames; procedural sources retain their field and phase. Previewing never changes the stage or requests camera or screen permission. Breathe changes individual character weight and size on a fixed grid. Jelly sends a spring motion through marks and connected lines. Heartbeat sends two outward pulses through glyph strokes. Wander uses local non-bubbling pointer events, so its simulated clicks do not dismiss menus or count as user input. Contour Wave Motion sends one broad crest through existing contour strokes, left to right for vertical lines and bottom to top for horizontal lines. Wavy Lines sends rolling bends along those strokes. Contour Wave Motion requires Lines with Contour style; Wavy Lines also supports Characters with Alphabet style and other Lines. Focus settles displaced characters into the source picture; Wipe builds characters in staggered columns. Both are one-shot effects on Characters with Alphabet style. ## Workspace settings reference Use https://ascii.cafe/app as the base. Build queries with URLSearchParams, including v=1 whenever settings are supplied. Spaces and literal plus signs in ramps must be encoded. Links omit defaults; JSON settings exports include them. Settings JSON uses these URL keys and string values, not engine option names. Local files and permission grants are never embedded in settings. | Key | Purpose | Values | Default | | --- | --- | --- | --- | | v | The link's schema version. Present whenever any other key is. A link omits every key at its default; a settings file and the save on this device write every key that applies, defaults included, and the same reader takes both. | 1 | absent on a bare link | | s | The moving field on the stage. | cafe-cup, orbit-sphere, cafe-donut, cafe-jellyfish, cafe-galaxy, cafe-terrain, cafe-bloom, cafe-vortex, drape, plasma, merge, converge, dispatch, sweep | none (the empty stage) | | t | The seed phrase a field is drawn from. The same phrase always draws the same motion. | 1 to 80 characters | a slow tide | | ex | A ready-made example: its source and its whole look. Any other key in the link lands on top of that look. A field example also writes s and t; a picture or video example is named by this key alone. | type-portrait, camera, paper-etching, prism-flow, coast-lines, photo-overlay, vinyl, moving-dots, terminal-donut, weather, jelly-glow, sweep, dispatch | none | | u | A public address the picture or video is fetched from, by the visitor's browser. | an http or https address, URL-encoded | none | | mk | The algorithm and line or text style. | g (Characters), d (Halftone), x (Dither), l (Engraving), f (Flow), t (Contour), w (Text Portrait) | g | | r | The alphabet, darkest character first. One character fills every cell and the colors carry the picture; a leading space leaves the darkest cells empty. | 1 to 16 characters, URL-encoded | ·K■| | | ld | Line direction | v (Vertical), h (Horizontal) | v | | txt | Repeating portrait text | 1 to 96 characters | stay curious keep looking | | lv | How many brightness levels the picture is cut into. | 2 to 16 | 5 | | cw | A ready-made colorway for the marks and the background. | mocha, pink, matcha, blue, white, snow, paper, ocean, latte, amber, terminal, rose, violet, mint, slate, lava, arcade, solar, voltage, signal, cobalt, citrus, sherbet, thermal, prism | white | | im | Foreground color mapping | t (brightness tones), g (spatial gradient) | t | | ia | Foreground gradient angle | 0 to 360 degrees; 90 runs left to right | 90 | | ink | A custom foreground color. Present instead of cw. | six hex digits, no # | the colorway's ink | | fa | The foreground's opacity, single ink only. | 10 to 100, steps of 5 | 100 | | bg | A custom background color. | six hex digits, no # | the colorway's ground | | pal | Tones: one color per brightness level, darkest first. Present instead of cw. | 2 to 16 six-digit hex stops, comma separated, no # | none | | cell | Density, as a multiplier on the cell size. Higher is finer. | 0.35 to 1.25, two decimals (the slider moves in steps of 0.05) | 0.62 | | c | Contrast. | 0.6 to 2, steps of 0.05 | 1.15 | | b | Brightness, applied before the levels are cut. | -0.5 to 0.5, steps of 0.01 | 0 for pictures and streams, -0.15 for fields, -0.12 for the empty stage | | dt | Dither, an ordered pattern between levels. | 0 to 1, steps of 0.05 | 0 | | inv | Invert: swap dark and bright. | 1 when on, 0 when off | off | | sp | Speed of a moving field or a video. | 0.25 to 3, steps of 0.05 | 1 | | pu | Pulse, a slow brightening and dimming of the whole picture. | 0 to 1, steps of 0.05 | 0 | | loop | Whether a video loops. | 0 when off, 1 when on | on | | an | A ready-made animation that runs on the stage and in GIF, MP4 and PNG files. One at a time. | breathe, jelly, beat, shake, wander, cycle, hues, aurora, split, shimmer, flicker, glow, scan, glitch, rain, cascade, contourwave, wave, spot, code, reveal, focus, type, wipe, center | none | | ai | How far the animation moves from your settings. Only with an. | 0 to 100, steps of 5 | 60 | | as | How fast the animation runs. Only with an. | 0.25 to 3, steps of 0.05 | 1 | | key | Source colors to remove from the selected layers (kr). | up to 16 six-digit hex values, comma separated, no # | none | | bk | Source colors removed from the original background independently of the effect | up to 16 six-digit hex values, comma separated, no # | none | | kc | Per-color effect tolerance overrides | JSON object mapping six-digit hex colors to values from 0 to 0.6 | none | | bc | Per-color original-background tolerance overrides | JSON object mapping six-digit hex colors to values from 0 to 0.6 | none | | bt | Tolerance for colors removed from the original background | 0 to 0.6, steps of 0.005 | 0.18 | | kt | How close a color has to be to a removed color to count. Only with key. | 0 to 0.6, steps of 0.005 | 0.18 | | see | See-through background: empty and removed cells are transparent in PNG and GIF files. | 1 when on, 0 when off | off | | asp | Cell aspect, the width of a cell relative to its height. | 0.5 to 1.6, steps of 0.05 | 1 | | cs | Canvas size in pixels. Auto follows the workspace; custom dimensions scale to fit the preview. Stage export uses the canvas size. | auto or WIDTHxHEIGHT, even integers from 64 to 3840, at most 8294400 pixels | auto | | mat | Mat inset, an empty margin around the picture in percent of the stage. | 0 to 14 | 0 | | fit | How a picture fills the stage: fill it, or match its width or its height. | c (Fill), w (Width), h (Height) | fill | | kr | Remove matching source colors from the effect, original background, or both | effect, background, both | effect | | ob | Show the original image or video behind the marks, using the same crop and fit | 0 or 1 | 0 | | bo | Opacity of the background color or gradient, independent of the marks | 0 to 1, steps of 0.01 | 1 | | oa | Original background opacity over the solid or gradient background | 0 to 1, steps of 0.01 | 1 | | bm | Background mode | solid, linear, radial | solid | | bp | Background gradient stops, evenly spaced | 2 to 5 comma-separated six-digit hex colors | 101828,312e81 | | ba | Linear background angle, clockwise from up | 0 to 360 degrees | 90 | | fps | Cadence: how many times a second the stage redraws. | 4 to 60 | 16 | | dv | Halftone only: brighter cells draw a brighter disc as well as a bigger one. | 1 when on, 0 when off | off | | halo | Cursor halo, the brightening under the pointer. | 0 when off, 1 when on | on | | hr | How far the halo reaches from the pointer. | 0.05 to 0.8, steps of 0.01 | 0.05 | | rip | Click ripples. | 0 when off, 1 when on | on | | rc | The ripple's own color instead of the colorway's stops. | six hex digits, no # | the colorway's ripple stops | | rs | Click ripple size, relative to the base ring. | 0.05 to 4, steps of 0.05 | 1.5 | | rp | Custom ripple colors, weak to strong. | 2 to 5 six-digit hex stops, comma separated, no # | the colorway ripple stops | ### Working settings examples ```javascript const query = new URLSearchParams({ v: "1", s: "orbit-sphere", cw: "terminal", lv: "8", }); const workspaceUrl = `https://ascii.cafe/app?${query}`; ``` [Open the sphere example](https://ascii.cafe/app?v=1&s=orbit-sphere&cw=terminal&lv=8). To prepare halftone for a user's own image, use [this look](https://ascii.cafe/app?v=1&mk=d&lv=8&cw=amber), then choose the image through Source. ## Engine integration The documented constructor is GlyphRaster, with the local package filename glyph-raster.js. The Developer ZIP supplies this ES module and a captured-artwork player. These are local package paths, not a public CDN. Give the container a nonzero size and construct the engine only in a browser after mount. ### ANY PAGE With a supplied licensed engine file, mount it in a sized element. ```html
``` ### REACT COMPONENT Download the Developer ZIP and import Artwork.jsx into a client component. Keep the complete folder together. ```jsx // supplied licensed component import Pour from "./Artwork.jsx"; export function Hero() { return