beta
cables is under heavy development.
There might be one or another bug, please let us know about it!
cables DocumentationHow To UseWorking with filesKeyboard ShortcutsUser Interface WalkthroughBeginner TutorialBeginner 1: Drawing A CircleBeginner 2: TransformationsBeginner 3: ColorMore TransformationsIntermediateImage CompositionsPost-Processing 3D ScenesCommunicationcables APIExporting And EmbeddingHow to serve files externally and fix CORS headersExporting PatchesExport using the cables command line interfaceExport via IframeExport creating a standalone executableExport to github (pages)Export and deploy to netlifyExport a ZIP fileExternal triggers / functionsUsing variablesPreviewing / uploading exported cables patchesExamples for EmbeddingPermissionsUsersPatchesTeamsOpsMultiplayerPatchlistsCoding OpsCreating AttachmentsGeneral op/Port CallbacksPortsDynamic PortsArray PortsBoolean portsInteger Number PortsObject PortsString portsTrigger PortsFloating Point Number PortsGUI/UI attributesHello Op - Part 1LibrariesDeveloping OpsRenaming / Creating a new versionCreating Viz OpsGuidelinesObject PortsPatching Ops / SubPatchOpsWriting ShadersWeb Audio Op DevelopmentHTML And CSS In CablesLightingLightsShadowsWorking With AudioBasic Audio SetupWorking with EffectsReal-Time Audio Analyzation & Audio VisualizationOffline Audio Visualization & AnalyzationOptimizing Performance In PatchesTools for debugging your patchHow to optimize cables patches with the Performance opHow to optimize cables patches with the ProfilerCommon pitfalls with the "usual suspects"Optimizing arraysDebugging Shaders with ShaderInfoFAQAudio in web browsersHow to make demoscene demos with cables.glEmbeddingHow to integrate my cables patch into my CMS (webflow/wix/squarespace/...)?How to remove grey rectangles on touch (mobile)?Why doesn't the DownloadTexture op work on iOS?How to disable page scrolling on mobile?Mobile tippsHow to run exported patches on your local machineTransparent CanvasFeatures and SupportHow to contribute code to cablesWill there be support for (animated) GIFs?Can i use a website as a texture?Screenshots and Video recordingHow to report a bug in cablesHow can I support cables?Video playback in cablesGeneral questionsWhat is dev.cables.glJavascript Frameworkscordova / phonegapelectronreactvuejsLicenses and paymentWhat license do i need to use cables?Will I have to pay for it in the future?How is my work licensed when using cables?Does cables support midi and OSC?Patch PermissionsMy User Profile & Social MediaShadertoyCables at schools and universitiesTechnical questionsWebGL1 and WebGL2cables DocumentationHow To UseWorking with filesKeyboard ShortcutsUser Interface WalkthroughBeginner TutorialBeginner 1: Drawing A CircleBeginner 2: TransformationsBeginner 3: ColorMore TransformationsIntermediateImage CompositionsPost-Processing 3D ScenesCommunicationcables APIExporting And EmbeddingHow to serve files externally and fix CORS headersExporting PatchesExport using the cables command line interfaceExport via IframeExport creating a standalone executableExport to github (pages)Export and deploy to netlifyExport a ZIP fileExternal triggers / functionsUsing variablesPreviewing / uploading exported cables patchesExamples for EmbeddingPermissionsUsersPatchesTeamsOpsMultiplayerPatchlistsCoding OpsCreating AttachmentsGeneral op/Port CallbacksPortsDynamic PortsArray PortsBoolean portsInteger Number PortsObject PortsString portsTrigger PortsFloating Point Number PortsGUI/UI attributesHello Op - Part 1LibrariesDeveloping OpsRenaming / Creating a new versionCreating Viz OpsGuidelinesObject PortsPatching Ops / SubPatchOpsWriting ShadersWeb Audio Op DevelopmentHTML And CSS In CablesLightingLightsShadowsWorking With AudioBasic Audio SetupWorking with EffectsReal-Time Audio Analyzation & Audio VisualizationOffline Audio Visualization & AnalyzationOptimizing Performance In PatchesTools for debugging your patchHow to optimize cables patches with the Performance opHow to optimize cables patches with the ProfilerCommon pitfalls with the "usual suspects"Optimizing arraysDebugging Shaders with ShaderInfoFAQAudio in web browsersHow to make demoscene demos with cables.glEmbeddingHow to integrate my cables patch into my CMS (webflow/wix/squarespace/...)?How to remove grey rectangles on touch (mobile)?Why doesn't the DownloadTexture op work on iOS?How to disable page scrolling on mobile?Mobile tippsHow to run exported patches on your local machineTransparent CanvasFeatures and SupportHow to contribute code to cablesWill there be support for (animated) GIFs?Can i use a website as a texture?Screenshots and Video recordingHow to report a bug in cablesHow can I support cables?Video playback in cablesGeneral questionsWhat is dev.cables.glJavascript Frameworkscordova / phonegapelectronreactvuejsLicenses and paymentWhat license do i need to use cables?Will I have to pay for it in the future?How is my work licensed when using cables?Does cables support midi and OSC?Patch PermissionsMy User Profile & Social MediaShadertoyCables at schools and universitiesTechnical questionsWebGL1 and WebGL2

User Interface Walkthrough

cables has a lot of small helpers which make working with cables as easy and fast as possible. In this chapter you will get to know the most important keyboard shortcuts, elements and mouse actions.

To add an op press the Esc-key. In the popup you can now enter any text which is part of the op’s namespace (e.g. MainLoop). You can now navigate through the result-set using your arrow keys ( and ).

When you press Enter the selected op will be added to the editor.

alt text



To add another op and connect it to the one we just added you can now drag out a cable from one of the ports.

alt text



To add an op in between two ops just press the circle in the middle of the cable (one of the existing ops must be highlighted for this).

alt text



To change one of the op-parameters first select the op by clicking on it, then you will see the the op-settings in the pane on the right. To change one of the number value inputs click and drag up or down.

alt text



To access an op’s example patch first select the op, then click view example patches.

alt text



To delete a cable just press the right mouse button on one of the connected ports.

alt text



To reconnect a cable to another port press and drag with the right mouse button.

alt text



Ops can be duplicated by making a selection with your left mouse button, pressing cmd + c or ctrl + c to copy, followed by cmd + v or ctrl + v to paste.

alt text



To bring some order into your patch you can align ops by making a selection with your left mouse button and pressing a to horizontally align or shift + a to vertically align.

alt text



To unlink an op hold it with the left mouse button and shake it.

alt text



You can also unlink ops by selecting them and pressing x

alt text



Drag a cable to the center of an op to see suggestions of fitting ports. if there is only one the link will be connected automatically.

alt text



To add an existing op between two other ops, click and drag it to the middle of the cable and release.

alt text



Duplicate a link by pressing alt and the right-mouse button and dragging the cable to another port

alt text


See data and function flow by pressing f

alt text



Disable ops and its children by pressing d

alt text



Upload files by dragging them into the window

alt text



access the command palette by pressing CMD+P or CTRL+P.

alt text



set a custom title to an op by clicking the title in the parameter panel (you can also select an op and press t)

alt text



organize huge patches by putting ops into subpatches

alt text



to find documentation and examples for an op, click on the op and then click the link

alt text



set colors for ops for easier identification

alt text



create and link new op by clicking parameter

alt text



use snap to grid for cleaner looking patches

alt text



left click on an output field in any operator's parameter panel to copy it to your clipboard. Great for saving arrays or generated outputs.

alt text



Press CTRL-F on your keyboard to Find operators in your project by name or by tag - for example, unconnected or bookmarked.

alt text



Drag a cable from an operator port directly to a parameter name in a parameter panel of another op.

alt text



left click on the patch preview and select the gizmo icon to enable or disable helpers and transforms. Show All transforms will show all moveable objects in your scene, left click the circle to enable the object's gizmo.

alt text



To select DIV elements directly from the patch preview, hover over your DIV elements while holding Control on your keyboard and left clicking on the DIV element.

alt text



To move a cable connection to another port, hold SHIFT+ALT keyboard keys and right mouse button while over either end of the cable.

alt text



You can right click and drag a cable from a port or the cable itself, to copy the connection.

alt text



Jump to a connected operator in the parameter panel by left clicking its name next to the parameter it is connected to.

alt text



Quickly find your sidebar operators in a patch by left clicking on a sidebar element while holding the CTRL key on your keyboard.

alt text



You can organize your operators into colorful Area groups by selecting multiple ops and left clicking Create Area. Move operators out of an area to separate them, group groups into groups, hold down ALT to drag Area without ops!

alt text


Found a problem? Edit this file on github and contribute to cables!