Cyberpunk-styled ASCII art generator for images, videos and webcam streams. 100% client-side.
Inspired by ASCII, reimagined with a Neo-Tokyo aesthetic: neon glow, scanlines, glitch text, and Share Tech Mono.
Click the button above to deploy your own copy in less than a minute.
The repo ships with a vercel.json, so Vercel auto-detects Vite and you don't need to configure anything.
- Drag & drop image upload (PNG / JPG / WEBP / GIF).
- Video upload with frame-by-frame conversion (MP4 / WEBM).
- Live webcam ASCII stream.
- Resolution slider (32–300 columns).
- Brightness, contrast, saturation, blur sliders.
- Sobel edge detection with adjustable threshold.
- Floyd-Steinberg dithering for high-detail output.
- Color / mono / inverted modes.
- Configurable background and foreground colors.
11 ramps: standard, detailed, blocks, binary, minimal, matrix, cyberpunk, glitch, braille, shades, and custom (type your own ramp).
- Adjustable font size (zoom).
- Live preview with cyberpunk styling.
- Fullscreen mode.
- Copy text to clipboard.
- Download as
.txt. - Download as
.html(with inline color preserved). - Download as
.png(rendered to your chosen colors). - Open standalone preview in a new tab.
- Record live ASCII video to
.webm(works for video files and webcam).
Zero backend, zero tracking, zero uploads. Everything runs in your browser using the Canvas 2D API.
| Layer | Tool |
|---|---|
| Build | Vite 5 |
| UI | React 18 + TypeScript |
| Styling | Tailwind CSS + custom cyberpunk theme |
| Icons | lucide-react |
| Image processing | Canvas 2D + custom Sobel / Floyd-Steinberg |
| Video recording | MediaRecorder + canvas.captureStream() |
npm install
npm run devnpm run build
npm run previewThe dist/ folder is fully static and can be deployed to any free host
(Vercel, Netlify, GitHub Pages, Cloudflare Pages).
src/
├── components/ UI: Header, Dropzone, ControlPanel, MediaStage, AsciiViewer, ExportBar, GlitchText
├── lib/ asciiConverter, charsets, exporters, loadMedia, videoRecorder
├── styles/ Cyberpunk theme (neon, scanlines, glitch)
├── App.tsx
└── main.tsx
MIT