made with cables – massiveBASS

In our new series "made with cables" we try to give you some behind-the-scenes tricks and insights on how people approach certain challenges in real-world projects.

The first episode tells us a bit of the story behing massiveBASS which we (undev) made in cooperation with the kids.


Release – February 2021


another two months have passed since the last blogpost for an update. As planned we are doing smaller updates now and hence had one "in between" at 13th of January (scroll down here for changes in that release).

This release closes ~90 issues and includes ~20 bug fixes. This is not the reason for this post though.

We made some breakthrough changes in the UI of the editor that we'd like to introduce to you.

Let's get into it:

Editor-UI changes

We reworked a lot of the menus and icons that appear in the cables editor.

The goal of the whole rework is to give you smaller menus, more structure and also more consistent icons. The most notable change
is that we got rid of the customizable sidebar (as we felt nobody is really using this anyhow) and putting the editor on the full
height of the window to give you coders a bit more space.

Along with that came new smaller menus and a few animations as gimmicks here and there. Sounds small? Sounds easy? Well, quite some work went into this, we promise!

We designed new icons to go with our new UI style. We made sure to keep them in the same style of the open source feathericons designs, since they are already super awesome, minimalistic and were already being used for some UI elements in cables.

It wasn't an easy task, so we've made sure to try allot of different directions. As you can see, some icons design worked others didn't.

Maybe the feathericons collection is in need of some awesome illuminati and skulls icons?

For those of you who always wanted to be more "inside" of your patch, we now offer the ability to have the renderer as a patch background.

This has been a bit of a religious topic over the last years, and we might head into "curved cables vs. straight cables"-territory here, but we found that sometimes it's nice to see your patch in a higher resolution while still working on it. So now you have the choice by using ctrl/cmd-shift-enter:

Most of the menus in the editor got smaller, received animations here and there and also have been repositioned. You still find the main menu on the top, it moves to the right when opening the code-editor now. The configurable sidebar made way for a smaller version with all the important shortcuts. A new one is the icon bar on the lower right that lets you zoom in and out and turn on full screen, handy if you do not have a mouse wheel for example. All of these will undergo some more changes in the future, but we are quite happy with the new foundation...hope you are, too.

Refined Audio-Ops

We added a Delay op that gives you the possibility to add delay, warble and grittiness to existing audio streams. The documentation has also been updated!

A lot of bug fixes, tiny updates and more user-friendly UX with already existing audio ops, check out the changelog for more.

ClockSequencer lets you sequence triggers based on BPM values,

In combination with ClockSequencerPattern it is possible to sequence rhythms like a drum machine
Fiddle around with the ClockSequencerPattern and different array & trigger ops and start to explore the generative music possibilities
We added two more ops for that: the MusicalNotes op gives you all the arrays you need to define musical scales, the ArrayQuantizer op lets you quantize incoming values to those scales


This release also gives you two new ways of controling the flow of your patches through triggers. 

The ProbabilityTrigger rolls a dice every time it is triggered and outputs a trigger with a given probability, if you need the inversion of that, it will also trigger the second out-port whenever the probability is not met. A nice way to bring some "randomness" into your visuals, but still keep a bit of control.

TriggerReceiveFilter will receive all the named triggers that you already use with TriggerSend and TriggerReceive and then (optionally) filter these by a given prefix on the name. Going all over the place with your triggers from left to right in patches and subpatches can now be a lot more structured. Fire and forget!

Spending (most of) your time untangling a lot of cables? Triggers especially have the habit of accumulating on outports. We gave the Sequence op a "clean up" function to make your live just that one missing bit easier:

Custom Ops

Ever wanted to create an op but not clutter your UserOps namespace? Only need this specific functionality in this patch? Need a small snippet of JavaScript that executes in place? Think this one problem you have can be better solved in code instead of patching?

We got you! The new CustomOp gives you the ability to code ops, or basically any JavaScript, and have it stored along your patch and not in UserOps. Perfect for these instances where "nocode" is not the solution...

Made with cables

We always love seeing what you people do with cables "in the real world" and "made with cables" is our place to celebrate and showcase this.

We updated the site with patches by holon, Ani Dalal, Sofia Crespo and Entangled Others. Check them out!

To give you more control on how your work is presented on, say "made with cables", or any social media site, we now allow you to create a screenshot on demand. Manually picking the face of your patch, so to say.

Once you turn on this feature in the patch settings, cables will no longer attempt to automatically create screenshots and keep your selected version until you grab a screenshot again. So get your patches into the most beautiful position and hit that button.

And last but not least:

We added the echarts and p5js libraries for use in your UserOps. Let us know what you do with it!

As always you can find all the changes in our changelog. Enjoy all the new stuff, and: happy patching!

the cables team

last year in cables

What a weird year it was. Despite all the hardships there has been a lot of stuff going on in the cables universe. Quite a lot actually, as we found out collecting everything we wanted to mention in this blog post.

- Our community grew by about 30%
- We explored streaming to twitch regularly and ended up with weekly Discord meetups
- We released five big updates this year
- We introduced features, bugfixes and improvements in closing 832 issues from our backlog
- We now offer around 1600 ops for all your needs
- 33 videos have been published including examples, tutorials, livestreams, ...
- People created about 47k patches in the time since we started cables. Wow!

cables has been used in workshops at universities, for installations all over the world, for commercial projects, hobby projects, proof of concepts, art and who knows what else. 
Projects using cables won prices in competitions, were seen/used by lots of people and generally made the offline and online world a more beautiful place.

Thank you everyone who made this possible!


Last year saw five big updates that we made to cables. In February, we gave you GLTF-Support, working with MSDF-Fonts and basic "Multiplayer"-Functionality, April came with a lot of cleanup and fixes, July gave you the possibility to play with physics a bit, made sharing your patches easier working with collaborators and gave you data nerds a bit more functionality on arrays

A huge cleanup and bugfixing release in November still had some impressive new features. We started our inquiry into machine learning by supporting teachablemachines (thanks Mick) and made exporting patches to external services easier. 

We topped of the year with a rehaul of how audio works in cables by making the existing audio ops more foolproof and adding few missing ones

We also plan to have more regular and smaller updates in 2021, so be prepared for roughly monthly news from what can be done in cables now.

But what did you people do with all of that? Let's see:

Top patches of the year

These are the top patches of the year, ordered by likes in descending order, attributed to the patch-owner:

We also had three cables jams, with people competing for the win given certain restrictions and rules. Thanks for all your contributions, keep 'em coming!


People use cables for work and privately, for money and for free, for arts and commercial projects. 

We know that wirmachenbunt used the GLTF-Ops to create the amazing website for used it to create their gardenplusx created parts of their new website using cables. 

holon and mfx won prizes at demoparties with cathodoluminescence, gravity and nevoa. Farbrausch released Aphelion. Sofia Crespo and Feileacan McCormick gave us the "arificial remnants".

undev and artifical rome created "born of a dream" together and raumHOCH used cables to power their "gründermotor" as well as the presentation of the "smartquart" grid. undev contributed to the new website of dotfly and made the background animation for the (sadly cancelled) ableton loop conference. 

But that is not everything... to keep you all on your toes about what we already have and what is new in cables, we used twitch a lot to show people what we are up to. And there have been quite a few streams, some educational, some informative and some plain fun.


We taught you how to VJ - using cables.

We tried to live-copy some pieces of art that we like - using cables.

We talked about behind-the-scenes-stuff and introduced new features and updates - of cables.

We showed you how to make your hat blink or make demos - with cables.

And: kikohs made a whole intdrodiction series for datavizualization - in cables

So as you can surely see: It has been quite a year for cables and the community. Stay tuned for things to come!

Happy new year,
from team cables!

cables intro: data-driven gradient from weather data

let’s build a mask detector using machine learning and cables!

Tutorial machine learning using teachable machines in cables

Cables jam: “Lights & Shadows”

We are starting a new cables jam that you can participate in, right now.

The theme of this jam has been decided by our competent and international table of experts to be "Lights & Shadows".

Rules are simple and as follows: "Use at least the differen light-ops in your patch".

If you want to enter the competition, start patching, make sure you follow the rules, tag your patch with cables_jam_03 and make it public. Be done by 21.12.2020 00:00:00 CET (that is the night from sunday to monday).

We will then do a screening of the patches in the week following the deadline and announce the winners on our Discord session on 23.12.2020.

Not sure where to start? Well...

Here are the ops of which you have to use at least two:

And here is a recording of the livestream where we present the release that featured all these ops (starting at around 21 minutes in). 

We hope that gets you rolling and inspired. Can't wait to see what your come up with!

the jam team

November update


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

Shadertoy to cables tutorial – part 01

We've just released the 1st part of a new tutorial series on how to port shaders from Shadertoy into cables gl. 
There's also a new section on the documentation with a guide on how to recreate the uniforms.