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