Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
108 commits
Select commit Hold shift + click to select a range
62597b5
fix: retry model deletion on Windows when files are locked
Bortlesboat Mar 23, 2026
da2137f
fix(security): correct typo in trusted extensions registry URL
wahdanz1 Apr 25, 2026
f98d898
feat(workflow): add more base node
lightningpixel Apr 27, 2026
f7dc38e
Merge pull request #117 from lightningpixel/feat/add-more-base-node
lightningpixel Apr 27, 2026
c5c2a03
feat(generate): add modly agent
lightningpixel Apr 27, 2026
7777e5a
Merge pull request #53 from Bortlesboat/fix/windows-model-deletion
lightningpixel Apr 27, 2026
ccb4b3c
Merge pull request #113 from wahdanz1/fix/registry-url-typo
lightningpixel Apr 27, 2026
ca1ebd5
feat(agent): add setting agent page
lightningpixel Apr 27, 2026
4dee292
Merge pull request #120 from lightningpixel/feat/modly-agent
lightningpixel Apr 28, 2026
f813ea9
feat(architecture): python venv error handle
lightningpixel May 4, 2026
db5ceb3
Merge pull request #123 from lightningpixel/feat/python-venv-error
lightningpixel May 4, 2026
f1925be
fix(extensions): weight download appears completed after switching pa…
lightningpixel May 4, 2026
68f4024
Merge pull request #124 from lightningpixel/fix/download-appears-comp…
lightningpixel May 4, 2026
f21bcea
fix(extension): modly extension installation fails when downloading t…
lightningpixel May 4, 2026
01b9bb0
Merge pull request #125 from lightningpixel/fix/extension-installatio…
lightningpixel May 4, 2026
7e4fd62
fix(setup): SSL errors download progress on panel switch antivirus hi…
lightningpixel May 4, 2026
8daa77d
Merge pull request #126 from lightningpixel/fix/ssl-setup-bugs
lightningpixel May 4, 2026
23e868e
Auto-install missing extension modules on startup
deya-eldeen May 8, 2026
edb063b
Harden extension auto-repair to safe cross-platform mapping
deya-eldeen May 8, 2026
b80a14c
Merge pull request #133 from lightningpixel/main
lightningpixel May 10, 2026
bad983e
fix(extension): manifest extensions error handle
lightningpixel May 10, 2026
64293b0
Merge pull request #134 from lightningpixel/fix/fix-manifest-extensio…
lightningpixel May 10, 2026
d4cab7b
fix(architecture): purge stale generation jobs to prevent memory leak
lightningpixel May 10, 2026
c5ac516
Merge pull request #135 from lightningpixel/fix/job-generation-memory
lightningpixel May 10, 2026
2fa0b42
fix(architecture): terminate stale process runners on extension reins…
lightningpixel May 10, 2026
69cf18e
Merge branch 'dev' into fix/stale-process-runners
lightningpixel May 10, 2026
61671c4
Merge pull request #136 from lightningpixel/fix/stale-process-runners
lightningpixel May 10, 2026
29393db
Add Wait node and conditional param visibility
Lorchie May 10, 2026
74e5247
Merge pull request #137 from lightningpixel/feature/ProcessWait
lightningpixel May 10, 2026
f10c51a
fix(extensions): harden extension path handling
DrHepa May 10, 2026
9717c49
fix(extensions): rollback failed GitHub installs
DrHepa May 10, 2026
e99d53d
Merge pull request #138 from DrHepa/fix/github-extension-install-secu…
lightningpixel May 11, 2026
089677f
Merge pull request #131 from deya-eldeen/macos_fix
lightningpixel May 11, 2026
3da27d4
fix(extension): wait for killed subprocess before retry
lightningpixel May 11, 2026
7af92ce
Merge pull request #140 from lightningpixel/fix/extension-process-zom…
lightningpixel May 11, 2026
97b75d4
feat: add agent-friendly Modly CLI
jokrasno May 11, 2026
3f20868
feat(mac): add Apple Silicon support and runtime hardening
sketchasketch Apr 28, 2026
ad3fb29
Merge pull request #119 from sketchasketch/pr/apple-silicon-support
lightningpixel May 15, 2026
5692c70
fix(download): preserve files on cancel, fresh control per session HE…
lightningpixel May 15, 2026
f91d34d
Merge pull request #148 from lightningpixel/fix/download-hardening
lightningpixel May 15, 2026
fc434c6
feat(settings): add Application page with RAM indicator toggle
lightningpixel May 15, 2026
5beb8db
Merge pull request #149 from lightningpixel/feat/add-app-settings
lightningpixel May 15, 2026
749c00b
fix(extensions): accept 'ready' response as valid reply to load action
Bryan-chua777 May 14, 2026
fc111a8
fix(fs): pass current dir as defaultPath to directory picker on Linux
lightningpixel May 22, 2026
1c87465
Merge pull request #153 from lightningpixel/fix/file-picker-default-path
lightningpixel May 22, 2026
cc64f1d
fix(python-setup): copy Python runtime to stable path on Linux AppImage
lightningpixel May 22, 2026
28cb788
Merge pull request #154 from lightningpixel/fix/appimage-python-ephem…
lightningpixel May 22, 2026
81fb0b0
Merge pull request #146 from bryanchua5327/fix/extension-load-ready-r…
lightningpixel May 22, 2026
d351e95
fix: align Modly CLI automation contract
jokrasno May 29, 2026
d731146
feat(workflows): branch-based Wait execution with nested waits
Lorchie Jun 1, 2026
820741c
feat(settings): accessibility section
Lorchie Jun 1, 2026
a8b0ceb
fix: support direct workflow asset outputs
jokrasno Jun 2, 2026
019b044
fix: resolve gitignore conflict
jokrasno Jun 2, 2026
b9cb1df
feat(accessibility): interface scale via webFrame zoom + a11y on Segm…
Lorchie Jun 2, 2026
17c24eb
refactor(workflows): share Wait button logic + fix nested-wait error …
Lorchie Jun 2, 2026
9c92bca
fix: harden Modly CLI agent safety
jokrasno Jun 2, 2026
7f85bcd
fix: validate workflow scene workspace paths
jokrasno Jun 2, 2026
11418dd
Update error logging for bad JSON input
iammojogo-sudo Jun 5, 2026
0920a1d
Fix progress callback to update job progress correctly
iammojogo-sudo Jun 5, 2026
2c2ec92
feat(scene): add selected mesh outline
DrHepa Jun 5, 2026
c323008
Merge branch 'dev' into fix/progress-logging
iammojogo-sudo Jun 6, 2026
69015ea
Merge branch 'lightningpixel:main' into fix/progress-logging
iammojogo-sudo Jun 6, 2026
8c82cef
feat(local-ext): added linkage for local extension installation
XPOL555 Jun 8, 2026
61c3d73
Merge pull request #172 from XPOL555/169-extension-local
lightningpixel Jun 8, 2026
4394da5
Merge pull request #168 from DrHepa/feat/mesh-selection-outline
lightningpixel Jun 9, 2026
fbdcd38
Merge pull request #160 from lightningpixel/feat/accessibility
lightningpixel Jun 9, 2026
92ddbd2
Merge pull request #144 from jokrasno/cli-tool-dev-pr
lightningpixel Jun 9, 2026
2b5ad32
feat(generate): add transform tools bar with selection-gated tools
lightningpixel Jun 9, 2026
26a1e2d
Merge pull request #178 from lightningpixel/feature/add-secondary-too…
lightningpixel Jun 9, 2026
e39b9fd
Fix conflit
Lorchie Jun 9, 2026
e2928cc
Downgrade version from 0.3.6 to 0.3.5
iammojogo-sudo Jun 9, 2026
341bd6e
Downgrade API version from 0.3.6 to 0.3.5
iammojogo-sudo Jun 9, 2026
6d6d12d
Revise README for Modly CLI and community info
iammojogo-sudo Jun 9, 2026
e4f03e1
Update GeneratePage.tsx
iammojogo-sudo Jun 10, 2026
6a6f228
feat: add Gaussian Splat viewer support
Lorchie Jun 10, 2026
cb9f455
fix(viewer): stop gizmo/mesh ghosting and match splat framing to GLB
Lorchie Jun 11, 2026
f9555f4
Merge pull request #182 from lightningpixel/feat/AddSplatToScene
lightningpixel Jun 15, 2026
bc7a598
Add transform gizmo (move/rotate/scale)
iammojogo-sudo Jun 16, 2026
8140693
fix(workflows): remove variant selector from extension node
Lorchie Jun 16, 2026
2e36e46
Merge pull request #185 from lightningpixel/fix/remove-variant-selector
lightningpixel Jun 16, 2026
bc1e590
fix(workflows): address Wait review feedback and branch display bugs
Lorchie Jun 16, 2026
522f438
Merge pull request #159 from lightningpixel/feat/wait-branches
lightningpixel Jun 17, 2026
9b49487
feat: add GitHub issue templates
Lorchie Jun 18, 2026
7cfe595
Merge pull request #190 from lightningpixel/feat/issue-templates
lightningpixel Jun 18, 2026
e54b9b8
Refactor light settings management in GeneratePage
iammojogo-sudo Jun 19, 2026
e6be0ff
Add LightSettings interface and default settings
iammojogo-sudo Jun 19, 2026
a739a64
Refactor imports for LightSettings and DEFAULT_LIGHT_SETTINGS
iammojogo-sudo Jun 19, 2026
3b1b137
Merge pull request #181 from iammojogo-sudo/3d-light-settings-consist…
lightningpixel Jun 19, 2026
dfc0bf0
feat(generate): add workspace asset library
DrHepa Jun 17, 2026
f8e965f
fix(generate): address workspace library review cleanup
DrHepa Jun 19, 2026
319dc2b
feat(extension page): redesign extension page
lightningpixel Jun 20, 2026
33c0399
Merge branch 'dev' into feat/redesign-extension-page
lightningpixel Jun 20, 2026
72c58a8
Merge pull request #191 from lightningpixel/feat/redesign-extension-page
lightningpixel Jun 20, 2026
8977381
Merge pull request #188 from DrHepa/feat/workspace-asset-library
lightningpixel Jun 20, 2026
90344f8
Revert README changes unrelated to this PR
lightningpixel Jun 20, 2026
80dd01b
Merge pull request #165 from iammojogo-sudo/fix/progress-logging
lightningpixel Jun 20, 2026
cf0048d
fix: gizmo design and add undo redo
lightningpixel Jun 20, 2026
27a654c
fix: selection outline showing
lightningpixel Jun 20, 2026
395b77f
fix: change shortcut transform tools
lightningpixel Jun 20, 2026
be6761a
Merge remote-tracking branch 'origin/dev' into pr173-gizmo-updates
lightningpixel Jun 20, 2026
55ff7ab
Merge pull request #173 from iammojogo-sudo/main
lightningpixel Jun 20, 2026
8506da6
feat(agent): add generate workflow by agent
lightningpixel Jun 20, 2026
ac34102
add Light parameter
Lorchie Jun 20, 2026
c619e97
Merge pull request #192 from lightningpixel/feat/addParameter
lightningpixel Jun 20, 2026
f9c9d4e
fix: remove tone mapping and exposure setting
lightningpixel Jun 21, 2026
b30db11
Merge pull request #196 from lightningpixel/fix/remove-tone-mapping
lightningpixel Jun 21, 2026
1e8b657
Adapt Readme file
lightningpixel Jun 21, 2026
894672a
dump version 0.4.0
lightningpixel Jun 21, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
61 changes: 61 additions & 0 deletions .github/ISSUE_TEMPLATE/bug_report.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,61 @@
name: 🐞 Bug report
description: Create a report to help us improve
labels: [bug, "pending triage"]
body:
- type: markdown
attributes:
value: |
**Before You Start...**

This form is only for submitting bug reports. Before opening one, please:
- Search existing issues — your problem may already be reported or fixed in the dev branch.
- For usage questions, join the [Discord Chat](https://discord.gg/T7uQJWnNgr).
- type: textarea
id: description
attributes:
label: Describe the bug
description: A clear and concise description of what the bug is.
validations:
required: true
- type: textarea
id: steps
attributes:
label: Steps to reproduce
description: Steps to reproduce the behavior.
placeholder: |
1. Go to '...'
2. Click on '...'
3. See the error
validations:
required: true
- type: input
id: version
attributes:
label: Modly version
description: Which version of Modly are you running? (Help → About, or package.json)
placeholder: 0.3.5
validations:
required: true
- type: input
id: os
attributes:
label: Operating system
placeholder: Windows 11 / macOS 14 (arm64) / Ubuntu 24.04
validations:
required: true
- type: textarea
id: logs
attributes:
label: Screenshots & logs
description: Add screenshots and any relevant log output to help explain the problem.
validations:
required: false
- type: checkboxes
id: checklist
attributes:
label: Confirmation
options:
- label: I have searched existing issues and this has not been reported yet.
required: true
- label: I can reproduce this on the latest version of Modly.
required: true
80 changes: 80 additions & 0 deletions .github/ISSUE_TEMPLATE/bug_report_extension.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,80 @@
name: 🧩 Bug report — Official extension
description: Report a bug in one of Modly's official extensions
labels: [bug, extension, "pending triage"]
body:
- type: markdown
attributes:
value: |
**Before You Start...**
This form is only for bugs in **official extensions** shipped with Modly.
For core app bugs, use the regular *Bug report* instead.
- Search existing issues — your problem may already be reported or fixed in a newer version.
- Make sure the extension is up to date — **extensions do not update automatically**, so a fix may already be available in a newer version.
- Try to **repair** the extension, or **uninstall and reinstall** it — this fixes most issues.
- For usage questions, join the [Discord Chat](https://discord.gg/T7uQJWnNgr).
- type: input
id: extension
attributes:
label: Which official extension?
description: Name of the official extension affected.
placeholder: e.g. modly-hunyuan3d-mini-extension
validations:
required: true
- type: textarea
id: description
attributes:
label: Describe the bug
description: A clear and concise description of what the bug is.
validations:
required: true
- type: textarea
id: steps
attributes:
label: Steps to reproduce
description: Steps to reproduce the behavior.
placeholder: |
1. Open the extension '...'
2. Apply '...'
3. See the error
validations:
required: true
- type: input
id: version
attributes:
label: Modly version
description: Which version of Modly are you running? (Help → About, or package.json)
placeholder: 0.3.5
validations:
required: true
- type: input
id: os
attributes:
label: Operating system
placeholder: Windows 11 / macOS 14 (arm64) / Ubuntu 24.04
validations:
required: true
- type: input
id: gpu
attributes:
label: GPU
description: Which GPU are you using? (Modly runs locally on your GPU)
placeholder: e.g. NVIDIA RTX 4070 / Apple M3 / AMD RX 7800 XT
validations:
required: true
- type: textarea
id: logs
attributes:
label: Screenshots & logs
description: Add screenshots and any relevant log output to help explain the problem.
validations:
required: false
- type: checkboxes
id: checklist
attributes:
label: Confirmation
options:
- label: I have searched existing issues and this has not been reported yet.
required: true
- label: I can reproduce this on the latest version of Modly.
required: true
8 changes: 8 additions & 0 deletions .github/ISSUE_TEMPLATE/config.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
blank_issues_enabled: false
contact_links:
- name: 💬 Discord Chat
url: https://discord.gg/T7uQJWnNgr
about: Ask questions and chat with the Modly community in real time.
- name: ❤️ Sponsor Modly
url: https://github.com/sponsors/lightningpixel
about: Love Modly? Please consider supporting development via GitHub Sponsors.
38 changes: 38 additions & 0 deletions .github/ISSUE_TEMPLATE/feature_request.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
name: ✨ Feature request
description: Suggest a new feature or improvement for Modly
labels: [enhancement, "pending triage"]
body:
- type: markdown
attributes:
value: |
**Before You Start...**
Please search existing issues first — your idea may already be proposed.
- type: textarea
id: problem
attributes:
label: What problem does this solve?
description: Is your feature request related to a problem? Describe it.
validations:
required: true
- type: textarea
id: solution
attributes:
label: Proposed solution
description: Describe the solution or feature you'd like.
validations:
required: true
- type: textarea
id: alternatives
attributes:
label: Alternatives considered
description: Any alternative solutions or workarounds you've considered.
validations:
required: false
- type: checkboxes
id: checklist
attributes:
label: Confirmation
options:
- label: I have searched existing issues for this feature.
required: true
8 changes: 8 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,8 @@ api/*.pyc
api/**/*.pyc
api/.venv/
api/venv/
tools/modly-cli/__pycache__/
.hermes-e2e/

# Models (heavy, downloaded at runtime)
/models/
Expand All @@ -33,3 +35,9 @@ Thumbs.db
.env
.env.local

# TypeScript incremental build output
*.tsbuildinfo

# Local dev helpers
install.bat
launch.bat
55 changes: 44 additions & 11 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@

**Local, open source, AI-powered image-to-3D mesh generation.**
Turn any photo into a 3D model using open source AI models running entirely on your GPU.
Modly is a desktop application for Windows and Linux (macOS coming soon)
Modly is a desktop application for Windows, Linux, and Apple Silicon macOS.

> Created by [Lightning Pixel](https://github.com/lightningpixel)

Expand All @@ -19,15 +19,15 @@ Modly is a desktop application for Windows and Linux (macOS coming soon)

## Download

Head to the [Releases](../../releases/latest) page to download the latest installer for Windows or Linux.
Head to the [Releases](../../releases/latest) page to download the latest installer for Windows, Linux, or Apple Silicon macOS.

Alternatively, you can clone the repository and run the app directly without installing:

```bash
# Windows
launcher.bat
launch.bat

# Linux
# Linux / macOS
./launcher.sh
```

Expand Down Expand Up @@ -59,11 +59,28 @@ pip install -r requirements.txt
npm run dev
```

### 4. Test

```bash
npm test
./node_modules/.bin/tsc --noEmit -p tsconfig.node.json
npm run build
```

## Platform notes

- macOS support targets Apple Silicon only.
- macOS uses native window controls. Windows and Linux keep the existing custom controls.
- The top bar includes a live RAM indicator sourced from the main process.
- Workflow wiring is validated before run; invalid graphs stay in place and surface inline/toast warnings instead of dropping the current mesh view.
- Package Apple Silicon macOS with `npm run package:mac`.
- Imported meshes can be smoothed and decimated in-app; optimized results are written back into the workspace.

---

## Extension system

Modly supports external AI model extensions. Each extension is a GitHub repository containing a `manifest.json` and a `generator.py`.
Modly supports external model and process extensions. Each extension is a GitHub repository containing a `manifest.json` plus the runtime entry files required by its type.

### Official extensions

Expand All @@ -85,20 +102,36 @@ Modly supports external AI model extensions. Each extension is a GitHub reposito

![Enter extension URL](docs/install-extension.png)

**3.** Once the extension is installed, download the model or one of its variants.
**3.** If the extension exposes model nodes, download the model or one of its variants. Process extensions are ready once installation and setup complete.

![Install models](docs/install-models.png)

---

### Community
## Modly CLI

Join the [Discord server](https://discord.gg/BvjDCvS3yr) to stay up to date with the latest news, report bugs, and share feedback.
Agents and scripts can call a running Modly desktop app without using the UI via the stdlib-only CLI. The CLI is a thin helper over Modly's canonical automation concepts and keeps final machine-readable JSON on stdout:

Follow Modly and its development on X:
```bash
python tools/modly-cli/agent.py health
python tools/modly-cli/agent.py model list
python tools/modly-cli/agent.py workflow-run status <run_id>
python tools/modly-cli/agent.py generate --image ./input.png --output ./export.glb
```

- [Modly on X](https://x.com/modly3d)
- [Lightning Pixel on X](https://x.com/lightningpiixel)
Canonical commands are `health`, `model`, `workflow-run`, `capability`, and `process-run`. The friendly `generate` command starts `POST /workflow-runs/from-image`, polls the returned run, exports the final mesh when requested, and includes recovery metadata such as `workflow-run status ...` and `workflow-run cancel ...` in the JSON response.

Compatibility and helper surfaces are intentionally separated: `legacy` wraps old `/generate/*` job endpoints, `dev serve-api` / `dev ensure-server` start only the FastAPI backend and do not prove Electron/Desktop bridge readiness, and `experimental comfy-image` / `experimental generate-from-workflow` are external ComfyUI orchestration helpers rather than the canonical Modly agent contract. Hidden helper aliases such as `status`, `export`, and `batch` remain parseable for scripts, but they are not presented as canonical root commands.

`experimental generate-from-workflow --workflow <name> --output <path>` treats `--output` as the final artifact location. When the ComfyUI workflow produces a downloadable 3D asset, the CLI downloads it directly; image-only workflows remain a compatibility path through Modly image-to-3D generation.

See `tools/modly-cli/SKILL.md` for the agent workflow and output contract.

---

### Community

Join the [Discord server](https://discord.gg/BvjDCvS3yr) to stay up to date with the latest news, report bugs, and share feedback.

---

Expand Down
8 changes: 6 additions & 2 deletions api/main.py
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@
from fastapi.responses import FileResponse
from fastapi import HTTPException

from routers import generation, model, optimize, status, settings, extensions, export, workflow_runs
from routers import generation, model, optimize, status, settings, extensions, export, workflow_runs, agent


@asynccontextmanager
Expand All @@ -31,7 +31,7 @@ def filter(self, record):

app = FastAPI(
title="Modly API",
version="0.3.6",
version="0.4.0",
lifespan=lifespan,
)

Expand All @@ -40,6 +40,9 @@ def filter(self, record):
allow_origins=["*"],
allow_methods=["*"],
allow_headers=["*"],
# drei's SplatLoader reads Content-Length to size its buffers; cross-origin
# JS can only see it when the server explicitly exposes the header.
expose_headers=["Content-Length"],
)

app.include_router(status.router)
Expand All @@ -50,6 +53,7 @@ def filter(self, record):
app.include_router(extensions.router, prefix="/extensions")
app.include_router(export.router, prefix="/export")
app.include_router(workflow_runs.router, prefix="/workflow-runs")
app.include_router(agent.router)

# Serve generated files from workspace — dynamic so path changes take effect immediately
@app.get("/workspace/{full_path:path}")
Expand Down
Loading
Loading