Ludo AI Game Assets

Generate game assets with AI: sprites, 3D models, animations, sound effects, music, and voices.

AI & MLv0.9.0

Ludo AI MCP Server

Generate game assets using AI through the Model Context Protocol (MCP).

Features

CategoryCapabilities
ImagesSprites, icons, screenshots, backgrounds, UI assets, textures, background removal
3D ModelsConvert 2D images to GLB models with PBR textures
AnimationAnimated spritesheets from static sprites (4-64 frames), motion transfer from video or presets
VideoGenerate short videos from images (3-10 seconds)
AudioSound effects, background music, character voices, TTS

Quick Start

1. Get an API Key

Sign up at ludo.ai and get your API key from app.ludo.ai.

2. Configure Your MCP Client

Claude Desktop

Add to ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or %APPDATA%\Claude\claude_desktop_config.json (Windows):

json
{
  "mcpServers": {
    "ludo": {
      "url": "https://mcp.ludo.ai/mcp",
      "headers": {
        "Authorization": "ApiKey YOUR_API_KEY"
      }
    }
  }
}

Cursor

Add to your MCP settings in Cursor preferences:

json
{
  "mcpServers": {
    "ludo": {
      "url": "https://mcp.ludo.ai/mcp",
      "headers": {
        "Authorization": "ApiKey YOUR_API_KEY"
      }
    }
  }
}

Available Tools

Image Generation (createImage)

Generate sprites, icons, backgrounds, UI assets, and textures.

ParameterRequiredDescription
promptYesDetailed description of the image
image_typeYessprite, icon, screenshot, art, asset, sprite-vfx, ui_asset, fixed_background, texture, 3d, generic
art_styleNoPixel Art (16-Bit), Pixel Art (8-Bit), Low Poly, Cartoonish, Stylized 3D, Flat Design, Anime/Manga, Voxel Art, etc.
perspectiveNoSide-Scroll, Top-Down, Isometric, First-Person, Third-Person, 2.5D
aspect_ratioNodefault, ar_1_1, ar_4_3, ar_16_9, ar_9_16
nNoNumber of variations (1-8, default: 1)
request_idNoClient-provided ID to retrieve results later

Credits: 0.5 per image


Edit Image (editImage)

Modify an existing image using text instructions (smart editing).

ParameterRequiredDescription
imageYesURL or base64-encoded image to edit
promptYesDescription of changes (e.g., "remove the background", "make it darker", "add clouds to the sky")
reference_imageNoURL or base64 reference image for style/content guidance
nNoNumber of variations (1-4, default: 1)
request_idNoClient-provided ID to retrieve results later

Credits: 0.5 per image


Generate with Style (generateWithStyle)

Generate new content while maintaining the visual style of a reference image.

ParameterRequiredDescription
style_imageYesURL or base64-encoded reference image for style matching
promptYesDescription of what to generate (e.g., "a warrior character", "a treasure chest")
image_typeYessprite, icon, screenshot, art, asset, sprite-vfx, ui_asset, fixed_background, texture, 3d, generic
nNoNumber of variations (1-4, default: 1)
request_idNoClient-provided ID to retrieve results later

Credits: 0.5 per image


Generate Pose (generatePose)

Generate a new pose for an existing sprite. Use this BEFORE animateSprite to get the best animation results - the starting pose should match your intended animation.

ParameterRequiredDescription
imageYesURL or base64-encoded sprite image
poseYesTarget pose: Idle (Front), Idle (Back), Walk / Run (Left), Attack Ready, Jumping, Crouching, Flying, Defending / Blocking, or any custom description
descriptionNoAdditional instructions to guide pose generation
nNoNumber of variations (1-4, default: 1)
request_idNoClient-provided ID to retrieve results later

Returns: url, pose, motion_prompt

Example workflow:

  1. Generate a "Walk / Run (Left)" pose with generatePose
  2. Use the returned motion_prompt directly in animateSprite for optimal animation results

Credits: 0.5 per image


Remove Background (removeImageBackground)

Remove the background from an image, returning a transparent PNG.

ParameterRequiredDescription
imageYesURL or base64-encoded image
request_idNoClient-provided ID to retrieve results later

Returns: url (transparent PNG)

Credits: 0.5 per image


3D Model Generation (create3DModel)

Convert a 2D image to a 3D GLB model with textures.

ParameterRequiredDescription
imageYesURL or base64-encoded image
texture_typeNopbr (default), simple, none
texture_sizeNo1024, 2048 (default), 4096
target_num_facesNoTriangle count 1,000-100,000 (default: 50,000)
high_detail_shapeNoEnable for complex shapes (slower)
request_idNoClient-provided ID to retrieve results later

Returns: model_url (GLB file) + 4 snapshot images from different angles

Credits: 3 per model Processing time: 60-120 seconds


Sprite Animation (animateSprite)

Create animated spritesheets from static images.

ParameterRequiredDescription
initial_imageYesURL or base64 of the starting frame
motion_promptYesAnimation description (e.g., "walking cycle", "idle breathing", "attack slash")
image_typeNosprite, sprite-vfx, ui_asset
framesNo4, 9, 16, 25, 36 (default), 49, 64
frame_sizeNo64, 128, 256 (default), 0 (max resolution)
loopNoSeamless loop (default: true)
modelNostandard (default) or new (higher quality)
durationNoStandard: 1.2-3s, New: 4s
final_imageNoEnding frame for interpolation
gifNoGenerate an animated GIF (default: false)
individual_framesNoExtract individual frame images (default: false)
spritesheet_with_backgroundNoAlso return the spritesheet with background intact, before background removal (default: false)
request_idNoClient-provided ID to retrieve results later

Returns: spritesheet_url, video_url, gif_url, individual_frame_urls, spritesheet_with_background_url, individual_frame_with_background_urls, num_frames, num_cols, num_rows

Credits: 5 per animation Processing time: 30-90 seconds


Animation Presets (listAnimationPresets)

List available animation presets for use with motion transfer. Returns preset animations, perspectives, and directions — no video URLs are exposed.

Returns:

  • animations — Array of presets with id, name, category, description, duration, preview_url
  • perspectives — Array with id, name, description (all animations support all perspectives)
  • directions["N", "NE", "E", "SE", "S", "SW", "W", "NW"] (all animations support all directions)

Credits: Free


Motion Transfer (transferMotion)

Transfer motion from a video or animation preset onto a static sprite, producing an animated spritesheet.

ParameterRequiredDescription
imageYesURL or base64-encoded sprite image
videoNoURL of the video to use as motion source. You can use videos from the animateSprite endpoint or provide your own. Videos up to 4 seconds will produce better results. Either video or preset_id + perspective + direction must be provided.
preset_idNoID of an animation preset to use instead of a video URL. Use the animation-presets endpoint to list available presets. When using a preset, perspective and direction are required.
directionNoDirection for the animation preset. When using a preset, direction is required. Values: N, NE, E, SE, S, SW, W, NW
perspectiveNoPerspective ID to use with the animation preset. When using a preset, perspective is required.
framesNoNumber of frames in the output spritesheet
frame_sizeNoSize of each frame in pixels
loopNoTrim animation for seamless loop
cropNoCrop frames to fit content
margin_ratioNoPadding around sprite (0.0-1.0)
margin_ratio_modeNomanual (default), none
gifNoGenerate an animated GIF (default: false)
individual_framesNoExtract individual frame images (default: false)
spritesheet_with_backgroundNoAlso return the spritesheet with background intact, before background removal (default: false)
request_idNoClient-provided ID to retrieve results later

Returns: spritesheet_url, video_url, gif_url, individual_frame_urls, spritesheet_with_background_url, individual_frame_with_background_urls, num_frames, num_cols, num_rows

Credits: 5 per transfer


Video Generation (createVideo)

Generate short videos from images.

ParameterRequiredDescription
imageYesURL or base64 starting frame
promptYesMotion description (e.g., "camera zooms in", "character walks forward")
durationNo3, 5 (default), 8, 10 seconds
modelNostandard (default) or new
final_imageNoEnding frame for interpolation
request_idNoClient-provided ID to retrieve results later

Credits: 3s=5, 5s=8, 8s=12, 10s=15


Sound Effect Generation (createSoundEffect)

Generate game sound effects from text descriptions.

ParameterRequiredDescription
descriptionYesSound description (e.g., "laser gun firing", "footsteps on gravel", "coin pickup")
durationNo0-10 seconds (0 = automatic)
request_idNoClient-provided ID to retrieve results later

Credits: 3 per sound


Music Generation (createMusic)

Generate background music and themes.

ParameterRequiredDescription
descriptionYesMusic description (e.g., "epic orchestral battle theme", "calm piano melody", "8-bit chiptune")
lyricsNoOptional lyrics for vocal tracks
request_idNoClient-provided ID to retrieve results later

Credits: 3 per track


Voice Generation (createVoice)

Generate unique character voices.

ParameterRequiredDescription
voice_descriptionYesCharacter description (e.g., "gruff old warrior", "cheerful young girl")
textYesText to speak (max 200 characters)
typeNohuman (default) or non-human
request_idNoClient-provided ID to retrieve results later

Credits: 3 per voice


Text-to-Speech (createSpeech)

Clone a voice from an audio sample.

ParameterRequiredDescription
textYesText to speak (max 1000 characters)
sampleYesURL or base64 audio sample for voice cloning
request_idNoClient-provided ID to retrieve results later

Credits: 3 per generation


Text-to-Speech Preset (createSpeechPreset)

Use preset voices for text-to-speech.

ParameterRequiredDescription
textYesText to speak (max 1000 characters)
voice_preset_idYesSerious woman, Wise woman, Calm woman, Patient man, Determined man, Deep voice man, Teen boy, Sweet girl, etc.
emotionNoDefault, Happy, Sad, Angry, Fearful, Surprised, Neutral
languageNoauto, English, Spanish, French, German, Japanese, Korean, etc.
request_idNoClient-provided ID to retrieve results later

Credits: 3 per generation


Retrieve Image Results (getImageResults)

Retrieve your recent API-generated images.

ParameterRequiredDescription
request_idNoFilter to a specific request

Returns: Array of image objects with url, request_id, created_at

Credits: Free


Retrieve Sprite Results (getSpriteResults)

Retrieve your recent API-generated spritesheets.

ParameterRequiredDescription
request_idNoFilter to a specific request

Returns: Array of spritesheet objects with request_id, created_at

Credits: Free


Retrieve Video Results (getVideoResults)

Retrieve your recent API-generated videos.

ParameterRequiredDescription
request_idNoFilter to a specific request

Returns: Array of video objects with url, request_id, created_at

Credits: Free


Retrieve Audio Results (getAudioResults)

Retrieve your recent API-generated audio.

ParameterRequiredDescription
request_idNoFilter to a specific request

Returns: Array of audio objects with request_id, created_at

Credits: Free


Retrieve 3D Model Results (get3DModelResults)

Retrieve your recent API-generated 3D models.

ParameterRequiredDescription
request_idNoFilter to a specific request

Returns: Array of 3D asset objects with request_id, created_at

Credits: Free


Async Usage

You can use request_id to build fire-and-forget workflows. Tag any generation request with a request_id, then poll the corresponding results endpoint to pick up the output when it's ready — no need to keep the connection open.

  1. Pass a request_id in your generation request
  2. Poll the corresponding results endpoint to retrieve the output
text
# Fire off a sprite animation
animateSprite with request_id="my-anim-001", initial_image="url", motion_prompt="walking"

# Retrieve the result whenever you're ready
getSpriteResults with request_id="my-anim-001"

All generation endpoints accept an optional request_id parameter. Results are available for 7 days and each results endpoint returns up to 100 recent API-generated assets.


Asset URL Expiration

All generated asset URLs (images, spritesheets, videos, audio, 3D models) are temporary and expire after 7 days. If you need to keep an asset, download it before it expires.


Example Prompts

Creating Game Assets

Create a pixel art knight character with sword and shield, side view, 16-bit style Generate an isometric treasure chest icon for a mobile RPG Create a low-poly stylized tree for a casual mobile game

Animations

Animate this character with a smooth walking cycle, 16 frames Create an idle breathing animation for this character sprite Animate this fire sprite as a looping VFX effect

Audio

Create a satisfying coin pickup sound effect for a platformer Generate an epic orchestral boss battle theme, intense and dramatic Create a voice for a wise old wizard saying "The journey begins now"

API Documentation

Full API documentation with all parameters and response formats: api.ludo.ai/api-documentation

Support

License

Proprietary - See ludo.ai/terms for terms of service.

Learn More