A month of work after v0.1.0-alpha.8. The headline of this release: the browser build becomes genuinely usable, vision tasks arrive, and graphs become shareable as single files.
Getting it
- Try it online (no install): GraphStudio on the web — drop in a
graph.json, an entiregraphs/folder, or a.tgpproject bundle; - Desktop installers: download page (macOS
.dmg/ Windows.msix/ Linux.AppImage).
The WASM web build, fully usable
The previous web build opened but fought you — no context menus, no palette drag, and dropped-in graphs couldn’t find their assets. All fixed in this release:
- Context menus:
QMenu::exec()doesn’t work on Qt 6.6 WASM; replaced with a non-blockingpopup(), one code path for desktop and web (canvas nodes also gained right-click delete); - Palette drag & drop: rebuilt on an application-level event filter, sidestepping the platform’s broken
grabMouse; - File & folder drops: a loose
graph.jsongets its assets paired automatically by in-graph references; dropping a whole folder (e.g. a submodule’stests/graphs/) lands with the original relative layout so siblingdata/assets resolve; missing assets are reported in the in-app log panel instead of failing silently; - URL opening:
?open=<url-to-graph.json>&run=1cold-starts and runs a graph — handy for sharing one-click runnable graphs; - Models bundled: the default face/matting models ship inside the web package, so vision tasks work in the browser out of the box.
New tasks: face detection and portrait matting
face_detect— face boxes by default, 478-point landmarks withoutput_landmarks=true; mediapipe / mnn dual backends with automatic fallback inautomode;matting— portrait matting with three outputs:out(alpha mask),mask(grayscale), andcutout(transparent-background result); dual backends as well.
Both live in the new Vision palette category. Model parameters show/hide per backend, and default models are bundled with both the desktop installers and the web package — zero configuration.
.tgp project bundles: share a whole project as one file
A browser can’t reach sibling directories on your disk, so sending someone a lone graph.json always meant missing files. The new project bundle (.tgp) packs the graph JSON plus every relative-path dependency into a single ZIP: it opens from the toolbar, drag & drop, and the URL channel on both desktop and web. Saving from an opened project exports a fresh bundle, so nothing is lost.
wgpu is now the default GPU backend
The GPU compute path moves to wgpu: WGSL single-source (one shader set across Metal / Vulkan / D3D12), all 17 compute ops ported and running on wgpu by default; the hand-written Metal / Vulkan backends remain as fallbacks and baselines (force one via TG_GPU_BACKEND). The render side gains WGSL sources too, along with a set of filter primitives: render_lut (HALD/stripe layouts auto-detected), render_lut_cube (.cube conversion), separable Gaussian/box blur, Sobel/Scharr/Laplacian, dilate/erode, unsharp mask, and more — compose complex filters with render_pipeline’s pass{i}_* parameters.
Engines and scripting move into the core library
The MNN inference engine, the ten MediaPipe vision tasks (mp_*), and the QuickJS engine (the js_script task) are no longer distributed as separate plugin repositories — they compile straight into the core library, simplifying packages and removing plugin prerequisites. Render effects additionally support JS lifecycle scripts (onInit / onParamChange / onBeforeRender / onAfterRender / onRelease).
Other improvements
- Image viewer rewritten: pure QPainter (no native-window/GL dependency), one code path on desktop and web; GPU-resident results sync back to the CPU lazily, on selection, avoiding full readbacks of large images;
- Asset path resolution: read-type asset references probe the graph’s directory plus two ancestors, so source-tree test graphs now run when dropped straight into GraphStudio;
- Stability: fixed the Windows MSVC Debug link error (LNK2019) and the exit-time segfault in GPU graph tests on Linux;
- For developers: a pure C API (
tg_sdk_c.h), the TaskGraphSdk lifecycle API, the read-only DagConfig API, a unified ModelFinder, and a five-track automated test suite covering desktop / WASM / macOS / Android.
Full changelog
See the GitHub Release v0.1.0-alpha.13.
Try it live at studio.mangoeffect.net/web. Issues are welcome on GitHub.