Releases: cables-gl/cables_electron
Releases · cables-gl/cables_electron
0.6.0
blog post: https://blog.cables.gl/2025/06/17/june-2025-release/
Standalone
- Add button to open op-dir from opselect for local ops
- Add button to open selected dir in "code a new op" dialog
- Add op-dependencies (lib, corelib, commonjs, module, op, ...)
- Allow opening devtools in external window (e.g. ExternalCanvas)
- Build exe-files on target hardware runners
- Fix "version gaps" in opselect when cloning higher versions of ops
- Fix bug that disallowed dragging files onto the patch to use them
- Fix bug when loading old version of ops in subpatches
- Fix bug when loading ops with npm dependencieso
- Fix build of OSC ops
- Fix buildprocess for ops with node_modules
- Fix coding new ops in project where the opdir (./ops) does not exist
- Fix creating of subpatchops, always put them in directory relative to project (./ops)
- Fix display of "_v2" display for certain ops
- Fix not installing npms of older ops into package directory
- Fix opdir adding button in "code a new op" dialog on windows
- Fix problems with mp4, video skip and other large stream-files
- Fix refreshing of tabs after adding op directories
- Fix renaming ops to lowercase namespaces, create uppercase
- Fix several issues with export and import on windows
- Fix wrong displayname in opselect for locally created ops
- Remove unused commands
- Rename code and classes to "electron"
- Restore position of window on screen, saved for multiple display-setups
- Usersetting and commandline option to open renderer in fullscreen
Editor
- Add download button to uploaded op-dependencies
- Add link time warning for ports that need string values and not empty string
- Allow window-management API by adding allow attribute to iframe
- Better css scoping, e.g. cables hidden class hidden for user css
- Check op hierarchy when pasting ops, show error on illegal pastes
- Completly rewritten timeline/keyframing user interface
- Copy referenced asset to local patch in filemanager and command
- Core: use an error shader if the current shader did not compile/is invalid
- Create full backups of patches for cable supporters, automatic and manual
- Current used graphics API gets bonus points in op search dialog to rank better
- Do not load editor from a persisted RAM cache
- Do not switch to filemanager after uploading op-dependency
- Dragging ops and inserting into cables will be positioned perfectly on the x axis below the parent op
- Copy referenced assets to patch
- Fix last export type always being "patch"
- Modal shader error report now has a toggle to always automatically open or not
- Escape does not close main tab panel anymore, can be changed in user preferences
- Exports now start the download automatically
- Extended title for numbers is now cut off for very long decimals and will not jump
- Filemanager file detail search button now searches the whole asset path
- Fixed bug when exporting project with invalid/missing assets
- Fixed bug with patch name empty after using copypaste or subpatch ops
- Fixed focused element at start
- Fixed linebreak in rename op modal for very long opnames
- Fixed links to backup-tab of settings in editor
- Fixed loading of list of attachments when deleting from an op and opening the editor
- Fixed missing template for fileinfo in asset library
- Fixed problem empty strings would become "0" in some cases
- Fixed remote viewer state by reloading, when using subpatchops
- Fixed screenshot functionality
- Fixed syntax highlighting for html
- Handle browser complete page state caching when pressing back, then forward buttons
- Have links in patch-settings tab open in a new window/tab to not leave the patch
- Hide gradient editor when clicking outside of gradient dialog
- Hide op loading indicator if in different subpatch
- Improved activating of already opened tabs for attachment editor
- Improved keyboard tab key support for parameter list
- Keep youtube ids and example patch when creating new version of op
- Link to "delete op" page in manage ops for patchops that are editable
- Load all ops of a teamop or extension namespace when pasting op from other patch
- Load all ops of namespaces maintained by collaborating teams when loading patch
- Make exe export (electron) not throttle rendering when in background mode
- Make sure all namespaceparts are uppercase when creating new op
- Much progress on new WebGPU core implementation, compatibility layer etc.
- New command: "copy op names to clipboard"
- Op drag shift: snap to one axis
- Op search: tweaked abbreviation search: scores, and uppercase query will scoreabbreviations higher
- Op UI error display can now have buttons, e.g. show shader code on compile error
- Op URL input parameters now have an edit button which shows the url as an input field, to make it easier to use outside urls
- Open links to ops in new window, after rename, remove link to old op
- Param inputs: handle invalid math expressions
- Param inputs: pressing tab should always evaluate math expressions
- Patch outline filter custom ops/ subpatch op filter deactivated by default
- Popout canvas now opens in the original canvas size. cmd+p "resize canvas" will now also resize the popped out window
- Pressing cmd+f again, while still open: select text in input field
- Rework adding libraries to ops, make es-module inclusion possible, add loading libraries of other ops
- Show a trigger button for ports, even when they are connected
- Show better errors in export when missing assets
- Show current op visibility in mange op tab
- Show edit icon next to "editable" files in parampanel
- Show errors in "obj info" converter to user
- Show minimal project info in patch settings for public patches, add request access button
- Show op name in suggestions and patch summary to make this more visible to the user
- Show reload buttons if patch ops were changed in a different window
- Suggest ops current namespace in op-clone dialog, if permissions allow. fallback to patch-op namespace
- Syntax highlghting in assets editor
- Use simple "getter" ops when using json-structure modal on not needing a path
- User preferences to enable text editor vi mode
Core
- GL canvas now has preservedrawing buffer true by default
- Improve code documentation / type definitions / d.ts. file generation
- Build process: create typedef files to use in jsdoc
Ops
- Bugfix: Ops.Array.Array1toX - Fixed -1 to 1 mapping
- Bugfix: Ops.Color.ColorArraySort - Fix sorting of arrays with RGBA/RGB strides
- Bugfix: Ops.Devices.Midi.MidiNoteFilter - Fix error when learning note
- Bugfix: Ops.Gl.GLTF.GltfScene_v4 - Fix problem with wrong animation loop length
- Bugfix: Ops.Gl.Meshes.PointCloudFromArray_v2 - Fixed: num points parameter was not working
- Bugfix: Ops.Html.CSS.ElementCssColor - Fixed css opacity/alpha values
- Bugfix: Ops.Html.FontFile_v2 - Add quotes around css url
- Bugfix: Ops.Json.CsvColumnArray_v2 - Show warning if array is empty
- Bugfix: Ops.Math.TriggerRandomNumber_v3 - Do not generate new random number when changing parameters, only on trigger
- Bugfix: Ops.Sidebar.Incrementor_v3 - Fix button size
- Bugfix: Ops.Trigger.TriggerOnChangeString_v2 - New version: will trigger on patch load, if input port is linked
- Bugfix: Ops.Ui.VizTrigger - Fix bug when op crashed when very small
- Bugfix: Ops.WebAudio.Output_v2 - Disconnect audiosource properly with multiple inputs
- Deprecation: Ops.Deprecated.SidebarElement_v2 - Op Sidebar.SidebarElement_v2 was deprecated
- Deprecation: Ops.Extension.Deprecated.Pointer - Op Dev.Devices.Pointer was deprecated
- Feature: Ops.Array.InfoArray3 - Added center point output
- Feature: Ops.Color.ColorArraySort - Added a "Reverse Sort" check button
- Feature: Ops.Color.ColorArraySort - Added an "Alpha" sorting option
- Feature: Ops.Deprecated.SidebarElement_v2 - Add visible toggle input
- Feature: Ops.Deprecated.SidebarElement_v2 - New version: element is an output, not an input, works better with ops like appendChild
- Feature: Ops.Devices.Mouse.Mouse_v4 - New Version: Event type selector (mouse/touch/any pointer) / removed "touchscreen" option
- Feature: Ops.Devices.Mouse.Mouse_v4 - Added element input, this element is used instead of area/canvas parameter
- Feature: Ops.Devices.Mouse.Mouse_v4 - Added event output: html MouseEvent object
- Feature: Ops.Gl.ArrayToTexture_v2 - Added option to reverse/flip pixel data
- Feature: Ops.Gl.CanvasInfo_v3 - Added output "resize", which will be triggered when canvas size has changed
- Feature: Ops.Gl.ImageCompose.OnePassBlur - Mask fades between blurred and unblurred image
- Feature: Ops.Html.AlignElement - Added trigger input to force an update
- Feature: Ops.Html.AlignElement - Position offset inputs
- Feature: Ops.Html.CSS.ElementCssText - Added option to disable user selection of text
- Feature: Ops.Html.Elements.Element_v2 - Interactive elements are not always keyboard focussable (tabindex) and clickable by keyboard space and enter keys
- Feature: Ops.Html.Elements.Element_v2 - Size can now be chosen to be in different units like % or vh,vw etc
- Feature: Ops.Html.Elements.ImageElement_v3 - Added output bool and trigger, when being loaded and finished
- Feature: Ops.Html.HyperLink_v3 - Add input for rel attribute
- Feature: Ops.Html.HyperLink_v3 - Added option to choose the target frame
- Feature: Ops.Html.HyperLink_v3 - Choose between different methods to go to a URL, window.open, document.location or a anchor link
- Feature: Ops.Html.QuerySelectorAll_v2 - Add "element" mode
- Feature: Ops.Sidebar.SidebarElement - Add visible toggle input
- Feature: Ops.Sidebar.SidebarText_v3 - Added visible toggle input
- Feature: Ops.Trigger.RouteTriggerMultiPort - Output an array of names of connected ops
- Feature: Ops.Ui.VizTrigger - Show count as circle overlay
- Improvement: Ops.Array.ArrayOfObjects...
0.5.17
Dev changelog
Standalone
- standalone: fix renaming ops to lowercase namespaces, create uppercase
- standalone: fix loading of ops that use node-functionalities or npm packages
Editor
- editor: op drag shift: snap to one axis
- editor: patch outline filter custom ops/ subpatch op filter deactivated by default
- editor: extended title for numbers is now cut off for very long decimals and will not jump
- editor: popout canvas now opens in the original canvas size. cmd+p "resize canvas" will now also resize the popped out window
Ops
- bugfix: Ops.Gl.GLTF.GltfScene_v4 - fix problem with wrong animation loop length
- improvement: Ops.Array.InterpolateArrays - shows an error when not both arrays are connected
- improvement: Ops.Data.JsonPath.ArrayGetArrayByPath - show full path in extended title
- improvement: Ops.Data.JsonPath.ArrayGetArrayValuesByPath - show full path in extended title
- improvement: Ops.Data.JsonPath.ArrayGetNumberByPath - show full path in extended title
- improvement: Ops.Data.JsonPath.ArrayGetObjectByPath - show full path in extended title
- improvement: Ops.Data.JsonPath.ArrayGetStringByPath - show full path in extended title
- improvement: Ops.Data.JsonPath.ObjectGetArrayByPath - show full path in extended title
- improvement: Ops.Data.JsonPath.ObjectGetArrayValuesByPath - show full path in extended title
- improvement: Ops.Data.JsonPath.ObjectGetObjectByPath - show full path in extended title
- improvement: Ops.Data.JsonPath.ObjectGetStringByPath - show full path in extended title
- improvement: Ops.Net.CorsProxy_v3 - add active/inactive toggle, restrict usage to cables editor/patchpage
0.5.16
Dev changelog
Standalone
- standalone: fix renaming ops to lowercase namespaces, create uppercase
Editor
- editor: op drag shift: snap to one axis
- editor: patch outline filter custom ops/ subpatch op filter deactivated by default
- editor: extended title for numbers is now cut off for very long decimals and will not jump
- editor: popout canvas now opens in the original canvas size. cmd+p "resize canvas" will now also resize the popped out window
Ops
- bugfix: Ops.Gl.GLTF.GltfScene_v4 - fix problem with wrong animation loop length
- improvement: Ops.Array.InterpolateArrays - shows an error when not both arrays are connected
- improvement: Ops.Data.JsonPath.ArrayGetArrayByPath - show full path in extended title
- improvement: Ops.Data.JsonPath.ArrayGetArrayValuesByPath - show full path in extended title
- improvement: Ops.Data.JsonPath.ArrayGetNumberByPath - show full path in extended title
- improvement: Ops.Data.JsonPath.ArrayGetObjectByPath - show full path in extended title
- improvement: Ops.Data.JsonPath.ArrayGetStringByPath - show full path in extended title
- improvement: Ops.Data.JsonPath.ObjectGetArrayByPath - show full path in extended title
- improvement: Ops.Data.JsonPath.ObjectGetArrayValuesByPath - show full path in extended title
- improvement: Ops.Data.JsonPath.ObjectGetObjectByPath - show full path in extended title
- improvement: Ops.Data.JsonPath.ObjectGetStringByPath - show full path in extended title
- improvement: Ops.Net.CorsProxy_v3 - add active/inactive toggle, restrict usage to cables editor/patchpage
0.5.15
Dev changelog
Standalone
- linux: build static AppImage to not rely on external libfuse
Ops
- bugfix: Ops.WebAudio.Output_v2 - disconnect audiosource properly with multiple inputs
- improvement: Ops.Array.InterpolateArrays - shows an error when not both arrays are connected
- improvement: Ops.Json.ObjectGetArray_v2 - return empty array when not found
- improvement: Ops.WebAudio.Output_v2 - add "number of channels" outport
Editor
- editor: op drag shift - snap to one axis
- editor: patch outline filter custom ops/ subpatch op filter deactivated by default
- editor: extended title for numbers is now cut off for very long decimals and will not jump
- editor: popout canvas now opens in the original canvas size. cmd+p "resize canvas" will now also resize the popped out window
- editor: use simple "getter" ops when using json-structure modal on not needing a path
- editor: link to "delete op" page in manage ops for patchops that are editable
- editor: show edit icon next to "editable" files in parampanel
0.5.14
Dev changelog
Standalone
- linux: build static AppImage to not rely on external libfuse
Ops
- bugfix: Ops.WebAudio.Output_v2 - disconnect audiosource properly with multiple inputs
- improvement: Ops.Array.InterpolateArrays - shows an error when not both arrays are connected
- improvement: Ops.Json.ObjectGetArray_v2 - return empty array when not found
- improvement: Ops.WebAudio.Output_v2 - add "number of channels" outport
Editor
- editor: op drag shift - snap to one axis
- editor: patch outline filter custom ops/ subpatch op filter deactivated by default
- editor: extended title for numbers is now cut off for very long decimals and will not jump
- editor: popout canvas now opens in the original canvas size. cmd+p "resize canvas" will now also resize the popped out window
- editor: use simple "getter" ops when using json-structure modal on not needing a path
- editor: link to "delete op" page in manage ops for patchops that are editable
- editor: show edit icon next to "editable" files in parampanel
0.5.13
dev changelog
Ops
- new op: Ops.TimeLine.Anim -
- new op: Ops.TimeLine.AnimGetValue -
- new op: Ops.TimeLine.AnimInfo -
- new op: Ops.TimeLine.AnimStretch -
- new op: Ops.TimeLine.TimelineConfig -
- new op: Ops.TimeLine.TimelineDebug -
- new op: Ops.Ui.MaximizeRenderer - maximize renderer to window size
- rename: Ops.TimeLine.Anim - Anim.Anim renamed to Ops.TimeLine.Anim
- rename: Ops.TimeLine.TimelineDebug - Patch.PImTwnJ.TimelineDebug renamed to Ops.TimeLine.TimelineDebug
Editor
- standalone: usersetting and commandline option to open renderer in fullscreen
Standalone
- editor: load all ops of a teamop or extension namespace when pasting op from other patch
- editor: load all ops of namespaces maintained by collaborating teams when loading patch
0.5.12
dev changelog
Standalone
- Standalone: Restore position of window on screen, saved for multiple display-setups
- Standalone: Fix "version gaps" in opselect when cloning higher versions of ops
- Standalone: Fix wrong displayname in opselect for locally created ops
- Standalone: Fix problems with mp4, video skip and other large stream-files
- Standalone: Fix bug that disallowed dragging files onto the patch to use them
Editor
- Editor: Do not load editor from a persisted RAM cache
- Editor: Timeline - cmd/ctrl a - select all keys
- Editor: Timeline - [f] zoom out on all axis to fit all keys on the screen
- Editor: Handle browser complete page state caching when pressing back, then forward buttons
- Editor: Fixed screenshot functionality
- Editor: Fix remote viewer state by reloading, when using subpatchops
- Editor: Syntax highlghting in assets editor
- Editor: Check op hierarchy when pasting ops, show error on illegal pastes
- Editor: Show minimal project info in patch settings for public patches, add request access button
- Editor: Show current op visibility in mange op tab
- Editor: Have links in patch-settings tab open in a new window/tab to not leave the patch
Core
- GL canvas now has preservedrawing buffer true by default
0.5.11
dev changelog
Ops
- new op: Ops.Array.ArrayStringIndices - Return all the indexes of a string in an array
- new op: Ops.Extension.WebGpu.CompCompute - Compose a compute shader
- new op: Ops.Extension.WebGpu.ComputeStorageInput - Compute shader GPU buffer storage input
- new op: Ops.Extension.WebGpu.ComputeStorageOutput - Compute shader GPU buffer storage output
- new op: Ops.Extension.WebGpu.ComputeUniform - Add a uniform input to a compute shader composition
- new op: Ops.Extension.WebGpu.FaceCulling - cull (do not draw) back or front facing faces/triangles
- new op: Ops.Extension.WebGpu.Primitive -
- new op: Ops.Extension.WebGpu.WebGpuInfo - Output information about WebGPU adapter and implementation
- new op: Ops.Graphics.PerformanceNext - Show WebGl Performance Statistics
- new op: Ops.Html.CSS.ElementClassList - get css classes of an element
- new op: Ops.Html.CSS.ElementToggleClass - add or remove class from html element
- new op: Ops.Html.ElementClosest - get the closest parent element matching the query selector
- new op: Ops.Html.ElementDataSet - Get the data-attributes and values of an HTML element
- new op: Ops.Html.ElementEquals - Check if two HTML element objects are equal
- new op: Ops.Html.QuerySelectorAll_v2 - Selects all matching elements in the DOM
- bugfix: Ops.Json.CsvColumnArray_v2 - show warning if array is empty
- feature: Ops.Gl.ImageCompose.OnePassBlur - mask fades between blurred and unblurred image
- feature: Ops.Html.QuerySelectorAll_v2 - add "element" mode
- rename: Ops.Html.CSS.ElementClassList - Team.ACAR.ElementClassList renamed to Ops.Html.CSS.ElementClassList
- rename: Ops.Html.QuerySelector_v3 - add "element" mode
- feature: vizops now all have passthrough outputs
Editor
- Copy referenced asset to local patch in filemanager and command
- Current used graphics API gets bonus points in op search dialog to rank better
- Editor: show reload buttons if patch ops were changed in a different window
- Escape does not close main tab panel anymore, can be changed in user preferences
- Fix links to backup-tab of settings in editor
- Show better errors in export when missing assets
- Suggest ops current namespace in op-clone dialog, if permissions allow. fallback to patch-op namespace
- User preferences to enable text editor vi mode
Docs
- docs: add documentation about inc_ attachments
0.5.10
dev changelog
Standalone
- Standalone: fix several issues with export and import on windows
Ops
- feature: Ops.Html.HyperLink_v3 - Add input for rel attribute
- feature: Ops.Html.HyperLink_v3 - Added option to choose the target frame
- feature: Ops.Html.HyperLink_v3 - Choose between different methods to go to a URL, window.open, document.location or a anchor link
- improvement: Ops.Extension.OpenType.OpentypeFont - Handle file format error
- improvement: Ops.Gl.Shader.CustomShader_v2 - Show button to show shader errors in the source code
- improvement: Ops.Ui.VizString - Show connected port name as extended title
- new op: Ops.Cables.CablesInfo -
- new op: Ops.Extension.Testing.TestSystem -
- new op: Ops.Gl.ShaderEffects.Normals - Fog as a shadereffect applied to a material
- new op: Ops.Gl.ShaderEffects.VertexArea - transform an area of a mesh
- new op: Ops.Html.CanvasToBase64 - Create an image file from a canvas
Editor
- Editor: modal shader error report now has a toggle to always automatically open or not
- Exports now start the download automatically
- Core: use an error shader if the current shader did not compile/is invalid
- Improved activating of already opened tabs for attachment editor
- Fixed bug with patch name empty after using copypaste or subpatch ops
- Filemanager file detail search button now searches the whole asset path
- Editor: fix last export type always being "patch"
- Editor: copy referenced assets to patch
0.5.9
Dev changelog
Ops
- new op: Ops.Data.Compose.Array.CompArraySetNumber - set a number to an array at index
- new op: Ops.Data.Compose.Array.CompArraySetObject - push/append a number to an array
- new op: Ops.Data.Compose.Array.CompArraySetObject - push/append a number to an array
- new op: Ops.Gl.Textures.SequenceTextures - control order and flow of objects
- new op: Ops.Json.ArrayOfObjectsMultiPort - create an array with multiple objects
- new op: Ops.String.HtmlDecode - convert a html encoded string to a normal UTF8 string
- new op: Ops.String.HtmlEncode - encode a string to html
- new op: Ops.String.LineBreak - Outputs a linebreak, or adds a linebreak to a string
- new op: Ops.Ui.VizImage -
- new op: Ops.Cables.GetOpName - get an op name from an op id
- feature: Ops.Devices.Mouse.Mouse_v4 - New Version: Event type selector (mouse/touch/any pointer) / removed "touchscreen" option
- feature: Ops.Devices.Mouse.Mouse_v4 - added element input, this element is used instead of area/canvas parameter
- feature: Ops.Devices.Mouse.Mouse_v4 - added event output: html MouseEvent object
- feature: Ops.Gl.ArrayToTexture_v2 - Added option to reverse/flip pixel data
- feature: Ops.Html.Elements.ImageElement_v3 - Added output bool and trigger, when being loaded and finished
- feature: Ops.Sidebar.SidebarElement - Add visible toggle input
- feature: Ops.Sidebar.SidebarElement_v2 - Add visible toggle input
- feature: Ops.Sidebar.SidebarElement_v2 - New version: element is an output, not an input, works better with ops like appendChild
- feature: Ops.Sidebar.SidebarText_v3 - Added visible toggle input
- feature: Ops.Trigger.RouteTriggerMultiPort - Output an array of names of connected ops
- feature: Ops.Ui.VizTrigger - Show count as circle overlay
- improvement: Ops.Data.JsonPath.ArrayGetArrayByPath - change "found" port to boolNum type
- improvement: Ops.Data.JsonPath.ArrayGetArrayValuesByPath - change "found" port to boolNum type
- improvement: Ops.Data.JsonPath.ArrayGetNumberByPath - change "found" port to boolNum type
- improvement: Ops.Data.JsonPath.ArrayGetObjectByPath - change "found" port to boolNum type
- improvement: Ops.Data.JsonPath.ArrayGetStringByPath - change "found" port to boolNum type
- improvement: Ops.Data.JsonPath.ObjectGetArrayByPath - change "found" port to boolNum type
- improvement: Ops.Data.JsonPath.ObjectGetNumberByPath - change "found" port to boolNum type
- improvement: Ops.Data.JsonPath.ObjectGetObjectByPath - change "found" port to boolNum type
- improvement: Ops.Devices.Mobile.MotionSensor_v2 - Output status string of permissions
- improvement: Ops.Gl.Shader.CustomShader_v2 - Show button to show shader errors in the source code
- improvement: Ops.Gl.Textures.ExrTexture - Don't crash on wrong fileformat, show exception error message in op params
- improvement: Ops.String.HandleBarsHtml_v2 - Syntax highlighter
- improvement: Ops.Trigger.TriggerSend - Added trigger output "next" to make op passthrough-able
- improvement: Ops.Ui.VizTexture - Also show pixelcolor when show info is not active / fix crosshair
- bugfix: Ops.Gl.Meshes.PointCloudFromArray_v2 - Fixed: num points parameter was not working
- bugfix: Ops.Html.FontFile_v2 - add quotes around css url
- bugfix: Ops.Ui.VizTrigger - Fix bug when op crashed when very small
- deprecation: Ops.Extension.Deprecated.Pointer - op Dev.Devices.Pointer was deprecated
Editor
- allow window-management API by adding allow attribute to iframe
- new command: "copy op names to clipboard"
- hide op loading indicator if in different subpatch
- op url input parameters now have an edit button which shows the url as an input field, to make it easier to use outside urls
- op ui error display can now have buttons, e.g. show shader code on compile error
- create full backups of patches for cable supporters, automatic an manual
Website
- make more website elements are able to be focussed by keyboard
- taller view patch canvas on mobile
- export nicely formated patch json when exporting without "minify" set
- do not update "change date" of patchlist when adding or deleting likes
- add overview of my backups to /mydata
- download page now shows a "support cables" hint after downloading standalone
Standalone
- standalone: fix bug when loading old version of ops in subpatches
- standalone: fix bug when loading ops with npm dependencies
Docs
- docs: add documentation for op dependencies
- docs: improve documentation for working with attachments (webworker/wasm)