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.
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
.rarsupport, one of:bsdtar,unrar,7z, orunar(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
- Browse: Navigate folders in the sidebar. Toggle list/grid view. Filter by name.
- Preview: Click any 3D asset to load it in the viewer (green=OBJ, orange=FBX, cyan=GLTF, purple=STL/archived).
- 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.
- Scene tools: Toggle grid, axes (XYZ), wireframe, and lighting from the toolbar. Pick background color from swatches.
- Transform: Center model at origin, ground it on Y=0, or auto-orient via PCA. Reset undoes all transforms.
- 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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
1c946031bf1d6707b9fb30eb32ff54a25927fe9ba4883c5538687cf1c1f2ee30
|
|
| MD5 |
cfd505f6c204ddcea1dd5cbbf06797d1
|
|
| BLAKE2b-256 |
ecdfad1c8a3d1c02d348cb43f4f7c917b722de2fae49d128d9fe5b2396342806
|
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
fc13ccb5bf26043037bae4395caf96849b0d736cb140ec12863f1f0658e9cedf
|
|
| MD5 |
0a1fb41cc72f26f1f1db17935d2c52ce
|
|
| BLAKE2b-256 |
8f9bb9f4199cacef9c58da3aefe0a0b10447220a05d8ee963e8946b887396d12
|