Modly Deep Dive: A Local, Open-Source Image-to-3D Desktop App
> Research subject: lightningpixel/modly. Findings verified via parallel code-level reading plus external checks (GitHub API, Releases, web search) as of 2026-08-14.
Key points
- What it is: A free, MIT-licensed desktop app for local image-to-3D mesh generation (photo →
.glb) running entirely on your own GPU. Electron + React frontend, Python/FastAPI backend on127.0.0.1:8765, embedded portable Python 3.11.9 (via python-build-standalone) so users need no pre-installed Python. Current release: v0.4.1 Beta (2026-07-16), repo created 2026-03-17, ~5,541 stars / 582 forks. Platforms: Windows, Linux, Apple Silicon macOS only. - Model-agnostic host: The binary contains no built-in generators. Extensions (each with
manifest.json+generator.py) are discovered at runtime; each runs in its own venv subprocess (ExtensionProcess, NDJSON over stdio). Supported open models include Hunyuan3D 2/2 Mini, TripoSG, TRELLIS/Trellis2, TripoSR, Stable Fast 3D. The code-level default ID issf3d, but Electron always overrides it, so the actual default is "the first installed extension" — documentation has drifted from code. - 100% local inference, not fully offline: No cloud inference APIs. However, first-run downloads of multi-GB weights from HuggingFace (gated models need an HF token) and extension installs from GitHub require network.
- Pipeline: image → extension subprocess inference → optional post-processing (UV unwrap, texture baking, mesh decimation/smoothing via trimesh+pymeshlab, Gaussian Splatting conversion) → export glb/stl/obj/ply. A node-based workflow canvas (
@xyflow/react) executes topologically in the frontend; validation failures block runs. - Agent interfaces: MCP server (10 tools: generate, optimize, import/export, model switching) and a stdlib-only CLI — a genuine differentiator for agent-driven 3D workflows.
- Installing an extension from any github.com URL executes third-party code at user privileges — no signature checks, no commit pinning, no allowlist.
- Model weights have no integrity verification, and
hf_repois extension-controlled; PyTorch pickle loading means arbitrary code execution (supply-chain RCE). - Extension subprocesses are unsandboxed and inherit the full host environment including
HF_TOKEN. POST /extensions/setup/{ext_id}has a path-traversal flaw (noassertSafeExtensionIdsanitization), unauthenticated on localhost.
Security findings (code-verified)
High severity
127.0.0.1:8765 has no authentication; no commit/version pinning (irreproducible installs); the "trusted registry" is only a UI badge and fails open offline; HF tokens passed in URL query strings.Key fact-check: rumors of extension signature verification were disproven — api/resources/public_key.pem (113 bytes) is an orphan file referenced by zero code; cryptography is unused in the API. Modly currently has no supply-chain integrity checks at all, despite excellent path-traversal and manifest-structure guards.
Positioning
Modly is the near-sole occupant of the local × open-source × packaged desktop quadrant for image-to-3D (vs. cloud SaaS like Meshy/Tripo/Rodin, or DIY model repos/ComfyUI). It leads in distribution form and agent-readiness; it trails on output quality ceiling and ecosystem maturity (cloud rivals claim ~27–28M monthly visits). Overall engineering maturity: ~3.5/5 — an active early Beta by an estimated 1–2 person team.
Recommendations
For users: only install official lightningpixel/* extensions, verify repos/commits manually; need a discrete GPU with ≥8GB VRAM; expect "melted-wax" artifacts on people from single-image reconstruction. For the project: add maintainer allowlist/signature verification with commit pinning, authenticate the FastAPI port, fix the setup-endpoint traversal, verify weight SHA256 against signed manifests, and stop leaking secrets to extension subprocesses.