asciigen-wasm

Generate ASCII images, text, and videos locally in your browser.

MIT License

Stars
1
Committers
2

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:

  1. zig-to-wasm: WebAssembly core functionality
  2. Site: Svelte-based frontend
  3. Sharing API: Backend for sharing functionality

Getting Started

  1. Clone the repository
  2. Navigate to each component's directory for specific setup instructions
  3. 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