Releases: Fabric-Project/Fabric
Releases/Alpha-13
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 #167
- Migrate Fabric Editor to link to SwiftPM Fabric package by @vade in #168
- Feature/blurs by @vade in #172
- fix #165 by @vade in #173
- Fix for texture -> Fabric Image via our own upload path. by @vade in #174
- Fix #121 by @vade in #175
- Feature/screen capture by @vade in #176
- Clean up port API on Graph, exposing published ports to external fra… by @vade in #183
- PerspectiveQuadGeometryNode by @tobyspark in #178
- TestCardProviderNode by @tobyspark in #179
- BillboardNode by @tobyspark in #180
- fix issue where track index is used during animations causing a crash… by @vade in #185
- Fix negative deltaTime from CAMetalDisplayLink by @tobyspark in #196
- Add TextureCropNode – GPU blit crop for texture sub-regions by @tobyspark in #194
- Graph –
deleteis public, pairs with publicaddby @tobyspark in #193 - Feat – Testcard phase2 by @tobyspark in #190
- Feature/live code material by @vade in #187
- Tweak – Rename Billboard to Image Mesh by @tobyspark in #206
- Add project glossary with terminology by @tobyspark in #207
- Feat – Tween nodes by @tobyspark in #205
- Feature/drag onto document by @vade in #213
- Feat – Drag onto document, implements #198 by @tobyspark in #210
- Feat – Add color input to Image Mesh node by @tobyspark in #216
- Feat – Orientation nodes by @tobyspark in #219
- Feat – Auto Layout by @tobyspark in #218
- Feat – Editor has sub graph navigation by @tobyspark in #217
- Drag to select by @vade in #225
- Feat – UX improvements to adding nodes from sidebar by @tobyspark in #214
- Restore registry sidebar drag-and-drop onto canvas by @tobyspark in #226
- Port UX enhancements – Per-port context menu, Rename published, Insert parameter node by @tobyspark in #195
- Fix – Renamed published ports showing original name in parent graph by @tobyspark in #230
- Fix -
deltaTimeis computed correctly at source, workarounds removed by @tobyspark in #229 - Feat – Better new document by @tobyspark in #223
- Feature/unit tests graph evaluation by @vade in #232
- Feat – Missing string nodes by @tobyspark in #192
Full Changelog: Releases/Alpha-11...Releases/Alpha-13
Releases/Alpha-11
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.
Fabric.Copy.Paste.mov
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.
Fabric.Timelime.Settings.mov
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 #160
- #162 - Update .gitignore by @latenitefilms in #163
- [Draft] Node Settings / Settings View by @vade in #157
- Add working copy and paste implementation. by @vade in #164
New Contributors
- @latenitefilms made their first contribution in #160
Full Changelog: Releases/Alpha-10...Releases/Alpha-11
Alpha 10
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 ml-explore/mlx-swift-lm#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 #152
- Add a working VLM node powered by MLX-Swift-LM by @vade in #153
Full Changelog: Releases/Alpha-9...Releases/Alpha-10
Alpha 9
Alpha.9.Sample.Vid.mov
(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 #143
- Feature/llm fixes by @vade in #145
- Add our Geometry to transform node by @vade in #147
- Issue/123 by @vade in #148
- Rename node functionality by @furtunavlad in #142
- Fixes/swiftui perf 1 by @vade in #149
- Add Polar Pixellate effect, add a genurary sample for it. by @vade in #150
New Contributors
- @furtunavlad made their first contribution in #142
Full Changelog: Releases/Alpha-8...Releases/Alpha-9
Alpha 8
Alpha 8
Fixes.
This release fixes a critical rendering bug that causes graphical glitches on masOS 26.
Genuary
We are adding samples based off of the Genuary 2026 prompts every day. You can follow along and find our Genurary Fabric graphs here
Included in this release from Alpha 7:
New Features
-
Preliminary Support for Typecasting!
- Parameters (grey inlets and outlets) can be connected to one another irregardless of the type
- Currently supports
- Bools
- Index (Integers)
- Numbers (Float)
- Strings
- Need to update for Vector, Matrix / Color etc - stay tuned
-
Add Signal Node
-
Add Number Compare Node
-
Add Mouse Over Hint to Inlet and Outlet to learn more.
-
Update Crosshatch to support transparent compositing
Fixes
- Fix bug in Feedback Cache that caused subgraphs to not evaluate feedback correctly
- Fix for Camera Provider Node with new Fabric Image behaviour
- Fix for Image Provider Node with new Fabric Image behavior
- Removal of AnyLoggable / "Promotion" of boxed PortValue as Virtual type which we use in our Cache and maybe eventually elsewhere.
What's Changed
Full Changelog: Releases/Alpha-6...Releases/Alpha-7
Alpha 7
Alpha 7
Genuary
We are adding samples based off of the Genuary 2026 prompts every day. You can follow along and find our Genurary Fabric graphs here
New Features
-
Preliminary Support for Typecasting!
- Parameters (grey inlets and outlets) can be connected to one another irregardless of the type
- Currently supports
- Bools
- Index (Integers)
- Numbers (Float)
- Strings
- Need to update for Vector, Matrix / Color etc - stay tuned
-
Add Signal Node
-
Add Number Compare Node
-
Add Mouse Over Hint to Inlet and Outlet to learn more.
-
Update Crosshatch to support transparent compositing
Fixes
- Fix bug in Feedback Cache that caused subgraphs to not evaluate feedback correctly
- Fix for Camera Provider Node with new Fabric Image behaviour
- Fix for Image Provider Node with new Fabric Image behavior
- Removal of AnyLoggable / "Promotion" of boxed PortValue as Virtual type which we use in our Cache and maybe eventually elsewhere.
What's Changed
Full Changelog: Releases/Alpha-6...Releases/Alpha-7
Alpha 6
New Features
Happy Holidays!
UI:
-
New Icon
-
Notes - new Canvas Element
- Create and edit Notes directly into the Canvas.
- Notes can be created by control clicking and choosing "New Note".
- Notes can be edited and resized by unlocking them (click the lock icon).
- You can use full markdown syntax, including embedding links and images.
- Notes can be used to help organize your Fabric Document / Canvas.
- Tutorials and Help files will be migrated to inline Notes (see updated attached Samples).
- Notes can be deleted by control clicking on an unlocked Notes background.
-
Updated UI theme which increases Node Title color contrast and Selection legibility.
-
Updated Sidebar UI
- Sidebar now showcases selection.
- Sidebar now supports type to select.
- Sidebar now supports arrow key navigation / selection.
- Sidebar now allows for double click to instantiate multiple nodes.
- Nodes created in rapid succession lay out in a staggered manner.
- Increase Node Registry performance making Search and Scrolling much faster in Sidebar.
-
Update Canvas Node Selection
- Nodes can be selected by using the arrow keys to change selection to the nearest node in that direction.
- Holding Shift + an arrow key will extend the selection.
-
File Picker now auto selects the first entry across all Provider Nodes which support choosing a file.
Engine:
- Instanced Rendering performance improvements in Satin
- Fabric's engine now supports Feedback processing.
- The graph is no longer required to be a-cyclical, allowing for for more varied image processing effects and other uses.
- Added Execution Cache to power Feedback feature, along with boxed PortValue which will become backing of our Virtual type eventually.
- Added fast Metal Memory Heap - used to power Intermediate output Fabric Texture creation for unique frames.
- Add the Quaternion Underlying Data Type.
- Add the Transform Underlying Data Type.
Nodes
-
Add Basic 2 Channel Video Mixer.
- Provides Over / Below Unity values to allow for weird feedback effects.
-
Add Instanced Model Mesh Node.
- Load a supported 3D Model and optimally draw many copies of it.
- Instanced Model Mesh uses an Array of Transforms to position, scale and orient each instance.
-
Updated Instanced Mesh to support Array of Transform inputs.
-
Add MetalFX Neural Spatial Upsampler.
- Render at a lower resolution and get 2x upsampling using MetalFX Spatial Upsampling.
-
Add Transform Nodes.
-
Identity Transform.
-
Scale Transform
-
Translate Transform.
-
Rotate Transform
-
Invert Transform.
-
Decompose Transform.
- Convert a Transform into its Translation, Scale and Rotation vector components.
-
Add Quaternion Node.
- Create a float 4 vector via Angle and Axis which proxies as a Float 4 underlying data type.
-
What's Changed
- Add Metal FX based upsampling node. by @vade in #135
- Fix arcsine/arccosine NaN crash by @JustinMeans in #132
- Fix Unary Typo by @JustinMeans in #131
- Fix Bug detecting active camera in a Subgraph if not on root layer
- Fix occasional crash with Materials
Full Changelog: Releases/Alpha-5...Releases/Alpha-6
Releases/Alpha-5
New Features
-
Preliminary Syphon support - note, may be some color matching issues
- Syphon Server
- Syphon Client
-
Add set of Tone Mapping nodes for HDR -> SDR conversion
- Aces
- Filmic
- Reinhard
- Reinhard Jodie
- Uncharted
- Uncharted 2
-
Add set of Color Space conversion nodes
- RGB Linear to SRGB
- sRGB to RGB Linear
- CMYK <-> RGB
- HSV <-> RGB
- LAB <-> RGB
- YIQ <-> RGB
- YPbPr <-> RGB
- YUV <-> RGB
- XYZ <-> RGB
- XYZ <-> LAB
-
Add CUBE 3D LUT color correction node
- LUT
-
Add set of Film emulation nodes
- Light Leak
- Technicolor 1
- Technicolor 2
- Technicolor 3
- Technicolor 3w
-
Add set of Distort image effect nodes
- Pinch
- Dent
- Twirl
- Wobble
Fixes
- Fix bug in image loader / image change notifications that may result in some images from some nodes not propagating correctly
- Improve file import selection UI and allow for multiple items to be loaded and selected in the prop down
- Improve parameter UI for xypad (simd_float 2 parameters) to allow for better control
- Improve UI performance
- Expose total count of nodes available.
What's Changed
- Fix typo in README.md for pipelines by @kl2400033266 in #124
- Feature/syphon by @vade in #127
- Tonemapping HDR->SDR support shaders by @vade in #128
- Feature/color adjust color space by @vade in #129
- Feature/distort fx by @vade in #130
New Contributors
- @kl2400033266 made their first contribution in #124
Full Changelog: Releases/Alpha-4...Releases/Alpha-5
Fabric Alpha 4
Alpha 4 features
- Improved Sidebar UI
- Improved scrolling performance of the main canvas
- Improved Selection UI via Right/Control click on Nodes, allowing for
- Select all Nodes
- Upstream node Selection
- Downstream node Selection
- Added ability to "Embed" selected nodes into a Subgraphs.
- Added MLX support
- Added sample LLM Node powered by MLX - which will automatically download and run a LLM from Huggingface
- Note initial download may take some time
- Downloads land in the standard
~./cachehidden folder in yourhomedirectory, shared with other HuggingFace clients
- Fix bugs related to rendering, connecting nodes, image flipping, and more.
We also provide a set of Sample Compositions
to learn and build off of, which are included here as a download as well.
What's Changed
- Feature/mlx by @vade in #99
- Styling updates. by @vade in #115
- Fix race condition in adding object to scene vs execution by @vade in #119
Full Changelog: Releases/Alpha-3...Releases/Alpha-4
Fabric Alpha 3
New Nodes:
- UV Material Node
- Arc Geometry Node
- Cone Geometry Node
- Tube Geometry Node
- Torus Geometry Node
- Vector 2, 3, 4 Distance Node
- Numerical Smoothing Node with 1 Euro Filter
Updates
- Update Hand Keypoint Detector Node to have outputs for each keypoint, useful to help select just some digits
- Update Plane Node to allow for plane orientation
- Bug fixes
What's Changed
- Provide a helper method in Node to replace a Port's parameter with an… by @vade in #91
- Add UV material by @vade in #93
- Fixes/92 by @vade in #94
- Add plane orientation by @vade in #95
- Feature/add additional geom nodes by @vade in #96
- Add Vector Distance Nodes by @vade in #97
- Add One Euro based Numerical Smoothing by @vade in #98
Full Changelog: Releases/Alpha-2...Releases/Alpha-3









