~/ascii-webcam ☀ LIGHT ☕ Support me apps ← about me

ASCII Webcam — live camera to ASCII art_

Watch yourself turn into moving text art, in real time. Eight looks from green terminal to full-colour, Braille HD, pencil sketch and Matrix rain. Snapshots, PNG, colour text, HTML and video recording. Nothing is uploaded.
🔒 camera stays on your device⚡ 30 fps in the browser🎥 record MP4 / WebM⠿ real Braille 2×4 dots
● DEMO — REC 0:00
This is the demo animation.
Your camera picture never leaves this device.

Guide — you, in ASCII, in under a minute

No install, no account, no upload. Your camera picture is turned into text on your own device.
1Start your camera

Press Use my camera and allow access. No camera? Pick Demo, or open a photo or video from your device.

2Pick a look

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.

3Tune the detail

More columns means a sharper picture. Use contrast, dithering and edges to make your face stand out from the background.

4Catch the moment

Space takes a snapshot, R records a video, F goes fullscreen for a stream or video call.

5Save or share

Download a PNG, plain .txt or colour .html, copy the text or ANSI colour codes, or copy a link that opens with your look.

What is in here

CHARACTERS Eight ways to draw with text

Each set turns brightness into characters in its own way.

Detailed
70 characters, the smoothest shading
Standard
10 bold steps: .:-=+*#%@
Blocks
░ ▒ ▓ █ shades, the BBS look
Braille HD
8 dots per character, the sharpest
Binary · Matrix
1s and 0s, or falling katakana
Your text
Your name or message builds the picture
COLOUR One colour, full colour or 16 ANSI

One colour gives the classic monitor look. Full colour paints every character with the colour of that spot in the picture.

One colour
Green, amber, cyan, white, pink, purple, red or yellow
Full colour
The real colours of your video
16 ANSI
Snapped to the 16 colours of old text-mode PCs
Background
Terminal dark, pure black or paper with dark ink
DETAIL Sharper, cleaner, more graphic

These settings do the most for a recognisable face.

Width
24 to 240 columns
Auto levels
Uses the full range from black to white, even in a dim room
Dithering
Bayer or Floyd–Steinberg for smooth gradients
Edges
Outlines drawn with | / - \ in the direction of each edge
Effects
Phosphor glow and scanlines
SAVE Keep it, share it, stream it

What you see is what you save: glow, scanlines and colours are all in the PNG and the video.

Snapshots
Up to 12 in a strip below the picture
Video
MP4 or WebM, up to 2 minutes
Text
.txt, colour .html, or ANSI codes for a terminal
Link
Opens the page with your exact look
Fullscreen
Screen stays on; ◀ ▶ switch looks

A live ASCII art webcam in your browser

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.

How a camera picture becomes ASCII art

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 +.

Brightness00.110.220.330.440.560.670.780.891
Characterspace.:-=+*#%@

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.

Why Braille HD is so sharp

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.

Dithering: smooth shading with few characters

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.

Edge detection: a moving pencil sketch

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.

Colour modes

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.

Record a video or save a snapshot

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.

Use it on a stream or in a video call

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.

A short history of ASCII art

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.

Share your look as a link

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.

Private by design

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.

Keyboard shortcuts

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.

More text-art tools

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.

🖼 ASCII Art GeneratorAny image to ASCII art, PNG or text 🔡 Image to ASCIIStudio for photo-to-text art ⌨ Terminal Text AnimatorTypewriter and glitch text effects 🟩 Matrix ScreensaverDigital rain, fullscreen 🧰 All free tools →Every app on jasperbernaers.com