Skip to content

wangyz1999/3d-emoji-assets-generator

Repository files navigation

3D Emoji Generator

Deploy License: MIT License: CC BY 4.0 Twemoji Three.js

Preview

Generate customizable 3D emoji assets from Twemoji SVGs, built with Three.js. Choose from multiple shape presets (coins, speech bubbles), tweak every parameter, preview in real-time, and export as GLB, OBJ, STL, or USDZ — all in your browser. Includes a CLI for batch generation.

Pre-generated packs of all 4,009 emojis in bubble, coin, and flat shapes are also available for download

How it works

Each Twemoji SVG is parsed into individual color paths. Every path is extruded into 3D geometry via ExtrudeGeometry, layered with small Z offsets to preserve draw order. The emoji group is then mounted onto a shape base (coin, bubble, pin, badge) or exported standalone (flat). On export, an optional merge-materials pass bakes all colors into a single texture atlas — one pixel per unique color — and remaps UVs so the final GLB has exactly one material, ready for game engines.

Visit the Live App HERE

Screenshot of 3D Emoji Generator

1000 Rotating Emojis in Unreal

unreal.mp4

Download Pre-generated Assets

Pre-generated 4,009 emoji GLB asset packs are available for download in bubble, coin, and flat shapes.

Download Pre-generated Assets on Google Drive

Installation

git clone https://github.com/wangyz1999/3d-emoji-assets-generator.git
cd 3d-emoji-assets-generator
npm install

Development

npm run dev

Open http://localhost:3000.

CLI Usage

Important

The CLI renders models via a headless browser — the dev server must be running before you generate anything. You need two terminals open at the same time:

# Terminal 1 — keep this running
npm run dev
# Terminal 2 — run your generate commands here
npm run generate -- ...

Generate a single emoji

npm run generate -- --shape bubble --emojis joy --format glb --output ./output/

--emojis accepts a shortname (joy), a Unicode code (1f602), a comma-separated mix of both, or all.

Batch generate all emojis of default bubble shape

npm run generate -- --shape bubble --emojis all --format glb --output ./output/bubble/

Speed up batch generation with concurrency

Use --concurrency to render multiple emojis in parallel (default: 4):

npm run generate -- --shape bubble --emojis all --format glb --output ./output/bubble/ --concurrency 8

Use Local Emoji

npm run generate -- --shape bubble --emojis all --format glb --output ./output/ --emoji-source local

For all available flags and per-shape style parameters, see the CLI Reference.

You can also view the full parameter list interactively in the web app — the CLI Command panel at the bottom of the left sidebar shows a live command that reflects your current settings.

Single-Material Export (Merge Materials)

By default, exported models bake all colors into one texture atlas so the .glb uses a single material. This is critical for game engines like Unreal Engine and Unity, where each material creates a separate draw call — an emoji like the astronaut would otherwise produce 13+ materials.

Enable the "Merge into single material" toggle in the web app, or add --merge-materials in the CLI:

npm run generate -- --shape coin --emojis astronaut --format glb --merge-materials --output ./output/

Without this flag, each SVG color becomes its own material — fine for Blender editing, but impractical in game engines.

Export Formats

Format Extension
GLB .glb
OBJ .obj
STL .stl
USDZ .usdz

Contributing

Contributions, feature requests, bug reports, and ideas are all welcome! Feel free to submit a Pull Request or open an issue.

License

See the LICENSE and LICENSE-GRAPHICS files for full license texts.

Code licensed under the MIT License: http://opensource.org/licenses/MIT

Graphics licensed under CC-BY 4.0: https://creativecommons.org/licenses/by/4.0/

The emoji graphics used in generated assets are from Twemoji by Twitter/X Corp. If you distribute or publish generated assets, you must include attribution to Twemoji

About

SVG-based 3D emoji generator, export in format like GLB, OBJ, STL, or USDZ for games, AR, and 3D projects.

Topics

Resources

License

MIT, CC-BY-4.0 licenses found

Licenses found

MIT
LICENSE
CC-BY-4.0
LICENSE-GRAPHICS

Stars

Watchers

Forks