Changelog
2024-08-28 12:10 - Aug 28, 2024 at 12:10
Read more in out blogpost:
New ops
- new op: Ops.Array.PointArray.Array3RepeatTransform - Repeat an array by transforming it x times
- new op: Ops.Debug.CrashOp - Crash the editor in many ways
- new op: Ops.Html.Element - A more convinient version of div element op, that can be used for creating html without writing much css code
- new op: Ops.Html.ElementCssBorder - Set CSS border properties of a HTML element
- new op: Ops.Html.ElementCssColor - Set text and background colors of an HTML element
- new op: Ops.Html.ElementCssFont - Set font and text properties of a html element
- new op: Ops.Html.ElementCssPadding - Set css padding of a html element
- new op: Ops.Html.ElementCssString - Add shadows to html elements
- new op: Ops.Html.ScrollIntoView - Scroll an area, so the html element is visible/in view
Op Enhancements
feature: Ops.Devices.Keyboard.CursorKeys - Added output for directional degree and if any button is pressed
feature: Ops.Gl.Meshes.Cross - Added toggles for left/right/top/bottom parts
feature: Ops.Gl.Meshes.TextMesh_v2 - Text scale parameter: scale the whole text
feature: Ops.Html.FontFile_v2 - Added active toggle to completly unloaded a font, or even never load it in the first place
improvement: Ops.Ui.VizArrayTable - it will now also visualize arrays of arrays and objects
improvement: Ops.Anim.LFO_v3 - Adjusted amplitudes
improvement: Ops.Array.SortArray - make sorting work with array of strings
improvement: Ops.Boolean.ToggleBool_v2 - Add output trigger which is triggered after any input was triggered
improvement: Ops.Devices.Midi.MidiInputDevice_v2 - Workaround browser does not return midi access: try again many times
improvement: Ops.Gl.GradientTexture - Fix problems with flickering because texture was generated not early enough
improvement: Ops.Gl.Meshes.PointCloudFromTexture - Only modifies PSMUL pointsize multiplier when POINTMATERIAL is defined / fixes crashes with non pointmaterials
improvement: Ops.Gl.Textures.NoiseTexture - Texture creation will create a loading job and only run before rendering a frame
improvement: Ops.Html.CSSPropertyString - Added active toggle to temporary remove property from element
improvement: Ops.Html.ImageElement - Disable caching when uploading a new version of image to the editor
improvement: Ops.Html.ImageElement - Show filename in extended op title
improvement: Ops.Json.HttpRequest_v3 - JSON parse errors will not throw an exception but show an uiError
improvement: Ops.Json.HttpRequest_v3 - Show warning if url is empty
improvement: Ops.Net.WebSocket.WebSocket_v2 - Show error messages from websocket API and check for correct protocol
improvement: Ops.String.Base64.Base64Encode_v3 - new Version 3: Default value for mimetype input, when no mimetype is provided, the output is not a dataUrl
bugfix: Ops.Boolean.ToggleBool_v2 - fixed bug when default value true needed two trigger to become false
bugfix: Ops.Gl.Matrix.OrbitControls_v3 - fix with active toggle not working when value is false and it was never triggered before
bugfix: Ops.Gl.Meshes.MeshInstancerFromTexture_v3 - Fix bug not rendering correctly on the first frame
bugfix: Ops.Gl.TextMeshMSDF_v2 - fix: correctly discard Pixels when fully transparent
bugfix: Ops.Gl.TextureToColorArray_v2 - Fix problem with floating point textures
bugfix: Ops.Gl.Textures.TextureToBase64_v5 - Fixed bug: was not updating output in all cases
bugfix: Ops.Html.FullscreenMode - Fix null pointer exception happening even if everything worked fine
rename: Ops.Array.PointArray.Array3AreaRemove - Ops.Array.Array3AreaRemove renamed to Ops.Array.PointArray.Array3AreaRemove
rename: Ops.Array.PointArray.Array3FlipAxis - Ops.Array.Array3FlipAxis renamed to Ops.Array.PointArray.Array3FlipAxis
rename: Ops.Array.PointArray.Array3PointEditor - Ops.Array.Array3PointEditor renamed to Ops.Array.PointArray.Array3PointEditor
rename: Ops.Array.PointArray.Array3VectorDistance - Ops.Array.Array3VectorDistance renamed to Ops.Array.PointArray.Array3VectorDistance
rename: Ops.Array.PointArray.SortArray3ByDistance - Ops.Array.SortArray3ByDistance renamed to Ops.Array.PointArray.SortArray3ByDistance
rename: Ops.Array.PointArray.SplinePositionAtDistanceArray3 - Ops.Array.SplinePositionAtDistanceArray3 renamed to Ops.Array.PointArray.SplinePositionAtDistanceArray3
rename: Ops.Array.PointArray.SubdivideArray3_v2 - Ops.Array.SubdivideArray3_v2 renamed to Ops.Array.PointArray.SubdivideArray3_v2
rename: Ops.Array.PointArray.TransformArray3 - Ops.Array.TransformArray3 renamed to Ops.Array.PointArray.TransformArray3
Editor
- editor: inspect or port value editor tabs, that refer a deleted(e.g. reloaded) op, will be closed automatically
- editor: also use horizontal scroll when incrementing port values (shift+wheel)
- editor: better storing and restoring of patch view, e.g. after loading the patch or maximizing canvas
- editor: create backup before exporting patch, for cables-supporters
- editor: create/claim Ops.Extension.Standalone a team and namespace for native standalone electron operators
- editor: error report sending improved and error reports are public
- editor: escape html results in search results
- editor: fix links in "recent patches" to be actual hyperlinks and middle-clickable
- editor: fix op text and port rendering precision problems when scrolling/zooming
- editor: html overlay inspect click was not showing op params
- editor: improve loading speed by reducing filesize of used gui libs by 50%
- editor: improve speed by avoiding useless request when coppy-pasting newly created op
- editor: improved error catching and handling
- editor: improved error catching and reporting
- editor: improved error display, automatic display of error source code when possible
- editor: improved showing loading indicator when loading data from server
- editor: less creation of duplicate input/ouput ops in subpatche
- editor: less modal error dialogs, but error console opening automaticall
- editor: less network requests when editing ops
- editor: make sure op version suffix (e.g. _v2) can only contain numbers in clone and rename
- editor: new logging console
- editor: ops can now be renamed directly in the editor
- editor: patch outline treeview now has filter options
- editor: port suggestion dialogs now will show the portcolors (e.g. when creating ports by dragging)
- editor: reduced number of requests to load op data from server
- editor: rename op: automatically select last part of op name to overwrite
- editor: renaming of ops in editor directly
- editor: reupload file button: quickly replace existing files with a new version
- editor: show big fat red warning when deleting assets in public patch
- editor: show comments in bookmark treeview
- editor: show manage op button in op search dialog doc panel (e.b. for editing ops even when they crash on create)
- editor: speed up checking validity of opname in clone and rename
- editor: store last saved version as automatic backup
- editor: when clicking title in a subpatch the outer op will be centered and focusssed
- editor: show all patchops in opselect, even if not used
- editor: offer oldschool form upload to upload big files in chrome, on error
Website
- website: fix bug on opspage when entering invalid example patch id
- website: improve opengraph/share information for teams and patchlists
- website: fix sorting and filtering on /ops namespace pages
- website: fix caching of team- and user-avatars, update after uploading
- website: protection against spammers / no public user profiles anymore if the user is not really active
- website: search engine optimization / better indexing
- website: fix bug in regeneration of small/mini avatar images when uploading
- website: fix link to op namespace on op-page for non-existing op
- website: show deprecated ops in namespaces on /ops/ page
- website: for spam protection reasons: user profiles are only shown when when fulfilling
certain rules - website: fix overlapping html elements when clicking patch maximize button
- website: export unminifed code when minifying fails, show info on export page
- website: fix bug when deleting nested team namespace
- website: fix wrong errordisplay when registering with already registered email
- website: speed up checking patch dependencies during delete (also from editor)
- website: set default date for op-changelog entries to "now" when sending empty data or 0
- website: hand over queryparameters to iframe on patch view page
- website: show namespace name and link on op thumbnails
- website: do not add "new op" changelog entry when cloning to a new version
- website: add entry to changelog when renaming op
- website: search private patches input on mypatches page
- website: fix bug in backup of project created after export
- website: update exe-export version of electron to match up with standalone
- website: add basic re-import of standalone projects to /mydata
Docs
- docs: rework nightly creation of jsdocs for cables/cables_ui/cables_electron
- docs: fix links to "continue below" on standalone docs
misc
- cables-cli: show log entries of level info/warning/error on console
- cables-cli: add option do supply/override api-key via command-line
- cables-cli: add option to export patch to use in standalone version
- misc: archive "cables daplaya" repository, move to cables standalone or exe export
2024-07-15 14:17 - Jul 15, 2024 at 14:17
New Ops
- new op: Ops.Graphics.Geometry.GeometryFromArrays - create a geometry from arrays
- new op: Ops.Date.TimestampToIsoDate - convert a timestamp to an ISO date string
- new op: Ops.Gl.Textures.TextureInfo_v2 - Outputs information about the connected texture
- new op: Ops.Html.ElementChildsMultiPort - add child elements to another HTML Element
- new op: Ops.Html.ElementCssShadow - Add shadows to html elements
- new op: Ops.Website.InIframe - Outputs true if the patch is inside of an iframe
Op Enhancements
- feature: Ops.Cables.UIMode - Added output port: Is overlay mode activated right now ? (hotkey "o")
- feature: Ops.String.NumberToString_v2 - Added Input for max number of decimal places
- improvement: Ops.Array.ArrayReverse - Added active toggle
- improvement: Ops.Gl.GlInfo_v2 - Add Number output for WebGl Version
- improvement: Ops.Html.ElementCssTransform - Added pass through element output port
- improvement: Ops.Html.ElementCssTransform - Show error when element is not positioned absolute
- improvement: Ops.String.StringToNumber - Added output if string is not a number
- improvement: Ops.Ui.VizLogger - Performance optimization with very long lines
Deprecated Ops
- deprecation: Ops.Extension.Deprecated.ArrayTranslate - op was deprecated
- deprecation: Ops.Extension.Deprecated.IfEqualsThen - op was deprecated - please use ifTrueThen
- deprecation: Ops.Extension.Deprecated.LetterBox - op was deprecated
- deprecation: Ops.Extension.Deprecated.RemoveAllClasses - op was deprecated
- deprecation: Ops.Extension.Deprecated.Trace - op was deprecated
- deprecation: Ops.Extension.Deprecated.WebGlVersion - op was deprecated
- deprecation: Ops.Extension.Deprecated.GetStringFromObject - op was deprecated
Editor
- editor: changed extended title color to grey
- editor: fix bug where changing the title in patch settings did not propagate to editor fields
- editor: op extended titles are shortened if too long
- editor: changed extended title color to grey
- editor: overlay mode: now also highlights selected html element ops
- editor: new command "set patch title"
- editor: fix inconsistencies on handling patch title changes
Website
- website: fix texture/asset refresh on uploaded files
- website: show basic file info and link to original patch on asset page for "orphaned assets"
- website: redirect do namespace page when calling /ops/ with full op-name
- website: add deletion of assets to patch-log
- wesbite: show error message when exporting patch with ops from different environment
- website: store original patch-creator in database on create/clone
- website: warnings when renaming from an op that do not exist
Standalone
- standalone: change patchname on save of new project and save as
- standalone: fix npm errors on windows and in packaged version
- standalone: show missing npm packages for ops as ui-error
- standalone: add zooming to the ui via cmd-- and cmd-+
- standalone: fix errors when project is not initialized before editor loads
- standalone: run "build" before "package" in build-process
- standalone: make ui zoomable with cmd/ctrl-+-
- standalone: fix error when loading local video files
2024-07-03 10:51 - Jul 3, 2024 at 10:51
New Ops
- new op: Ops.Array.ArrayLookup - Create an array that is filled with values looked up by index from another array
- new op: Ops.Array.ArraySetString - set a string at index in an array
- new op: Ops.Array.NumbersToArrayMultiPort - Create an array from multiple number inputs
- new op: Ops.Array.SwitchArrayMultiPort - Switch between multiple input arrays
- new op: Ops.Cables.GetSubPatchName - Outputs the current subpatch op name
- new op: Ops.Data.Compose.Object.CompObjectFromObject - Set key/values to the current ObjectCompose from an existing object
- new op: Ops.Gl.Textures.SwitchTextureMultiPort - Switch between multiple textures
- new op: Ops.Json.SwitchObjectMultiPort - Switch between multiple object inputs
- new op: Ops.Number.SwitchNumberMultiPort - Switch between multiple number inputs
- new op: Ops.String.ConcatMultiPort - concatinate/join multiple string inputs
- new op: Ops.String.StringsToArrayMultiPort - create an array from multiple string input ports
- new op: Ops.String.SwitchStringMultiPort - switch between multiple string inputs
- new op: Ops.Trigger.NumberByTriggerMultiPort - output a number by triggering an index port
- new op: Ops.Trigger.RouteTriggerMultiPort - Triggers one of the out ports - value index switch case (was SwitchTrigger)
- new op: Ops.Trigger.SequenceMultiPort - sequence trigger
- new op: Ops.Ui.Debug.PatchUiCoords - Output the current patch coordinates
- new op: Ops.Ui.Routing.RouteTrigger - Patchfield cable routing helper for trigger cables
- new op: Ops.Ui.Routing.RouteString - Patchfield cable routing helper for string cables
- new op: Ops.Ui.Routing.RouteNumber - Patchfield cable routing helper for number cables
- new op: Ops.Ui.Routing.RouteObject - Patchfield cable routing helper for object cables
- new op: Ops.Ui.Routing.RouteArray - Patchfield cable routing helper for array cables
- new op: Ops.Ui.VizTrigger - Visualize triggering for debugging reasons
Op Improvements
- feature: Ops.Array.Array3PointEditor - Added functionality to copy coordinates from index to the current point
- feature: Ops.Array.PointArray.CircularPoints_v2 - Added Loop option to close the gap to the first point again
- feature: Ops.Gl.Textures.NoiseTexture - Added random parameters for alpha channel
- feature: Ops.Html.CompareImages_v2 - Trigger to start comparing images
- feature: Ops.Html.CSS_v3 - added nesting parameter
- feature: Ops.Json.HttpRequest_v3 - Add option to output binary base64 string
- bugfix: Ops.Anim.InOutInAnim - fixed crash when duration was 0 row
- bugfix: Ops.Anim.Timer_v2 - fix timer not pausing correctly
- bugfix: Ops.Gl.GLTF.GltfScene_v4 - Fix bug: GLTF meshes were not rendering the first time it was executed
- bugfix: Ops.Gl.Matrix.OrbitControls_v3 - Fixed bug with initial "axis x" default value not being used properly
- bugfix: Ops.Gl.Meshes.Cylinder_v2 - fix crash when op.patch.cg not set
- bugfix: Ops.Gl.Meshes.Icosahedron_v2 - Smooth toggle works again
- bugfix: Ops.Gl.Textures.TextTexture_v6 - Fix bug with text not rendered on first frame
- bugfix: Ops.String.NumberFormatter - Fixed but with boolean grouping parameter
- improvement: Ops.Cables.UploadAsset - Fix problems with data urls
- improvement: Ops.Gl.Meshes.Icosahedron_v2 - Added "Render Mesh" toggle
- improvement: Ops.Gl.Texture_v2 - Cachebuster option default value is now false. turn on to force a reload of the image every time
- improvement: Ops.Gl.Textures.TextureToBase64_v5 - Update only after texture has changed
- improvement: Ops.Gl.Textures.VideoTexture_v3 - catch and display errors with negative playback rate on some browsers
- improvement: Ops.Gl.Textures.WebcamTexture_v3 - Set parentelement to non canvas so popout/external canvas can continue to work
- improvement: Ops.Json.HttpRequest_v3 - Fixed loading status for binary requests
- improvement: Ops.Sidebar.Incrementor_v2 - Added Increment/Decrement trigger inputs
- improvement: Ops.Sidebar.Incrementor_v2 - Added reset button
- improvement: Ops.Sidebar.Incrementor_v2 - Added toggle to greyout
- improvement: Ops.Sidebar.Presets_v2 - add op title to preset json
- improvement: Ops.Sidebar.Presets_v2 - add op title to preset json
- improvement: Ops.String.Base64.Base64Encode_v2 - Add mime input port, e.g. "image/svg+xml" or "image/jpeg"
- improvement: Ops.String.Base64.Base64Encode_v2 - Always output data url
- improvement: Ops.Ui.VizTextureTable - show coordinates of each pixel color table
- improvement: Ops.Ui.VizTextureTable - show coordinates of each pixel color table row
Op Renames
- deprecation: Ops.Deprecated.Gl.ShaderEffects.ColorizeInstancedMeshes - op was deprecated
Editor
- editor: add "copy to clipboard" button to file details section in files-tab
- editor: added more conversion suggestions when connecting incompatible port types
- editor: added multiport/longport functionality
- editor: added trigger->number port conversion suggestions
- editor: allow ops in extension namespace to contain other extension ops
- editor: better contrast in editor search dialog
- editor: check link time warnings when gui finished loading...
- editor: clicking into a cables now gives you an option to rerouting the cables
- editor: close warning about editing subpatch-reference after navigating to changed subpatch
- editor: creating area will give more spacing/padding to the top
- editor: creating new cable with default string op will copy over the original value
- editor: file/url input parameter now shows a hint whether the file source is an external asset, lib, current or other patch etc.
- editor: fix bug where shift clicking ops would not show the correct multi selected panel
- editor: fix loading libraries of copypasted ops
- editor: fix positioning of operators when creating subpatch ops
- editor: fix problem with transform gizmos on HDPI screens in some cases
- editor: fix problems with zombie error indicators
- editor: fix sawtooth rendering artifacts on cables in some subpatches
- editor: fix warning for missing sourcemap of packaged "markedjs"
- editor: fixed rendering cable residue after moving operators
- editor: fixed: patchfield font character database could not display a backslash
- editor: hide empty team list on patch settings page
- editor: hide old versions and deprecated ops in teamnamespaces and extension preview in opselect
- editor: hovering cable still show portname when hovering
- editor: jobs view: if loadings job was initiated by an op you can click it to focus op
- editor: make opcode editor not show a warning when using "modern javascript" (es11)
- editor: new command "clear op titles"
- editor: newly created ops will have "MIT" as a default license
- editor: op editor is greyed out in untrusted patches
- editor: patch summary now shows a no write access icon next to the patch title
- editor: port type conversion now can show multiple options (e.g. numberToString and boolToString)
- editor: remove intro-tour step for old tabs in parampanel
- editor: several menu options are greyed out, if you don't have write access
- editor: show selected background color like normal ops also on comment and area ops
- editor: string and number ports now have a context menu helper to create basic default op, e.g."create number op"
Website
- website: add "todo" page to teams, if they have op-namespaces to show todos for ops of team
- website: add button to put "rename" to op-changelog to rename result page
- website: add export-option to minify shadercode in .att and .frag attachments
- website: add seperate tab for op-example-patches in "my patches"
- website: filter duplicate information in activityfeed (e.g. "liked a patch" and "liked YOUR patch")
- website: filter own actions from activityfeed
- website: prevent moving a patch op to illegal namespaces
- website: remove redundant library loading from patch-view page
- website: show opauthor for team-ops in /mydata#ops
- website: show warning and basic file information for asset not in database
Standalone
- standalone: add "add op directory" to cables menu
- standalone: add backslach to op-title font to display filenames correctly on windows
- standalone: add command to copy used assets into project dir
- standalone: add command to copy used ops into project dir
- standalone: automatically create a ".cables" file when opening an exported project
- standalone: change confising wording of "toggle fullscreen", use command palette to toggle app fullscreen
- standalone: cleanup handling of keyboard shortcuts, reduce menu
- standalone: clone a new op and code a new op (also) in non-saved projects
- standalone: cmd-shift-s opens native save dialog
- standalone: creating empty patch does not ask of a name anymore
- standalone: do not open last project, open welcome modal with recent patches
- standalone: do not show offline indicator in standalone
- standalone: early version for testing download page: cables.gl
- standalone: fix "patch has been updated" showing when saving subpatchops
- standalone: fix a bug where path to index.html was undefined on startup
- standalone: fix assetpath explorer opening on windows
- standalone: fix assetpaths of library files and file urls on windows
- standalone: fix bug where "open patch" in welcome tab didn't do anything
- standalone: fix crash when adding op directory
- standalone: fix crash when going fullscreen on linux
- standalone: fix crash when running "npm install" on new patch
- standalone: fix file extensions in windows when saving patch
- standalone: fix filename extensions duplicate dot after save on windows
- standalone: fix missing opimage for extension overview in opselect
- standalone: fix op being executed twice when working with cables-editor
- standalone: fix permissions in editoriframe (webcam, midi, ...) and osx "entitlements"
- standalone: fix popout canvas and ExternalCanvas
- standalone: fix popout-canvas
- standalone: fix problem with closing app on windows/linux
- standalone: hide offline indicator
- standalone: link cables icon to welcome tab
- standalone: make changed patches closable on windows and linux
- standalone: make httprequest work with fileurls and use as default fallback op
- standalone: make native node modules (like "path" and "fs") work in ops
- standalone: move "goto op directory" button to "manage op" tab
- standalone: open native file dialog when uploading asset via files tab
- standalone: open opdir instead of texteditor when clicking on folder icon
- standalone: reference assets in project dir by relative url/path
- standalone: set assetpath to relative path if next to cables-project-file
- standalone: show nodejs and npm version in buildinfo tab
- standalone: show preview image and asset info for files and library files
- standalone: show used assets and locations in files-tab
- standalone: speed up reaction time of code- and assetwatchers
- standalone: store all patchinfo on one ".cables" file, ignore ".cables.json"
- standalone: store assetpaths as relative when next to projectfile
- standalone: store screenshots in project file
- standalone: unify handling of asset-urls, always use file://
- standalone: use fileurls for assetports
- standalone: warn when opening export when project file exists already
- standalone: watch assets for changes from external tools/editors
- standalone: watch opcode for changes from external editors/IDEs
- standalone: welcome tab shows cables events
- standalone: welcome tab shows current version and newest downloadable release version
- standalone: write console.log to logfile
Misc
- cables-cli: add option to minify shadercode in ".att" and ".frag" attachments