Changelog


2025-07-07 11:27 - 18 hours ago

Ops

Editor

  • Add checkbox to rename all versions of an op in bulk
  • Fix copying op-dependencies when cloning op
  • Fix editing of extension ops only allowed on dev.cables.gl
  • Fix editor-tabs reopening after close when opened via new file-edit
  • Fix error console not showing up when working in timeline
  • Fix neverending spining icon when creating backup
  • Fix subpatch breadcrumb was not highlighing outer op anymore
  • InUrl ports will show a warning when the protocol seems to be incorrect
  • Patch settings will show when unsaved settings. save button is now in an overlay
  • Show warning when setting a floating point number in integer port
  • Showing more indicators that ports need to be linked for most data get ops

Core

  • Core: replace and unload tonejs context with cables created one

Website

  • Make changelog edit not jump and stay on page after edit

Standalone

  • Save current state to new patch when using save as/clone

2025-06-17 12:08 - Jun 17, 2025 at 12:08

blog post: blog.cables.gl

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

Website

  • Add "keep this backup" to automatic backups in all backup lists
  • Add "request access" buttons to colloaborator sections in patch settings and on patch page
  • Add functionality to export code for all patches on a patchlist for collaborators
  • Add overview of my backups to /mydata
  • Add warning to op-page if op uses old asset-libraries instead of op-dependencies dev.cables.gl
  • Add webaudio-context info to browserpage
  • Do not show edit button on namespace page for subnamespaces (only top-level)
  • Do not update "change date" of patchlist when adding or deleting likes
  • Download page now shows a "support cables" hint after downloading standalone
  • Export nicely formated patch json when exporting without "minify" set
  • Fix error when looking up ops in different envitonment (local/dev/cables.gl)
  • Fix errors in console when saving patchsettings on website instead of editor
  • Fix loading of op-dependencies on patch-page
  • Fix markdown display in several places
  • Fix searching for patchnames returning empty result in some cases
  • Fix tab navigation on patchlist edit-page
  • Fix zip-file upload error when importing patch on windows
  • Make more website elements are able to be focussed by keyboard
  • Move patch actions (export, request access, leave, ...) to threedot menu next to title
  • Show "request access" also for public patches
  • Show all team ops (even .Dev. namespace) on team-todos
  • Show correct information about op-usage in subpatch-ops before deleting op, fix link
  • Show link to cables.gl when using iframe-embed for private patches
  • Taller view patch canvas on mobile
  • Unify op visibility information on team-settings and op-page

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

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

Docs

  • Add documentation about inc_ attachments
  • Add documentation about imports/exportas and backups
  • Add documentation for op dependencies
  • Improve documentation for working with attachments (webworker/wasm)

Misc

  • Better code documentation via jsDocs
  • Build process: display filename and location of error in webpack error messages
  • Build scripts: fix some errors were ignored, will now show error
  • Clean up source code, modernize code etc,
  • Improve eslint and jsconfig rules
  • Other: update links in registration reminder mail

Ops

screenshot Ops.Extension.Deprecated.Cables.CustomOpop Ops.Extension.Deprecated.Cables.CustomOp
screenshot Ops.Extension.Deprecated.Cables.CustomOp_v2op Ops.Extension.Deprecated.Cables.CustomOp_v2
screenshot Ops.Array.ArrayFindStringsop Ops.Array.ArrayFindStrings
screenshot Ops.Array.ArrayRemoveFalsyop Ops.Array.ArrayRemoveFalsy
screenshot Ops.Cables.CablesInfoop Ops.Cables.CablesInfo
screenshot Ops.Cables.GetOpNameop Ops.Cables.GetOpName
screenshot Ops.Extension.WebGpu.AttributeAsColorMaterialop Ops.Extension.WebGpu.AttributeAsColorMaterial
screenshot Ops.Extension.WebGpu.CompComputeop Ops.Extension.WebGpu.CompCompute
screenshot Ops.Extension.WebGpu.ComputeStorageOutputop Ops.Extension.WebGpu.ComputeStorageOutput
screenshot Ops.Extension.WebGpu.DefaultTexturesop Ops.Extension.WebGpu.DefaultTextures
screenshot Ops.Extension.WebGpu.FaceCullingop Ops.Extension.WebGpu.FaceCulling
screenshot Ops.Extension.WebGpu.FullScreenRectop Ops.Extension.WebGpu.FullScreenRect
screenshot Ops.Extension.WebGpu.MeshInstancerop Ops.Extension.WebGpu.MeshInstancer
screenshot Ops.Extension.WebGpu.Textureop Ops.Extension.WebGpu.Texture
screenshot Ops.Extension.WebGpu.VizTextureop Ops.Extension.WebGpu.VizTexture
screenshot Ops.Extension.WebGpu.WebGpuCanvasop Ops.Extension.WebGpu.WebGpuCanvas
screenshot Ops.Extension.WebGpu.WebGpuInfoop Ops.Extension.WebGpu.WebGpuInfo
screenshot Ops.Graphics.ArrayToExrop Ops.Graphics.ArrayToExr
screenshot Ops.Html.CSS.ElementClassListop Ops.Html.CSS.ElementClassList
screenshot Ops.Html.Css.ElementBackDropFilterop Ops.Html.Css.ElementBackDropFilter
screenshot Ops.Html.DraggableElementop Ops.Html.DraggableElement
screenshot Ops.Html.ElementDataSetop Ops.Html.ElementDataSet
screenshot Ops.Html.ElementEqualsop Ops.Html.ElementEquals
screenshot Ops.Html.ElementGetClosestop Ops.Html.ElementGetClosest
screenshot Ops.Html.QuerySelectorAll_v2op Ops.Html.QuerySelectorAll_v2
screenshot Ops.Sidebar.SidebarElementop Ops.Sidebar.SidebarElement
screenshot Ops.String.HtmlDecodeop Ops.String.HtmlDecode
screenshot Ops.String.HtmlEncodeop Ops.String.HtmlEncode
screenshot Ops.String.LineBreakop Ops.String.LineBreak
screenshot Ops.String.StringRemoveCharactersop Ops.String.StringRemoveCharacters
screenshot Ops.TimeLine.Animop Ops.TimeLine.Anim
screenshot Ops.Ui.MaximizeRendererop Ops.Ui.MaximizeRenderer
screenshot Ops.Ui.VizImageUrlop Ops.Ui.VizImageUrl

2024-12-17 11:02 - Dec 17, 2024 at 11:02

Ops

Ops Rename

Editor

  • editor: remove useless "try dev.cables.gl" button from op-permission warning dialog
  • editor: remove explicit listing of variables in find tab, use "set ", "get " or "#" for variable search
  • editor: tabs: attachment files editor shows dropdown containing all attachments files.
  • editor: tabs: fixed problem with opening multiple tabs for same file
  • editor: opsearch: fixed math symbols not showing op search results
  • editor: opsearch: added % for quickly searching for modulo op like other math symbols
  • editor: find ops: fix bugs with toggle buttons
  • editor: added option to set a command for double clicking the patch area (goto parent subpatch, add op or center patch)
  • editor: added native colorpicker: eyeDropper API (chrome only)
  • editor: keep original op namespace in suggestion list when renaming op
  • editor: added new commands for existing functionality, e.g. code a new op
  • editor: fix bug with op-create/clone dialog jumping to end of input
  • editor: easily search for variables from the param panel
  • editor: improve snapping of lower ops to port positions in resized parent ops
  • editor: removed "tab" as opselect hotkey (if you need it, add it via userpreferences hotkey for opselect: e.g. set to "escape,tab")
  • editor: basic improved keyboard support, html forms and buttons can be focussable via tab key and executable by pressing enter
  • editor: optimize op search, less lags
  • editor: remote client will open console and show errors and exceptions
  • editor: subpatch ops do not break when setting default values containing line breaks
  • editor: make asset uploads "case aware" (assets with different upper/lower-case will overwite content but keep original file case)
  • editor: remove warning about "new namespace creation" if not core-namespace
  • editor: show buildinfo for shared code in debug console
  • editor: load op code for editor in patches with read permission, or show error

Core

  • core: fix order of shadermodules

Website

  • website: fix posting project comments to discord
  • website: fix bug when saving empty op description and summary would keep old content
  • website: fix loadingindicatot on "unknown op" errorpage
  • website: rework dropdown in rename op
  • website: limit activities per user per block to 3 entries
  • website: dev page: op page shows, if op does not exists on live environment
  • website: show all namespaces and ops on teams page, link to namespaces page for deprecated ops
  • website: properly escape quotes in markdown op description
  • website: update references in opdocs of older versions when renaming ops
  • website: show suggestions when misstyping opname, even when we only have one sugesstion, do not redirect
  • website: move uploading of avatars (user/team) out of iframe for better cache control
  • website: api keys: do not show keys to the viewer when opening page, added copy button

Standalone

  • standalone: rework npm usage and error reporing / warnings
  • standalone: add command to copy op-dir to clipboard
  • standalone: add command to open op directory in finder/explorer
  • standalone: improve support for npm modules using import/require and other node-versions
  • standalone: improve errormessages for cases where npm modules still do not/cannot work
  • standalone: change default namespace to Ops.Local.
  • standalone: change default op location to ./ops relative to .cables-file
  • standalone: fix error when loading initial empty layout of new op
  • standalone: fix adding attachments to ops
  • standalone: fix external editing of opcode, remove duplicate code
  • standalone: fix cloning op into new directory
  • standalone: speed up updating of opcode when editing with external editor
  • standalone: update electron version to 31.7.3
  • standalone: add "services" and "hide" options to about-menu on osx
  • standalone: remember "allow pasting" in devtools
  • standalone: add runtime info (nodeversion, chromeversion, ...) to "About Cables"
  • standalone: show "open op dir" button in editor
  • standalone: fix asset export for html export on windows
  • standalone: remove usless info about creating a new namespace
  • standalone: fix numbers in manage op directories tab
  • standalone: change default setting for preventing idlemode to true
  • standalone: set new empty patch as unsaved
  • standalone: set current patchname as default filename in save windows
  • standalone: development version: add https option to install_local.sh
  • standalone: show path to op in npm error console, for easier copying
screenshot Ops.Color.ColorArraySortop Ops.Color.ColorArraySort
screenshot Ops.Color.EyeDropperop Ops.Color.EyeDropper
screenshot Ops.Color.GradientColorArrayop Ops.Color.GradientColorArray
screenshot Ops.Html.AlignElementop Ops.Html.AlignElement
screenshot Ops.Html.Attributes.ElementAccessibilityop Ops.Html.Attributes.ElementAccessibility
screenshot Ops.Html.Attributes.ElementAttributesop Ops.Html.Attributes.ElementAttributes
screenshot Ops.Html.Attributes.ElementGetAttributeop Ops.Html.Attributes.ElementGetAttribute
screenshot Ops.Html.Attributes.ElementSetAttributeop Ops.Html.Attributes.ElementSetAttribute
screenshot Ops.Html.CSS.ElementCssSizeop Ops.Html.CSS.ElementCssSize
screenshot Ops.Html.InnerHTMLop Ops.Html.InnerHTML
screenshot Ops.Math.RandomNumbersFromStringop Ops.Math.RandomNumbersFromString
screenshot Ops.Sidebar.SidebarDateTimeop Ops.Sidebar.SidebarDateTime