From an idea
to your scene.
Create with Bake3D. Keep working in your editor. Connect an AI assistant through MCP, or bring characters into Blender, Unity, Unreal Engine and Godot with the editor tools below.
Generate
One image or prompt becomes a textured mesh with a skeleton and skin weights.
Direct the motion
Describe the action, or choose a preset that fits the creature’s joints.
Import and play
Download a GLB or FBX with baked keyframes. Your editor owns the scene and playback.
Connect an MCP assistant
Create an API key in your account. Add Bake3D as a Streamable HTTP server at https://bake3d.ai/api/v1/mcp and send Authorization: Bearer YOUR_KEY. Keys require Pro or Studio and use the same credit balance as the studio. Keep the key in an environment variable such as BAKE3D_API_KEY rather than in a prompt.
Claude Code
Run once in a terminal. The shell substitutes the key from BAKE3D_API_KEY when the server is added.
claude mcp add --transport http bake3d https://bake3d.ai/api/v1/mcp \
--header "Authorization: Bearer $BAKE3D_API_KEY"Cursor
Add to ~/.cursor/mcp.json (all projects) or .cursor/mcp.json (one project). Cursor reads the key from the environment it starts in.
{
"mcpServers": {
"bake3d": {
"url": "https://bake3d.ai/api/v1/mcp",
"headers": {
"Authorization": "Bearer ${env:BAKE3D_API_KEY}"
}
}
}
}Codex
Add to ~/.codex/config.toml and set BAKE3D_API_KEY in the environment that starts Codex.
[mcp_servers.bake3d]
url = "https://bake3d.ai/api/v1/mcp"
bearer_token_env_var = "BAKE3D_API_KEY"Claude Desktop
Add to claude_desktop_config.json (Settings → Developer → Edit Config), then restart Claude Desktop. mcp-remote bridges the HTTP server to Claude Desktop and needs Node.js 18 or newer.
{
"mcpServers": {
"bake3d": {
"command": "npx",
"args": [
"-y",
"mcp-remote",
"https://bake3d.ai/api/v1/mcp",
"--header",
"Authorization: Bearer ${BAKE3D_KEY}"
],
"env": {
"BAKE3D_KEY": "bk_live_YOUR_KEY"
}
}
}
}Other MCP clients use the same endpoint and bearer header. This server negotiates protocol versions 2025-06-18 and 2025-11-25, uses JSON responses, accepts one JSON-RPC message per request and does not require a persistent session. The MCP reference lists every tool and its cost.
Generate a four-legged ceramic fox with Bake3D.
Wait for the job to finish, then give it a curious head turn.
Export the animation in place at 30 fps and import it into my scene.Bake3D creates the asset. To place it into an open editor, the assistant also needs that editor’s bridge or the integration below. An MCP connection by itself does not grant control of your desktop applications.
| Tool | Use it for |
|---|---|
| bake3d_account | Credits, plan and action costs |
| bake3d_list_projects | Find your existing characters |
| bake3d_get_project | IDs, counts and signed downloads; detail="full" adds labels and motion |
| bake3d_upload_image | Upload a local image for generation |
| bake3d_generate | Image or prompt to a generation job |
| bake3d_initial_animation | Create or recover the included motion |
| bake3d_get_job | Progress and failure details |
| bake3d_list_jobs | List jobs |
| bake3d_rig | Re-rig an existing mesh |
| bake3d_list_animations | Pick a saved animation ID for export |
| bake3d_list_presets | Find built-in motions that fit the rig |
| bake3d_animate | Describe and save new motion |
| bake3d_export | Download a rig or baked animation |
| bake3d_delete_project | Permanently delete a project (confirm=true) |
| bake3d_feedback | Rate a model, rig, animation or export for the Bake3D team |
| bake3d_cancel_job | Cancel a job and refund its charge |
Blender
Download the Blender add-on- In Blender 4.2 or newer, open Preferences → Add-ons → Install from Disk, choose
bake3d-blender.zipand enable Bake3D. Remove an older single-file Bake3D add-on first. - Open the 3D Viewport sidebar and select Bake3D. Enter an API key, or start Blender with
BAKE3D_API_KEYin its environment. Refresh the credits line to load your balance and the current cost of each action. - Choose an image file (a file browser opens), paste an image URL or describe the subject, pick a mesh quality, then generate. Game-ready copy also builds a lighter, mostly-quad copy with the same skeleton at the same price. The add-on uploads the image, starts the job and checks it every four seconds on a worker thread, so Blender stays responsive. Stop waiting leaves the job running; Cancel job asks first, then stops it and refunds its credits.
- Find a rigged project (More loads the next page) or keep the one you generated. Compose motion with a length and loop setting, or choose a saved animation or a preset; presets that cannot play on this rig show the reason, and presets still being fitted to it say so. Import the character and play the timeline.
Each import goes into a new collection named after the character. Its action is named after the clip, and the scene’s frame range grows to include it. A loop ends one frame early so its repeated first pose does not stutter. The scene’s frame rate is left unchanged. Skip the included animation is a generation choice; Rest pose only and Game-ready mesh affect only the export you import. The top bone is motion_root, which carries travel only when Root motion is on. Keys stay in the current session. Set BAKE3D_CA_BUNDLE to a certificate file if your network inspects HTTPS.
For a Blender MCP bridge or a script, set the key in the add-on, then call bpy.ops.bake3d.import_character(project_id="…", animation_id="…", synchronous=True) or use from bake3d import Client. Manual import is also available through File → Import → glTF 2.0.
Verified in Blender 5.2 (this version) and Blender 4.4 (the previous version). In Blender 5.2.2: ZIP install, enable and disable, and a headless run against a local stand-in for Bake3D that uploads an image, generates with an idempotency key that survives a dropped connection, polls with a rate-limit back-off, follows described motion that is still being made, lists presets and imports a rigged, animated fixture, plus imports of real server exports (a T-rex, a robot, a person and the animated fox sample) with their textures and moving bones. It checked collection and action names, the frame range, and the height, game-ready-mesh and root-motion export arguments. Server exports for six structurally different rigs were checked in Blender 4.4 separately.
Unity
Download the Unity editor tool- Install
com.unity.cloud.gltfastthrough Package Manager. The tool targets Unity 6. - Unzip
bake3d-unity.zipat your project root. It adds three editor scripts underAssets/Editor/Bake3D. Open Tools → Bake3D → Character studio. - Enter a key and press Save. It is kept in EditorPrefs on this computer, never in project files. Credits and action costs come from your account.
- Choose an image file, paste an image URL or describe the subject, pick a mesh quality, then generate. The window uploads the image and waits for the job without blocking the editor. It offers Import when the job succeeds. You can also search your rigged projects (More loads the next page), compose motion with a length and loop setting, or choose a saved animation or a preset that fits the rig.
Each import lands in Assets/Bake3D/<Character>/ under a unique name. The tool switches the glTFast importer to Mecanim and saves editable clip copies with the export’s loop flag. It then creates an AnimatorController and places the character at the origin. glTFast keeps glTF’s +Z forward as Unity’s forward. A Generic avatar rooted at motion_root lets Apply Root Motion follow the Root motion option; with it off, the character animates in place.
glTFast imports the rig as Generic, which suits every kind of creature, machine or prop. Humanoid retargeting is not available for a glTFast import; for a human-shaped character, import the FBX and map its bones in the Rig tab. When you import a GLB yourself, turn on Loop Time for clips that should loop. Do not install two default GLB importers at once.
Static review only: this version was checked for C# syntax, without a compiler or a Unity editor. The window has not run in a live Unity editor, so compilation, the glTFast import settings, avatar creation and playback still need confirmation in a project.
Unreal Engine 5
Download the Unreal editor scripts- Under Edit → Plugins, enable the Python Editor Script Plugin and Editor Scripting Utilities; keep the Interchange Framework plugin enabled. Restart the editor. The scripts target UE 5.3 or newer (Python 3.9+).
- Unzip
bake3d-unreal.zipat your project root. It adds four scripts toContent/Python. Add the lineimport bake3d_unrealtoContent/Python/init_unreal.pyfor a Tools → Bake3D menu on start. - Choose Tools → Bake3D → Set API key. The key is held in memory for this editor session only.
- Generate character opens an options dialog. Choose an image file (with a file picker), an image URL or a description, a mesh quality and the import options. Describe motion and Import project work the same way. Every menu entry, including Account, List rigged projects and Cancel, does its network work on a worker thread and shows its result on the game thread, so the editor never waits on the network. Progress appears in the Output Log.
Each import downloads the GLB to Saved/Bake3D, imports it through Interchange into a new folder, /Game/Bake3D/<project>/<Name>_<Motion>, then deletes the download. Interchange converts metres to centimetres and Y-up to Z-up. Exports face glTF +Z and are expected to arrive facing +Y, like the UE mannequin; set the import yaw to −90 to face +X. The skeleton’s root bone is motion_root. With Root motion on, the script enables root motion on the imported sequences, and no Force Root Lock is needed. When you import a file yourself, open each Animation Sequence and turn on Enable Root Motion. The editor script defaults to in-place motion, while the API defaults to rootMotion: true. For FBX, which is exported in centimetres with Y up, enable Force Front X Axis to face +X.
Tested scope: CI drives the scripts with a stubbed unreal module and a local stand-in for Bake3D. It covers key and origin checks, one MCP handshake, uploads, idempotency keys across dropped connections, described motion that is still being made, background polling with Retry-After, menu entries that never touch the network on the calling thread, no redirects, Saved/Bake3D downloads held to their reported size, Interchange options, unique folders, root-motion flags and the dialogs. The scripts have not run inside Unreal Editor. The dialogs, Interchange asset names, facing and unit conversion still need confirmation in a project.
Godot and other glTF tools
Download the Godot add-onTested with Godot 4.7.2; older 4.x releases are untested. Extract the ZIP at your project root and enable Bake3D under Project → Project Settings → Plugins. Open a 3D scene and the Bake3D bottom panel. Enter an API key, choose an image file, an image URL or a description, and generate. The panel waits for the job on editor timers, so Godot stays responsive; Cancel job asks before it stops a job. Compose motion, or choose a saved animation or a fitting preset, then import. Each import saves a compressed native scene in res://Bake3D with each clip’s loop mode set from the export. The source GLB stays in res://Bake3D/source, which the editor ignores; turn off Keep the source GLB to keep large files out of version control.
Characters face +Z, Godot’s Vector3.MODEL_FRONT, while Godot’s scene forward is −Z. With Root motion on, the imported AnimationPlayer’s root_motion_track points at the motion_root bone. Bake3D exports put the skeleton directly under the scene root, so get_root_motion_position() is already the travel in the imported scene’s space, in metres; your controller applies it, and get_root_motion_rotation() for the heading. A file that nests its skeleton under a scaled or rotated node gets a bake3d_root_motion_basis value on the scene to multiply by first.
For manual import, export with the engine set to Godot (target: "godot" in the API) and copy the GLB into your project: looping clips are named with Godot’s own -loop ending, so its importer loops them. Godot’s importer ignores Bake3D’s loop flag, so for a file exported for another engine open Advanced Import Settings and set Loop Mode to Linear on each clip that should loop, such as a walk or an idle. Match Animation → FPS to the export, and disable the AnimationPlayer’s Optimizer when checking exact foot contact. Native tests found that default resampling and key reduction can alter the gait. Read the Godot animation import guide for the full workflow.
Godot 4.7.2: headless editor compilation, client and panel contract tests (idempotency keys, described motion that is still being made, rate-limit messages, cancel confirmation), native scene round trips, loop modes, root motion equal to the travel the clip shows, and sampled playback comparisons verified. The panel’s appearance in a live editor and paid generation from Godot remain unverified.
The same asset can be loaded in three.js and other glTF 2.0 applications. A custom client can use the export API, save the signed download, and call its host editor’s import command.