[SHARE] Memories of a Broken Dimension - glitch techniques

    Mar 31 2019 | 12:54 am
    Hello guys !
    I want to achieve the glitch effects used in the game Memories of a broken dimension. But I can't get complex glitches like that with Max. Any idea how I can make those beautiful glitches ? Thank you for help !

    Let's Play - Memories of a Broken Dimension + Download Link

    • Mar 31 2019 | 2:00 am
      The easiest solution I saw was to actually use a royalty free effect in alpha. If you really want the effect. Of course if you really want to use max, that's a different story
    • Mar 31 2019 | 10:43 am
      Thanks for your help ! What free effect does this kind of visuals ? But indeed, i want to use Max for that, because I want to mix those visuals in realtime with other effects I made.
    • Mar 31 2019 | 3:33 pm
      Thanks for sharing the link to the video GRIGOU. Very inspiring.
      The effects used for this seem to include the following: a) geometric distortion of rendered ego view - maybe the attached patcher shows a way how to get there:
      b) different effects on different parts of the rendered ego view (horizontal region) changing horizontal dimension. Something like this can be achieved using multiple jit.gl.cameras and adjusting their viewport settings. Also using different jit.gl.node @shader attached to the 3d objects might be useful here.
      c) gauss filter, edge filter - there are jit.gl.slab or jit.gl.pix versions available in Max.
      Some effects seem to be related to manipulation of vertices of the 3d objects via an vertex shader and some fragment shader manipulation as already noted with different viewports for different parts of the final image and additionally some fragment shader for the entire final rendering.
    • Mar 31 2019 | 4:19 pm
      Hello Martin,
      I'm glad you liked the video ! I love that kind of visuals !!! A BIG THANKS for your advices and to took the time to make this patch (and with commented code !). I really appreciated, and I laughed when I saw you used also my audio glitch examples ! :)
      The result of your patch is clearly in the right direction !! I think I understand the global idea, but I always had difficulties to understand the effects of objects like : jit.unpack 3 @jump 3 2 3 @offset 0 3 5 I know it output each individual planes of a matrix, but how do you know what are those planes (and in which order they are) ? jump and offset attributes are mysterious to me...
      How do you learn to do those tricks with gen ? Especially the code part with signed normalized coordinates.
      I love glitch art, and I have a lot of ideas in mind to develop glitch machines with Max, but for now, I don't have enough skills to achieve my goals :( I don't have big difficulties to make glitch with audio, but with the video... it's another story !! Mathematics are clearly not my best skill, so it's difficult for me to know what to do when I want to make video glitch like that.
      I used jit.gl.slab and jit.gl.pix a little, but always taking part of code I found on this forum, but I could never do the effects myself from scratch, and shader are also a big mystery for me...
      Do you have any advice on how I could increase my skills on that glitch world ?
      Maybe creating a big thread on glitch art (audio and video) on this forum could be a good idea to regroup techniques, ideas, patches, etc. What do you think ?
    • Mar 31 2019 | 6:15 pm
      I think we should keep this thread alive. I am curious to know if someone else has some more ideas about what techniques are involved in the "Memories of Broken Dimension" video.
      Referring to jit.unpack you can have look here: https://youtu.be/d9TVSTr4K3s?t=364
      • The order of planes is (x,y,z) (s,t) (nx,ny,nz)
      • meaning the 3d coordinates of vertices,
      • texture coordinates on the surface that is described by the vertices
      • and the coordinates of the normals (the vectors that are perpendicular to the faces described by the vertices).
      • In total it is actually 12 different planes including ARGB https://docs.cycling74.com/max5/tutorials/jit-tut/jitterappendixb.html
      The normalised coordinates stuff is somehow standard way to access jit.matrix content. https://cycling74.com/tutorials/demystifying-expressions-in-jitter/ Using the [snorm] instead of [cell] is the preferred way if you want to use matrices of different size e.g. video of different resolution, because the code will behave invariant of this.
      Referring to my example the gauss function that I used was just an arbitrary approach to illustrate how to change the distortion amount along the y-axis. One could also use a noise function [jit.bfg] or another arbitrary matrix of different size than the [jit.gl.gridshape] that is fed in the left inlet of [jit.gen]. On would use an additional [in 2] object and a [sample] within [jit.gen] to distort the vertices with another pattern.
      My personal recommendation for great tutorials on jitter is this
    • Mar 31 2019 | 7:37 pm
      Sem Shimla posted a nice tutorial here about displacing pixels to create a glitch effect, by using a looping video of glitch-effects.
    • Apr 01 2019 | 12:28 am
      amazing visuals in that game :) (also, love that patch of Martin's above, nice work 🙌)
      referring back to the video posted by the OP: maybe i'm mistaken and some of the effects really are a keyframe problem when the video was uploaded to youtube(i didn't try the original game out yet), but some of that pixelation that seems to 'flow' out from the objects in certain ways reminds me of Andrew Benson's optical-flow related shaders: https://cycling74.com/forums/sharing-new-distortions
      (since that thread seems to have dropped his attachment a couple times already, i'm attaching an extra .zip here just for posterity)
      also, here's Andrew's site for other stuff(some javascripts) too: https://pixlpa.com/ hope it helps.
    • Apr 01 2019 | 5:44 am
      Cool Raja, I really like this optical flow related shader by Andrew. Thanks for pointing to this. Waking up this morning I thought I should have look at the patch I posted above and change the vertex manipulation to texture coordinate distortion just by rewiring the patch cords:
    • Apr 02 2019 | 8:41 pm
      Very nice ideas here ! Thanks a lot ! I already checked jit.unpack and jit expressions tutorials. It's a bit more clear. Now, I need to go deep in jit.gen and pix. And experiment with the patchs on this thread !
    • Apr 02 2019 | 9:58 pm
      Anyone any ideas how to achieve these kind of visuals only using Max ?


    • Apr 02 2019 | 10:13 pm
      Thanks for the video Martin ! It's really beautiful ! Love it ! For now, I tried to do a random VHS glitch with jit.gl.pix. The effect is interesting, but I think it could be better. What do you think guys ?
      And another try :
    • Apr 04 2019 | 7:50 pm
      Hi GRIGOU,
      an application example of your VHS glitch:
      and inspired by this video here
      an application example that affects color channels
    • Apr 04 2019 | 11:43 pm
      Really nice ! A lot better than my attempt. Thanks Martin ! I still need to work on my noise VHS pattern generation to make a better glitch visual ! I'm not quite satisfied with my code for this part. Working on glitch ideas is an endless pleasure for me :)
    • Apr 04 2019 | 11:53 pm
      Comprehensible passion :-)
      The usage of video input as pattern was also inspiring for me with this patch version here, but I should go to sleep now.
    • Apr 06 2019 | 5:36 pm
      On the way to understand how to achieve this kind of pixelation effect from https://vimeo.com/211346942
      Pixelation on certain regions of image.
      Pixelation on certain regions of image.
      I want to share this intermediate approach including the VHS glitch pattern generator from GRIGOU:
    • Apr 06 2019 | 5:52 pm
      Thanks Martin for the patch ! The video you shared is really nice ! I love this kind of glitching geometry. I made some patches with 3D shapes generation like that, I will try to mix that with those glitchs.
    • Apr 06 2019 | 6:32 pm
      I just try something with 3D shape glitch and some noise.
    • Apr 06 2019 | 8:47 pm
      Another try with jit.gl.bfg.
    • Apr 14 2019 | 1:51 pm
      Some more glitch madness
    • Apr 14 2019 | 8:08 pm
      Thanks !!! So much nice technique to study in your patch ! The color displacement give a nice VHS style !!
    • Apr 14 2019 | 8:28 pm
      So let's make the patch a little more crowded ;-) I recommend to use Rajas "Journey of the sparklies" as music to drive the visuals https://cycling74.com/forums/-share-•˚**˚•˚*_journey-of-the-sparklies_*˚•˚**˚•
    • Apr 14 2019 | 8:49 pm
      Wonderful ! Love the scanlines effect. This effect wasn't here in your previous patch, but I didn't find what part of the patch is doing it. Maybe it's related to audio input ?
    • Apr 15 2019 | 8:02 pm
      The main difference to the previous patch besides camera automation, voronoi origin automation and higher dim of the gridshape is the change in the pixelation code. Have look at the parameter horsamp. If it is zero the sampling in horizontal direction leads to the lines effect.
    • Apr 21 2019 | 8:08 pm
      Let's keep this thread alive -Glitch technique ideas.
    • Apr 22 2019 | 3:25 pm
      this is cool! I like the thread
    • Apr 24 2019 | 7:25 pm
      ... some more glitches and distortions. I recommend https://cycling74.com/forums/-share-•o_0∆cellblock-caravan∆o_o• as music to drive the visuals.
    • Apr 24 2019 | 10:03 pm
      Martin, you're the Master of glitch here !!! Your last patch is exactly what I was dreaming to do with Max since months (and years) ! jit.gl.pix is really a beast for those kind of visual glitches. I really need to master it. I have a question for the part 2 of your patch (the 2 jit.gl.texture objets) : is it better to feed textures with video ? Or it's possible to feed them with other kind of input without breaking the glitch effect ?
      I was thinking about sending the content of the jit.gl.node inside the two jit.gl.texture objets or the output of jit.gl.pix (the one for the displacement map) or the output of jit.gl.slab world @file cf.gaussian.2p.jxs or adding another glitch map for the texture.
    • Apr 24 2019 | 11:02 pm
      this reminds me on actual glitches of quake or unreal engine type of games which were partially incompatible with certain graphics cards or a problem loading the correct shader for some elements in the map.
    • Apr 26 2019 | 8:32 am
      Hi GRIGOU,
      is it better to feed textures with video ? Or it's possible to feed them with other kind of input without breaking the glitch effect ?
      Actually there is no difference between the use of [jit.gl.texture] and [jit.gl.node @capture 1] in the context of this patcher. The benefit of using [jit.gl.texture] is that you can switch the texture applied to an object by sending messages "texture texturename". This acts like a switch between different texture sources. This is used in my patch e.g. with the gridshape that generates the horizontal stripe that is overlayed on the image and that sometimes slides down. It uses two textures with the names "Off" and "texDisplaceStripe". The texture " Off" is empty, it is not explicitly created in the patch and Jitter automatically applies a white texture leaving the stripe region undistorted. (For better understanding reattach the [jit.pwindow] to the corresponding node - I had to disconnect the pwindows in order to increase rendering performance). You could create several other [jit.gl.texture], give them a name and apply message boxes to the gridshape. The input of the [jit.gl.texture] can be a [jit.movie @output_texture 1] or a [ jit.gl.node @capture 1] or a [jit.gl.slab] or a [jit.gl.pix] etc. -all of them output textures. Textures can be thought of as 4 plane matrices (One plane for Red, one for Green, one for Blue, one Alpha channel), but they reside on the GPU RAM and are processed on the GPU. [jit.matrix] is the equivalent on the CPU side and [jit.gl.pix] is for textures what is [ jit.gen] for [jit.matrix]. The [jit.gl.pix] take textures as input and process the pixels in parallel on the GPU by applying the code inside the [jit.gl.pix] to each pixel of the texture fed into its first inlet. The [sample] objects control which pixel from the first inlet texture is rendered to the output including interpolation - there is no need for the textures in the left and right inlet of [sample] to be of the same size. The output size or resolution of a [jit.gl.pix] is defined by the texture sent in its left inlet. The intensities of the pixels sent to the right inlet of [sample] object define the position to be sampled on the texture fed into the first inlet . In consequence the glitch effects vary with the intensity distribution of the texture in the right inlet of [sample].
    • Apr 26 2019 | 10:36 am
      The creator of Memories of a Broken Dimension explains some details in this video here starting at 54:48.

      Game Design Critique #13 - Memory of a Broken Dimension

    • May 02 2019 | 4:07 pm
      This patch from Chris Vik http://chrisvik.com/max-patch-share-glitchface/ should be mentioned in this thread.

      Glitchface :: Jitter 3D mesh webcam audio reactivity

    • May 03 2019 | 10:12 pm
      Good pick ! I already downloaded this patch years ago. Very impressive work.
      By the way, thanks for your explanation Martin (and the game design critique video). Very helpful.
    • May 05 2019 | 11:09 am
      The Debris patch from Andrew Benson is also quiet nice for creating glitches in the style of "Memories of a Broken Dimension". https://cycling74.com/tutorials/jitter-recipes-book-3/
      Hey GRIGOU, what do you think of changing the title of this thread to e.g. "[share] Memories of a Broken Dimension - glitch techniques" to encourage other Jitter enthusiasts to contribute to it? As you proposed some time ago
      creating a big thread on glitch art
    • May 05 2019 | 2:48 pm
      Title changed ! I will search on my big Max folder to find and share other glitch patch. I made another audio glitch patch, but maybe it's not the best thread to post it if we talk about video.
    • May 10 2019 | 10:20 pm
      I have structured the patch a little bit, added some Sobel filter based effects and some automation.
    • May 23 2019 | 9:24 pm
      ... new messages from the broken dimension
    • May 26 2019 | 1:03 pm
      Thanks Martin ! Another nice glitch effect ! For now I'm too busy with a show on tuesday, but after that, I want to take all your glitch algorithms and put them in separate patch. I think it would be cool to do glitch modules like the Vizzies. By the way, I share also here my 23 audio glitch algorithms. It could be mixed with those video glitchs.
    • May 29 2019 | 4:09 pm
      Hey Martin, you're famous now :) : https://cycling74.com/tutorials/best-practices-in-jitter-part-1
      For a real world example, the following patch posted by user Martin Beck from this epic thread on glitch techniques from the Jitter forum demonstrates the concept.
    • May 29 2019 | 6:57 pm
      Hey Martin, you're famous now :)
      haha, you BOTH are :) pretty sure folks are just in awe watching this thread in its entirety... i have nothing to add but praise 🙌 (they should create 'like' buttons or something similar for these forums, that way i wouldn't have to come in here and interrupt the flow just so i can emoji-bomb my praisez at y'allz: 💪👏🙌💃 🕺🙌👏👍 ) 🍻
    • May 30 2019 | 11:54 am
      haha thanks Raja ! I'm glad that this thread could also help other people !
    • May 30 2019 | 10:58 pm
      Great thread, glad to see some cool ideas in here.
    • May 30 2019 | 11:18 pm
      Thanks Andrew ! You're welcome to join the glitch family :-D I learned a lot with your jitter tutorials and I'm sure you have also great ideas to share on this thread !
    • May 30 2019 | 11:30 pm
      :D I don't know if I can keep up with the looks you guys have already got going, but here's a weird animated pattern generator idea I came up with using jit.gl.pix
    • Jun 01 2019 | 5:29 pm
      Anybody any ideas how to achieve this kind of Delaunay effect (fill the Delaunay regions* with sampled values of a video) used in Rawtekk's - "Here's to them" ? * or jit.bfg pattern ... I am happy to hear there are some people interested in this thread. Thanks for kind replies and contribution.

      Rawtekk - Here's To Them (Official Video)

    • Jun 14 2019 | 11:05 pm
      Hello guys !
      I'm back with new glitchy stuff !!! First of all, thanks Andrew for your beautiful patch. Very inspiring, even if I don't really understand the jit.gl.pix part for now. And thanks Martin for the video. Unfortunately, it's way above my skills, so I can't help you with this :(
      So, I found a very simple way to generate glitchy patterns with jit.catch~ and some random. You just have to open any file with sfplay~. This work best with non compress files, dll files or apps. Try opening this one : http://www.telecharger-dll.fr/dll-AimRes.dll.html
    • Jun 15 2019 | 5:20 am
      awesome!!! Thank you Grigou


    • Jun 15 2019 | 10:47 am
      Yeah ! Love the result. What kind of file did you use ? The blue color is also nice, I need to add some options for controling colors in my patch. By the way, I will add another random layer by adding a switch before jit.normalize
    • Jun 15 2019 | 2:04 pm
      Same patch, but with some optimization. Have fun !
    • Jun 15 2019 | 8:33 pm
      Nice work GRIGOU - the basic concept reminds me of the Buchla 259e Twisted Waveform Oscillator - a wavetable oscillator that can use the internal operating system code as waveforms. I found another nice glitch video on Facebook from データコード 「datacode」: https://www.facebook.com/methlabrecordings/videos/592833154572601/
    • Jun 15 2019 | 9:57 pm
      Hi GRIGOU, I used this file:
    • Jun 19 2019 | 1:53 pm
      New test... but I have a weird bug : jit.world don't always enable. Sometimes I need to toogle many times to enable it. Any idea why ? It happens only in this patch.
      To use the patch, load the jpeg I attach to my post. The result is really nice, but I need help to manage big files.
      When I load the image "ghost_notes_random_03", there's no problem, but when I use the file "SIGIL (1)", there's a huge drop of FPS even with jit.movie @colormode uyvy @output_texture 1
      How I can use big images (2000x2000 or more) and still keep a good framerate ?
    • Jun 19 2019 | 2:01 pm
      Huge thanks to all the people sharing patches here - so many good ideas and clever execution to learn from. Great stuff.
    • Jun 19 2019 | 2:07 pm
      Thank you ! :)
      By the way, for using the glitch effect in my patch, you can check the toggle to generate random value for jit.gl.pix or leave the toggle uncheck and choose a value between 0. (no effect) to 1. (full effect) with the number box.
    • Jun 21 2019 | 11:07 am
      Hey glitchy friends ! :) Any clues for the issues with jit.world and big files in my last patch ? Thanks !
    • Jun 23 2019 | 8:41 am
      Dear glitchers,
      I recently uploaded a vid demonstrating my new A/V - installation app "IVAR_2" All my thanks and respect to Grigou & Martin Beck for their great thread & patches which made my IVAR glitchy ;) https://www.youtube.com/watch?v=YY1Gazdp0h0
    • Jun 23 2019 | 9:59 am
      Nice evolving patch ! Thanks Cerval :)
    • Jul 10 2019 | 6:28 pm
      Great thread!
    • Jul 11 2019 | 5:42 pm
      I don't remember where I found this patch from Jean-Michel Couturier ( Blue Yeti, 2014), but I think it might find some application for the Broken Dimensions simulation. It uses Andrew Bensons optical flow shader to induce movement of a kind of fluid dynamics.
    • Jul 15 2019 | 5:37 pm
      Thank for sharing ! Interesting patch to study !
      By the way, I updated my patches and added a syphon recorder to record glitch videos !
      1. Patch to transform raw files into 2D glitches (+ audio glitches) :
      2. Patch that generate glitches like a vhs :
      3. Patch that generate glitches by messing up a 3D shape :
      And I'm still stuck with this patch :
      BUG #1 jit.world don't always enable when I check the toggle. BUG #2 I need help to keep a decent frame rate while using big files (2000x2000).
      No problem with this file : https://cycling74-web-uploads.s3.amazonaws.com/58ed0512285705c15ccfb5ec/2019-06-19T13:54:42Z/ghost_notes_random_03.jpg But this one kill my frame rate even with jit.movie @colormode uyvy @output_texture 1 : https://www.cyrilmichaud.com/SIGIL(1).jpg Any idea to solve this problem ?
    • Aug 12 2019 | 6:57 pm
      Thanks you all for such amazing patches. They left me mouth open. A real education into glitch generators. A new wonderful world. The only two patches which are crashing immediately, on paste, are the ones Martin posted on May the 11 and May the 23. Is it because Im still using Max7.3.6?
      Many thanks for any help.
    • Aug 12 2019 | 7:12 pm
      Does this version here also crash on paste? (I removed the automatic start of jit.world and some mc related parts in version of May the 23.)
    • Aug 12 2019 | 10:36 pm
      Hi Martin, thank you for responding so quickly. I just tried and the same thing. It crashed on paste. BUT I managed to get a Max Console screenshot before it quit. Here attached
    • Aug 13 2019 | 1:59 pm
      Ok, I get it. This is for Max 8. Thanks anyway, all the best.
    • Aug 13 2019 | 5:40 pm
      Here a version for Max7. It loses the functionality of the mc.function object from Max8 but multiple function objects could be used. Ive just summed them into one to get it running at the mo. Many thanks for posting this wonderful patch.
    • Dec 16 2019 | 8:42 pm
      New try :
      The result is interesting, but I have huge drops of frame rate in fullscreen mode. Any clues to optimize this patch ? Thanks !
    • Dec 26 2019 | 11:23 am
      Hello GRIGOU,
      your patch runs with 60fps on Macbook Early 2013 2,4 GHz i7 (without using syphon). I think the only way to optimise it further for weaker machines is to transfer all matrix based parts to jit.gl.pix or jit.gl.slab and perhaps use jit.gl.bfg as source of random textures. https://cycling74.com/articles/jitter-shaders-or-gen-patcher-equivalents-for-common-jitter-objects
    • Dec 26 2019 | 11:29 am
      I found another interesting patch for the Memories of Broken Dimension collection from MATT ROMEIN,
      *requires cv.jit package
      https://cycling74.com/forums/farneback-op-flow-shader Also credit to Andrew Benson since this particular patch is just an extension of his DebrisHD patch from the jitter recipes package.
    • Dec 26 2019 | 7:15 pm
      Thanks Martin,
      Too bad, there's no equivalent with jit.gl.pix or jit.gl.slab for jit.noise, jit.scanslide, jit.scanwrap and jit.scanoffset. I tried to replace matrix with texture, but dstdimstart/dstdimend don't work for me with jit.gl.texture. I can't see what I did wrong...
    • Jul 23 2020 | 1:32 pm
      Following this amazing thread
    • Mar 08 2021 | 9:22 am
      Just wanted to share with you this awesome VHS glitch :

      VHS Glitch - Stock Footage - 3 Hours - Free to use for movies and video clips

      This guy have some other videos like this one on his channel that he made by crushing VHS. I love the result! Maybe some new inspiring work to remade with Max :)