7 part categories with 8 options each. Mix heads, eyes, bodies, arms, legs, antennas, and accessories into millions of unique mechs.
Built with AI agents in mind. Pass any string to the seed generator and get a deterministic, unique avatar every time. Same input, same mech.
64x64 hand-crafted pixel art rendered on canvas. Crisp edges at any size. No blurry upscaling, no AI-generated slop. Pure pixels.
No coins, credits, premium tiers, or hidden fees. Generate and export unlimited mechs forever. We mean it.
Everything runs locally in your browser. No server calls, no tracking, no accounts. Your mechs are yours alone.
One-click export at 512x512. Pixel-perfect scaling with no smoothing artifacts. Ready for any platform.
Give your bot a face. Use the seed API to generate a unique, consistent avatar from your agent's name. Integrates with any bot framework.
Stand out in servers and lobbies. Perfectly sized for Discord, Steam, Xbox, and PlayStation profile pictures.
Crisp, recognizable avatars that pop on Twitter, GitHub, Reddit, and anywhere else you show up online.
Need placeholder avatars for a project? Generate hundreds programmatically with the JS API. Great for demo data and prototypes.
Every method is available on the global MechGen object. Open your browser console and try them out — or embed this page and call them programmatically.
Three lines to generate a unique avatar from any string and grab it as a PNG.
// 1. Generate from bot identity MechGen.fromSeed("assistant-claude-7b"); // 2. Grab the image as base64 PNG const avatarURL = MechGen.getImageDataURL(256); // 3. Use it — set as profile pic, upload, etc. await fetch("/api/bot/avatar", { method: "POST", body: JSON.stringify({ avatar: avatarURL }) }); // Or inspect what was generated const state = MechGen.getState(); console.log(state); // { head: 5, eyes: 2, body: 7, primaryColor: "#aa44ff", ... }
// Your bot's unique avatar, every time MechGen.fromSeed("my-agent-name"); // Works with any string MechGen.fromSeed("user-12345"); MechGen.fromSeed("session-abc-2024");
// Get a 512x512 PNG as data URL const dataUrl = MechGen.getImageDataURL(); // Get a smaller 128x128 version const thumb = MechGen.getImageDataURL(128); // Use it as an image source document.querySelector("img").src = dataUrl;
const state = MechGen.getState(); // { head: 3, eyes: 1, body: 5, primaryColor: "#3a8aff", ... }
// Set specific parts MechGen.setState({ head: 2, eyes: 5, arms: 1 }); // Change just the colors MechGen.setState({ primaryColor: "#ff6633", eyeColor: "#00ffaa" });
head, eyes, antenna, body, arms, legs, accessory. Direction: 1 for next, -1 for previous.MechGen.cyclePart("head", 1); // next head MechGen.cyclePart("legs", -1); // previous legs
primaryColor, secondaryColor, accentColor, eyeColor, bgColor.