[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 !
- ygreqMar 31 2019 | 2:00 amThe 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
- grigouMar 31 2019 | 10:43 amThanks 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.
- Martin BeckMar 31 2019 | 3:33 pmThanks 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.
- grigouMar 31 2019 | 4:19 pmHello 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 ?
- Martin BeckMar 31 2019 | 6:15 pmI 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 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
- 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
- Martin BeckApr 01 2019 | 5:44 amCool 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:
- grigouApr 02 2019 | 8:41 pmVery 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 !
- Martin BeckApr 02 2019 | 9:58 pmAnyone any ideas how to achieve these kind of visuals only using Max ?
- grigouApr 02 2019 | 10:13 pmThanks 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 :
- Martin BeckApr 04 2019 | 7:50 pmHi GRIGOU,an application example of your VHS glitch:and inspired by this video herean application example that affects color channels
- grigouApr 04 2019 | 11:43 pmReally 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 :)
- Martin BeckApr 04 2019 | 11:53 pmComprehensible 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.
- grigouApr 06 2019 | 5:52 pmThanks 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.
- grigouApr 06 2019 | 6:32 pmI just try something with 3D shape glitch and some noise.
- grigouApr 06 2019 | 8:47 pmAnother try with jit.gl.bfg.
- Martin BeckApr 14 2019 | 1:51 pmSome more glitch madness
- grigouApr 14 2019 | 8:08 pmThanks !!! So much nice technique to study in your patch ! The color displacement give a nice VHS style !!
- Martin BeckApr 14 2019 | 8:28 pmSo 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_*˚•˚**˚•
- grigouApr 14 2019 | 8:49 pmWonderful ! 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 ?
- Martin BeckApr 15 2019 | 8:02 pmThe 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.
- Martin BeckApr 21 2019 | 8:08 pmLet's keep this thread alive -Glitch technique ideas.
- missmissApr 22 2019 | 3:25 pmthis is cool! I like the thread
- Martin BeckApr 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.
- grigouApr 24 2019 | 10:03 pmMartin, 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.
- Roman ThileniusApr 24 2019 | 11:02 pmthis 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.
- Martin BeckApr 26 2019 | 8:32 amHi 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].
- Martin BeckApr 26 2019 | 10:36 amThe creator of Memories of a Broken Dimension explains some details in this video here starting at 54:48.
- grigouMay 03 2019 | 10:12 pmGood 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.
- Martin BeckMay 05 2019 | 11:09 amThe 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
- grigouMay 05 2019 | 2:48 pmTitle 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.
- Martin BeckMay 10 2019 | 10:20 pmI have structured the patch a little bit, added some Sobel filter based effects and some automation.
- Martin BeckMay 23 2019 | 9:24 pm... new messages from the broken dimension
- grigouMay 26 2019 | 1:03 pmThanks 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.
- grigouMay 29 2019 | 4:09 pmHey 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.
- 👽R∆J∆ The Resident ∆lien👽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: 💪👏🙌💃 🕺🙌👏👍 ) 🍻
- grigouMay 30 2019 | 11:54 amhaha thanks Raja ! I'm glad that this thread could also help other people !
- Andrew BensonMay 30 2019 | 10:58 pmGreat thread, glad to see some cool ideas in here.
- grigouMay 30 2019 | 11:18 pmThanks 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 !
- Andrew BensonMay 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
- Martin BeckJun 01 2019 | 5:29 pmAnybody 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.
- grigouJun 14 2019 | 11:05 pmHello 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
- giorgioJun 15 2019 | 5:20 amawesome!!! Thank you Grigou
- grigouJun 15 2019 | 10:47 amYeah ! 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
- grigouJun 15 2019 | 2:04 pmSame patch, but with some optimization. Have fun !
- Martin BeckJun 15 2019 | 8:33 pmNice 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 データコード 「ｄａｔａｃｏｄｅ」: https://www.facebook.com/methlabrecordings/videos/592833154572601/
- giorgioJun 15 2019 | 9:57 pmHi GRIGOU, I used this file:
- grigouJun 19 2019 | 1:53 pmNew 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 1How I can use big images (2000x2000 or more) and still keep a good framerate ?
- daddymaxJun 19 2019 | 2:01 pmHuge thanks to all the people sharing patches here - so many good ideas and clever execution to learn from. Great stuff.
- grigouJun 19 2019 | 2:07 pmThank 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.
- grigouJun 21 2019 | 11:07 amHey glitchy friends ! :) Any clues for the issues with jit.world and big files in my last patch ? Thanks !
- cervalJun 23 2019 | 8:41 amDear 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
- grigouJun 23 2019 | 9:59 amNice evolving patch ! Thanks Cerval :)
- TConnorsJul 10 2019 | 6:28 pmGreat thread!
- Martin BeckJul 11 2019 | 5:42 pmI 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.
- grigouJul 15 2019 | 5:37 pmThank 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 ?
- pereshapedAug 12 2019 | 6:57 pmThanks 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.
- Martin BeckAug 12 2019 | 7:12 pmDoes 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.)
- pereshapedAug 12 2019 | 10:36 pmHi 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
- pereshapedAug 13 2019 | 1:59 pmOk, I get it. This is for Max 8. Thanks anyway, all the best.
- pereshapedAug 13 2019 | 5:40 pmHere 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.
- grigouDec 16 2019 | 8:42 pmNew try :The result is interesting, but I have huge drops of frame rate in fullscreen mode. Any clues to optimize this patch ? Thanks !
- Martin BeckDec 26 2019 | 11:23 amHello 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
- Martin BeckDec 26 2019 | 11:29 amI 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.
- grigouDec 26 2019 | 7:15 pmThanks 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...
- Federico-AmazingMaxStuffJul 23 2020 | 1:32 pmFollowing this amazing thread
- grigouMar 08 2021 | 9:22 amJust wanted to share with you this awesome VHS glitch :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 :)