
Modly Image To 3d
Run the Modly Electron desktop app locally to turn images into 3D meshes on your own GPU without cloud APIs.
Overview
Modly Image-to-3D is an agent skill for the Build phase that sets up a local Electron and FastAPI desktop app to generate 3D meshes from images on your GPU.
Install
npx skills add https://github.com/aradotso/trending-skills --skill modly-image-to-3dWhat is this skill?
- Open-source Windows/Linux desktop app: Electron + TypeScript frontend over Python FastAPI backend
- Image-to-mesh generation runs locally on GPU—no cloud or API keys required per skill description
- Extension system: GitHub repos with manifest.json plus generator.py plug into the API
- Quick start via launcher.bat (Windows) and launcher.sh (Linux) without a full custom build
- Documents repo layout: src/main, renderer, preload, api/generator.py, resources/icons
- Electron + React renderer with Python FastAPI api/generator.py backend
- Extension plug-in model: manifest.json + generator.py
Adoption & trust: 1.2k installs on skills.sh; 31 GitHub stars; 0/3 security scanners passed (skills.sh audits).
What problem does it solve?
You want image-to-3D output without shipping assets to a cloud API or paying per-generation fees.
Who is it for?
Builders with a capable local GPU who want an open-source, desktop image-to-mesh workflow for games, AR, or physical prototyping previews.
Skip if: Users without local GPU capacity, teams that need only a one-line hosted 3D API, or workflows that cannot install Electron plus Python dependencies.
When should I use this skill?
Triggers include generate 3D model from image, image to 3D mesh locally, run Modly AI model, install Modly extension, Modly GPU image to 3D, or Hunyuan3D local generation.
What do I get? / Deliverables
You can launch Modly locally, run GPU-backed generation through the FastAPI backend, and extend behavior via manifest-based generator extensions.
- Running Modly desktop instance via launcher scripts
- Optional custom extension repo with manifest.json and generator.py
Recommended Skills
Journey fit
Local 3D generation setup belongs in Build when you assemble the desktop stack, Python API, and extension manifests for asset pipelines. The skill emphasizes Electron/React UI, preload IPC, and launcher scripts—the product surface and local app shell—not production monitoring.
How it compares
A local desktop pipeline skill—not a browser-only SaaS 3D API integration guide.
Common Questions / FAQ
Who is modly-image-to-3d for?
Solo developers and creators comfortable with Electron, Python, and GPU setup who want local image-to-3D generation via Modly.
When should I use modly-image-to-3d?
During Build when you install or fork Modly, wire extensions, or integrate the desktop app into an asset pipeline before Ship perf testing.
Is modly-image-to-3d safe to install?
Local apps execute Python and GPU workloads on your machine; review the Security Audits panel on this page and vet extension repos before running third-party generator.py modules.
SKILL.md
READMESKILL.md - Modly Image To 3d
# Modly Image-to-3D Skill > Skill by [ara.so](https://ara.so) — Daily 2026 Skills collection. Modly is a local, open-source desktop application (Windows/Linux) that converts photos into 3D mesh models using AI models running entirely on your GPU — no cloud, no API keys required. --- ## Architecture Overview ``` modly/ ├── src/ # Electron + TypeScript frontend │ ├── main/ # Electron main process │ ├── renderer/ # React UI (renderer process) │ └── preload/ # IPC bridge ├── api/ # Python FastAPI backend │ ├── generator.py # Core generation logic │ └── requirements.txt ├── resources/ │ └── icons/ ├── launcher.bat # Windows quick-start ├── launcher.sh # Linux quick-start └── package.json ``` The app runs as an Electron shell over a local Python FastAPI server. Extensions are GitHub repos with a `manifest.json` + `generator.py` that plug into the extension system. --- ## Installation ### Quick start (no build required) ```bash # Windows launcher.bat # Linux chmod +x launcher.sh ./launcher.sh ``` ### Development setup ```bash # 1. Clone git clone https://github.com/lightningpixel/modly cd modly # 2. Install JS dependencies npm install # 3. Set up Python backend cd api python -m venv .venv # Activate (Windows) .venv\Scripts\activate # Activate (Linux/macOS) source .venv/bin/activate pip install -r requirements.txt cd .. # 4. Run dev mode (starts Electron + Python backend) npm run dev ``` ### Production build ```bash # Build installers for current platform npm run build # Output goes to dist/ ``` --- ## Key npm Scripts ```bash npm run dev # Start app in development mode (hot reload) npm run build # Package app for distribution npm run lint # Run ESLint npm run typecheck # TypeScript type checking ``` --- ## Extension System Extensions are GitHub repositories containing: - `manifest.json` — metadata and model variants - `generator.py` — generation logic implementing the Modly extension interface ### manifest.json structure ```json { "name": "My 3D Extension", "id": "my-extension-id", "description": "Generates 3D models using XYZ model", "version": "1.0.0", "author": "Your Name", "repository": "https://github.com/yourname/my-modly-extension", "variants": [ { "id": "model-small", "name": "Small (faster)", "description": "Lighter variant for faster generation", "size_gb": 4.2, "vram_gb": 6, "files": [ { "url": "https://huggingface.co/yourorg/yourmodel/resolve/main/weights.safetensors", "filename": "weights.safetensors", "sha256": "abc123..." } ] } ] } ``` ### generator.py interface ```python # api/extensions/<extension-id>/generator.py # Required interface every extension must implement import sys import json from pathlib import Path def generate( image_path: str, output_path: str, variant_id: str, models_dir: str, **kwargs ) -> dict: """ Required entry point for all Modly extensions. Args: image_path: Path to input image file output_path: Path where output .glb/.obj should be saved variant_id: Which model variant to use models_dir: Directory where downloaded model weights live Returns: dict with keys: success (bool) output_file (str) — path to generated mesh error (str, optional) """ try: # Load your model weights weights = Path(mode