mesh-avatar-studio
Turn one illustration into an animated 2D mesh avatar with a coding agent and a local editor
Convert and compress images in the browser without uploading files
AI summary · README
DesignJavaScript · CSSGitHub @raki1268OnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
No updates detected yet. GitHub releases will appear here.
Owners of public repositories under a personal GitHub account can sign in to verify ownership and manage the introduction themselves. No administrator approval is needed.
Sign in, generate a verification file, and commit it to this repository’s default branch within 30 minutes. Files on other branches or forks do not count. Then check the file below to manage the project without administrator approval. Keep the file to retain your access.
If needed, you will go to sign-in. After signing in, return here and press your chosen verification button again.
Run /nomorevibe verify in your project folder to verify ownership and manage the introduction yourself.
Verify in one minuteAsk about other verification options
Loading the full README. The saved excerpt is shown below.
A lightweight, client-side image processing tool. All processing happens in the browser — no uploads, no accounts, no tracking.
After processing a batch you don't need to download immediately. Click Continue → to push all results into a persistent staging tray anchored below the navigation bar. The tray:
• Shows image thumbnails for every file
• Persists when you switch tools
• Lets you load a single file (click its thumbnail) or all files at once (Load all ↓) into the next tool
• Can be repeated as many times as needed before a final downloadRead the full README ↗A lightweight, client-side image processing tool. All processing happens in the browser — no uploads, no accounts, no tracking.
Live: pineapplepicturetool.vercel.app
| Tool | Description |
|---|---|
| HEIC Convert | Convert Apple HEIC / HEIF images to JPG (default), PNG or WebP. Safari uses the system decoder; other browsers use a bundled libheif WASM decoder that runs in a Web Worker. |
| Compress | Reduce file size with format (JPG / PNG / WebP), quality slider (1–100), and optional resize in the same step. |
| Format Convert | Convert between PNG, JPG, and WebP. |
| Remove EXIF | Strip all metadata — GPS location, device info, timestamps — from JPG and PNG files. |
| Resize | Resize by fixed pixel dimensions (with optional aspect-ratio lock) or by percentage. |
| Crop | Crop to common aspect ratios (1:1, 4:3, 3:4, 16:9, 9:16). Single-file mode shows a draggable canvas preview; batch mode auto-center-crops. |
| Rotate / Flip | Rotate 90° CW / CCW / 180°, flip horizontal, flip vertical. |
| Brightness | Adjust brightness and contrast with live CSS-filter preview on the first file. |
| Batch Rename | Rename output files with a custom pattern. Use {n} for auto-incrementing numbers and {original} for the original filename stem. If {n} is omitted, numbers are appended automatically. |
After processing a batch you don't need to download immediately. Click Continue → to push all results into a persistent staging tray anchored below the navigation bar. The tray:
.ziplibheif-js — HEIC / HEIF decoding (libheif WASM)piexifjs — JPEG EXIF strippingjszip + file-saver — ZIP downloadreact-dropzone — drag-and-drop input@vercel/analytics — page view trackingAll canvas-based tools (Compress, Convert, Resize, Crop, Rotate/Flip, Brightness) automatically correct image orientation. The app parses the EXIF Orientation tag directly from raw bytes — both JPEG (APP1 marker) and PNG (eXIf chunk) — then bakes the rotation into canvas pixels before export. Output files are always correctly oriented regardless of output format.
npm install
npm run dev
Build for production:
npm run build
/ebook)A separate page: ebook format conversion (PDF / Word / EPUB / TXT … → AZW3 / EPUB / MOBI / PDF / DOCX / TXT), plus a list of legal places to find and buy ebooks. Unlike the picture tools, conversion runs on a server — Calibre is far too big for the browser or a Vercel function.
Conversion is paused (since 2026-10): the server is offline, so the page shows only the book-finder plus a notice with a copyable prompt for resuming the work (src/ebook/ConvertPaused.jsx). Flip CONVERT_PAUSED in src/ebook/EbookPage.jsx once a new host is up.
src/ebook/ — the page (lazy-loaded; the picture tool never downloads it). Channel list: src/ebook/channels.json.ebook-service/ — Docker + FastAPI wrapper around Calibre's ebook-convert, not deployed right now. See its README.tools/pdf2kindle.py — offline alternative: converts a folder of PDFs with the local Calibre and copies them onto a USB-mounted Kindle.When conversion is on, the page password is the service's API_KEY. Point the frontend at the service with VITE_EBOOK_API (see .env.example).
Pineapple color palette — golden yellow #F5C518, forest green #3A6B4A, warm cream background. Diamond crosshatch CSS pattern inspired by pineapple skin texture.
Copyright © 2026 Raki · [email protected]
Personal & non-commercial use only. You may use, copy, and modify this project for personal or educational purposes. Commercial use of any kind — including selling, sublicensing, or building a paid service on top of this code — is prohibited without explicit written permission from the copyright holder. See LICENSE for full terms.
Background removal · filters / presets · watermarking · collage / merging · server-side image processing