Skip to main content

MeshVault

A professional, local web-based tool for rapidly browsing, previewing, and managing 3D assets across your filesystem — including assets inside archives.

Three ways to use it:

For humans For AI agents
Online, zero install Open the live viewer — drag-drop a model or pass ?src=<url>; nothing is uploaded Drive window.mv on the live page via browser automation — see the site's llms.txt
Local app pip install meshvaultmeshvault → browse your filesystem at http://localhost:8420 Same server also serves the JSON control API docs at /llms.txt
MCP server pip install "meshvault[mcp]"meshvault-mcp: 8 tools (load by path/URL, describe, mesh stats, geometric compare, reproducible screenshots, push-to-app co-review) for Claude/Cursor — docs/mcp.md

CI Python 3.10+ FastAPI Three.js PyPI npm License: MIT


Supported Formats

3D Models Archives
.obj, .fbx, .gltf, .glb, .stl, .ply, .dae, .3mf, .usdz .zip, .rar, .unitypackage

Older FBX files (version < 7000) are auto-converted to OBJ by a built-in zero-dependency parser. .usdz is import-only.

Features

Category Features
Browsing Sidebar tree, list/grid view with rendered thumbnails, sort, filter, remember last directory, shareable deep links (?path=/?dir=)
Library Cross-folder search, tags & collections, recent files (all backed by a local index)
File Management Right-click: rename (inline), duplicate, delete, show in file manager
3D Viewer PBR rendering, SSAO, soft shadows, ACES tone mapping, orbit + FPV drone navigation
Toolbar Screenshot, grid, axes (XYZ), wireframe, normals viz, texture folder picker, material inspector, lights, measure
Animation Play/pause, scrub, speed, clip selector for animated GLB/FBX/Collada
Transforms Reload, reset, center, ground, auto-orient (PCA), rotate ±90° per axis
Mesh Ops Simplify (edge collapse LOD, UV-preserving), recompute smooth normals (UV-preserving)
Textures Folder picker with smart matching (convention + fuzzy name) for separated texture packs
Export Save As dialog, folder browser, modified models export as OBJ/GLB with baked transforms
Extras Drag-and-drop load, measurement, 12 background presets, scale, persistent settings
AI agents Self-describing JSON control API (/llms.txt), describe_scene text snapshots, and an MCP server (meshvault-mcp) for Claude/Cursor — see docs/mcp.md
Security Loopback bind, session-token auth, path confinement to an allowed root (see below)

Quick Start

git clone https://github.com/lpalbou/meshvault.git
cd meshvault
poetry install --no-root
poetry run meshvault

Open http://localhost:8420 · Also: pip install meshvault or npx meshvault

MeshVault binds to 127.0.0.1 and requires a session token on every /api/* request. By default it can browse your whole filesystem (opening at your home directory) — the network protections (loopback + token + Host allow-list) are what keep it private. Set MESHVAULT_ROOT=/path[:/path2] to restrict file access to specific directories. Configure MESHVAULT_HOST (bind host) and MESHVAULT_TOKEN as needed. Opening the URL on the same machine authenticates automatically; other devices need the token from the launch banner. See API Reference.

Control MeshVault with AI agents

MeshVault is built to be driven by agents, not just humans. Three entry points, from lightest to most integrated:

  1. Self-describing JSON control API — the viewer exposes one entry point, execute({action, params}), with ~48 discoverable commands (listCommands()), plus describe_scene: a structured text snapshot (inventory, size, materials, geometry-QA issues, current view) so a text-only agent can reason without screenshots. Agent-ready reference served at /llms.txt and /llms-full.txt.
  2. MCP servermeshvault-mcp lets Claude Desktop / Claude Code / Cursor drive a headless viewer natively through 8 tools: load a model by URL or local file path, describe it, run any viewer command, and get PNG screenshots back as image content (best_view: true gives a one-call hero shot; preset: "studio" pins lighting so renders are comparable across sessions). With the app running, open_in_app pushes the agent's model + camera into the human's browser tab for live co-review. Setup: docs/mcp.md.
  3. Embeddable standalone viewermeshvault-viewer.js is a server-less ES-module bundle (Three.js included, offline, compressed-glTF decoders bundled) exposing the same control API for your own pages or agent harnesses.

Typical agent flow: loaddescribe_scenefind_best_view (finds the model's semantic front and uprights it) → set_render_mode / set_clip to inspect → screenshot.

Documentation

  • Getting Started — Installation, UI overview, complete feature guide
  • Architecture — System design, components, rendering pipeline
  • API Reference — REST API (14 endpoints)
  • MCP Server — Drive the viewer from Claude/Cursor via Model Context Protocol
  • FAQ — Troubleshooting and tips

License

MIT — © 2026 Laurent-Philippe Albou — contact@abstractcore.ai

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

meshvault-0.4.0.tar.gz (1.3 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

meshvault-0.4.0-py3-none-any.whl (1.3 MB view details)

Uploaded Python 3

File details

Details for the file meshvault-0.4.0.tar.gz.

File metadata

  • Download URL: meshvault-0.4.0.tar.gz
  • Upload date:
  • Size: 1.3 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for meshvault-0.4.0.tar.gz
Algorithm Hash digest
SHA256 dfbef46794dc8ab2d2a6420b0cd947253ed9f257e3b7a1926718f3ddeb04185c
MD5 1a5db96dd28ed8c422643fcb563d808f
BLAKE2b-256 adf42f20a6a348c61c52454dbe051ff18e7e9834cdc884913fe4a2757451af52

See more details on using hashes here.

Provenance

The following attestation bundles were made for meshvault-0.4.0.tar.gz:

Publisher: release.yml on lpalbou/MeshVault

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file meshvault-0.4.0-py3-none-any.whl.

File metadata

  • Download URL: meshvault-0.4.0-py3-none-any.whl
  • Upload date:
  • Size: 1.3 MB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for meshvault-0.4.0-py3-none-any.whl
Algorithm Hash digest
SHA256 fab18b21d582e54bd37dc6644214d1a16a84987001981a185f7fb5036230050a
MD5 927ad44e6e557de31fc9af6ef38d2793
BLAKE2b-256 addade54a9fdbed682ca0b132ccad1b58745b31df312046af4eb903fc05dfbc5

See more details on using hashes here.

Provenance

The following attestation bundles were made for meshvault-0.4.0-py3-none-any.whl:

Publisher: release.yml on lpalbou/MeshVault

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Release history Release notifications | RSS feed

0.8.0

2 files

0.7.0

2 files

0.6.0

2 files

0.5.0

2 files

This release

0.4.0 This release

2 files

0.3.1

2 files

0.3.0

2 files

0.1.0

2 files

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page