Press Use my camera and allow access. No camera? Pick Demo, or open a photo or video from your device.
Eight looks along the top, or keys 1–8: green terminal, full colour, Braille HD, pencil sketch, Matrix rain, BBS blocks, amber CRT and your own text.
More columns means a sharper picture. Use contrast, dithering and edges to make your face stand out from the background.
Space takes a snapshot, R records a video, F goes fullscreen for a stream or video call.
Download a PNG, plain .txt or colour .html, copy the text or ANSI colour codes, or copy a link that opens with your look.
Each set turns brightness into characters in its own way.
.:-=+*#%@One colour gives the classic monitor look. Full colour paints every character with the colour of that spot in the picture.
These settings do the most for a recognisable face.
| / - \ in the direction of each edgeWhat you see is what you save: glow, scanlines and colours are all in the PNG and the video.
ASCII Webcam turns your webcam into ASCII art in real time. Every frame from the camera is split into a grid of cells and each cell becomes a character: dense characters like @ and # where the picture is bright, light ones like . and : where it is dark. Up to 30 times a second that grid is redrawn, so the text moves with you. It runs entirely in the browser, with nothing to install and no sign-up, on Windows, macOS, Linux, Android and iPhone.
Use it for a retro terminal look on a stream or in a video call, a profile picture made of characters, a music video effect or just to see yourself as the Matrix. No camera? The Demo animation and any photo or video file from your device work the same way.
The frame is scaled down so that every character gets one cell. For each cell the brightness is calculated with the standard luma weights for red, green and blue: Y = 0.299·R + 0.587·G + 0.114·B. That brightness, from 0 to 1, picks a character from a ramp that runs from empty to full. With the 10-step Standard ramp .:-=+*#%@, a skin-coloured cell of rgb(200, 120, 80) has a brightness of 139 out of 255, or 0.55. Multiplied by the 9 steps of the ramp that is 4.9, which rounds to step 5: the character +.
| Brightness | 0 | 0.11 | 0.22 | 0.33 | 0.44 | 0.56 | 0.67 | 0.78 | 0.89 | 1 |
|---|---|---|---|---|---|---|---|---|---|---|
| Character | space | . | : | - | = | + | * | # | % | @ |
Characters are roughly twice as tall as they are wide, so the picture gets about half as many rows as columns would suggest: 110 columns of a 16:9 webcam give 31 rows. The Detailed and Standard ramps are the well-known ramps by Paul Bourke, reversed here because the art is drawn as light characters on a dark screen. On the paper background the ramp flips back, so dark ink stands for dark areas.
The Unicode Braille Patterns block (U+2800 to U+28FF, added in Unicode 3.0 in 1999) has all 256 combinations of a cell of 2 × 4 dots. Instead of one brightness per character, every dot is switched on or off by its own part of the picture, so one Braille character carries eight tiny pixels. At the same width that is eight times as many picture points as a normal ramp. The dots are numbered 1-2-3-7 down the left column and 4-5-6-8 down the right, so a cell with only the top-left and bottom-right dots is U+2881, ⢁. With Floyd–Steinberg dithering Braille HD shows real shading as well as shapes.
A ramp only has a few steps, so soft gradients such as a cheek or a wall turn into bands. Dithering mixes neighbouring steps to fake the levels in between.
The Edges option runs a Sobel filter, the 3 × 3 gradient operator that Irwin Sobel and Gary Feldman presented at the Stanford Artificial Intelligence Laboratory in 1968. It measures how fast the brightness changes horizontally and vertically around every cell. Where it changes a lot (the outline of your face, glasses, hair, hands) the cell gets a line character that follows the direction of the edge: | for vertical, - for horizontal, / and \ for diagonals. Outline only on paper gives a moving pencil sketch; Outline over the fill sharpens any look. Edge sensitivity sets how strong a change must be to count.
In one colour mode every character has the same colour, like the green and amber phosphor monitors of the 1970s and 80s. Full colour gives each character the average colour of its cell, so you keep the real colours while the shapes are made of text. 16 ANSI snaps every colour to the 16 colours of PC text mode (black, the dark and bright versions of red, green, yellow, blue, magenta and cyan, grey and white), the palette of ANSI art on BBSes. Copy ANSI puts the frame on your clipboard with 24-bit colour codes, so pasting it into a terminal (or cat on a file you paste it into) shows it in colour in most modern terminals.
Space or snap stores the frame in the snapshot strip; click a snapshot to save it as a PNG, or ⧉ to copy it as text. Record video captures the ASCII picture itself, including glow and scanlines, as an MP4 when your browser can record that format and as WebM otherwise, for up to 2 minutes. There is no sound in the recording. For a full-quality picture, go fullscreen first: the art is drawn at the resolution of your screen.
Press F and the ASCII picture fills the screen; the screen is kept awake and ◀ ▶ switch looks. In OBS Studio add a Window Capture or Browser source for this tab. In Teams, Zoom or Google Meet, share the browser window or tab. If the picture stutters, lower the width to 80–100 columns: the work grows with the number of cells, and 240 columns of a 16:9 picture is 16,320 cells per frame, against 2,800 at 100 columns, almost 6 times the work.
Pictures made of letters are older than computers. On 15 October 1898 Flora Stacey had a butterfly typed on a typewriter published in The Phonetic Journal, one of the earliest known examples of typewriter art. ASCII itself, the American Standard Code for Information Interchange, was first published in 1963 by the American Standards Association, with 95 printable characters and 33 control codes. In the following decades people printed pictures on line printers, drew them on bulletin board systems and in demoscene and NFO files, and wrote libraries that turn any image into text: AAlib by Jan Hubička (1997) and the colour library libcaca by Sam Hocevar and Jean-Yves Lamoureux (2003), which let media players such as MPlayer and VLC show video in a text terminal. This page does the same thing live, in a browser tab.
Copy link to this look puts your settings in the address, for example ?look=braille or ?cs=text&text=JASPER&color=full. Anyone who opens the link starts with the same characters, colours and effects. The link never contains a picture, only the settings. Your settings are also remembered in this browser for next time.
The camera picture is processed by JavaScript on your own device and never leaves it: there is no server, no upload, no account and no watermark. The browser asks your permission before the camera starts, and the camera light goes off when you press Stop or close the tab. Photos and videos you open are read locally in the same way.
Space snapshot · F fullscreen · P freeze · R record · 1–8 looks · E edges · C colour mode · I invert · M mirror · + / - more or fewer columns · Ctrl+C copy text · Ctrl+S save PNG · ← → looks in fullscreen.
Turn a photo into ASCII with the ASCII art generator or image to ASCII, animate a line of text with the terminal text animator, or let the Matrix screensaver rain. All free tools are on the apps page.