[Sharing is jittery] - Masking, Warping and Keystone

    Apr 19 2016 | 6:15 pm
    Hi everyone,
    I'd like to share some jitter tools I had laying around for a while. Two of them are jsui gui's for jit.gl.cornerpin and jit.gl.nurbs and the third one is a masking tool. It uses jsui and jit.mgraphics for easy creation of vector shapes, that can be used as masks. Have a look: http://davidfortmann.ch/maxjitter.html
    Have fun.

    • Apr 19 2016 | 8:09 pm
      Very nice, thank you !
    • Apr 20 2016 | 8:02 am
      thanks, it seems that you moved to another soft for video. Which one? What is the differences / reasons? Thanks for the infos.
    • Apr 20 2016 | 9:52 am
      Hi SPA,
      I like Max very much and I still use it for various tasks. I couldn't imagine a better tool for interactive sound installations, like the one I did not too long ago: https://www.behance.net/gallery/31556965/EMERGENCE
      But for specific video work I switched to openFrameworks and Touchdesigner. Since they were created specifically for video, they make certain things easier. For example: I created a masking tool with openFrameworks http://davidfortmann.ch/zorro.html and one in Max http://davidfortmann.ch/maxjitter.html It was very easy to get smooth anti-aliased edges and a very performant blur per shape in oF. In Max I was struggling with that (though I'm sure it is possible).
      But Max Jitter is slowly getting there, thanks to Rob's great work (both thumbs up for VIDDLL) .
    • Apr 20 2016 | 2:44 pm
      Thanks! Working with nurbs can be a pain!
    • Apr 22 2016 | 4:33 pm
      hi Django. these tools are awesome! thanks much for sharing.
      a blur on your vector shapes is very easy to achieve, simply by sending the shape matrix through a jit.gl.slab.gauss6x.
      i've attached a modified patch showing this.
    • Apr 22 2016 | 6:22 pm
      Django! you the guy! These tools are awesome. Thank you.
      Rob. thanks SO much for the blur, I spent a hour last night trying to figure exactly that out. : ) Q: Is there a way to blur just Horizontal or Vertical only? (think the "Fast Blur" in After Effects)
      these will land in my "most used tools" category starting.... now.
      cheers! jd
    • Apr 24 2016 | 5:27 pm
      Rob. thanks SO much for the blur, I spent a hour last night trying to figure exactly that out. : ) Q: Is there a way to blur just Horizontal or Vertical only? (think the "Fast Blur" in After Effects)
      use [ jit.gl.slab @file cf.gaussian.2p.jxs ] the "width" parameter takes two arguments for horizontal and vertical width.
    • May 01 2016 | 10:07 pm
      hi Django,
      Thanks for sharing your jitter tools !!! I allowed myself to modified your ConerPinGui.js . I also share it ... ...and thanks abain Rob !!!
    • May 17 2016 | 8:26 am
      Glad you guys like it :)
    • Jul 06 2018 | 7:12 pm
      Django and Francois Weber, you are my heros of the day. Thanks for the awesome work. Your widgets are huge enhancements in terms of usability over the original cornerpin.
      I am still looking for an idea for a kind of "reverse cornerpin". Instead of stretching the original image at its corners, I would like to set the corners of the deformed rectangle on the original frame and have the output transformed to fill a rectangular output frame. That way I would not have to drag pins outside of the panel and zoom out, but stay with my interaction inside the input frame and could possibly zoom in for precision.
      And another thing: When using the inside selection method instead of the outside stretching method, the user would not need to refine the corner pins recursively, as the not moved corner points remain associated with the corners of the output image. The cornerpin behaves like a rubber blanket pulled over a table. If you pull at one corner of the blanket, the rubber moves at all corners of the table as well.
      I have tried to build a jit.gl.pix transform for this but failed miserably so far. I just don't get the math right. Anybody got an idea?
      Another thing I am trying right now is creating a simple rectangular mesh, texturing it and setting texture coordinates, hoping the interpolation will do the right thing.