I will publish the code later. Music used (in order of appearance): Poison Message by Man with Roses Winterbeams by Diffie Bosman Empyrean by Dear Gravity (4000 pendulums part)
Пікірлер: 256
@hexelldessin50803 ай бұрын
this is so cool the paint dispenser was a really nice touch
@PezzzasWork2 ай бұрын
Thank you! It took me way too much time :D
@EscapedShadows2 ай бұрын
@@PezzzasWork But really how did you do the Paint Dispenser it looked so good?!
@itermercator1143 ай бұрын
First time I've seen someone manage to explain how it works in a way that isn't overwhelming mathsy, cheers!
@PezzzasWork2 ай бұрын
Thank you! My background isn’t about mathematics, that might be why :)
@GeneralSpazesSpy3 ай бұрын
Wow great work! Hey, 3blue1brown has these informational maths video competitions once per year (I believe), maybe you can enter this video into the next one? Feels like the perfect fit! The judges value intuitive teaching and simplistic visualisations highly, which to me fits this video!
@PezzzasWork2 ай бұрын
Thank you for your comment, I didn’t know about this, I will have a look!
@CliffHanger-fg6uy2 ай бұрын
3b1b actually has a couple of very similar videos (including pretty similar animations), so I don’t think this would be a good entry for SoME (as I think being a somewhat novel explainer is part of the judgement criteria). I know of at least 4 major STEM KZbin channels who have done this topic (focusing on using the FFT/DFT to draw). However, I totally think this channel should consider coming up with an entry. The videos are very polished and the explanations are clear.
@axelanderson20302 ай бұрын
I've seen these Fourier drawings on 3b1b before
@Tryh4rd3rr2 ай бұрын
It would be good for SoME, but he already has that type of video
@박태수-t7o3 ай бұрын
The little detail, such as "sensitive electric device" makes me little more pleasant. Always thanks for great content!
@PezzzasWork2 ай бұрын
Thank you! Glad you appreciate the details, it is what takes most of the time :)
@karthikkumarrao65022 ай бұрын
You're not just a developer, but an artist as well - absolutely beautiful work
@slmnchk3 ай бұрын
OH MY GOD this animation at 1:10 explaining how parametric definition of a circle really works is just magnificent I wish I'd seen it in uni
@Jay-Dub-Ay3 ай бұрын
The continuity and grace of this is so beautiful ❤
@PezzzasWork2 ай бұрын
Thank you!
@SammysapphiraАй бұрын
This is one of the best videos on applied math in programming I've ever watched. I love that you show the coding part, too. Sometimes it takes a little bit of syntax for my brain to connect the dots between formulas and code, since my brain thinks in code more than it does formulas.
@PezzzasWorkАй бұрын
Thank you :)
@vnever90783 ай бұрын
12:58 bro didn't have to flex with that paint dispenser 💀
@ahmedx30002 ай бұрын
I remember you've done that before but this explanation video is truly amazing 🔥🔥🔥
@PezzzasWork2 ай бұрын
Thank you! Yes indeed! I wanted to redo it for a long time since I truly find this fascinating :)
@screwuk3 ай бұрын
Wow, really beautiful work mate. Everything inc. vid production, narration etc. is really superb. Lovely touch with the paint dispenser.
@sirhoog83212 ай бұрын
Your videos are always so clean and well edited. It's beautiful and informative. Thank you for them :) (and thank you for showing the code in the video :) )
@rebeccarivers47973 ай бұрын
I have wanted a video like this from someone for years. Thank you!
@robelbelay40652 ай бұрын
This is by far the best and most intuitive explanation I've ever seen for a DFT!!! I've been trying to grasp it for years, thank you so much!
@PezzzasWorkАй бұрын
Thank you for your kind comment :)
@caseyedson122 ай бұрын
The paint dispenser was fantastic! Your previous pendulum model with the pull of the Drawing Machine unbalancing it. So seamless I couldn't have noticed without those wheels haha. Great video, thank you.
@tiagogarcia49002 ай бұрын
That part where you highlight the part of the function you are coding was pure Genius!
@Pramerios2 ай бұрын
This is some GORGEOUS math, my friend. Phenomenal work.
@VivienLEGER3 ай бұрын
it s trully amazing... as an embbeded software architect that have already use this methods, i never noticed how beautiful it may be ... thank you so much. I love your work on this channel..
@PezzzasWork2 ай бұрын
Thank you very much for the nice comment :)
@Radu2 ай бұрын
Amazing work! And really nice touch with the paint dispenser at the end :-) I feel like a lot of work went into that.
@kirankumark76793 ай бұрын
0:15 if bro's bad at maths we are all cooked.💀
@minecraftprovie50763 ай бұрын
fr
@xernas78803 ай бұрын
Finally, all your videos are delighful, Nice to see another french person coding projects like this
@13-Diamino-246-trinitrobenzene3 ай бұрын
Xerne5 clone? Lol
@PezzzasWork2 ай бұрын
Merci beaucoup ! :)
@yansakovich2 ай бұрын
Who is the other one you are referring to? Sebastian Lague?
@EpicVideoGamer77712 ай бұрын
You killed it. Blew my mind in more ways than one. Keep up the amazing work!!
@Kingdumkey2 ай бұрын
Im in SHOCK at how ingenious this is!!!
@pasmoluiso2 ай бұрын
Great video, I love the quality of the animation and how everything looks so clean. The explanations are also very good, but my favorite part is the visuals.
@DIMENSIONCODE3 ай бұрын
Great video! I just have one question, some of the animations (like the ink pipe) seem really overkill for a project like this, especially in C++. Do you use a library or is it added during editing?
@PezzzasWork2 ай бұрын
Thank you! It’s hand made and runs in real time during the signal reconstruction. It is based on the XPBD method, the scientific paper is amazing and makes it very easy to implement.
@-Yousof-2 ай бұрын
Amazing work and explanation! You impress me more with each of your videos🤯 Keep up the good work 👍👍
@PezzzasWork2 ай бұрын
Thank you for your support!
@Alayric2 ай бұрын
Beautiful as usual, I like how you reused the self balancing machine graphics for the paint dispenser. I was wondering if that was how old writing automata like the Jaquet Droz ones work, but they are actually a bit different.
@sanderbos42432 ай бұрын
Hands down the coolest use of FFTs I've seen
@ajejebrazor49362 ай бұрын
Pure art! Thanks for this contribution
@Theo_El_Gato2 ай бұрын
This is funny because I did the same thing for a school project (math expertes) and I discovered that my teacher was a literal pro in this domain and show me every single problem
@Astra_Dystopium2 ай бұрын
Bro thinks he's bad at math. You have no idea what bad at math is lol. You are brilliant my man.
@punk39002 ай бұрын
i ve seen it many time but each time it makes me wonder how simple actions can lead to unbelivable complexity. the world is just a combination of waves, isn't it?
@lucyhalut40282 ай бұрын
I actualy understand the Fourier Transform now. Thanks ☺
@PaulMetalhero3 ай бұрын
Man, your videos are pure magic!
@PezzzasWork2 ай бұрын
Thank you!
@rayenwiller2 ай бұрын
Fascinating Work! really wanna know how you visualize all these disc animation. Definitely deserve a lot more views.
@TheDailyMemesShow2 ай бұрын
I've been daydreaming about something like this, but with 3D mathematical expressions 😊❤🎉
@skromny1502 ай бұрын
That is really good job! I am so happy that yt recommend me this video! Sub+like for your and I hope you keep doing your amazing work. Take care man! The movement of the circles according to drawn lines is magical and is so calming to watch
@PezzzasWork2 ай бұрын
Thank you very much for the nice comment!
@raducristiandimitrie2 ай бұрын
Once again, delivering an amazing video! Thank you!
@gelerson16422 ай бұрын
God I hope you get 10x more subscribers. Your videos are incredible. Keep it up, please!!
@1.41422 ай бұрын
Now I know why those drawing/ note ipad apps have those continuity glitches
@roemischer3 ай бұрын
Thanks for the coll video. I really like your style of explaining things.
@PatrickHoodDaniel2 ай бұрын
Such a great way to explain DFTs. I wonder if this could be used to forecast trends similarly to fitting polynomials to data.
@CliffHanger-fg6uy2 ай бұрын
Data fitting was why the DFT was originally invented. The FFT, a fast algorithm for performing the DFT, was originally discovered by Gauss while trying to predict the orbits of asteroids.
@PatrickHoodDaniel2 ай бұрын
@@CliffHanger-fg6uy Pretty cool!
@nofacee943 ай бұрын
Very cool visuals. I'd love to see behind the scenes as in how you create the video with code.
@PezzzasWork2 ай бұрын
Thank you! I will do some videos about my way of doing animations as it seems there is a demand for it.
@yuvalorp2 ай бұрын
You can do it with just one set of wheels by treating the drawing plane as the complex plane
@dormindurst3492 ай бұрын
Never seen a Fourier transform do graffiti before. That's magic.
@alejandromartinez-vp4sx2 ай бұрын
Amazing! I will appreciate you sharing the code 😊.
@Hycord3 ай бұрын
I love that I could recognize the forier transform in the intro sequence within seconds!
@Djellowman3 ай бұрын
Ok
@Firestorm-tq7fy3 ай бұрын
Yep sme
@Diabl0pl2 ай бұрын
Just incredible!
@brumomento-so2nd2 ай бұрын
love your visualizations and contents!
@errorhostnotfound11652 ай бұрын
mhm I love watching large clouds/larva draw lines :D
@ddBenny2 ай бұрын
adding int and bool like a madlad!
@PezzzasWork2 ай бұрын
so fearless
@metactal3 ай бұрын
I was certain that this would be about bezier curves and am pleasantly surprised it isnt! This feels like something i would come up with back in primary school (a bunch of circles rotating at different speeds can draw anything), of course, i wouldnt have had the mathematical knowledge to figure out to do it.
@liftbridgetown3 ай бұрын
this is beautiful and awe inspiring!
@PezzzasWork2 ай бұрын
Thank you!
@dotero6662 ай бұрын
I was hoping to see you use it to draw the chicken from your profile picture like you did in older videos, keep up the good work, I like your videos even thought I don't know much about coding
@robelbelay40652 ай бұрын
If you haven't considered it already this code would be super useful to be implemented as a plug-in to augment CAD software(s) as including high-fidelity texts in 3D models isn't as intuitive and simple (for 3D printing in particular)
@dottedboxguy3 ай бұрын
man the animations are sooo nice, you could make a whole video about doing animations for your videos. on the initial premice of tranforming a drawing into a math function, i'd personally have done it as a long serie of bezier curves, which is definitely not as interesting, but still a subject you can get lost into for a while
@Vaaaaadim3 ай бұрын
Is there an algorithm for turning a curve into a bunch of stitched together Bezier curves? I am under the impression that Bezier curves are typically made by hand.
@PezzzasWork2 ай бұрын
Thank you!
@totoooenf52 ай бұрын
The visuals are super nice!
@Acuzzio2 ай бұрын
Super good. Extremely well done. Thanks.
@PezzzasWorkАй бұрын
Thank you :)
@kyleeames82292 ай бұрын
‘Ey! Collin Furze, I think I found a machine that needs building!
@timuren64222 ай бұрын
Totally looks like an orthographic projection of an alien tentacle drawing
@programagorАй бұрын
Great video! I think I need more detail on going from two sets of rotating disks to one set, but Fourier Transform/Series is such an important concept!
@programagorАй бұрын
Oh never mind, just figured it out, you just feed it as x+y*i complex number
@PezzzasWorkАй бұрын
Yes exactly!
@chris.hinsley2 ай бұрын
Beautiful work :)
@spinteamok68773 ай бұрын
who else noticed how his english seems to get better with every new video?
@lucasxia22323 ай бұрын
Your animations are really cool and make it easy to understand. What do you use to make them ?
@PezzzasWork2 ай бұрын
Thank you! I am using my own animation framework I wrote in C++
@caledonianamerican412 ай бұрын
Very nice work, great job!
@skilz80982 ай бұрын
FFTs are one of my favorite algorithms. Perhaps take this application one step further and have it draw or plot the Mandelbrot Set. Now that would be infinitely amazing to watch!
@ronaldmullins82212 ай бұрын
I want this as a PC screensaver
@sdjhgfkshfswdfhskljh33602 ай бұрын
Exploration of image encoding methods not only funny, but also useful. Next logical step is to think about how coefficients can be effectively packed into bits. Bonus level: think about how to effectively pack decompression code into bits.
@mizoik98933 ай бұрын
I've had a very similar idea just a few days ago using sound waves as a way to cypher information for my arg using separate sound waves
@CliffHanger-fg6uy2 ай бұрын
If you did watch other KZbin videos on this subject, I think it would be good to reference them or link them in the bio. Your video is still a cool contribution (due to not getting to into the weeds, posting the code and talking about the code more, more nice animations, etc.). It just rubs me the wrong way that it seems *very* likely that you checked out some comparable videos for inspiration (this topic has already been hit by several large math/programming channels) and make no mention of them.
@greatoak76613 ай бұрын
This is a beautiful video. Thank you.
@JavierAndres-o6w2 ай бұрын
Man, this is soooo cool, I have just discovered your channel and I am loving it. What engine/workspace are you using to make this kind of videos and simulations?
@PezzzasWorkАй бұрын
Thank you for your kind comment! I use raw C++ to program my own simulations, I am currently creating a series of video explaining how to do rendering using C++.
@belkacemF2 ай бұрын
interesting how much little videos about this topic,,u made a good video as of others
@zx32153 ай бұрын
Eureka! The Antikythera mechanism was just an ancient drawing machine!
@DefinitlyAPerson2 ай бұрын
The white click state segments can be a straight line just like the padding samples to decrease the amount of information within the Fourier-transformed version. (P.S. I'm not a mathematician as well, but a straight line is not efficient in FT.)
@Vognar62 ай бұрын
Un commentaire pour l'algorithme youtube, très instructif, bravo.
@mutiev3 ай бұрын
Masterpiece 💪🏼
@ENDESGA2 ай бұрын
this was quite hard to follow on my phone, the code was really small so it's hard to read. other than that I loved this a lot
@MysteryPancake3 ай бұрын
Cool video! You might be interested in "An Interactive Introduction to Fourier Transforms" by Jez Swanson, they made an interactive demo of this as well
@bytesandbikes2 ай бұрын
You can also do this so you don't need to track the on/off states outside of the signal by extending into 3 dimensions and drawing only a slice inside the 'on' depth. Could treat the 3rd dimension as 'paint dispenser flow'.
@CliffHanger-fg6uy2 ай бұрын
He never actually used a 2D DFT. The DFT by default allows for a complex-valued signal. You can just set the real and imaginary parts of each entry to the x and y coordinates of each sample. Typical generalizations to higher dimensions rely on adding up plane waves, which certainly wouldn’t create a comparable graphic. For that reason, generalizing this sort of animation to 3D would be significantly tricky. Apparently there’s such a thing as a quaternion Fourier transform. Maybe that would do it? I’ve never studied them, though, so I don’t know.
@bytesandbikes2 ай бұрын
@@CliffHanger-fg6uy Yes, you can sum plane waves, but in every actual use I've ever seen it's done by decomposition... just like in this video.
@NatCo-Supremacist2 ай бұрын
I wonder, what will the traced patterns look like if every circle had a tracer where the next circle was fixed? So for the first circle, it's just a circle, the second is slightly more complicated, and so on until the last circle traces the final pattern. It would be like a big sheet of lines that are really close to each other.
@gustavosena78762 ай бұрын
Mind blowing channel
@qfurgie2 ай бұрын
could you do the other way around? Define the circles and see what designs they create?
@yijhebsldiv3gyxi882 ай бұрын
your videos are so good! they look really clean
@Lucas-pj9ns3 ай бұрын
epic video, im somewhat lost on combining the x and y signals part, how did you give the dft both signals at once, did you simply have the arm be one x circle than one y circle, repeating or something more complicated?
@ccost3 ай бұрын
if you put the circles that made the y signal on top of the circles that made the x signal or vice versa they simply combine, that's all, if this were real life u literally just stick them on top of each other (obviously aligned correctly) yes he could've done it by altering the circles and likely did as this would make it look more satisfying but it is not necessary, the order of the circles don't matter it just looks nicer when it decreases in size
@chartroniumdude58703 ай бұрын
i believe it works by feeding the positions as complex numbers (x+iy) into the formula.
@Vaaaaadim3 ай бұрын
In the code the circles are really represented as complex numbers, But I'll still frame my comment here in terms of those circles, and sine/cosine. Also my notation here won't necessarily match the video. I don't think he computed x circles and y circles individually. For each frequency component, there is a single circle that handles both x and y. Still, if you do have a set of circles for x and y here is how you can combine them. Each circle will have some radius r, some speed ω, and some offset(phase) ϕ. So a point moving in a circle around the origin can be described as two functions x(t) = r⋅cos(ω(t-ϕ)) and y(t) = r⋅sin(ω(t-ϕ)) The x circles and y circles will have circles of possibly different sizes and phases, but same speeds. By which I mean, if the x circles will have one with a speed of 5, so too will the y circle. (Actually the speeds will be a multiple of 2*pi/N but whatever). Let's say the x circles include one with radius a, speed ω, and phase ϕ_1, and the y circles include one with radius b, speed ω, and phase ϕ_2. We can add these two circles to get a single circle. To do so, you can plug in t=0 to get the x,y values of one point from each circle, let's label them (x1,y1) and (x2,y2). Add these points component-wise to get a new point. So (x3,y3) = (x1+x2,y1+y2) . The radius of our resulting circle will be the distance of (x3,y3) from the origin, so sqrt(x3^2 + y3^2). The phase of our resulting circle will be the angle that (x3,y3) makes with the origin and the x axis, so atan2(y3,x3). And finally the speed will stay the same.
@valerykyunguАй бұрын
That was amazing! Good job
@PezzzasWorkАй бұрын
Thank you!
@Haagimus2 ай бұрын
Now replace all the different sized Wheels with one gangly arm so it looks like a weird Mr. Fantastic arm drawing all the characters
@truiteteam34283 ай бұрын
Everything is normal on this channel
@kpopalitfonzelitaclide21472 ай бұрын
Mri machine generate images using the fourier transform. Riemann used the mellin transform to anylitically calculate the prime number counting function.
@VladimirDemidovIllusiveMan2 ай бұрын
ive always wondered if any 3D or 2D object can have a function, and drawn like this.. and now i know. 3D would just need another axis. astonishing. BTW if ur math is bad, im afraid im a cave man in stone age, despite being a dev myself.
@sdjhgfkshfswdfhskljh33602 ай бұрын
Signed distance function is more suitable for 3D I think.
@jahbini2 ай бұрын
In the regions of sharp angles, the higher components are needed. This seems like only needing to compute enough components to keep any error within bounds.
@TechWithAbee2 ай бұрын
i love it! ✨ thank you very much !
@David_Raab2 ай бұрын
Looks very intersting. But I think having low "circles" and don't matching the original as close as possible is a feature. It makes the lines more smooth instead of jagged. It's actually a feature many drawing programs have. Otherwise when it just reconstructs everything exactly then i could just save the points that are drwan with a timestamp to and replay it as often i want. Or does it have any other advantage of doing it like that?
@lava_tiger3 ай бұрын
you really should have more subscribers
@chris.hinsley2 ай бұрын
Great to see you using C++ and not Python ;)
@TheSilentVictim2 ай бұрын
So am I understanding that each circle is rotating at the same speed? Since it is a periodic signal? That is absolutely wild
@shrootskyi8152 ай бұрын
TL;DR - No, the circles are rotating at different speeds. The maths: to make things simpler to explain, I'll focus on a single "arm" of the drawing machine with two arms. The X or Y input signal is transformed into a sum of periodic (sinusoidal) functions. Each circle of the arm represents one of these functions. Each of the functions has a different period, so the rotation of each circle has a different period - in other words, the circles are all rotating at different speeds. I don't really understand how the machine with only one arm works, so I won't try to explain it.
@CliffHanger-fg6uy2 ай бұрын
There are two circles that rotate once per repetition of the animation (one CW, one CCW). Then, there are two that rotate twice as fast. Then, three times as fast. This keeps on going for as many circles as you choose to include (though for math reasons, the number of circles cannot exceed the number of data points sampled for the drawing).
@CliffHanger-fg6uy2 ай бұрын
@@shrootskyi815The DFT works on complex numbers. If you encode the x and y coordinates as the real and imaginary components of the signal you take the DFT of, the single arm machine is the result.
@ignatikklokov2 ай бұрын
this is really cool, would be interesting to try and replicate in javascript
@wesleyjones16673 ай бұрын
This is an amazing video, I wanted to code this myself a while ago but got scared away because of the math. I want to try again now, what framework or engine do you use for your visuals?
@PezzzasWork2 ай бұрын
Thank you! I hope this will help you :) I am using my own C++ framework !
@itsmodsiw3 ай бұрын
as usual! great content. thanks for sharing.
@PezzzasWork2 ай бұрын
Thank you! And I think I recognize your profile picture from GitHub, so I take the opportunity to thank you very much for your generous support!
@wack1305Ай бұрын
I would love your code to help with my research! Edit: halfway through now and I’m guessing you show most of it anyway :)