Welcome
NIUA is an asset generation API for game developers. You can use it three ways:
- In your browser, through the playground at
/playground. This guide covers that path. - From your code, through the REST API. See the API reference at
/docs/api. - Inside your AI agent, through the MCP server. See the MCP guide at
/docs/mcp.
Quick start
- Sign in. The same account works across the playground, API, and MCP server.
- Top up your wallet at /pricing. Minimum deposit is $1, maximum $500.
- Open the playground at /playground. Start a new tab and pick a modality on the canvas.
- Type a prompt and click Generate. Your asset lands in the viewport and in your asset library.
Iterate by tweaking the prompt or parameters. Every generation is its own asset; nothing is overwritten.
The playground
The playground is shaped like an editor: a hierarchy on the left, tabs across the top, a viewport in the middle, and an inspector on the right.
Hierarchylists your project's assets. Click one to open it in a tab.Tabshold your open assets. The new-tab button (or⌘T) starts a fresh generation; pick a modality on the canvas and write your prompt.Viewportshows the asset preview. Images render as images, 3D models in a turntable viewer, audio as a waveform with a play button.Inspectorshows controls for the selected asset: generation parameters, plus the transforms you can run on it.
Modalities
NIUA covers ten generation modalities: image, music, mesh, re-texture, motion capture, text-to-motion, speech, designed voices, dialogue, and sound effects. You pick one when you start a new tab, or run one as a transform on the selected asset from the inspector.
Image
Text prompt to PNG. Best practices: describe subject, style, lighting, and composition. For downstream 3D mesh generation, use something like "centered, white background, 3/4 view, soft lighting." Sizing is aspect ratio based, 16:9 by default (1280×720). Custom width and height clamp between 512 and 1536.
Music
Text prompt to WAV. Include genre, mood, instruments, and tempo. Optional lyrics with [verse] and [chorus] tags. Use [Instrumental] for no vocals. Duration is anywhere between 5 and 240 seconds.
Mesh
Image to textured GLB. Send a reference image, get back a 3D model with PBR materials. One call, no separate texture step. Use a clean front-facing or 3/4 view reference image with an isolated background.
On the standard track, tier picks cascade depth, face / texture budget, and price: light ($0.39), game (default, $0.49), hero ($0.79; $1.49 at resolution 1536). Game and light use a faster early-exit cascade; hero runs the full high-detail path. Re-export builds LODs from the saved recipe but cannot invent hero density from a game or light generation. The separate Fast track is a cheaper draft model ($0.29) and does not take tier. Live prices always at /pricing.
Once you have a mesh, Decompose splits it into complete, watertight parts, each its own named piece inside one GLB, for per-part animation or swaps. The model picks the part count. This is not available in the EU, UK, or South Korea due to a model licensing restriction.
Re-texture
GLB plus reference image to re-textured GLB. For iterating on the look of a mesh without re-generating geometry. Pass the existing mesh and a new reference image with the colors and materials you want.
Motion capture
Video to BVH. Upload a video of a person moving. This runs async: you'll get a job id back immediately, and the BVH lands when the job completes (typical runtime 1 to 3 minutes).
Text-to-motion
Text prompt to BVH. Best for single continuous actions: "walking nervously," "doing a backflip," "throwing a punch." For sequences, generate each clip separately and chain them in your engine.
Auto-rigging
Temporarily unavailable. The rigging service is offline while we rework it. The notes below describe the API for when it returns.
GLB to rigged GLB. This is designed for your own meshes from Blender, Maya, or Sketchfab, meshes whose geometry is part-separated. Auto-rigging the output of generate mesh produces visibly degraded results because the generated geometry is one continuous surface. Use rig on hand-authored meshes; we are working on a segmentation step that will fix this.
Assets
Every generation lands in your asset library at /assets. From there you can:
- Download the asset to your machine.
- Share it via a public link. The link doesn't require auth to view, so you can send it to teammates or collaborators directly.
- Use it as input for another generation. For example, an image asset can be the source for a mesh.
- Delete it. Deleting won't refund the original generation cost.
Pricing and your wallet
You fund a wallet in USD dollars, and every generation costs an exact number of cents that you can see before you make the call. Current prices are at /pricing.
- Top up: minimum $1, maximum $500.
- Auto-recharge: opt-in from Settings → Billing.
- Failed generations aren't charged.
- Composite pipelines that chain through rig aren't currently offered (rig on generated geometry produces visibly degraded results, so we removed the composite rather than ship something we can't guarantee).
Settings
Profile:display name, avatar.Developer:create or revoke API keys, configure webhooks.Billing:wallet history, auto-recharge, deposit.Webhooks:outbound HMAC-signed events when async jobs land.
Troubleshooting
My generation came back empty. Some prompts produce no usable content. Check the asset library for a failed status; you were not charged for that job.
Upload says "file too large." Per-type caps: image 10 MB, audio 50 MB, model 100 MB, video 500 MB, BVH 10 MB. Compress or resize the file and try again.
The rig looks bad on my generated mesh. Generated meshes come back as one continuous surface, and auto-rig needs part-separated geometry to bind weights properly. For now, use rig on meshes you authored yourself in Blender or downloaded from Sketchfab. Source-mesh segmentation is on the roadmap.
My asset is not loading in the viewer. Refresh the page; the asset library re-fetches from the CDN on load. If it persists, check status at /status.
For anything else, the support email is in your account settings.