September 2023 Release

Hello Everyone,

after handing out the roadmap for what's to come last time, we are back again with a new release of cables.gl.

Head over to the changelog to see all the changes one-by-one, but read on to get a rundown of some highlights.

You will find that we improved the workflow of collaboration even more, give you some nifty tools for VJing, let you organize your favourite patches and make you animate your 3D models even easier. And that's not even all of it!

External Canvas

Cables already has the means to edit patches and view on other devices or windows in near real-time for quite some while. This needed a networking connection, proper setup of credentials and still comes with a few drawbacks, though.

With the "ExternalCanvas" op, most of these are a thing of the past. Patch live - in a club of your choice - project to different displays, test on second monitor...

VJing with cables

Open your patch, add the ExternalCanvas op, put it somewhere into your MainLoop and click "Open Window". Pick different names, if you need multiple windows. 

Tweak some parameters and see things update in real-real-time.

Shape Keys

GltfScene now has better support for morph targets and shape keys (weighted morph targets) or vertex animations.

This makes it possible to - for example - create unique generative animations of predefined shape states - or simply export complex vertex animations that were created in an external tool without skinning or rigging.

Visible Patches

To improve the workflow of finding, remembering and working on patches we are adding patchlists to the mix of options to collect a bunch of patches together.

Patchlists integrate nicely with all the other "lists" in cables, be it teams, collaborators, featured patches, ...

Patchlists

Adding a patch to a list - or managing which of your lists the patch appears on - can be done right on the patchpage.

Via the new "Patchlists" option in the "My Patches" navigation you can create new lists, make them private or keep them as "unlisted". If go for "public" visibility, the list will be shown to everyone. 

Share your favourite patches containing cubes, best practices, curated demos, ...
Good-Bye Secret URL

The new way of deciding on visibility of everything finally made it's way to patches themselves. 

Gone are the days of creating, finding and copy-pasting a secret URL to share a patch with certain people. Just put your patch on "unlisted" and share the URL. 

Patch Summary

All of this now integrated nicely into the new patch summary and a refined patch-page. Find the teams and lists a patch is related to right where they belong. The new patch summary in the editor also gives you a bit more space. 

Click any free space on the background of the editor to check it out!

Working With The Editor

Working on the releases also involves a lot of patching. Sometimes we stumble across something that could improve the general "quality of life" when working with the cables editor. Here is what we found this time:

Math

What started as an idea on github - and already made its way into the last releases - finally made us go all the way and make adding math to your patches way easier.

Press "Esc", type "/100", press "Enter" and you just added a Divide op that already divides by 100...check all the other ones, as well!
GPU Profiler

The GPU-Profiler shows you how long each drawcall takes to render on the GPU. You can analyze which texture effects or instancers take the most time. 

Use the GPU- and CPU-Profiler to fine out what is slow in your patch and optimizing.
Cut Links

You really want to isolate an op? Need to cut a few links at once? 

Simply hold the "y"-key and draw with your mouse, where you want to cut, and they are gone.  Like a hot knife through butter.

More Ops

These were all our highlights of updates to platform and editor. 
The changelog mentions a few more improvements.  But here are all new ops:

To wrap things up: 
If you want to meet some of the people behind cables, there is a good chance at deadline demoparty in Berlin.

Check our the awesome invitation "BRVTL" by "slay bells" and "farbrausch", that we were kindly allowed to snatch a screenshot from for this blogpost:

If that doesn't keep you exploring for a few days: more fixes and improvements can be found in the changelog, as always.

Let us hear some feedback! Talk to us on social media, on discord or on github discussions.

Also: Join our meetup on discord on September 20th (20:00 CEST) to hear cables user kolektyw talk about "Building AI tools with cables.gl".

best,
Team Cables

cables is brought to you by




If you want to see some special feature integrated into cables,
contact us to see if we can make it happen.

The following users helped to make this release possible by being at least "gold member" on patreon.


Thank you!

June 2023 Release – Part II

More Control!

In our last post we covered the first part of the June 2023 release of cables.gl. We explained how to team up and collaborate on patches and ops.

This second post will take you into the changes that came to the editor and some (new) parts of the website. As you can see in the full changelog, we fixed some bugs, added some features and, for the most part, tried to make your life of patching easier, both in patching and managing your patches.

Let's see what we came up with:

Getting Things Done

In the editor, as well as on the website, we moved a lot of options into a new "threedot-menu".

Most notably you can now edit the titles of all ports right where you configure them. Perfect for renaming ports of your own ops or subpatches!

Also note that with this release we give you full control to extend the title of any op. You can bind any parameter to extend the title with its current value.

Try it while debugging patches, it makes checking the state of your patch at a glance a lot better.
Abbreviation Search
Searching for ops is one often-praised central feature of cables. Whether you are looking for anything related to "Audio", need some "Texture"-Effect or want to see how to do "Blur"...just type that into the opselect-dialog.

But what if you already know what you are looking for and need to be real quick in adding it to your patch?

This release allows you to enter "shortcuts" for ops and cables will try to present you with what you need.

Type "ogob" to see "ObjectGetObjectByPath", or "r2t" for "Render2Texture".
Try it!

Reworked Gradient Editor

When working with gradients, the new gradient editor will be of help

Select All Childs
improved the function of selecting the children of an op by clicking while holding down alt/command


See What's Going On

Disconnect From Loop
Things can go wrong while patching. Sometimes you just need to quickly disconnect and op from the loop. You can now keep all the other connections to the op while doing this by using shift-x (instead of just x).

Op-Not-Working-Indicator
We also show a small red x on any op that cannot work in the current position or state for you to find problems faster!

Loading Indicator
To see what's loading in your patch, every op that fetches things from somewhere else (Texture, AjaxRequest, ...) will now have a small loading indicator right on the op.

Text Visualization
And if you ever need to have a closer look at longer strings or larger objects VizString now scales, scrolls and zooms!

Request Access
The new world of working with teams in cables will give you more situations where you get to a patch that you do not own directly.

Every one of these pages will now display a bit more information about the patch and offer you to "request access" with the owner of the patch.
Checking Up On History
For patch- and/or team-owners it will be a lot easier to find out about changes to the patch while working with others.

The new tab "Log" in patch settings will show information about who last saved a patch, who added collaborators or changed permissions or who exported the patch and when.

The same "Log" feature is present in team-settings as well.

Your Data
For your personal overview of what you do and have in cables we added a new section "My Data" to your account.

You can see all your user ops, import patches and check up on the assets you uploaded to cables (along with a diskspace-information on the top) and where they are used.

Maybe time for a spring clean?!

This concludes the second post for our latest release. Check the previous post for more info, and hold on for more information in the next few days.

For now:
Let us hear some feedback! Talk to us on social media, on discord or on github discussions.

cheers,
Team Cables

cables is brought to you by




If you want to see some special feature integrated into cables,
contact us to see if we can make it happen.

December 2022 Release

Wrapping it up...

...so you can unwrap it again.

The end of the year usually sees some action in tying up loose ends, trying to get things finished and into a clean state.
The same goes for cables.gl. With this update we bring a lot of smaller bugfixes, "quality of life" improvements and we
build further on the foundations laid out in the last releases.

Check the changelog for a comprehensive list of all the changes if you are eager to jump right in. As always, we will highlight a few notable changes in a small post right here. So continue reading!

Improvements to the editor

Dynamic Command Palette

For all you keyboard cowboys: Once you press Ctrl-P (or Cmd-P) in the editor you will see that the "Command Palette" now is a lot more clever.

You can now easily navigate to different parts of your patch, like SubPatches, different canvas elements or your bookmarked places (like Areas).

Navigating the editor without touching the mouse has become even better. And to assist you in coding, you can even jump to opened tabs containing your Op-Code, CSS, StringEditors...


Reroute Links

Ever wanted to try our different paths in your patch next to each others real quick? Want to switch a connection between Ops? Forgot something?

By dragging any port onto a fitting, existing link between two ops you will now be able to quickly switch the connection to your dragged one.

A perfect way of trying out different paths of your pipeline before actually deciding on the right one. Switching Textures while patching is also easier now.

Extended Titles

Some Ops already gave the value of some ports as a, so called, Extended Title. With this release the decision on what to show on the Op is up to you.

Pick any of the ports of an Op and pick "Extend Title" from the three-dots menu in the parameterpanel. Whenever this value changes it will be reflected on the Op.

A good middleway of relying on us to pick the important or interesting ports and using any of the Viz-Ops...really helpful when debugging patches!
Quick Link

Your editor settings will present you with two options for faster linking of ops. "Middle Mouse Quick Link", which we turned on for you in the default settings, will let you click any op with the middle mouse-button.

Once you drag the mouse over another Op, cables will present you with the compatible ports for that op. Really helps on smaller displays or when zoomed really far out. Never hit the wrong port of an Op again.

For all you people using pointer devices or working on tablets "Long Press Quick Link" can be turned on to offer the same functionality. It will not need the dragging. Long-press any Op, move to another one, click again, and you will again be presented with the possible options to link the two ops.

Try our editing with pens and touchpads.

Uploading Images

Adding images to your patch usually means downloading them somewhere, then uploading them to your patch. With this new feature, you can paste any image-data from your clipboard. Try copying any image from a browser or your file manager and just "paste" it into your patch. Easy as that!

External Assets

While we are talking about uploading images... To find dependencies to other patches more easily, we now offer a search for "external assets". By clicking the new button in the search tab, you will see all the ops that are loading assets (images, 3d models, fonts, libraries, ...) from other patches.

Introducing Extensions

With an ever-growing user base and feature set the amount of code loaded for each patch became ever-bigger. And the list of available Ops to pick from became longer and longer.

With the introduction of "Extensions" we are trying to solve both of these issues.
You will now be able to pick collections of Ops for your patch to load, or not load them if they are not needed.

Starting with a few selected Ops that we moved to separate Extensions this will allow us to integrate even more features into cables in the future without polluting the list of ops too much.

Your patches will only load what is needed.

To include any of the new extensions to your patch, just search for it as you would normally do for Ops.
Clicking on "add extension" will then show a list of Ops available in the extension. Add any Op, and the
extension will be loaded with your patch from now on.

If you created something that you think should be an extension, let us know! We will have more options to publish and share Ops in one of the next releases as well. Stay tuned!

By not loading old versions of Ops and deprecated ops when opening the editor, we were able to reduce the size of loaded code by almost 50%! Also, viewing your patch on cables.gl now will only load the Ops needed by the project.

This massively reduces the loading time for the patch-page.

To give you an overview on which Ops you should update to have them loaded directly when you open the editor, we will now draw your attention to outdated ops with a subtle warning in the editor.

Clicking the warning will open a search with all the Ops that need attention and should be updated. Keeping things as is will not break anything, but updating them gives you that nice, clean feeling...


Thanks a lot to cables user kikohs for chiming in, giving feedback and sponsoring the development of these new features!

New Ops And Some Enhancements

As with every release, there are a few new Ops and some enhancements to existing ones. For a comprehensive list, check the changelog. Check these few notable changes:

Even More Presents

You can now add your mastodon address to your account and have it be linked on your profile.

More cleaning up happened by removing the obj2json and the meshsequence converters. We think this can be better done in tools like blender, or using the new ObjGeometry op as described above.

For people using the patch background as a renderer (you did know you can do that using the "Command Palette", right?), we made some improvements. Hide the patchfield by pressing shift-enter, for example. If you haven't tried it yet, give it a spin. A great way to see what your patch will look like on bigger screens or higher resolutions, while working on it.

This should give you enough things to play around with during the holidays and until the next release...

Thanks to everyone who contributed to this release! Let us hear some feedback! Talk to us on social media, on discord or on github discussions.

Happy holidays and a happy new year!

cheers,
Team Cables

cables is brought to you by

Kirell Benzi Studio by supporting the development of "Extensions"
and more collaboration features with money, time and feedback!

and:



If you want to see some special feature integrated into cables,
contact us to see if we can make it happen.

June 2022 Release

Here we GO!

Our second release of the year 2022 is stacked and packed for launch. Take your time, grab a juice and dip into all the new things that we added to your toolbox. We added lots of new workflows and Operators, we rewrote and improved some of your old favorites, made the website stronger and faster, and polished some details!

Everything is ready for you in the cables.gl editor NOW, so patch some cool art and share your creations!

For all fans of changelogs and text only mode - dive into the deep end here .

OK, let's take a tour!

New Physics

Precise Ray Casting and Character Controlled Camera with Collision

We are moving cables to a new physics engine! This release introduces the first batch of Ops using ammo.js, a javascript-port of the bullet physics engine, which are both widely used and battle-tested.

This switch gives us a bunch of new Ops, but also gives us the ability to develop this even further in the future. You can now automatically use the collision bodies in your GLTF-models in your physics world! Let us know about your experience with it!

The whole new family of Ops that live in the Ops.Physics.Ammo-Namespace is using more advanced physics than what we had in cables before. So more ways for you to have stuff crash into each other ...or even move around using AmmoCharacter to run into walls.

On top of all this, or rather WITH this, comes a new way of raycasting. Check out AmmoBody, AmmoBodyCollision, AmmoRaycast and the likes to see how to make your physics-objects interact with any input or even with each other.

To make your first contact with this new way of patching as smooth as possible - we created a new template project that you can select when creating a new patch! 
We then decided to see what we could do with the room and put in some art work and quite a few interactive demos inside. Check it out above and let us know what you think!

Remote Viewer

Live Multi Device Testing and Patch Projecting



Multi Device Testing
Working on the web, we often find ourselves in situations where we have to test projects on different devices and browsers. This was always possible, with nonstop reload button mashing, but now became even better.

Open the new "Remote Viewer" in a new browser-tab, a different browser or even a separate device to create a live connection to the patch you are currently working on. All the changes you make to that page are then transferred to all the connected devices!

Want to check your positioning or CSS on mobile devices? Fire up remote viewer and make sure your patch looks great on every device you have on your hands for testing. All you need is a patch that is yours - or collaboration rights to a patch you work on with others - and your devices connected to the internet.

It's as easy as that.

Multiplayer Patching
And since we are transmitting changes of the patch via network anyhow you can now share a multiplayer-session with your collaborators while you are in the patch. The editor will present you with a "Start Multiplayer"-Button whenever that is possible, press it!

One of you will be the pilot of the session, the other(s) will be able to follow the pilot while patching, see the changes in the renderer. If the pilot allows, you can also switch seats to hand over control. Let us know how this back-and-forth works for you!

All of this networking stuff is really new to us, so - again - let us know about any bugs/hickups or even feature requests via discussions.

Image Compose Version 3.0

Alpha, New Features and Enhanced Texturing Operators
All New Workflow
As we added new texture workflows in our past updates, we decided it was time to upgrade our base operator - ImageCompose and future proof it. For this we updated more than 50 Ops to a new version. Your previous workflows still work just as well with the fresh new operator, but generating and chaining textures that influence each other, masking out effects, adding and changing alpha channels are now optimized and faster.

That being said, some of the new versions of operators do not mix with old patching methods. Luckily, You do not have to rework and update everything and we took a bit of care with how we approach operator upgrading with this update. All that you have created will work fine, and when updating your patch operators the op will warn you about the incompatibility and offer a downgrade option.

Alright what did we do? We went through all of our beloved texture and shader generating operators and added more parameters for automatic aspect ratio, alpha masking, 32bit color, parameter mapping from textures - so try out your favorite compositing ideas with the new and advanced features.
Alpha
We now properly start with a transparent background that you can put your texture objects and layers on. Plug in a texture into the ImageCompose and use the alpha channel by toggling a texture operators alpha mode. This way you can keep the alpha channel of the previous layer to use as a mask for everything else in your chain of texture effects. Need to start with a color instead? drop a color OP and set your background color - kinda like in that one image editor.

Feedback
Working with feedback effects or applying adjustments to something like a WebcamTexture, is a lot easier as you simply plug in the texture into ImageCompose and it will inherit all of the properties like size and color bitrate.

HDR/32bit
Speaking of color bitrate - cables uses 8bit and 32bit textures. We renamed our parameters to properly reflect this so you will have an easier time working with external applications and having identical naming conventions across your workflow. For example "HDR" is now called "32bit" everywhere.

New PBR Material Features

Heightmap, Parallax Projection, Tone Mapping, Dynamic Lights
Tone Mapping
Physically Based Rendering materials got sprinkled with magical new features for this update. First off, the materials are better looking and now have tonemapping looks that you can dial in for that photohyperrealism needed to traverse the uncanny valleys.

Dynamic Lights
Next we added support for the already familiar light Ops with your PBR scenes - just throw them in, animate them and see your PBR scene dynamically light up.
As we progressed with building complex and intricate PBR scenes we added support for vertex colors that can do various tasks in the material - meaning tiny file sizes with smart optimization.
There is more - PbrEnvironmentLight, the image based lighting solution for PBR materials, got some big features too.  Now you will find an environment rotation parameter to adjust your final look and calculate the lighting of the scene - so you don't need to externally adjust your lighting information texture.

Heightmaps
PBRMaterial op got more ports too - for Lightmaps and Heightmaps! Add ambient occlusion, baked lighting and control the influence on your object. Working with realistic or fantastical surfaces? Throw a heightmap on 'em and feel the scene pop out of the screen 🙂

Parallax Projection
The other feature we got into helps you create believable reflections and light behavior as you zoom around your virtual spaces - the parallax correction area parameter. Enable gizmo helpers in your editor and adjust the bounding box around your room and your viewer will see reflections on your objects correctly from all angles and distances!

New Viz Ops And Editor Improvements

Faster Workflows, Faster Rendering, Suggestions and Tooltips

As it is the core part of cables, usually the editor always receives some updates - this time also! A few smaller and less visible improvements where made to the speed of saving a patch, the GLTF-Structure-View and the menu structure for remote viewer and opening a patch in a new window.

VizOps
A lot more visible are the additions to the Viz-family of Operators. We saw people using and enjoying what we added back in November and added more.

Check out the Ops on the reference page starting with Viz to see how to visualize Arrays, Booleans, Objects and Textures to easily have an impression of the state of your patch at any time.
Tooltips
To further improve our collective quality-of-life inside the editor, we redesigned the tooltips seen when hovering a operator's port. Now you get more information about the data that is coming out of that port or what sort of data should be going into it. For arrays it shows you the "stride", for example, so no more confusion of connecting Array2 to a port that needs an Array3 😀 .
Selection And Suggestions
When selecting multiple Ops you can now hold down the Shift-key to add them to your current selection or hold down CTRL to subtract multiple Ops that you've drag selected from your entire selection.
There is also a new suggestion helper for some types of ports -  when dragging a cable out and dropping the Op search window will give you suggestions on the Ops to create...that should save you from typing "Texture" all the time.

MediaPipe Ops And New Webcam

Augmented Reality and MultiCam Support


Augmented Reality
Due to popular demand and our own interest of more possibilities to make interactive things in cables, we added a first batch of Ops using google's MediaPipe library. Check them out!

Using these new Ops you can get the coordinates of hands, faces and full body poses to create interactive experiences for the web using nothing but your webcam. We are really looking forward to what you come up with using these!

WebCam
And to make your life with MediaPipe a bit more pleasant we reworked the WebcamTexture-Operator to be only active when triggered, to be able to flip both the x- and the y-axis (for those selfie-camera needs), it now has better resolution support and also now let's you pick from multiple cameras. So you can have multiples of them in the same patch now or have one and easily select from a list of available cameras on the device!

Optimized Website and Faster Navigation

Pages Everywhere
The cables-community grew over the last years and months and so did the patches people created. In fact all the lists of patches grew so big that our patch library became slow-ish to load and a big task to scroll through. We added pagination to all the bigger lists, which should make browsing your patches, search results or examples a lot faster and usable now.
Licence Information
Sharing is caring, right? But also crediting the original creator of the patch you just awesomely remixed is the right thing to do.

We thought license information was a bit too hidden and made it more visible for public patches, on both the website and in the editor. So now you never have to ask yourself when, how and who to credit. Continue publishing your patches on cables.gl - maybe with more confidence now.
Top Patches
Mixing up the community homepage and giving your patches the well deserved claim to fame in the community was the main goal behind reworking the top-patches section on the first page you see when opening cables.gl. The most liked patches of the last six months are now shown in the "Top Patches" category.

So, create that one awesome patch, make it public, spread the word!
Patch Page
One more thing we changed on the community-part of cables is that we now have a checkerboard pattern on the patch-view page when you are using a transparent background. You will also see a new button below the patch, to widen the viewing area and scale it to 16:9 for a better view of your creation. Embiggen!

Open Type Fonts and Geometry Extrusion

Huh, what's that? Extruding 3D geometry fonts! We were playing around with OpenType fonts and that evolved into a handful of tools that can help you create cool custom geometry. Extrude fonts and paths and play around with 'em just like with the rest of the geometry Ops in cables. We hope to see you try out this workflow and tell us what you think! They are fresh out of the oven 😉

More Highlights...

Writing Ops
Since it always used a completely different way of executing code in patches, we decided to deprecate CustomOp in one of the next releases (not this one). But fear not! User-Ops will get some more love in the near future, and also already with this release you can upload any JavaScript-Library to your patch (as if you would be uploading images) and then use that with your User Op (as if you would with libraries that are part of cables).

GLTFScene
GLTFScene got some sweet improvements as well. The structure view of your scene, accessed from the parameter menu, now has collapsible sections so you can easily hide and find needed information, nodes to expose and materials to assign. Using more primitive types is now possible, like lines and points, directly within the operator, allowing better compatibility with your favorite 3D application workflows.

MeshMorph and FreeFormPlane
While on the topic of 3D - MeshMorph now has some slick parameters that allow for quick and sweet animations and different modes to cycle through various morph looks. The good-ol FreeFormPlane now has tool handles that allow super quick positioning within your canvas using helper gizmos.

QRCode, Clipboard, WebShare
A few more Ops that are worth mentioning are linked at the bottom of this section. Use them to create QRCodes, copy things to your clipboard or open the share capabilities of your OS (if available) - to spread the news about your patch. And for all of you putting art onto the blockchain, we created an op that makes integration with fxhash a lot more convenient. Have at it!

And whenever you are stuck, take our docs as a first stop. We updated the sections about exporting patches to various platforms with the tutorials we have on YouTube. We made all of then look nicer in darkmode and we even added a bit more information on how to support the development of cables. So it's definitely worth checking out that, as well.

Wow that's quite the package (told you, to set aside some time), but there is a lot more to check out in the changelog, on our youtube channel, and we will also be showcasing a lot of things on our weekly discord meetup.

Thanks to everyone who contributed to this awesome release! As always we'd love to hear some feedback from you, be it on social media, on discord or on github discussions.

Let us know what you think!

cheers,
Team Cables

February 2022 Release

Hey Everyone,

we hope you all got into 2022 well, and to keep you on your toes we prepared a nice release of cables.gl for you. The first release of the year is - again - packed with new features, lots of improvements and some bugfixes.

As always, you can go through everything that has changed by skimming the changelog. We'll try to cover the biggest changes in this post for you though. Also, check our youtube channel in the next few weeks for big and small tutorials of everything new in cables.


So, what's new?

Everything Is Shiny


Massive praise goes out to cables-user amajesticseaflapflap for spending their time between christmas and new years to brush up and contribute new Ops for this release. Thanks to his work we have a whole new world of doing lighting and materials in cables!

These newly introduced ops open up the world of Physically Based Rendering to everyone using cables.

With just two ops and a few precalculated textures you can create awesome lighting, reflections and add some roughness and shininess to your models. Try out the patch above and toggle between different parts of a PBR material!

Upload your model to cables, attach the appropriate textures and you are basically good to go. For your convenience cables even offers converters to get the proper RGBE files that are needed to make this work on the web. For your environments you will find three example textures in the "hdr"-section of the library-files-explorer. We also added RGBE-support to the Skybox-Op.

Making photorealistic stuff in cables has never been easier!

Dark Mode ON

The most immediately visible change is our rework of the whole community-part of the cables website. We created a new "dark mode" for you, and made it the default theme - head over to cables.gl after you are done reading this post and enjoy the darkness.

We also spent quite some time of revamping your whole experience outside of the editor - browsing the library, presenting your profile and patches. There was a lot to clean up, rework and reorder, and we are really happy with how everything turned out...hope you like it, too.

From Texture To Beyond

With this update, we introduce a new paradigm for creating and manipulating positional, rotational, and scale data for mesh instance and point clouds in cables. Instead of using arrays, now you can use colorful textures to animate and precisely control point clouds - blazingly fast!

This approach paves the way for more experimentation and performance friendly crazyness. Stay tuned and try it out!

More GLTF

The last release bought you a lot of tools and toys to play around with GLTF 3D scenes. This release picks up on that and irons out a few bugs and increases compatibility with more GLTF file structures.
You should now have an even easier time when importing your GLTF/GLB files into cables and animate them in your patches, without baking animations.

An ever expanding part of cables now also supports select PBR material properties and material colors, allowing you to easily setup your 3D scenes in your favorite 3D editor and import it to the web. Be sure to test this out by toggling "use material properties" inside the GLTFScene Operator.

Helping Hands

InfoBar

While we spent some time outside the editor since the last release, and that lead to a rehaul of the website, we are not forgetting the core part of cables.

For all the new people, all the regulars looking for workflow improvements and also all the veterans catching up on changes we added the new "infobar" at the bottom of your browser-window.

Whenever you select something, the infobar will give you a quick hint on the possible actions and keyboard-shortcuts for the current selection. This might give you some ideas on how to improve your workflow. so... look down more often!
Flowmode

Our beloved flow-mode got an update as well. If you press "F" you'll see the flow of data along the cables...you know this, right?

What we added to this is that from now on all the ports that see some action will flicker as well. Even when they are not yet connected via any cable.

This makes flow-mode an even better tool to debug and optimize your patches.
Backups

Since we know we all take wrong turns sometimes and have to take one step back, we improved working with backups in cables a bit. If you now go back to an older version of your patch and save it, you will get a warning about overwriting your patch.

And since that might not be enough, cables will create a backup of the current version of the patch before reverting to the old version as well. This should really keep you from accidentally overwriting your "happy little accidents" with an older version.

Team Up Now!

Ever had a task that spread out over multiple patches and maybe also multiple people?

The addition of teams to cables makes it easier to create collections of patches, invite others to work on them and keep track of what is going on.

Simply create a team, upload an avatar and start adding patches to the team via the collaboration-tab in the settings of your patch. You can also invite everyone in your new team to collaborate on your work with one click!

There Is More...

These were the biggies, but a few other things are worth mentioning as well.

We give you ImageComposeSnapshot to grab a texture in the middle of a texture-effect flow and check it for debugging or use it somewhere else, maybe some feedback effects? 

CellularNoise, PerlinNoise and SimplexNoise received offset textures, a parameter for harmonics, setting aspect ratio and input of a blend mask.

MediaRecorder got some bugfixes and now outputs the available codecs as an array. XYPad reacts to mousedrag now, PickingMaterial works with instanced meshes, and that's not even everything...

With all that being said, there is a lot more to check out in the changelog, on our youtube channel, and we will also be showcasing a lot of things on our weekly discord meetup.

Thanks to everyone who contributed to this awesome release! As always we'd love to hear some feedback from you, be it on social media, on discord or on our freshly moved "forum" on github discussions.

Let us know what you think!

cheers,
the cables team

The camera model in the header screenshot and demo patch is "Bilora Bella 46 Camera" by Martijn Vaes. Available under Creative Commons Attribution.

November 2020 Release

Hey,


we would like to show you some of the cool new things that are coming to cables with this massive update.
The last update of cables happened at the end of July (30.07.2020 to be precise) and a lot of stuff has happened. We managed to close 229 "issues" spanning bugfixes, improvements and new features.

Even though the focus of this update was more on bugfixing and "cleanup" we managed to push out a few new ops and features for you, some of which we'd like to quickly introduce:

More tools for Mesh Instancer

These Ops give you some easy ways to manipulate your instanced meshes without re-uploading everything to the GPU every frame.


Vertex shaders will do the work for you and you can control them using textures. 

You can modify positioning of the meshes using InstancedDisplacementMap and colorize them using InstancedTextureColorize.

This can then be combined with any material and other shaderEffects.

New export options

We are often asked how putting cables patches on your own website works and sometimes we cannot help because every web-hoster does stuff differently.


We are trying to make this process a bit easier by allowing owners of patches to connect 
their individual patches to their github pages or to netlify by providing an API-Key in the
cables ui. 

This will then give owners and collaborators of patches a "one click deployment" to these pages and should give you an easy way to show your creations to the world...

Please feel free to suggest other services in the forum!

JSON structure view

When working with bigger datasets, netsted JSON or remote APIs finding the datapoints that really matter to you used to be really tedious, spreading over several ops, up until now.


This update introduces a few ops that let you select properties of a JSON-Object "by path".
But more important, we put a little "explorer" in there to find the correct ops. Working with deeply nested JSON should now be a lot easier, sometimes even just two or three clicks to get to what you want.

Canvas magnifier

Introducing a new handy little tool to check colors of your rendering. 


Press ctrl+c / cmd+c to copy the selected color to the clipboard!

Transparency workflow

We updated the ImageCompose and DrawImage ops to finally support transparency the way you would expect it. 


Expect more tools to work and modify transparent textures in the future.

Some texture effects will not respect the transparency. We are working on this, please let us know if you find those bugs.

Also worth mentioning:


- Many Improvements to MatCapMaterial and PhongMaterial
- First round of improvements to existing audio ops
- Tweaks and fixes to the raycasting system
- Improved profiling of ops

You can see all the changes of this update in our changelog.

That being said, a huge thank you goes out to everyone contributing to this update, either by code, by reporting bugs or asking for improvements and by helping each others on the forum and on discord, keep up the commumity!

People contributing to this release are (in no particular order): 

That's all folks! Enjoy all the new stuff, and: happy patching!

All the best from,
your undev team

November 2019 Release

We've been hard at work to roll out another update for cables gl.
From now on we  will show you a summary of newest ops and features on this, our new blog 🙂



Editor and GUI Changes

Brighter Background

We changed the background color of the patchfield. When you see this the first time, it might be kind of shocking, but the patch is more readable than before and UI elements are more distinguishable.

Editor Keyboard Shortcuts

We integrated a new tab for the Keyboard shortcuts. Now you don't have to leave the editor to look at them. The list is not 100% complete right now, but will be extended in the near future.

Editor Icons

Editor tabs now have a color coded type indicator, this makes it easier to find and read the tab you're searching for.

Assign Variables directly to Ports

This is very helpful if you are dealing with lots of variables, or using the new preset op. Instead of using lots of VarGet Ops, you can directly attach variable values to ports.


New Phong Material

Phong material op has many more features and options than the previous versions.

The different diffuse and specular modes allow for much more freedom in getting the look that you want. We also added more textures to use the material with.
Furthermore, we reworked our lighting system. It is now easier to use multiple lights (up to 16) in your patch. Whilst before only point light illumination was possible, now there are 4 different types of lights that can all be used in conjunction to illuminate your patch: PointLight, AmbientLight, DirectionalLight, SpotLight. These only work with the PhongMaterial for now, so make sure you use it if you want illumination!

See all Phong Ops



MIDI Out

The new midi out ops will allow you to transmit Midi notes, NRPN and CC data to any external sequencer or hardware. Midi messages can be generated with data from all of our ops, this opens up generative ways to create midi data that can be again used to drive your cables patch with our midi input ops.


More New Ops



Op Enhancements

- Ops.Gl.Orthogonal_v2 - added axis switch
- Ops.Array.ParseArray_v2 - shows error indicator when invalid numeric values
- Ops.Gl.TextureEffects.DrawImage_v2 - transforms also apply to alpha mask
- Ops.Trigger.Repeat_v2 - now direction of index can be selected
- Ops.Devices.TouchGesture - added active bool input
- Ops.Gl.Meshes.SimpleSpline - performance improvement
- Ops.Json3d.Mesh3d - can now load meshes with vertexColors
- Ops.Gl.Meshes.PointCloudFromArray - performance improvement when updating coordinates regularly
- Ops.Devices.TouchScreen has force output - tested with apple pencil pressure/ipad pro
- Ops.Math.AddUp - reset trigger
- Ops.Gl.Shader.MatCapMaterialNew - added opacity texture
- Ops.Gl.TextureEffects.ScaleTexture - now has a mask input to control the scale with a texture
- Ops.Devices.Midi.MidiNote - added array out option for multiple notes
- Ops.Devices.Midi.MidiCC - added array out option for multiple cc values



Renamed and Deprecated

- Rename Ops.Gl.Matrix.ViewMatrixTranslation to Ops.Gl.Matrix.cameraPosition
- Rename Ops.Gl.CanvasSize to Ops.Gl.CanvasInfo
- Rename Ops.Value.ValueBoolean to Ops.Value.Boolean
- Rename Ops.Gl.TextureEffects.Scroll to Ops.Gl.TextureEffects.ScrollTexture
- Rename Ops.Gl.TextureEffects.Circle to Ops.Gl.TextureEffects.CircleTexture
- Rename Ops.Value.ValueHub to Ops.Value.NumberSequence
- Rename Ops.Gl.Textures.Text_v2 to Ops.Gl.Textures.TextTexture_v2
- Rename Ops.Gl.Textures.Graph to Ops.Gl.Textures.GraphTexture
- Rename Ops.Json3d.Json3dScene2 to Ops.Json3d.Scene3d_v2

- Deprecated Ops.Devices.Midi.MidiKeyPressed
- Deprecated Ops.Value.ValueChanged
- Deprecated Ops.Value.ValueStringEditor
- Deprecated Ops.Gl.Particles.PointCloudFile
- Deprecated Ops.Devices.Midi.MidiSend
- Deprecated Ops.Devices.Midi.LaunchPadScroller

Cables is now in public beta

We’re incredibly proud to announce we have launched the public Beta of cables.
After 4 years of hard work we’d like to welcome you to join us in making beautiful interactive content in the web browser.
Please help us spread the word.