Mech Gen
$0
100% Free Forever
10M+
Unique Combinations
0kb
No Data Collected
COMBOS: —
SEED: —
↧ Export for Socials
Bot Mode
Enter any string (like a bot name) to deterministically generate a unique mech. Same input always produces the same mech.
10,000,000
Unique Mechs
7
Part Categories
70
Swappable Parts
0
Data Stored

Why mechgen.app

Built Different

10M+ Combinations

7 part categories with 8 options each. Mix heads, eyes, bodies, arms, legs, antennas, and accessories into millions of unique mechs.

Bot-Native

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.

True Pixel Art

64x64 hand-crafted pixel art rendered on canvas. Crisp edges at any size. No blurry upscaling, no AI-generated slop. Pure pixels.

100% Free

No coins, credits, premium tiers, or hidden fees. Generate and export unlimited mechs forever. We mean it.

🔒

Privacy First

Everything runs locally in your browser. No server calls, no tracking, no accounts. Your mechs are yours alone.

PNG Export

One-click export at 512x512. Pixel-perfect scaling with no smoothing artifacts. Ready for any platform.


Use Cases

Deploy Your Mech

🤖

AI Agent Avatars

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.

🎮

Discord & Gaming

Stand out in servers and lobbies. Perfectly sized for Discord, Steam, Xbox, and PlayStation profile pictures.

📱

Social Media

Crisp, recognizable avatars that pop on Twitter, GitHub, Reddit, and anywhere else you show up online.

💻

Dev & Hackathons

Need placeholder avatars for a project? Generate hundreds programmatically with the JS API. Great for demo data and prototypes.


For Developers & Bots

JavaScript API

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.

Quick Start: Bot Avatar Pipeline

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", ... }
MechGen.fromSeed ( string ) Core
Generate a deterministic mech from any string. The same input always produces the exact same mech — parts, colors, and all. This is the primary method for bot integration.
Returns: void (renders to canvas)
// 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");
MechGen.getImageDataURL ( size? ) Read
Get the current mech as a base64-encoded PNG data URL. Pass an optional size (default 512) for the output resolution. Use this to grab the image for upload, storage, or display elsewhere.
Returns: string — "data:image/png;base64,..."
// 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;
MechGen.randomize ( ) Core
Generate a completely random mech with random parts and a random color palette. Non-deterministic — each call produces a different result.
Returns: void
MechGen.getState ( ) Read
Returns a plain object with the current mech configuration — all part indices and color hex values. Useful for saving/restoring a mech or syncing state.
Returns: object — { head, eyes, antenna, body, arms, legs, accessory, primaryColor, secondaryColor, accentColor, eyeColor, bgColor }
const state = MechGen.getState();
// { head: 3, eyes: 1, body: 5, primaryColor: "#3a8aff", ... }
MechGen.setState ( object ) Write
Apply a full or partial state object to the mech. Merges with current state, so you can set just the parts you want to change. Automatically re-renders.
Returns: void
// Set specific parts
MechGen.setState({ head: 2, eyes: 5, arms: 1 });

// Change just the colors
MechGen.setState({ primaryColor: "#ff6633", eyeColor: "#00ffaa" });
MechGen.exportPNG ( ) Core
Triggers a browser download of the current mech as a 512x512 PNG file. Filename is auto-generated from the current state hash.
Returns: void (downloads file)
MechGen.cyclePart ( partKey, direction ) Write
Cycle a specific part forward or backward. Part keys: head, eyes, antenna, body, arms, legs, accessory. Direction: 1 for next, -1 for previous.
Returns: void
MechGen.cyclePart("head", 1);   // next head
MechGen.cyclePart("legs", -1);  // previous legs
MechGen.setColor ( colorKey, hexValue ) Write
Set a specific color. Keys: primaryColor, secondaryColor, accentColor, eyeColor, bgColor.
Returns: void

Questions

FAQ

Yes, completely free with no limits. There are no premium tiers, watermarks, credit systems, or hidden costs. Generate and export as many mechs as you want, forever.
No. mechgen.app runs entirely in your browser. There's no backend, no database, no accounts. Just open the page and start generating.
Enter any string (like your bot's name) and mechgen.app will deterministically generate a unique mech. The same input always produces the exact same mech. You can also use the JavaScript API: call MechGen.fromSeed("your-bot-name") programmatically, or use MechGen.getImageDataURL() to get the avatar as a base64 PNG.
Yes. Mechs generated with mechgen.app are yours to use however you like — personal projects, commercial apps, games, social media, merchandise. No attribution required.
Exported PNGs are 512x512 pixels with pixel-perfect nearest-neighbor scaling from the 64x64 canvas. No anti-aliasing or smoothing — just crisp, clean pixels.