3D characters
LiveSend a picture or describe a character. Get a rigged 3D model in GLB and FBX, with walk and run clips. A picture that is not in a T-pose is redrawn in one first.
3D characters
Input
imageA public https link to the picture.
knight-tpose-7beb62e2.png
qualityStandard or high detail.engineWhich 3D engine runs it (sent only when there is more than one).animationsAnimation clips made for the rigged model.No extra chargeFor the best character: one figure, front view, closed neutral mouth, plain background, nothing held in the hands.
Standard 3DStandard 3D
- 1. T-pose checkNot in this result.
- 2. 3D modelTextured model made.
- 3. RigRigged, with 2 clips.
Each step on its own
The pipeline above chains these tools. Call any one alone: each has its own endpoint, price and page.
How the 3D pipeline works
The same steps we use to make characters for our own games.
- 01T-pose checkA quick look at your picture. If it is not a strict front T-pose with a closed, neutral mouth on a plain background, it is redrawn that way, keeping the same character. Arms held out keep the hands clean.
- 023D modelA textured, game-ready mesh made from the T-pose picture, with PBR materials and the lighting taken out. Characters and props get their own triangle budgets.
- 03RigA skeleton fitted to the character so it can move, with walk and run clips when you ask. You get FBX for game engines and GLB for the web.
Call 3D characters from your code
Each 3D tool is its own endpoint. Every call returns a task: poll it until it finishes. A failed run is not charged.
https:/ / api.opennan.com/ v1/ 3d/ characters- POST
/Any character picture to a front T-pose.v1/ 3d/ tpose - POST
/Picture or prompt to a textured model.v1/ 3d/ models - POST
/Humanoid model to a rigged FBX and GLB.v1/ 3d/ rig - GET
/Progress and output files.v1/ tasks/ {id} - GET
/3D engines and quality tiers, with pricesv1/ models? category= 3d
Get an API key
Create a key in the console. It uses the same balance as the playground.
Create a keySend your first request
The same request the playground sends. Set OPENNAN_KEY to your key.
curl https://api.opennan.com/v1/3d/characters \ -H "Authorization: Bearer $OPENNAN_KEY" \ -H "Content-Type: application/json" \ -d '{"prompt":"a knight in silver armour with a blue cape","quality":"standard","animations":true,"engine":"opennan-3d-studio"}' # Then poll until "status" is "succeeded" or "failed": curl https://api.opennan.com/v1/tasks/<task id> -H "Authorization: Bearer $OPENNAN_KEY"Poll the task
The call answers right away with a task id. Ask for the task until it finishes:
GEThttps:// api.opennan.com/ v1/ tasks/ {id} - queued
- Waiting for a worker
- running
- Being made
- succeeded
- Done: outputs[].url holds the files
- failed
- Failed: you are not charged
Errors and how to fix them
401Missing or wrong key
Send the header Authorization: Bearer with a key from the console.
402Balance too low
Add credit in Billing, then send the same call again.
400A value is not accepted
Read error.message: it names the field. Use a value from the parameter table.
429Too many requests
Wait a few seconds and try again, waiting longer after each 429.
Add Opennan to your AI app
One install gives your AI every Opennan tool: video, images, chat, voice, music, sound effects, 3D, captions and dubbing. Pick your app and follow the steps.
https:/ / api.opennan.com/ v1/ mcpWorks in the Codex CLI, the Codex app and the Codex IDE extension: they share ~/.codex/config.toml. If the app or IDE does not see OPENNAN_KEY, use the config.toml option with your key in it. Codex asks before each tool call: approve it to go on.
Get an API key
Create a key in the console. It starts with sk- and uses the same balance as the website.
Create a keySave your key as OPENNAN_KEY
# macOS / Linux (zsh shown; bash: ~/.bashrc) echo 'export OPENNAN_KEY="sk-..."' >> ~/.zshrc source ~/.zshrc # Windows (PowerShell), then open a new terminal setx OPENNAN_KEY "sk-..."Install the Opennan plugin: the server plus a skill that teaches your AI to pick models, confirm prices and wait for results
codex plugin marketplace add Opennan/opennan-ai-plugin codex plugin add opennan@opennanOr add only the server
codex mcp add opennan --url https://api.opennan.com/v1/mcp --bearer-token-env-var OPENNAN_KEYOr add this to ~/.codex/config.toml
[mcp_servers.opennan] url = "https://api.opennan.com/v1/mcp" http_headers = { Authorization = "Bearer sk-..." }Check that opennan is listed
codex mcp listRestart Codex, then ask for anything
“Make a 5 second video of rain on a neon street, a song to go with it and a poster image.”
Replace sk-... with your own key and keep it private: anyone who has it can spend your balance. Your app can list the tools before you add a key; making anything needs one.
This tool from your AI
Once Opennan is added, your AI calls this tool with arguments like these.
- Tool
- generate_3d_character
- Example arguments
{ "prompt": "a knight in silver armour with a blue cape", "quality": "standard", "animations": true, "engine": "opennan-3d-studio" }
3D characters: questions
How much does 3D characters cost?
You pay per run, at the price shown before you start.
How do I call it from my code?
Send POST https://api.opennan.com/v1/3d/characters with your API key. It answers with a task id: ask https://api.opennan.com/v1/tasks/{id} until the task succeeds or fails.
Can my AI agent use it?
Yes. Add the MCP server https://api.opennan.com/v1/mcp and call the generate_3d_character tool, or point your agent at https://api.opennan.com/llms.txt.
What happens if a run fails?
A failed run is not charged. You pay only for results.
Why does the picture need a T-pose?
Arms held straight out keep the hands apart from the body, so the model gets clean hands and the rig bends at the right joints. Arms down or an A-pose often fuse the hands into the clothes, and a smile gets painted into the texture. That is why a picture that is not a T-pose is redrawn first, keeping the character the same.
Which files do I get?
GLB for the web, game engines and 3D apps, FBX for Roblox Studio, Unity, Unreal and Blender, and a thumbnail. Rigged runs add walk and run clips.


