QtMeshEditor

v2.8.1

Free 3D Asset Tool for Indie Game Developers

Merge animations from multiple files, convert 40+ formats, edit materials with AI

Use the GUI, automate with CLI, or script via REST API

FBX glTF Collada OBJ 40+ Formats

Merge Mixamo Animations in Seconds

Download individual animations from Mixamo, drop them into QtMeshEditor, and merge them into a single mesh — export as glTF, Collada, OBJ, or Ogre Mesh.

Merge animations demo - combining multiple FBX files into one mesh

Load animation files → Select all → Click Merge → Export to your engine

Why QtMeshEditor?

🔀

Animation Merging

Combine skeletal animations from multiple files into one mesh. Works with any source where each animation is a separate file. GUI, CLI, and API support.

ðŸ“Ķ

40+ Format Support

Import FBX, glTF, OBJ, Collada, STL, 3DS, and more via Assimp. Export to glTF, Collada, OBJ, or Ogre Mesh. Convert between formats for any game engine.

ðŸĪ–

AI-Powered Materials

Generate and edit materials using AI with OpenAI GPT or local LLM models. Run completely offline with GPU-accelerated inference — no API keys needed.

ðŸĶī

Skeleton & Animation Tools

Visualize bones and bone weights, preview animations in real-time, rename animations, inspect keyframes. Everything you need to prepare animated characters.

ðŸŽĻ

Visual Material Editor

Real-time material preview with a visual editor. Change colors, textures, lighting, blending, and fog settings. Full undo/redo with 50-step history.

ðŸ’ū

Scene Save & Load

Save your entire scene — multiple meshes with positions, rotations, scales, materials, skeletons, and animations — to a single glTF file. Reopen later to pick up where you left off.

🔌

MCP Server (AI Agents)

Built-in Model Context Protocol server lets AI agents like Claude or Cursor control the editor. 29 tools for materials, meshes, scenes, transforms, and animations via HTTP API.

Game Dev Workflows

Animation Pipeline

1. Download animations as FBX (e.g. from Mixamo)
2. Drag all files into QtMeshEditor
3. Select all entities and click Merge
4. Export as glTF, Collada, or OBJ
5. Import into your game engine

Format Conversion

• FBX → glTF for web or Godot
• OBJ → Collada with materials
• Any format → Ogre Mesh
• Batch convert via CLI
• Preserve skeletons and animations

Asset Inspection

• Preview models before importing
• Check skeleton bone hierarchy
• Verify bone weight painting
• Test animations at different speeds
• Multi-viewport split view

Scene Persistence

1. Import multiple meshes into the scene
2. Position, rotate, and scale each object
3. File → Save Scene as .scene.glb
4. Reopen anytime to restore everything
5. Skeletons, animations, and materials preserved

CLI & Automation

qtmesh CLI for headless mesh ops
• Inspect, convert, fix, merge — all from terminal
• HTTP REST API for scripting
• MCP protocol for AI agents
• Scriptable — automate your asset pipeline

Keyboard Shortcuts

Unity-style shortcuts for fast 3D editing workflows.

Transform Tools

QSelect mode
WTranslate (Move)
ERotate
RScale
XToggle World / Local space
DelDelete selected

Camera & View

FFrame selection (zoom to fit)
Middle MouseOrbit camera
Right MousePan camera
Scroll WheelZoom in / out
Shift + MiddleRoll camera
Arrow KeysRotate camera

Edit & Selection

Ctrl + ZUndo
Ctrl + Shift + ZRedo
Ctrl + OOpen Scene
Ctrl + SSave Scene
Ctrl + ClickAdd to selection
Shift + ClickRemove from selection

Animation Merging

Three ways to merge animations — pick what works for your workflow.

GUI — Drag, Select, Merge

Load all your animation files, select all entities in the scene, then click the Merge Animations button in the toolbar. All animations are combined into the first entity.

CLI — One Command

Merge animations from the command line, perfect for build scripts and automation:

qtmesh anim character.fbx \ --merge walk.fbx run.fbx jump.fbx idle.fbx \ -o character_merged.mesh

HTTP API — Script It

Use the REST API to load meshes and merge animations programmatically:

# Load mesh files curl -X POST localhost:8080/api/tools/load_mesh \ -d '{"path":"/path/to/character.fbx"}' curl -X POST localhost:8080/api/tools/load_mesh \ -d '{"path":"/path/to/walk.fbx"}' # Merge all animations into the base entity curl -X POST localhost:8080/api/tools/merge_animations \ -d '{"base_entity":"character"}'

CLI Pipeline

A qtmesh command is built alongside the GUI. Use it to automate your 3D asset pipeline without launching the editor. On Windows, use the bundled qtmesh.cmd wrapper, or add its directory to PATH.

Inspect a Mesh

# Human-readable summary qtmesh info model.fbx # JSON output (for scripting) qtmesh info model.fbx --json

Convert Between Formats

qtmesh convert model.fbx -o model.gltf2 qtmesh convert model.dae -o model.mesh

Fix / Optimize a Mesh

# Standard optimizations (join vertices, smooth normals, optimize) qtmesh fix model.fbx -o fixed.fbx # All fixes (remove degenerates, merge materials) qtmesh fix model.fbx -o fixed.fbx --all

Animation Tools

# List all animations qtmesh anim model.fbx --list qtmesh anim model.fbx --list --json # Rename an animation qtmesh anim model.fbx --rename "Take 001" "Idle" -o renamed.fbx # Merge animations from multiple files qtmesh anim base.fbx \ --merge walk.fbx run.fbx jump.fbx \ -o merged.fbx

Multiline examples use POSIX \ continuations; on Windows, join into one line or adapt for PowerShell.
Use --verbose for engine debug output • --no-telemetry to permanently opt out of anonymous usage data • --help for full usage

AI Agent Integration

Built-in Model Context Protocol (MCP) server lets AI agents control the 3D editor. Create scenes, apply materials, and transform objects using natural language through Claude, Cursor, or any MCP-compatible tool.

Launch with MCP Server

# GUI + MCP server (stdio + HTTP on port 8080) ./QtMeshEditor --with-mcp # Headless MCP mode (no GUI, for scripting) ./QtMeshEditor --mcp # Custom HTTP port ./QtMeshEditor --with-mcp --http-port 9090

Configure Your AI Agent

# Claude Code claude mcp add --transport stdio qtmeshEditor -- /path/to/QtMeshEditor --with-mcp # Or .mcp.json in your project root: { "mcpServers": { "qtmeshEditor": { "type": "stdio", "command": "/path/to/QtMeshEditor", "args": ["--with-mcp"] } } }

29 Tools Available

# Save and load entire scenes (meshes, transforms, animations) curl -X POST localhost:8080/api/tools/save_scene \ -d '{"file_path":"/tmp/my_scene.scene.glb"}' curl -X POST localhost:8080/api/tools/open_scene \ -d '{"file_path":"/tmp/my_scene.scene.glb"}' # Create a sphere and apply a red material curl -X POST localhost:8080/api/tools/create_primitive \ -d '{"type":"sphere","name":"MySphere"}' curl -X POST localhost:8080/api/tools/create_material \ -d '{"name":"RedMat","colors":{"diffuse":[1,0,0]}}' # List all available tools curl localhost:8080/api/tools

Quick Start

macOS (Homebrew)

brew tap fernandotonon/qtmesheditor brew install qtmesheditor

Linux (Snap Store)

sudo snap install qtmesheditor

Or download the .deb from the releases page: sudo apt install ./qtmesheditor_amd64.deb

Windows (WinGet)

winget install FernandoTonon.QtMeshEditor

Update with winget upgrade FernandoTonon.QtMeshEditor. Or download the .zip from the releases page.

Docker (any platform)

Run qtmesh CLI without installing anything locally:

docker run --rm -v $(pwd):/workspace ghcr.io/fernandotonon/qtmesh info model.fbx --json docker run --rm --user "$(id -u):$(id -g)" -v $(pwd):/workspace \ ghcr.io/fernandotonon/qtmesh convert model.fbx -o model.gltf2

Also on Docker Hub: docker pull fernandotr1/qtmesh

GitHub Action

Use qtmesh in your CI/CD pipeline:

- uses: fernandotonon/QtMeshEditor/.github/actions/qtmesh@master with: command: info input-file: assets/player.fbx options: --json

Build from Source

git clone https://github.com/fernandotonon/QtMeshEditor.git cd QtMeshEditor cmake . -B build cmake --build build -j$(nproc)

Format Support

Format Extension Import Export Skeleton
FBX.fbx
glTF 2.0.gltf2
glTF 2.0 Binary.glb2
Collada.dae
OBJ.obj
STL.stl
Ogre Mesh.mesh
Ogre XML.mesh.xml
DirectX X.x
PLY.ply
3DS.3ds
Assimp Binary.assbin

Import supports all formats provided by Assimp (40+). Works with assets from Blender, Maya, 3ds Max, animation marketplaces, and more.

Platforms

• Linux (Ubuntu, Debian, etc.)
• Windows 10/11
• macOS (Apple Silicon & Intel)
• CI/CD automated builds

Open Source

• MIT License — free forever
• Community contributions welcome
• Comprehensive test suite
• Active development since 2012

Join the Community

Connect with other QtMeshEditor users, share your workflow, get help, and contribute to the project!

Active development since 2012 • Open source • MIT License