About

ASCIIVERT converts images, video and text into ASCII art. It runs entirely in the browser, with no account, no upload and no watermark.

Your files stay on your device

There is no server-side processing and no upload step. Files are read as local object URLs, decoded by the browser, and converted on the canvas. Nothing is transmitted anywhere.

A practical consequence: once the page has loaded, the converter works offline. It also means conversion speed depends on your machine rather than on a queue.

Browser support

Image conversion works in any current browser. Video conversion needs MediaRecorder and canvas capture — that means Chrome, Edge, Firefox and recent Safari.

Video export produces WebM where available and MP4 on Safari. Playback uses requestVideoFrameCallback where supported, which converts exactly one ASCII frame per decoded video frame; browsers without it fall back to the animation frame clock.

Limits worth knowing

Video export runs in real time. A 30-second clip takes about 30 seconds to record. Keep the tab visible — browsers throttle background tabs and you will lose frames.

Shape mode is for stills. It compares every cell against a shortlist of glyph outlines, which is far more work per cell than brightness mapping. It is excellent on photos and too slow for smooth video.

Grids are capped. Each render mode has a cell budget, so pushing the column count past a certain point scales the grid back rather than freezing the tab. The stats bar always shows the grid you actually got.

Braille and block characters need font support. Most systems have it. If those modes render as empty boxes, your system is missing a font with that coverage.

Built with

Next.js and TypeScript, with the conversion engine written as a standalone module of plain typed-array code — no rendering library, no WebAssembly, no dependencies beyond the framework itself. Output is composited into an ImageData buffer rather than drawn with per-character text calls.

The pipeline is documented step by step on the How It Works page.

Tips for a better result

Raise contrast first. A flat image maps into a narrow band of characters and looks muddy. Contrast is the single most useful control on the panel.

Then sharpness. The downscale averages away fine detail before it can pick a character. Sharpening pulls it back into the tonal range.

Fix the aspect if it looks off. Characters are about twice as tall as they are wide, but that varies by font. If the result looks squashed or stretched, adjust Character Aspect.

Detail and export size are different things. Detail controls how many characters there are. Export character size controls how large each one is drawn. For a crisp, readable file, keep detail moderate and raise the export character size.

Open the converter