Asciigen-wasm
Transform images and video into ASCII art using WebAssembly and WebGPU.
Key Features •
Uses •
Project Structure •
Getting Started •
Sharing API •
Credits
Asciigen-WASM is a zig-to-wasm implementation inspired by @seatedro's Asciigen. The WebGPU version is still experimental.
Key Features
- Image Conversion: Transform images into ASCII art with customizable options
- Text Styling: Convert images to ASCII text with adjustable size and brightness
- Video Processing: Convert videos to ASCII art videos
- Camera Support: Use your device's camera as an input source
- Sharing: Share your creations with others (images < 0.5MB)
- Mobile Support: Fully responsive with pinch and zoom functionality. FFmpeg WASM may crash due to page size limits.
Uses
- Svelte
- WebAssembly (zig-to-wasm)
- WebGPU (experimental)
- Cloudflare Pages
- Cloudflare Turnstile (for sharing api)
- Web Workers
- Offscreen Canvas
- FFmpeg WASM
- Mediainfo.JS WASM
Project Structure
The project is divided into three main components:
- zig-to-wasm: WebAssembly core functionality
- Site: Svelte-based frontend
- Sharing API: Backend for sharing functionality
Getting Started
- Clone the repository
- Navigate to each component's directory for specific setup instructions
- Deploy the site using Cloudflare Pages for a 100% free hosting solution
Sharing API
- Free to use for original images < 0.5MB
- Images are re-rendered into ASCII on the user's device
- Utilizes free GCP credits, Bun + SQLite, and Cloudflare services
- If the server crashes, it crashes 🤷♂️
Credits
Inspired by @seatedro's Asciigen
GitHub •
Twitter