After about six months since the last release we are excited to share a huge update on what has been happening on cables.gl. We have been hard at work delivering new features, powerful ops, and countless improvements to make your patching experience even better.
As always you can jump right into all the changes by reading the raw data in the changelog, or you keep reading, and we walk you through some of the more interesting changes. We will also give an outlook into the future...
Along with everything we will show you in this rundown, we changed a lot of things in the background, making things run faster, more reliable and make them more future-proof to build on this foundation later. Some smaller things have also changed on the cables.gl website. More elements are reachable via the keyboard and the general placement of elements and actions has been unified in a few places. We hope you still find your way around.
But, to stay focussed, here are the big, visible ones:
Editor improvements
Rearrange ops
Rearranging ops can be both tedious and satisfying. It can be more satisfying from now on by holding down the shift key while moving any op around. This way the op will only move on one axis and snap to fitting places.
Using your keyboard
The parameter panel for each op got an update to make it more accessible using only the keyboard. Pressing the tab key will get your to the next option in the panel, shift-tab will navigate backwards. No need to move your hands away from they keyboard anymore!
Op highlight colors
are now displayed as a left border and will not colorize the whole op.
Shortcut search
Did you know entering "rtt" or "mift" in the opselect will give you Ops.Gl.RenderToTexture and Ops.Gl.Meshes.MeshInstancerFromTexture
respectively? We tweaked the scoring and the results of these searches a
bit to make it even faster to reach those ops with the long
names...looking at you "aoofb"!
Quicktrigger
And
as a small convenience while patching, every op with a inTriggerButton
port will now show the trigger button in the parameter panel, even when
the port is linked.
Copy your assets
Cables now lets you copy all the referenced assets in a patch to the local patch via an icon in the file manager or command in the command pallette. This will copy the asset from its former location, update all the ops using that asset and thus remove the reference to the patch holding the asset.
Search for usages
To check if this worked, or to find usages of assets in a patch we added and improved the search-button in the asset details to find any usage of that asset easily. And while we are in the asset details...did you know you can edit text-files right in the cables editor. Now even has more and better options for syntax highlighting.
Simple edit
From the parameter panel of any op working with files the input port has been reworked to give more information about the asset location and make it easier to work with external urls, as opposed to files uploaded to the patch. If the file can be edited in the cables editor it will now show an icon to open the editor to start your changes.
Manage your ops
The "Manage Op" tab got a lot more powerful and more informative with this update. It is now the central place to make changes to any operator. Be it cloning, renaming, adding dependencies or attachments or even deleting the op.
A simple click on the icon above the param panel will get you to all the information (description, visibility, changelog, ...) and let you manage your op. To make it a bit more clear what you are working on we now show the full op name and namespace here and in the opselect.
New standalone version
While the standalone version
of cables follows the development state of cables more closely, we give
it a new minor version number with every release of cables.gl and
announce some special features in this blog post. All the changes to the
cables editor are usually also available in the standalone version, so
check that out as well.
Better video support
Some
features only make sense in the standalone though. With the latest
update we fixed a bug that prevented playback of and especially skipping
around in a lot of video formats. A few more places interact with your
local file-explorer/finder to get to the code of ops, the location of
your patch or the directory containing that asset you are using.
Presentation mode
Most
notable we added two new editor preferences that make the application
open in fullscreen and another one to maximize the renderer on start.
This way you can open cables standalone in "presentation mode" and have
no one see your cables salad. Both of these states can also be set via
command line options (`--fullscreen` and `--maximize-renderer`), or even
using the new Ops.Ui.MaximizeRenderer op.
Op Dependencies
The JavaScript ecosystem gives us a lot of read-made, free and open-source libraries to integrate functionality into our ops and patches. This update revamps the way cables works with and loads libraries and opens up usage to a whole new set of things to use by supporting libraries packaged as ESM. All this can be managed from - you guessed it - the "Manage Op" tab. We even updated the documentation and provide some examples to work with Web Workers or WASM files.
Add dependencies
In the "Manage Op" tab you will find a new, improved section on adding, removing and managing op dependencies. You can upload library files, fetch them from a CDN (like cdnjs, jsdelivr or unpkg), load all the dependencies of another op or even add NPM packages in the standalone. Unsure how your library was packaged? The updated documentation gives you some guidelines on how to decide...or simply fall back to trial-and-error.
Manage dependencies
From the same place you can remove any library that is no longer needed, or download a previously uploaded file to maybe be used in another op or patch. The top of the "Manage Op" tab will also show a warning if your op is still using the old system of loading libraries, so does the op-page and the todos page of the team responsible for the op...if any. So revisit your ops that use external libraries and migrate to the new system.
New ops
HTML and CSS ops
While working on a client project we added some new operators to make it easier to create user interfaces using HTML and CSS that then drive the interaction of your patch. The combination of Ops.String.HandleBarsHtml and Ops.Html.QuerySelectorAll along with the some of the new ops makes it really easy to create rather complex interfaces using HTML and CCS in cables.
You can now add custom listeners to and array of elements, query their data attributes or currently attaches css classes and act on that, individually. Navigating the DOM with Ops.Html.ElementGetClosest and comparing with Ops.Html.ElementEquals gives a lot of power to this new workflow. Also check out Ops.Html.DraggableElement for an easy what to drag elements around using the mouse.
Check out the examples of the ops by clicking on them!
Backups
When exporting your patch to be used in the standalone version you get all the operators, all the assets, all the libraries and everything else that is needed to run a patch. This also applies to cables' backup system. Your downloaded patches can be imported back into cables without interfering with the original patch. This gives you an easy, offline, offsite, local backup.
If you support us on Patreon cables does all of this for you, stores the backups on our servers and periodically creates automatic backups of your patches to let you sleep better. Check out the documentation on how that works.
Creating backups
A click on "create backup" in the editor will lead you through the process of creating a backup of your patch. Depending on wether or not you have storage space (left) in your supporter level this will let you pick a name for the backup or simply lead you to the patch-export tab for a download.
Get some space
Every cables supporter level comes with backup storage space on our servers. You can see and manage the backups (manual and automatic ones) from your MyData section on cables.gl.
Working with backups
In the editor or in the MyData section on cables.gl you will be able to see your currently used and free space. Via the context menu you can choose to restore a backup to a new patch, delete the backup to free up space, download it for offline backup or use in the standalone or mark any automatic backup to not be deleted with "keep this backup".
Automatic backups
For a deeper understanding on how this system, and especially the automatic backups, work we updated our documentation on imports and backups.
If you would like to have automatic backups of your cables.gl patches:
The last roadmap we published is almost a year old, we crossed of a lot of the things that we had planned and we feel that we should set new goals for the closer future.
The items below give an overview on what we plan to do in the next few months. All of them are also tracked on our public issue tracker. Check out the roadmap and give feedback to steer us in the right direction! Or click individual topics you are interested in in the list below.
Focusing on cables development and implementing features on the above roadmap takes time and money. We are (again) super-proud to having been selected for another round of funding in the NGI Zero Commons Fund set up and managed by NLnet.
For a second time they are providing money and services that help keep us working on cables and giving this back to the (open-source) community. All of the items above are supported via our new project at NLNet.
If you have any means or ideas on how to financially support cables.gl development beyond a patreon membership, do not hesitate to contact us. There might also be other ways for you to give back to cables.gl and it's community.
These were only the cherry-picked items from the massive changelog of the last release. Check the details in the changelog itself, if you are interested.
Otherwise head over to the fresh and new cables.gl and start using all the latest and greatest!