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!


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


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!

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.

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!

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


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


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.