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 for Cables Standalone VersionExport 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 share a patch to get help?How 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 WebGL2undefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefined


Patches on can be private, "unlisted - view only", "unlisted - allow editor" or public, pick one of the three for the level of permission
and collaboration you deem appropriate. We strongly encourage making your patch public to share your work with the community!

Public patches

You can share patches with the whole community by making them public in the settings of the patch. There is a few restrictions on which
patches can be published, depending on which ops are used in the patch.

Public patches can be:

  • Viewed by everyone in the community and even visitors
  • Opened in the editor, altered but not saved by visitors and any user
  • Cloned for remixing, basis for new work or inspiration by any registered user
  • Voted on by any registered user to appear in the "Top Patches"
  • We sometimes pick social media posts from the "Top Patches" to publish on the cables accounts, you will be properly credited

Unlisted - Allow Editor patches

You can set patches to "Unlisted - Allow Editor" visibility. Users need the URL of the patch to access it. Rules are the same as
for public patches (see above) but they will never appear in any of the lists like "Top Patches" or "Featured Patches".

So, rules are:

  • Viewed by everyone that knows the URL, even visitors
  • Opened in the editor, altered but not saved by visitors and any user
  • Cloned for remixing, basis for new work or inspiration by any registered user

Unlisted - View Only patches

You can set patches to "Unlisted - View Only" visibility. Users need the URL of the patch to access it. Rules are the same as
for "Unlisted - Allow Editor" patches (see above) but users will not be allowed to open the editor to look at your patch.

So, rules are:

  • Viewed by everyone that knows the URL, even visitors
  • Cannot be opened in the editor

Private patches

Once you create or clone a patch on it is marked as private. This means:

  • Only you (as the owner) can view the patch on the patchpage
  • Only you (as the owner) can view, edit and save the patch in the editor
  • Only you (as the owner) can invite other people for collaboration or add the patch to a team
  • Only the owner can delete a patch and all it's assets

Shared patches

There are several ways to share patches on Depending on your usecase or audience, pick any of the following:



By adding other users to your patch, you grant them "read only" or "full access" to your patch. Use this to work on patches with other people.

Users with "Read Only" access can:

  • View the patch on the patch page
  • "Request Write Access" to the patch
  • Open the patch in the editor, alter it but not save it
  • Clone the patch for remixing or continue to work on it (and decide on who to keep as collaborators in the cloned patch)
  • See and use all the custom ops of collaborators
  • See and use all the custom ops of teams that are used in the patch
  • join multiplayer sessions to work on patches with other users

Users with "Full Access" can do all of the above, and:

  • Edit the patch and save it
  • Upload files to use as assets in the patch
  • Create patch-ops to use in the patch
  • Add ops of their teams to the patch
  • Manage patch settings (change name, pick licence, publish the patch, ...)
  • Invite other users or add teams as collaborators
  • Delegate ownership of a patch to some other collaborator



Using the "Collaboration" tab in the patch settings you can add one or multiple teams to the patch (if you have "Full Access").

Adding a team to any patch will:

  • Show the patch on the teams page
  • Grant "Read Only" access to all (current and future) team members
  • "Full Access" still needs to be granted on a personal level, via collaborators (see above)

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