Changelog
2025-07-07 11:27 - 18 hours ago
Ops
- bugfix: Ops.Devices.Midi.MidiNoteFilter - fixed problem displaying of notes
- bugfix: Ops.Gl.Meshes.RectangleRounded_v2 - Fix wrong vertex order in one triangle
- feature: Ops.Gl.MainLoop_v2 - added "focus canvas" option, which enables keyboard listen events without clicking the canvas, but will scroll to that element when embndded on a long website
- feature: Ops.Sidebar.ColorPicker_v3 - add toggle and output for opacity
- improvement: Ops.Array.ArrayGetString_v2 - add "found" outport, return empty string when not found
- improvement: Ops.Data.JsonPath.ArrayGetStringByPath_v2 - output empty string when not found
- improvement: Ops.Data.JsonPath.ObjectGetStringByPath_v2 - output empty string when not found
- improvement: Ops.Json.ObjectGetString_v2 - add "found" outport, return empty string when not found
- improvement: Ops.Net.CorsProxy_v3 - check for valid url, output empty string if invalid, show error
- new op: Ops.Array.ArraysToArrayMultiPort - create an array from multiple string input ports
- new op: Ops.Data.Compose.Array.CompArrayPushTexture - push/append a texture to an array
- new op: Ops.String.EndsWith - does a string starts with another string?
- new op: Ops.String.FileUrlsToArrayMultiPort - create an array from multiple string input ports
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
- 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.ArrayOfObjectsFilterByKeyValue_v2 - Filter array even with empty or null seachvalue, do no longer return full array
- Improvement: Ops.Array.InterpolateArrays - Shows an error when not both arrays are connected
- Improvement: Ops.Cables.GetSubPatchName - Added shortname output
- Improvement: Ops.Cables.GetSubPatchName - Updates when subpatch was cloned and recreated
- Improvement: Ops.Color.ColorArraySort - Added user warning if array is not dividable by 3 or 4
- Improvement: Ops.Data.JsonPath.ArrayGetArrayByPath - Change "found" port to boolNum type
- Improvement: Ops.Data.JsonPath.ArrayGetArrayByPath - Change errorlevels, show hint when no path provided
- Improvement: Ops.Data.JsonPath.ArrayGetArrayByPath - Show full path in extended title
- Improvement: Ops.Data.JsonPath.ArrayGetArrayValuesByPath - Change "found" port to boolNum type
- Improvement: Ops.Data.JsonPath.ArrayGetArrayValuesByPath - Change errorlevels, show hint when no path provided
- Improvement: Ops.Data.JsonPath.ArrayGetArrayValuesByPath - Show full path in extended title
- Improvement: Ops.Data.JsonPath.ArrayGetNumberByPath - Change "found" port to boolNum type
- Improvement: Ops.Data.JsonPath.ArrayGetNumberByPath - Change errorlevels, show hint when no path provided
- Improvement: Ops.Data.JsonPath.ArrayGetNumberByPath - Show full path in extended title
- Improvement: Ops.Data.JsonPath.ArrayGetObjectByPath - Change "found" port to boolNum type
- Improvement: Ops.Data.JsonPath.ArrayGetObjectByPath - Change errorlevels, show hint when no path provided
- Improvement: Ops.Data.JsonPath.ArrayGetObjectByPath - Show full path in extended title
- Improvement: Ops.Data.JsonPath.ArrayGetStringByPath - Change "found" port to boolNum type
- Improvement: Ops.Data.JsonPath.ArrayGetStringByPath - Change errorlevels, show hint when no path provided
- Improvement: Ops.Data.JsonPath.ArrayGetStringByPath - Show full path in extended title
- Improvement: Ops.Data.JsonPath.ObjectGetArrayByPath - Change "found" port to boolNum type
- Improvement: Ops.Data.JsonPath.ObjectGetArrayByPath - Change errorlevels, show hint when no path provided
- Improvement: Ops.Data.JsonPath.ObjectGetArrayByPath - Show full path in extended title
- Improvement: Ops.Data.JsonPath.ObjectGetArrayValuesByPath - Change errorlevels, show hint when no path provided
- Improvement: Ops.Data.JsonPath.ObjectGetArrayValuesByPath - Show full path in extended title
- Improvement: Ops.Data.JsonPath.ObjectGetNumberByPath - Change "found" port to boolNum type
- Improvement: Ops.Data.JsonPath.ObjectGetNumberByPath - Change errorlevels, show hint when no path provided
- Improvement: Ops.Data.JsonPath.ObjectGetNumberByPath - Wrong path is not an error anymore, but a warning
- Improvement: Ops.Data.JsonPath.ObjectGetObjectByPath - Change "found" port to boolNum type
- Improvement: Ops.Data.JsonPath.ObjectGetObjectByPath - Change errorlevels, show hint when no path provided
- Improvement: Ops.Data.JsonPath.ObjectGetObjectByPath - Show full path in extended title
- Improvement: Ops.Data.JsonPath.ObjectGetStringByPath - Change errorlevels, show hint when no path provided
- Improvement: Ops.Data.JsonPath.ObjectGetStringByPath - Show full path in extended title
- Improvement: Ops.Data.JsonPath.ObjectGetStringByPath - Wrong path is not an error anymore, but a warning
- Improvement: Ops.Devices.Mobile.MotionSensor_v2 - Output status string of permissions
- Improvement: Ops.Devices.Mouse.Mouse_v3 - Canvas area is now cropped and will not change outside of the canvas area
- Improvement: Ops.Devices.Mouse.Mouse_v4 - Canvas area is now cropped and will not change outside of the canvas area
- Improvement: Ops.Extension.Deprecated.Cables.CustomOp - Refactor to use new op class
- Improvement: Ops.Extension.Deprecated.Cables.CustomOp_v2 - Refactor to use new op class
- Improvement: Ops.Extension.OpenType.OpentypeFont - Handle file format error
- Improvement: Ops.Extension.SocketCluster.SocketClusterClient_v2 - Added auto reconnect
- Improvement: Ops.Extension.SocketCluster.SocketClusterClient_v2 - Display status as extended title
- Improvement: Ops.Gl.GLTF.GltfScene_v4 - Fix loading meshes with hi polycount without no face indices
- Improvement: Ops.Gl.Shader.CustomShader_v2 - Show button to show shader errors in the source code
- Improvement: Ops.Gl.TextureToArray_v4 - New version: always output floating point numbers
- Improvement: Ops.Gl.Textures.ExrTexture - Don't crash on wrong fileformat, show exception error message in op params
- Improvement: Ops.Html.Attributes.ElementAccessibility - Add aria Label and labeledBy
- Improvement: Ops.Html.Event.ElementEventListener_v2 - Added passthrough of element
- Improvement: Ops.Json.ObjectGetArray_v2 - Return empty array when not found
- Improvement: Ops.Net.CorsProxy_v3 - Add active/inactive toggle, restrict usage to cables editor/patchpage
- Improvement: Ops.Number.GateNumber - Update on changing custom default value
- Improvement: Ops.Number.Number - Do not visualize the number on the op if input port is connected
- Improvement: Ops.String.GateString - Update on changing custom default value
- Improvement: Ops.String.HandleBarsHtml_v2 - Syntax highlighter
- Improvement: Ops.String.HandleBarsHtml_v2 - Remove patch-library, load from oplibs
- Improvement: Ops.Trigger.TriggerSend - Added trigger output "next" to make op passthrough-able
- Improvement: Ops.Ui.VizString - Show connected port name as extended title
- Improvement: Ops.Ui.VizTexture - Also show pixelcolor when show info is not active / fix crosshair
- Improvement: Ops.WebAudio.Output_v2 - Add "number of channels" outport
- Improvement: Ops.Website.SetLocationHash - Change default state to "active"
- New op: Ops.Array.ArrayFindStrings - Return all the indexes of a string in an array
- New op: Ops.Array.ArrayRemoveFalsy - Remove falsy items from an array
- New op: Ops.Cables.CablesInfo - Output the cables URL
- New op: Ops.Cables.GetOpName - Get op name by id
- 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.Deprecated.SidebarElement_v2 - Add custom HTML Elements into the sidebar
- New op: Ops.Extension.Standalone.Net.SocketClusterServer - Start a socketcluster server
- New op: Ops.Extension.WebGpu.AttributeAsColorMaterial - Render mesh attribultes as color
- 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.DefaultTextures - Outputs textures
- New op: Ops.Extension.WebGpu.FaceCulling - Cull (do not draw) back or front facing faces/triangles
- New op: Ops.Extension.WebGpu.FullScreenRect - Render a rectangle that fills the whole canvas
- New op: Ops.Extension.WebGpu.MeshInstancer - Draw the same mesh many times very fast
- New op: Ops.Extension.WebGpu.Texture - Load an image file as a texture
- New op: Ops.Extension.WebGpu.VizTexture - Vizualize a webgpu texture on the patchfield
- New op: Ops.Extension.WebGpu.WebGpuCanvas - Create a canvas for WebGPU
- New op: Ops.Extension.WebGpu.WebGpuInfo - Output information about WebGPU adapter and implementation
- New op: Ops.Gl.ShaderEffects.VertexArea - Transform an area of a mesh
- New op: Ops.Gl.Textures.SequenceTextures - Control order and flow of objects
- New op: Ops.Graphics.ArrayToExr - Convert and download an array of numbers as an .exr image file
- New op: Ops.Html.CSS.CssClass - Create a CSS class for styling other elements
- New op: Ops.Html.CSS.ElementClassList - Get css classes of an element
- New op: Ops.Html.CanvasToBase64 - Create an image file from a canvas
- New op: Ops.Html.Css.ElementBackDropFilter - Set CSS backdrop filter like blur, contrast, brightness, saturation
- New op: Ops.Html.Css.ElementMargin - Set CSS margins of a html element
- New op: Ops.Html.DraggableElement - Make a HTML element draggable to move it around with the mouse
- 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.ElementGetClosest - Get the closest parent element matching the query selector
- New op: Ops.Html.Event.ElementsArrayEventHandler - Register and handle events on multiple html elements
- New op: Ops.Html.QuerySelectorAll_v2 - Selects all matching elements in the DOM
- New op: Ops.Json.ArrayOfObjectsMultiPort - Create an array with multiple objects
- New op: Ops.Sidebar.SidebarElement - Add custom HTML Elements into the sidebar
- 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.String.StringRemoveCharacters - Remove every occurances of given characters from a string
- New op: Ops.TimeLine.Anim - Timeline keyframable animation object
- New op: Ops.TimeLine.AnimGetValue - Get the animated value at time x of an animation object
- New op: Ops.TimeLine.AnimInfo - Get intormation about an anim object
- New op: Ops.TimeLine.TimelineConfig - Configure the timeline for the current patch
- New op: Ops.TimeLine.TimelineDebug -
- New op: Ops.Ui.MaximizeRenderer - Maximize renderer to window size
- New op: Ops.Ui.VizImageUrl - Preview an image URL or a data/base64 URL
- New op: Ops.Vars.TriggerVarGetObject - Get an object variable value at time of trigger
- rename: Ops.Anim.Crossfade - Math.Crossfade renamed to Ops.Anim.Crossfade
- rename: Ops.Array.ArrayFindStrings - Array.ArrayStringIndices renamed to Ops.Array.ArrayFindStrings
- rename: Ops.Dev.Gl.ShaderEffects.Normals - Gl.ShaderEffects.Normals renamed to Ops.Dev.Gl.ShaderEffects.Normals
- rename: Ops.Dev.Graphics.PerformanceNext - Graphics.PerformanceNext renamed to Ops.Dev.Graphics.PerformanceNext
- rename: Ops.Dev.TimeLine.AnimStretch - TimeLine.AnimStretch renamed to Ops.Dev.TimeLine.AnimStretch
- rename: Ops.Extension.WebGpu.ArrayToGpuBuffer - Extension.WebGpu.Dev.GpuFloatBuffer renamed to Ops.Extension.WebGpu.ArrayToGpuBuffer
- rename: Ops.Extension.WebGpu.ArrayToTexture - Extension.WebGpu.Dev.ArrayToTexture renamed to Ops.Extension.WebGpu.ArrayToTexture
- rename: Ops.Extension.WebGpu.AttributeAsColorMaterial - Extension.WebGpu.Dev.AttributeAsColorMaterial renamed to Ops.Extension.WebGpu.AttributeAsColorMaterial
- rename: Ops.Extension.WebGpu.BasicMaterial - Extension.WebGpu.Dev.BasicMaterial renamed to Ops.Extension.WebGpu.BasicMaterial
- rename: Ops.Extension.WebGpu.ColorTexture - Extension.WebGpu.Dev.ColorTexture renamed to Ops.Extension.WebGpu.ColorTexture
- rename: Ops.Extension.WebGpu.DefaultTextures - Extension.WebGpu.Dev.DefaultTextures renamed to Ops.Extension.WebGpu.DefaultTextures
- rename: Ops.Extension.WebGpu.FrontBacksideMaterial - Extension.WebGpu.Dev.FrontBacksideMaterial renamed to Ops.Extension.WebGpu.FrontBacksideMaterial
- rename: Ops.Extension.WebGpu.FullScreenRect - Extension.WebGpu.Dev.FullScreenRect renamed to Ops.Extension.WebGpu.FullScreenRect
- rename: Ops.Extension.WebGpu.GpuBufferToArray - Extension.WebGpu.Dev.GpuBufferToArray renamed to Ops.Extension.WebGpu.GpuBufferToArray
- rename: Ops.Extension.WebGpu.MatCapMaterial - Extension.WebGpu.Dev.MatCapMaterial renamed to Ops.Extension.WebGpu.MatCapMaterial
- rename: Ops.Extension.WebGpu.MeshInstancer - Extension.WebGpu.Dev.MeshInstancer renamed to Ops.Extension.WebGpu.MeshInstancer
- rename: Ops.Extension.WebGpu.Pipeline - Extension.WebGpu.Dev.Pipeline renamed to Ops.Extension.WebGpu.Pipeline
- rename: Ops.Extension.WebGpu.RenderToTexture - Extension.WebGpu.Dev.RenderToTexture renamed to Ops.Extension.WebGpu.RenderToTexture
- rename: Ops.Extension.WebGpu.Texture - Extension.WebGpu.Dev.Texture renamed to Ops.Extension.WebGpu.Texture
- rename: Ops.Extension.WebGpu.VizTexture - Extension.WebGpu.Dev.VizTexture renamed to Ops.Extension.WebGpu.VizTexture
- rename: Ops.Extension.WebGpu.WebGpuCanvas - Extension.WebGpu.Dev.WebGpuCanvas renamed to Ops.Extension.WebGpu.WebGpuCanvas
- rename: Ops.Gl.FaceCulling - Graphics.FaceCulling renamed to Ops.Gl.FaceCulling
- rename: Ops.Graphics.Meshes.CablesLogo - Gl.Meshes.CablesLogo renamed to Ops.Graphics.CablesLogo
- rename: Ops.Graphics.Meshes.CablesLogo - Graphics.CablesLogo renamed to Ops.Graphics.Meshes.CablesLogo
- rename: Ops.Graphics.Meshes.Circle - Gl.Meshes.Circle renamed to Ops.Graphics.Meshes.Circle
- rename: Ops.Graphics.Meshes.Circle_v2 - Gl.Meshes.Circle_v2 renamed to Ops.Graphics.Meshes.Circle_v2
- rename: Ops.Graphics.Meshes.Circle_v3 - Gl.Meshes.Circle_v3 renamed to Ops.Graphics.Meshes.Circle_v3
- rename: Ops.Graphics.Meshes.Cross - Gl.Meshes.Cross renamed to Ops.Graphics.Meshes.Cross
- rename: Ops.Graphics.Meshes.Cube - Gl.Meshes.Cube renamed to Ops.Graphics.Meshes.Cube
- rename: Ops.Graphics.Meshes.Cube_v2 - Gl.Meshes.Cube_v2 renamed to Ops.Graphics.Meshes.Cube_v2
- rename: Ops.Graphics.Meshes.Rectangle - Gl.Meshes.Rectangle renamed to Ops.Graphics.Meshes.Rectangle
- rename: Ops.Graphics.Meshes.Rectangle_v2 - Gl.Meshes.Rectangle_v2 renamed to Ops.Graphics.Meshes.Rectangle_v2
- rename: Ops.Graphics.Meshes.Rectangle_v3 - Gl.Meshes.Rectangle_v3 renamed to Ops.Graphics.Meshes.Rectangle_v3
- rename: Ops.Graphics.Meshes.Rectangle_v4 - Gl.Meshes.Rectangle_v4 renamed to Ops.Graphics.Meshes.Rectangle_v4
- rename: Ops.Graphics.Meshes.Sphere - Gl.Meshes.Sphere renamed to Ops.Graphics.Meshes.Sphere
- rename: Ops.Graphics.Meshes.Sphere_v2 - Gl.Meshes.Sphere_v2 renamed to Ops.Graphics.Meshes.Sphere_v2
- rename: Ops.Graphics.Meshes.Sphere_v3 - Gl.Meshes.Sphere_v3 renamed to Ops.Graphics.Sphere_v3
- rename: Ops.Graphics.Meshes.Sphere_v3 - Graphics.Sphere_v3 renamed to Ops.Graphics.Meshes.Sphere_v3
- rename: Ops.Graphics.Meshes.Star - Gl.Meshes.Star renamed to Ops.Graphics.Meshes.Star
- rename: Ops.Graphics.Meshes.Star_v2 - Gl.Meshes.Star_v2 renamed to Ops.Graphics.Star_v2
- rename: Ops.Graphics.Meshes.Star_v2 - Graphics.Star_v2 renamed to Ops.Graphics.Meshes.Star_v2
- rename: Ops.Graphics.OrbitControls - Gl.Matrix.OrbitControls renamed to Ops.Graphics.OrbitControls
- rename: Ops.Graphics.OrbitControls_v2 - Gl.Matrix.OrbitControls_v2 renamed to Ops.Graphics.OrbitControls_v2
- rename: Ops.Graphics.OrbitControls_v3 - Gl.Matrix.OrbitControls_v3 renamed to Ops.Graphics.OrbitControls_v3
- rename: Ops.Graphics.Transform - Gl.Matrix.Transform renamed to Ops.Graphics.Transform
- rename: Ops.Graphics.TransformView - Gl.Matrix.TransformView renamed to Ops.Graphics.TransformView
- rename: Ops.Graphics.Triangle_v2 - Gl.Meshes.Triangle_v2 renamed to Ops.Graphics.Triangle_v2
- rename: Ops.Html.QuerySelector_v3 - add "element" mode
- rename: Ops.Json.TriggerObject - Json.ObjectTrigger renamed to Ops.Json.TriggerObject
- deprecation: Ops.Extension.Deprecated.ElementInteraction - op Html.ElementInteraction was deprecated
- deprecation: Ops.Extension.Deprecated.ElementPointerEvents_v2 - op Html.Event.ElementPointerEvents_v2 was deprecated
- deprecation: Ops.Extension.Deprecated.Pointer - op Dev.Devices.Pointer was deprecated
- deprecation: Ops.Extension.Deprecated.ShadowModule - op Deprecated.Admin.ShadowModule was deprecated
- deprecation: Ops.Extension.Deprecated.SidebarElement_v2 - op Deprecated.SidebarElement_v2 was deprecated
- deprecation: Ops.Extension.Deprecated.SidebarElement_v2 - op Sidebar.SidebarElement_v2 was deprecated
- deprecation: Ops.Extension.Deprecated.SwitchShader - op Gl.Shader.SwitchShader was deprecated
2024-12-17 11:02 - Dec 17, 2024 at 11:02
Ops
- new op: Ops.Color.ColorArraySort - Sort an array of colors by saturation/lightness etc.
- new op: Ops.Color.EyeDropper - Native color picker
- new op: Ops.Color.GradientColorArray - texture containing a colour gradient that can be altered with an editor
- new op: Ops.Html.AlignElement - Align a HTML element to another, keep positioning
- new op: Ops.Html.Attributes.ElementAccessibility - Element Accessibility properties for screen reader
- new op: Ops.Html.Attributes.ElementAttributes - Get all attributes from an element an object
- new op: Ops.Html.Attributes.ElementGetAttribute - Read or Get the value of an HTML element Attribute
- new op: Ops.Html.Attributes.ElementSetAttribute - Write or Set the value of an HTML element Attribute
- new op: Ops.Html.CSS.ElementCssSize - Set the size of an element
- new op: Ops.Html.InnerHTML - Set innerHTML or innerTEXT of an HTML element
- new op: Ops.Math.RandomNumbersFromString - Random number generator from a string seed
- new op: Ops.Sidebar.SidebarDateTime - date or datetime picker in the sidebar
- bugfix: Ops.Devices.Mobile.ScreenOrientation_v2 - Update op to work with current API
- bugfix: Ops.Extension.OpenType.OpentypeFont - handle prefixassetpath correctly for url input
- bugfix: Ops.Html.CSS.ElementCss3DTransform - remove style when deleting op
- bugfix: Ops.Net.WebSocket.WebSocket_v2 - fix wrong connection state boolean when error occurs
- bugfix: Ops.Sidebar.SideBarImage - handle prefixassetpath correctly for url input
- bugfix: Ops.Sidebar.SidebarText_v3 - use correct string input for id
- feature: Ops.Data.Compose.Array.CompArray - Added clear toggle, array will not be cleared when triggered, can now be used as a buffer
- feature: Ops.Data.Compose.Object.CompObject - Added clear toggle, object will not be cleared when triggered
- feature: Ops.Devices.Browser.BrowserInfo_v3 - Outputs browser version
- feature: Ops.Gl.CubeMap.CubeMapFromTextures_v2 - handle prefixassetpath correctly for url input
- feature: Ops.Gl.Performance - Added active toggle to completly disable calculation of performance data
- feature: Ops.Html.Elements.ImageElement_v2 - Alt attritbute
- feature: Ops.Html.Elements.ImageElement_v3 - Alt attritbute
- feature: Ops.Sidebar.Button_v2 - Aaccessibility: button has aria-label
- feature: Ops.Sidebar.ColorPicker_v3 - Added newest version of colorRick: added eyeDropper API, native colorpicking on the desktop
- feature: Ops.Sidebar.Slider_v3 - Aaccessibility: button has aria-label
- feature: Ops.Sidebar.Toggle_v4 - Accessibility: aria label and can be reached with tab key/toggled with enter key
- improvement: Ops.Data.Compose.Object.CompObject - Added a reset trigger button to set itback to an empty object
- improvement: Ops.Devices.Midi.MidiInputDevice_v2 - reduced loglevel when device connection errors
- improvement: Ops.Html.CSS.ElementCssText - Added justify option to align parameter
- improvement: Ops.Html.CSS.ElementCssPadding_v2 - Added padding parameter, that gets added on top of side-paddings
- improvement: Ops.Html.Elements.ImageElement_v3 - New Version: Element gets added to the DOM automatically
- improvement: Ops.Sidebar.Incrementor_v3 - Removed values-array input
- improvement: Ops.Sidebar.Sidebar - css changes for focussed elements show outline
- improvement: Ops.Sidebar.Toggle_v4 - Position of active toggle does not jump anymore
- improvement: Ops.Ui.VizObject - Do nort sort object keys when it is an array
- improvement: Ops.WebAudio.FFTAreaAverage_v3 - fixed display problem when having the op multiple times on the patch
- improvement: Ops.WebAudio.FFTAreaAverage_v3 - outputed texture is not flipped anymore
Ops Rename
- rename: Ops.Gl.Meshes.ParametricSurface - Ops.Extension.Deprecated.ParametricSurface renamed to Ops.Gl.Meshes.ParametricSurface
- rename: Ops.Gl.TextureToArray - Ops.Gl.TextureToColorArray renamed to Ops.Gl.TextureToArray
- rename: Ops.Gl.TextureToRandomPoints - Ops.Gl.TextureToPoints renamed to Ops.Gl.TextureToRandomPoints
- deprecation: Ops.Extension.Deprecated.Array3FlipAxis - op Array.PointArray.Array3FlipAxis was deprecated - was bugged, was not flipping correctly, can be done using other ops
- deprecation: Ops.Extension.Deprecated.ArraySetArray - op Array.ArraySetArray was deprecated - use compArray ops
- separated html namespaces
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