Using Quartz Composer

I guess it's time we started collecting tricks, tips, and shortcuts into one reference page, to help users in their quest to become Quartz Composer masters.

If you know of a tip, trick, or shortcut, or just a good idea, feel free to add it to this list.


  • When opening the Preferences pane, holding the "option" key will give you access to advanced settings, including private patches, advanced tooltips, software GL, software CI, Multisample AntiAliasing (10.6+) and DisableVBLSync (uncaps framerate but can lead to visible tearing in the Viewer).

  • When editing source code (In Javascript, GLSL, or CoreImage), using "shift-cmd-i" will open up a static inspector for just that patch. This inspector won't change as you select other patches.

  • cmd-up and cmd-down will exit and enter macro patches in the editor.

  • Holding down "option" while in the File menu will let you save a Flattened copy -- this will "flatten" your virtual patches into the composition, for easier distribution.

  • Caps-Lock "on" prevents Marcos being entered with a double-click. (Kind of a Gotcha)

  • Holding down "option" while grabbing an already established input connection at an input port, will give you a duplicate cable that is attached to the identical source port.

  • Provider and Processor patches often don't need to be placed inside of Consumer Macro Environment patches to achieve the function of whatever the Consumer Macro Environment accomplishes. Avoiding excessive macro-ization can sometimes make qtz's run faster, and in some cases prevent unexpected results. It will also lead to a design pattern where one doesn't find that they need to publish output parameters from Providers or Processors "out" of a Consumer Macro, which isn't possible.

  • Setting your preferences so that the Viewer doesn't start on composition open can help make it easier on you in scenarios where you inadvertently program something that makes QC crash. With that option enabled, the qtz file doesn't evaluate until you manually start the Viewer. This gives you a chance to inspect the patch editor before a crash occurs again.