v002 Screen Capture 2.0.2


v002 Screen Capture allows you to capture your entire desktop, or a portion of it, to an image and further process it within Quartz Composer or supported host applications. This can be used to sample other application’s windows as a source input for post processing, texture mapping on to models, etc.

Sample Modul8, Processing, Flash, Unity3D, Blender, Torque, Jitter, GEM, Adobe Photoshop, Microsoft Office, Terminal, or any other Mac OS X application with a GUI live in realtime, and mix them in Quartz Composer, VDMX, Coge, or your Quartz Composer host of choice.

v002 Screen Capture is fully GPU accelerated, and therefore is very fast. It is possible to capture greater than HD resolutions in realtime at 60fps.

Version 2.0 has some new features, specifically capture screen selection, interactive window selection, and capture area visualization.

Please note that v002 Screen Capture 2.0.1 does not support Mac OS X 10.5 or Quartz Composer 3.0 due to use of new 10.6 only technologies. Version 1.0 is still available for download

v002 Screen Capture does not work with MacOS 10.7 Lion. goto10 has posted an app in the comments which does Screen Capture via Syphon.



  • Fix architecture of background helper to support Core Duo/Core Solo 32 bit only systems
  • Add optional parameter to allow or limit capture bounds to remove off screen glitch
  • Code cleanup


  • Fix embarrassing math exception causing crash with some options enabled
  • Fix IOSurface leak
  • Increase reliability of background helper application
  • Increase reliability of plugin IOSurface handling


  • Support for image output in Quartz Composer editor
  • Added capturing on screens other than the main screen
  • Added interactive window selection
  • Added capture area visualization
  • Added optional window title bar clipping
  • Fix colorspace to exactly match monitor color calibration, no unintentional color shifts


  • Initial Release

60 comments on “v002 Screen Capture 2.0.2

  1. Wow this is a really really wicked plug in man!!! I finally have a way to get maya/processing/structuresynth/opengl etc. into qtz or vdmx, this is sooo dope. Thanks! and thanks especially for the source, I am learning cocoa and looking at this is very helpful.

  2. 14:47:38.058 [“v002ScreenCapture” @ “Macro Patch”] > Initialization failed

    I read your read-me file, any other suggestions to why it will not work.

  3. You cant use it from within Quartz Composer, due to how the sharing works . You can only use it from within an other application which loads the plugin/Quartz Composer Composition I provided. This is admittedly a limitation, and something im looking to work around, but for now, it should work within VDMX or any other Quartz Patch host.

  4. Thanks for sharing – this is a real beauty and just what I was looking for.

    I’m having a small problem with my setup – I can’t seem to capture the full display on a 30″ at 2560×1600 – even maxed out the sliders in VDMX will only give me 1440 x 900. I’ve tried tweaking the canvas size, and fixing the QC output size too, but no dice.

    I have a secondary display, but that’s running at 1600 x 1200, so I don’t think that’s the problem. Maybe…

    Is this something I can tweak in the code? Appreciate that it might be expecting a bit much to capture so much screen real estate… I’m a newb to QC, but it looks as if the code gets the parameters from whatever output size the desktop is running in. Could be wildly wrong there.

  5. hi!

    i’m relly looking for an Screen Capture plugin that work with modul8, i’ve tried to edit it in QC but didn’t work so far, there is some way that may work in it?

    wonderful work you do all the plugins are very estable.

    any light will be apprecciated

    thank you good 2009

    Joshua d heredia

  6. Hi Joshua. If I recall correctly, Modul8 plays Quartz Composer patches via an Quicktime Movie Player method, which does not allow ‘unsafe patches’ (IE, any 3rd party plugins to be loaded. You might be able to work around this by installing the Kineme 3D unsafe patches plugin (ironic, no?). Try it out. Id love to know if it works!

  7. Hi,

    Tried adding your plugin to the QCTV example. First, added the file to the compositions directory and modified the following line in AppController.m

    static NSString* _compositionNames[] = {@”v002ScreenCapture-VDMX”,nil};

    Looks like it reads in the plugin because I get a parameters windows for the origin and window size.

    However, the window is black, no capturing evident no matter the origin, width, height settings etc:-(

    Any idea what’s going on?



  8. Rod, just wondering what you changed in the QCTV example other than the value of the compositionNames array to have the plugin running?


  9. big props this plug-in allows me new tools for performance painting in photoshop wiht live video signals mixed into the painting..damn.
    probably low on your list of priorities, but I thought I’d ask anyways:
    is there anyway to make the cursor visible in the screen capture?
    I’m using a photoshop document on one half of my screen, then vdmx in full screen mode with the screen capture plug-in on the projector, but I can’t see my cursor. It’d be great if I could, because then it would make it a lot easier to see where I am painting.

  10. Hi there,
    I have been playing around with the plugin – works great. However it would be a really nice detail to be able to output the image from a second screen. Any plans for adding that?

  11. Pingback: v002 » Blog Archive » v002 Screen Capture 2.0

  12. This is awesome! Great work. Would it be possible to have this plugin pull in an input from a network VNC server? that could make for some spectacular multidisplay/video wall functions.

  13. Thats an interesting idea. I don’t think it is in the scope of this plugin though. If you want tiled video walls using Quartz Composer, take a long hard look at Quartz Composer Visualizer, included in the dev tools.

  14. Anyway to directly select the captured window basen on the application name and the windows name, allowing us to capture on a scriptable way?

  15. HVP: thats an interesting idea actually… in theory I think with the CGWindowList API its possible to get the name of a window and its global windowserver id, and thus the bounds from it. Maybe another plugin that feeds the Screen Capture patch that provides a dynamic list of windows, their names, and spits out the coordinates of the window you have selected in the list?

    My only concern with that is that ports for plugins technically should not be dynamic/change on the fly… But I think its doable. Hm… Thats a good idea actually. You could even add gentle polling or a callback so the capture area updates if you move the window. Don’t expect this over night 😀

  16. Hi Vade,

    thanks a lot for this great plugin! It is really useful!
    However, I have a little problem: When I capture a Processing window which is rendered in OPENGL then the captured screen in VDMX turns out to look darker than the original window. This curiousily changes when I move another window partly on top of the Processing window or sometimes even when I keep the focus on the other window, even when I moved it out of sight. This is weird. Do you have any idea or observed a problem like this? When I use another renderer in Processing, the captured VDMX-screen looks fine, but for some effects I really would like to use OPENGL in Processing. (I work on a MacBook Pro Mac OS 10.6.3, Processing 1.1.)

  17. Dear Vade,

    unfortunately you did not response to my issue, yet. But I observed a funny thing just now: If I toggle on “Show_Capture_Area” in the VDMX layer controls, the output looks fine! YEAY, this solves my problem for now. 🙂
    Still, it seems to be a bug you maybe would like to fix, though.

    Best regards,

  18. Unfortunately, no news. Modul8 does not support Quartz Composer ‘natively’ which makes using 3rd party plugins problematic. Unfortunately the Kineme hack does not seem to work, last I tried. Make a request for native Quartz Composer support in Modul8, it would be great to have for everyone.

  19. I have been having an issue when using the “Image Pixel” patch to sample pixels from the captured image. It doesn’t seem to work at all. I can see the image when I over my cursor over the v002 screen capture patch’s output, but if I sample a color from anywhere in the image, it just comes up as black. I tested it in the same composition using a static image and a video and it worked fine. Is there something about the way the screen capture works that would make it so it can’t be sampled?

  20. I would like to develop some custom image analysis patches for Quartz Composer. I want to use your screen grab plugin as an input for what I’m doing, but no matter what I try (binding to a memory buffer, or grabbing the texture image) I can’t seem to access the pixel data.

    I’m trying to use the default methods outlined by Apple in their developer documentation.

    If you have a moment, could you point me in the right direction?

  21. I know this is just getting greedy, but I’m wondering if there’s a way to capture multiple sources of the window? In a worst case scenario, I’d create multiple copies of the plugin. I tried to do multiple copies in Quartz Composer editor, which didn’t work.

  22. Pingback: v002 » Blog Archive » v002 Screen Capture 2.0.2

  23. Randal, thanks, Yes, we are well aware and have been since early 10.7 betas when we tested plugins. In fact, if you check the dev forums you will see many posts about AVFoundation from me.

    I have something semi working but other things are grabbing my attention, so don’t expect any updates soon.

  24. Additionally, capture via that API is shit slow and laggy compared to straight, now non-functional OpenGL Capture. Which is also part of the reason I’ve been slow to deal with it.

  25. Ahh got it.

    Thx, just doing some brief research… wanted to put it out there for other folks who might want to help fix. (I’m still ‘just’ a web coder at this point, else i’d totally help out if I could!)

  26. Pingback: Processing – Towards 2.0 Release + VJ tools - VJ Union Australia

  27. Hey, all–

    Vade, great work! I needed something like this for a recent show, and needed Lion compatibility, so I whipped this app up in Max: It’ll send the contents of a selection of the desktop (upper left and lower right corners determined by the number boxes on the right) to Syphon. Works great with Quartz Composer!

    Here’s the link: http://dl.dropbox.com/u/6277690/Desktop_Broadcaster.zip

    Hope this helps- feel free to use it / tweak it, etc!

    Happy New Year!


  28. Pingback: Syphon e Codecs // contradicções

Leave a Reply