Skip to main content

A professional 3D asset browser for rapid browsing, previewing, and managing OBJ/FBX files

Project description

MeshVault

A professional, local web-based tool for rapidly browsing, previewing, and managing 3D assets (.obj, .fbx, .gltf, .glb, .stl) across your filesystem — including assets buried inside .zip and .rar archives.

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


Features

Feature Description
Folder Browsing Navigate your filesystem with a clean sidebar tree. Go up, go home, double-click to enter. List/grid view toggle.
Search & Filter Real-time search input to filter folders and assets in the current directory.
3D Asset Detection Finds .obj, .fbx, .gltf, .glb, .stl files — including inside .zip and .rar archives.
Interactive 3D Viewer Click an asset to load it with high-quality PBR rendering, SSAO, soft shadows, tone mapping.
Orbit / FPV Toggle Orbit mode (mouse orbit/zoom/pan, right-click pivot) and FPV drone mode (WASD fly, A/D yaw, mouse look).
Viewer Toolbar Toggle grid, XYZ axes (colored + labeled), wireframe, and light controls from the top-right toolbar.
Light Controls Adjustable key/fill/ambient intensity, light direction (azimuth/elevation), and exposure.
Background Presets 12 background color swatches (dark, gray, light, tinted) for evaluating models on any backdrop.
Model Transforms Center at origin, ground on Y=0, auto-orient via PCA, reset to original. All without moving the camera.
Model Scaling Real-time scale slider (0.25×–2.0×).
Modified Export Export applies all transforms (center, ground, orient, scale) — saves modified OBJ via Three.js OBJExporter.
FBX Auto-Conversion Old FBX files (version < 7000) are auto-converted to OBJ via a built-in binary parser.
Persistent Settings Scene settings (wireframe, grid, axes, background) persist across model loads.

Quick Start

Prerequisites

  • Python 3.10+
  • Poetry (install guide)
  • For .rar support, one of: bsdtar, unrar, 7z, or unar (auto-detected)

Install & Run

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

Then open http://localhost:8420 in your browser.

Install from PyPI

pip install meshvault
meshvault

Install from NPM

npx meshvault

Usage

  1. Browse: Navigate folders in the sidebar. Toggle list/grid view. Filter by name.
  2. Preview: Click any 3D asset to load it in the viewer (green=OBJ, orange=FBX, cyan=GLTF, purple=STL/archived).
  3. Navigate: Orbit mode (left-drag orbit, scroll zoom, right-drag pan, right-click pivot) or FPV drone mode (W/Shift forward, S/Ctrl backward, A/D yaw, E/Q altitude). Spacebar resets camera.
  4. Scene tools: Toggle grid, axes (XYZ), wireframe, and lighting from the toolbar. Pick background color from swatches.
  5. Transform: Center model at origin, ground it on Y=0, or auto-orient via PCA. Reset undoes all transforms.
  6. Export: Set name and path in the top bar, click Export. Modified models (centered/oriented/scaled) are exported as OBJ with baked transforms.

Project Structure

meshvault/
├── backend/
│   ├── app.py                 # FastAPI server + routes
│   ├── file_browser.py        # Filesystem navigation + asset discovery
│   ├── archive_inspector.py   # ZIP/RAR inspection + multi-tool extraction
│   ├── export_manager.py      # Asset export with renaming
│   └── fbx_converter.py       # FBX 6100 binary parser + OBJ converter
├── frontend/
│   ├── index.html             # Main HTML page
│   ├── css/styles.css         # Dark professional theme
│   └── js/
│       ├── app.js             # Main orchestrator
│       ├── file_browser.js    # File browser + search + grid/list
│       ├── viewer_3d.js       # Three.js 3D viewer
│       └── export_panel.js    # Rename/export controls
├── tests/
│   └── test_file_browser.py   # Backend unit tests
├── docs/                      # Full documentation
├── pyproject.toml             # Poetry / PyPI configuration
├── package.json               # NPM configuration
└── poetry.lock

Documentation

  • Getting Started — Installation, first run, basic usage
  • Architecture — System design, components, design decisions
  • API Reference — REST API endpoints, request/response schemas
  • FAQ — Common questions and troubleshooting

Tests

poetry run pytest tests/ -v

Contributing

Contributions are welcome! Please open an issue or submit a pull request on GitHub.

License

MIT License — see LICENSE for details.

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

Project details


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.1.0.tar.gz (50.5 kB view details)

Uploaded Source

Built Distribution

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

meshvault-0.1.0-py3-none-any.whl (54.7 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: meshvault-0.1.0.tar.gz
  • Upload date:
  • Size: 50.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.7

File hashes

Hashes for meshvault-0.1.0.tar.gz
Algorithm Hash digest
SHA256 1c946031bf1d6707b9fb30eb32ff54a25927fe9ba4883c5538687cf1c1f2ee30
MD5 cfd505f6c204ddcea1dd5cbbf06797d1
BLAKE2b-256 ecdfad1c8a3d1c02d348cb43f4f7c917b722de2fae49d128d9fe5b2396342806

See more details on using hashes here.

File details

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

File metadata

  • Download URL: meshvault-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 54.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.7

File hashes

Hashes for meshvault-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 fc13ccb5bf26043037bae4395caf96849b0d736cb140ec12863f1f0658e9cedf
MD5 0a1fb41cc72f26f1f1db17935d2c52ce
BLAKE2b-256 8f9bb9f4199cacef9c58da3aefe0a0b10447220a05d8ee963e8946b887396d12

See more details on using hashes here.

Supported by

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