必须带 --recurse-submodules 克隆,否则 Satin、Syphon、HapInAVFoundation 依赖缺失;macOS 构建前需先跑两个 xcframework 构建脚本;需在 Config/Local.xcconfig 填入自己的 Apple Developer team ID,且项目处于早期 alpha 阶段功能不稳定。
Fabric
Fabric-ProjectBSD-3-Clause活跃维护基于节点的创意编程工具,用可视化连线搭建 3D 图形、图像处理和计算机视觉流程,灵感来自 Quartz Composer,适合实时渲染与多媒体实验。
Node Creative Coding / 3D / Image Processing tool inspired by Quartz Composer
git clone --recurse-submodules <repo>
./scripts/build-syphon-xcframework.sh
./scripts/build-hapinavfoundation-xcframework.sh
cp Config/Local.xcconfig.example Config/Local.xcconfigREADME 未说明具体显存或 GPU 型号要求,仅要求 macOS 15+ 与 Xcode 15+,渲染基于 Metal,因此仅支持 Apple 平台。
macOS 上的可视化节点创作环境,做交互视觉、图像视频处理与 3D 内容
基于节点的创意编程工具,用可视化连线搭建 3D 图形、图像处理和计算机视觉流程,灵感来自 Quartz Composer,适合实时渲染与多媒体实验。
核心能力
- 用可视化节点连线搭建交互式 3D 场景与图像处理管线
- 基于 Satin 引擎支持 PBR、阴影投射与 IBL 等现代渲染
- 支持实时着色器编辑与热重载,可边改边看效果
- 内置 ML 实时分割与关键点检测、本地 LLM 调用节点
- 提供插件架构,可用自定义节点扩展并嵌入第三方应用
容易踩的坑
- Releases/Beta-1Beta 1.0最新正式版2026-09-04 · 2026-09-04 20:15 UTC
Fabric Beta 1 significantly expands what you can create, control, and deliver: compositions can now be exported as images or movies, output can live directly behind the node canvas, third-party plug-ins and JavaScript enable deeper customization, and a broad collection of new image, geometry, animation, routing, array, and dictionary nodes opens up more sophisticated workflows.
Optimizations
- Dramatically improve engine performance
- Dramatically improve canvas node ui performance
- Built on top of Satin 2.0 rendering improvements.
Animation, data, and routing
- Added LFO, Pulse, Trigger, Number Generator, and Index Generator nodes for procedural animation and event-driven compositions.
- Expanded Smooth into a configurable, directional filtering node.
- Added a Visualize node for inspecting changing values as a live graph.
Routing
- Added Switch, Gate, and Matrix Switch nodes for dynamically routing values and selectively evaluating graph branches.
Data
- Added a complete set of dictionary nodes, including JSON conversion, merging, lookup, editing, and decomposition.
- Expanded array tools with append, split, subarray, reverse, shuffle, interpolation, resampling, repeat, and tween operations.
- Improved String Split, Formatter, Scanner, and Join with configurable modes and consistent escape handling.
Image and video
- Added a unified Blend node with 28 selectable blend modes.
- Added Cine Grain, Fast Grain, Halation, Halation Extract, Posterize, Color Clamp, and Channel Subsample effects.
- Added Gaussian Blur Channels, post-process Motion Blur, and Depth of Field nodes.
- Added a larger collection of procedural noise generators, including domain-warped, ridge, turbulence, Voronoi, Wavelet, and Worley noise.
- Added image resampling and Lucas–Kanade optical flow.
- Added Hap movie playback, improved playback controls, and more precise seeking.
3D and geometry
- Added a Cyclorama geometry node for seamless studio-style environments.
- Added expression-driven parametric geometry and 14 ready-made parametric surfaces.
- Added a Spot Light node.
- Added Line, Ring, and Grid point-layout nodes.
- Expanded support for composing, decomposing, and animating vectors, orientations, and transforms.
Extensibility and live coding
- Added support for third-party node plug-ins, allowing Fabric to be extended with independently distributed nodes.
- Documents now track the plug-ins they require while retaining compatibility with earlier node identifiers.
- Added a JavaScript node with configurable inputs and outputs.
- Live Image shaders can now include the Lygia shader library directly.
- Expanded the public node and subgraph APIs for creating reusable custom integrations.
Export and presentation
- Export still images as PNG, JPEG, or TIFF.
- Export movies with configurable duration, resolution, frame rate, and H.264, HEVC, ProRes 422, or ProRes 4444 encoding.
- Monitor movie export progress and cancel an export in progress.
- Display rendered output in a separate window or directly behind the node canvas.
- Present clean, full-screen output without editor controls.
Editor experience
- Added a Command-I shortcut for showing or hiding settings on selected nodes.
- Improved node titles, subtitles, custom names, and device labels to make graphs easier to understand.
- Improved the node inspector with clearer grouping, type colors, value previews, and array or dictionary counts.
- Auto Layout now works within the currently viewed subgraph and produces clearer fan-out layouts.
Bug fixes
- Improved document loading so saved values, connections, published ports, and dynamically configured nodes restore reliably.
- Fixed graph execution issues affecting feedback loops, iterat
- Releases/Alpha-13pre-release2026-04-02 · 2026-04-02 04:57 UTC
查看更新说明
Whats new:
Fabric Swift Package
Fabric's core engine is now a Swift Package, making embedding Fabric into custom Swift apps possible.
This is a major milestone that mirrors a core use case from Quartz Composer - a lightweight embeddable runtime that loads a common interchange format that lets users author Fabric Graphs in the editor, and run them in various applications which implement the runtime.
Fabric's package allows you to load Fabric documents in to the runtime, render them on demand, and support all features the Editor supports, as well as procedurally create graphs on demand, save them. You can mix Fabric rendering with your own custom Metal drawing, render documents to movies, - drive graphs with procedural input yourself, and more.
For a taste of what can be made, check out @tobyspark's blog post on his work in progress custom mapping and performance tool - *spark stage

Another teaser - this time of "v" a bespoke VJ app that uses Fabric and Satin behind the scenes:
Fabric Editor
Speaking of Toby - he's done a ton of work improving the quality of life in Fabric editor which has a ton of new and improved features:
- Drag files from Finder into the Canvas
- Drag to select in the Canvas
- Auto Layout nodes in the Canvas
- Improved workflow with sidebar search and list navigation
- Drag nodes from the sidebar to the Canvas (in addition to double clicking)
- Sidebar provides descriptive text for available Nodes.
- Improvements in publishing ports, including context menu and more and more.
- Instantiated Nodes Ports now provide descriptions on hover.
- Improved Subgraph navigation UI.
New Nodes
Highlights include a live code shader editor make image processing effects, super fast high quality blurs, many new string handling nodes and more, projection mapping tools and more:
- Live code shader editor - program metal shaders live, and access the Lygia shader library.
- Image Mesh node for easy no geometry / materials get stuff on screen fast workflow (think Billboard Node from QC)
- Screen Capture Node
- Test Card Node
- Fast multipass seperable blurs ( think v002 Blurs - IYKYK )
- Perspective Geometry node (for DIY projection mapping)
- Image Cropping node
- Orientation Nodes
- Additional String processing nodes
What's Changed
- Feature/port descriptions by @vade in https://github.com/Fabric-Project/Fabric/pull/167
- Migrate Fabric Editor to link to SwiftPM Fabric package by @vade in https://github.com/Fabric-Project/Fabric/pull/168
- Feature/blurs by @vade in https://github.com/Fabric-Project/Fabric/pull/172
- fix #165 by @vade in https://github.com/Fabric-Project/Fabric/pull/173
- Fix for texture -> Fabric Image via our own upload path. by @vade in https://github.com/Fabric-Project/Fabric/pull/174
- Fix #121 by @vade in https://github.com/Fabric-Project/Fabric/pull/175
- Feature/screen capture by @vade in https://github.com/Fabric-Project/Fabric/pull/176
- Clean up port API on Graph, exposing published ports to external fra… by @vade in https://github.com/Fabric-Project/Fabric/pull/183
- PerspectiveQuadGeometryNode by @tobyspark in https://github.com/Fabric-Project/Fabric/pull/178
- TestCardProviderNode by @tobyspark in https://github
- Releases/Alpha-11pre-release2026-01-29 · 2026-01-29 19:10 UTC
查看更新说明
Whats Changed
Copy and Paste in the canvas
Fabric Editor now supports Copy and Paste (and Duplicate) for nodes along with their connections. This makes patching less tedious for making complicated graphs with similar structures.
https://github.com/user-attachments/assets/425361cd-247e-4498-9f3c-7395ffd0b29b
Node Settings
Nodes now support and optional customizable settings view, reminiscent of Quartz Composers older node settings. The settings view supports Nodes that require dynamically changing their input or output ports or their behaviour in a way that doesnt make sense during patch runtime. In other words, these are set and forget configurations, not settings you'd change during runtime.
https://github.com/user-attachments/assets/bbb0a3fc-1371-40ae-9fe1-4b7ad381836c
This enables us to support Nodes we havent been able to prior:
New Nodes with custom Settings:
-
Math Expression
- Configure a math expression in text, in Settings
- Detected variables become input ports.
- Via swift-math-parser
-
Keyboard input
- Bind keys or key combinations in Settings
- Allow keys or key combinations to trigger Boolean signals
-
Timeline
- Create and configure multiple tracks of key framed numeric values with manual easing in Settings.
- Adjust input time to look up multiple output values at that time.
-
Midi input
- Configure in Settings a Midi Device and use midi listen mode to add ports to updated control, notes or surfaces
- Outputs are normalized to float 0 to 1
- Via [https://github.com/orchetect/MIDIKit]
-
OSC Input
- Configure OSC Bindings in Settings
- Bindings become output ports
- Via [https://github.com/orchetect/OSCKit]
-
Game Controller
- Select detected and supported Game Controller devices
- Expose buttons, toggles, bumpers, triggers, dpads Joysticks and more as inputs to Fabric
- Via Game Control Framework
-
HID Input
- Select and expose HID Devices and their parameters
- This is lower level than Game Controller
- Allows access to arbitrary HID devices.
What's Changed
- #159 - Fixed typo in VLM Sample by @latenitefilms in https://github.com/Fabric-Project/Fabric/pull/160
- #162 - Update .gitignore by @latenitefilms in https://github.com/Fabric-Project/Fabric/pull/163
- [Draft] Node Settings / Settings View by @vade in https://github.com/Fabric-Project/Fabric/pull/157
- Add working copy and paste implementation. by @vade in https://github.com/Fabric-Project/Fabric/pull/164
New Contributors
- @latenitefilms made their first contribution in https://github.com/Fabric-Project/Fabric/pull/160
Full Changelog: https://github.com/Fabric-Project/Fabric/compare/Releases/Alpha-10...Releases/Alpha-11
-
- Releases/Alpha-10Alpha 10pre-release2026-01-18 · 2026-01-18 23:02 UTC
查看更新说明
Alpha 10
- Add Face Key Point Detection Node
- Add Local Vision Language Model Node via MLX-Swift-LM
- Will download and install a VLM model from hugging face to run locally
- Prompt to return test or instructions from Image.
- Today uses input of images, does not do temporal understanding yet
- needs https://github.com/ml-explore/mlx-swift-lm/pull/64 merged
- Note this may take a lot of ram!
- Add Vector 2 -> Vector 3 Array Node (converts array of Vec2s to array of Vec3's adds dimension)
- Add Vector 3 -> Transform Array Node (converts array of Vec3s to array of Transforms)
- Add Samples for Face, Hand and VLM nodes.
What's Changed
- Feature/face keypoint analysis by @vade in https://github.com/Fabric-Project/Fabric/pull/152
- Add a working VLM node powered by MLX-Swift-LM by @vade in https://github.com/Fabric-Project/Fabric/pull/153
Full Changelog: https://github.com/Fabric-Project/Fabric/compare/Releases/Alpha-9...Releases/Alpha-10
- Releases/Alpha-9Alpha 9pre-release2026-01-13 · 2026-01-13 21:02 UTC
查看更新说明
https://github.com/user-attachments/assets/4e0078d6-5b21-4a8f-9973-8990dfbfd7fe
(Genuary 12 - Boxes - included in the Genuary samples below!)
New Features
- Rename Nodes (thanks @furtunavlad !)
- Double click a Node's title and rename to keep your Graphs clear and organized
- Improve macOS Tahoe UI experience
- Add Initial SDF Generators, Operators and Rendering Image Nodes
- Add Geometry To Transform Node which converts vertices into arrays of transforms useful for Instanced Rendering
- Add Polar Pixellation Image Effect
Fixes
- Dramatically improve SwiftUI Canvas Scroll Performance
- Fix intermittent crashing due to custom search bar implementation. Adopt
.searchable - Improve LLM Node
- Improve Number Smooth node
- Fix bug in our Feedback Cache
What's Changed
- Add some SDF Shapes and Operator from Lygia by @vade in https://github.com/Fabric-Project/Fabric/pull/143
- Feature/llm fixes by @vade in https://github.com/Fabric-Project/Fabric/pull/145
- Add our Geometry to transform node by @vade in https://github.com/Fabric-Project/Fabric/pull/147
- Issue/123 by @vade in https://github.com/Fabric-Project/Fabric/pull/148
- Rename node functionality by @furtunavlad in https://github.com/Fabric-Project/Fabric/pull/142
- Fixes/swiftui perf 1 by @vade in https://github.com/Fabric-Project/Fabric/pull/149
- Add Polar Pixellate effect, add a genurary sample for it. by @vade in https://github.com/Fabric-Project/Fabric/pull/150
New Contributors
- @furtunavlad made their first contribution in https://github.com/Fabric-Project/Fabric/pull/142
Full Changelog: https://github.com/Fabric-Project/Fabric/compare/Releases/Alpha-8...Releases/Alpha-9
- Rename Nodes (thanks @furtunavlad !)
用户点评
登录用户的真实使用记录,可按版本和硬件筛选还没有人点评。第一个说出真实体验的人最有价值。
Fabric
Fabric is a creative code and rapid prototyping environment focusing on interactive visuals, image and video processing and analysis and 3D content authoring.
Fabric
- Provides an intuitive Visual Node based content authoring environment
- Provides an SDK to load an common interchange file format
- Provides an SDK to extend Fabric by creating custom nodes via a plugin architecture
Fabric is inspired by Apple's deprecated Quartz Composer ecosystem, and its design philosophy.
Fabric is intended to be used as
- A Creative coding tool requires little to no programming experience.
- Pro User tool to create reusable documents (similar to Quartz Composer Compositions) that can be loaded in the Fabric runtime and embedded into 3rd party applications.
- Developer environment built on Satin that can render high fidelity visual output in a procedural way, using modern rendering techniques.
An early alpha of Satin rendering a instances of a sphere geometry, along with an HDRI environment and a PBR Shader at 120Hz:
What can I do with Fabric?
Think of Fabric as a playground of visual capabilies you can combine together.
Author
- Interacive 3D graphics
- Image processing and effects
- Audio reactive scenes
- images and video analysis pipelines
- embed your scenes into your own apps
Check out the Samples
Fabric supports, thanks to Satin and Lygia, high fidelity modern rendering techniques including
- Physically based rendering
- Scene graph
- Lighting and Shadow casting
- Realtime shader editing (live coding, hot reloading)
- GPU Compute
- Image Based Lighting
- 3D Model Loading
- Material System
- ML based realtime segmentation and keypoint detection
- Shader based Image Processing and Mixing
- Local LLM calling
Credits
Fabric is authored by by Anton Marini.
Fabric uses Satin 3D engine Satin rendering engine written by @Reza Ali.
Fabric includes a licensed Metal port of Lygia shader library, powering Image effects and more, written by @Patricio Gonzalez Vivo and contributors.
Requirements
[!WARNING] Please note Fabric is heavily under construction.
- macOS 15 +
- XCode 15 +
Please See Releases for code signed App downloads.
For Developers:
- Checkout Fabric with submodules enabled, as
Satin,SyphonandHapInAVFoundationare dependencies. (git clone --recurse-submodules ...) - If you already cloned without submodules, run
git submodule update --init --recursive. - if building for macOS, run
./scripts/build-syphon-xcframework.shand./scripts/build-hapinavfoundation-xcframework.sh - Copy
Config/Local.xcconfig.exampletoConfig/Local.xcconfigand set your Apple Developer team ID in it. The project file carries no team, so yours stays out of commits. - Open the XCode project
- Ensure that
Fabric Editoris the active target. - Build and run.
Getting Started
Checkout our Architecture Document to understand the underlying paradigms of working with Fabric's Nodes and execution model, learn what a Node and a Port is, the types of data Fabric can generate and process, and how Fabric executes your compositions.
We also provide a set of evolving tutorial / getting started and sample Fabric compositions along with a readme walk through. You can use the Sample Compositions to learn and build off of.
You can view a comprehensive list of available and planned Nodes here to explore and learn how to compose more advanced and custom setups with Fabric.
Don't hesitate to file a feature request if a Node is missing!
Roadmap
Checkout our Roadmap Document
Community
I ( Anton Marini ) are looking to build a community of developers who long for the ease of use and interoperability of Quartz Composer, its ecosystem and plugin community.
If you are interested in contributing, please do not hesitate to reach out / comment in the git repository, or join our discord via invite
FAQ
-
Will Fabric ever be cross platform?
- No. Fabric is purpose built on top of Satin and aims to provide a best in class Apple platform experience using Metal.
-
What languages are used?
- Fabric Editor is written in Swift and SwiftUI. Satin is written in Swift and C++
-
Why not just use Vuo or Touch Designer or some other node based tool?
- I do not like them.
- Don't get me wrong, they are incredible tools, but they are not for me.
- They do not think the way I think.
- They do not expose the layers of abstraction I want to work with.
- They do not provide the user experience I want.