How to program a Drawing Machine

แชร์
ฝัง

ความคิดเห็น • 228

  • @hexelldessin5080
    @hexelldessin5080 25 วันที่ผ่านมา +330

    this is so cool the paint dispenser was a really nice touch

    • @PezzzasWork
      @PezzzasWork  25 วันที่ผ่านมา +29

      Thank you! It took me way too much time :D

    • @EscapedShadows
      @EscapedShadows 22 วันที่ผ่านมา

      @@PezzzasWork But really how did you do the Paint Dispenser it looked so good?!

  • @itermercator114
    @itermercator114 25 วันที่ผ่านมา +204

    First time I've seen someone manage to explain how it works in a way that isn't overwhelming mathsy, cheers!

    • @PezzzasWork
      @PezzzasWork  25 วันที่ผ่านมา +22

      Thank you! My background isn’t about mathematics, that might be why :)

  • @GeneralSpazesSpy
    @GeneralSpazesSpy 25 วันที่ผ่านมา +106

    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!

    • @PezzzasWork
      @PezzzasWork  25 วันที่ผ่านมา +42

      Thank you for your comment, I didn’t know about this, I will have a look!

    • @CliffHanger-fg6uy
      @CliffHanger-fg6uy 23 วันที่ผ่านมา +9

      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 TH-cam 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.

    • @axelanderson2030
      @axelanderson2030 19 วันที่ผ่านมา

      I've seen these Fourier drawings on 3b1b before

    • @Tryh4rd3rr
      @Tryh4rd3rr 16 วันที่ผ่านมา

      It would be good for SoME, but he already has that type of video

  • @vnever9078
    @vnever9078 25 วันที่ผ่านมา +29

    12:58 bro didn't have to flex with that paint dispenser 💀

  • @user-tx2tp2de4u
    @user-tx2tp2de4u 25 วันที่ผ่านมา +52

    The little detail, such as "sensitive electric device" makes me little more pleasant. Always thanks for great content!

    • @PezzzasWork
      @PezzzasWork  25 วันที่ผ่านมา +9

      Thank you! Glad you appreciate the details, it is what takes most of the time :)

  • @karthikkumarrao6502
    @karthikkumarrao6502 24 วันที่ผ่านมา +23

    You're not just a developer, but an artist as well - absolutely beautiful work

  • @slmnchk
    @slmnchk 25 วันที่ผ่านมา +77

    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-Ay
    @Jay-Dub-Ay 25 วันที่ผ่านมา +46

    The continuity and grace of this is so beautiful ❤

    • @PezzzasWork
      @PezzzasWork  25 วันที่ผ่านมา +6

      Thank you!

  • @ahmedx3000
    @ahmedx3000 25 วันที่ผ่านมา +12

    I remember you've done that before but this explanation video is truly amazing 🔥🔥🔥

    • @PezzzasWork
      @PezzzasWork  25 วันที่ผ่านมา +5

      Thank you! Yes indeed! I wanted to redo it for a long time since I truly find this fascinating :)

  • @DIMENSIONCODE
    @DIMENSIONCODE 25 วันที่ผ่านมา +16

    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?

    • @PezzzasWork
      @PezzzasWork  25 วันที่ผ่านมา +12

      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.

  • @screwuk
    @screwuk 25 วันที่ผ่านมา +18

    Wow, really beautiful work mate. Everything inc. vid production, narration etc. is really superb. Lovely touch with the paint dispenser.

  • @rebeccarivers4797
    @rebeccarivers4797 25 วันที่ผ่านมา +4

    I have wanted a video like this from someone for years. Thank you!

  • @kirankumark7679
    @kirankumark7679 25 วันที่ผ่านมา +25

    0:15 if bro's bad at maths we are all cooked.💀

  • @sirhoog8321
    @sirhoog8321 25 วันที่ผ่านมา +5

    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 :) )

  • @robelbelay4065
    @robelbelay4065 17 วันที่ผ่านมา

    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!

  • @EpicVideoGamer7771
    @EpicVideoGamer7771 25 วันที่ผ่านมา +1

    You killed it. Blew my mind in more ways than one. Keep up the amazing work!!

  • @Pramerios
    @Pramerios 25 วันที่ผ่านมา +1

    This is some GORGEOUS math, my friend. Phenomenal work.

  • @caseyedson12
    @caseyedson12 24 วันที่ผ่านมา +1

    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.

  • @Radu
    @Radu 24 วันที่ผ่านมา +1

    Amazing work! And really nice touch with the paint dispenser at the end :-)
    I feel like a lot of work went into that.

  • @raducristiandimitrie
    @raducristiandimitrie 25 วันที่ผ่านมา +1

    Once again, delivering an amazing video! Thank you!

  • @PaulMetalhero
    @PaulMetalhero 25 วันที่ผ่านมา +1

    Man, your videos are pure magic!

    • @PezzzasWork
      @PezzzasWork  25 วันที่ผ่านมา +1

      Thank you!

  • @tiagogarcia4900
    @tiagogarcia4900 25 วันที่ผ่านมา

    That part where you highlight the part of the function you are coding was pure Genius!

  • @Kingdumkey
    @Kingdumkey 21 วันที่ผ่านมา

    Im in SHOCK at how ingenious this is!!!

  • @ajejebrazor4936
    @ajejebrazor4936 25 วันที่ผ่านมา +1

    Pure art! Thanks for this contribution

  • @pasmoluiso
    @pasmoluiso 24 วันที่ผ่านมา

    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.

  • @gelerson1642
    @gelerson1642 23 วันที่ผ่านมา

    God I hope you get 10x more subscribers. Your videos are incredible. Keep it up, please!!

  • @xernas7880
    @xernas7880 25 วันที่ผ่านมา +17

    Finally, all your videos are delighful, Nice to see another french person coding projects like this

  • @brumomento-so2nd
    @brumomento-so2nd 24 วันที่ผ่านมา

    love your visualizations and contents!

  • @roemischer
    @roemischer 25 วันที่ผ่านมา +1

    Thanks for the coll video. I really like your style of explaining things.

  • @-Yousof-
    @-Yousof- 25 วันที่ผ่านมา +1

    Amazing work and explanation! You impress me more with each of your videos🤯 Keep up the good work 👍👍

    • @PezzzasWork
      @PezzzasWork  25 วันที่ผ่านมา +1

      Thank you for your support!

  • @skromny150
    @skromny150 23 วันที่ผ่านมา

    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

    • @PezzzasWork
      @PezzzasWork  23 วันที่ผ่านมา

      Thank you very much for the nice comment!

  • @Acuzzio
    @Acuzzio 23 วันที่ผ่านมา

    Super good. Extremely well done. Thanks.

  • @liftbridgetown
    @liftbridgetown 25 วันที่ผ่านมา +1

    this is beautiful and awe inspiring!

    • @PezzzasWork
      @PezzzasWork  25 วันที่ผ่านมา +1

      Thank you!

  • @Diabl0pl
    @Diabl0pl 25 วันที่ผ่านมา +1

    Just incredible!

  • @totoooenf5
    @totoooenf5 25 วันที่ผ่านมา

    The visuals are super nice!

  • @sanderbos4243
    @sanderbos4243 25 วันที่ผ่านมา

    Hands down the coolest use of FFTs I've seen

  • @greatoak7661
    @greatoak7661 25 วันที่ผ่านมา

    This is a beautiful video. Thank you.

  • @caledonianamerican41
    @caledonianamerican41 25 วันที่ผ่านมา

    Very nice work, great job!

  • @chris.hinsley
    @chris.hinsley 23 วันที่ผ่านมา +1

    Beautiful work :)

  • @Alayric
    @Alayric 25 วันที่ผ่านมา +2

    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.

  • @dotero666
    @dotero666 25 วันที่ผ่านมา

    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

  • @gustavosena7876
    @gustavosena7876 25 วันที่ผ่านมา

    Mind blowing channel

  • @PatrickHoodDaniel
    @PatrickHoodDaniel 25 วันที่ผ่านมา

    Such a great way to explain DFTs. I wonder if this could be used to forecast trends similarly to fitting polynomials to data.

    • @CliffHanger-fg6uy
      @CliffHanger-fg6uy 23 วันที่ผ่านมา +1

      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.

    • @PatrickHoodDaniel
      @PatrickHoodDaniel 23 วันที่ผ่านมา

      @@CliffHanger-fg6uy Pretty cool!

  • @VivienLEGER
    @VivienLEGER 25 วันที่ผ่านมา +3

    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..

    • @PezzzasWork
      @PezzzasWork  25 วันที่ผ่านมา

      Thank you very much for the nice comment :)

  • @rayenwiller
    @rayenwiller 2 วันที่ผ่านมา

    Fascinating Work! really wanna know how you visualize all these disc animation. Definitely deserve a lot more views.

  • @nofacee94
    @nofacee94 25 วันที่ผ่านมา +1

    Very cool visuals. I'd love to see behind the scenes as in how you create the video with code.

    • @PezzzasWork
      @PezzzasWork  25 วันที่ผ่านมา +1

      Thank you! I will do some videos about my way of doing animations as it seems there is a demand for it.

  • @yijhebsldiv3gyxi88
    @yijhebsldiv3gyxi88 25 วันที่ผ่านมา

    your videos are so good! they look really clean

  • @alejandromartinez-vp4sx
    @alejandromartinez-vp4sx 21 วันที่ผ่านมา +1

    Amazing! I will appreciate you sharing the code 😊.

  • @mutiev
    @mutiev 25 วันที่ผ่านมา +1

    Masterpiece 💪🏼

  • @lucyhalut4028
    @lucyhalut4028 13 วันที่ผ่านมา +1

    I actualy understand the Fourier Transform now. Thanks ☺

  • @itsmodsiw
    @itsmodsiw 25 วันที่ผ่านมา

    as usual! great content. thanks for sharing.

    • @PezzzasWork
      @PezzzasWork  25 วันที่ผ่านมา

      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!

  • @Astra_Dystopium
    @Astra_Dystopium วันที่ผ่านมา

    Bro thinks he's bad at math. You have no idea what bad at math is lol. You are brilliant my man.

  • @shadow_blader192
    @shadow_blader192 25 วันที่ผ่านมา

    Awesome video :D

  • @TechWithAbee
    @TechWithAbee 24 วันที่ผ่านมา

    i love it! ✨ thank you very much !

  • @Zorg06Scratch
    @Zorg06Scratch 25 วันที่ผ่านมา

    Excellente vidéo comme toujours 😁

  • @Vognar6
    @Vognar6 24 วันที่ผ่านมา

    Un commentaire pour l'algorithme youtube, très instructif, bravo.

  • @belkacemF
    @belkacemF 25 วันที่ผ่านมา

    interesting how much little videos about this topic,,u made a good video as of others

  • @punk3900
    @punk3900 24 วันที่ผ่านมา

    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?

  • @nabil-dz5po
    @nabil-dz5po 25 วันที่ผ่านมา

    beautiful.

  • @azuril3221
    @azuril3221 25 วันที่ผ่านมา

    once again incredible

    • @PezzzasWork
      @PezzzasWork  25 วันที่ผ่านมา

      Thank you!

  • @absence9443
    @absence9443 25 วันที่ผ่านมา

    phenomenal video :)

    • @PezzzasWork
      @PezzzasWork  25 วันที่ผ่านมา

      Thank you!

  • @metactal
    @metactal 25 วันที่ผ่านมา

    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.

  • @antoinespadone7834
    @antoinespadone7834 25 วันที่ผ่านมา

    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

  • @dottedboxguy
    @dottedboxguy 25 วันที่ผ่านมา +2

    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

    • @Vaaaaadim
      @Vaaaaadim 25 วันที่ผ่านมา

      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.

    • @PezzzasWork
      @PezzzasWork  25 วันที่ผ่านมา

      Thank you!

  • @ddBenny
    @ddBenny 25 วันที่ผ่านมา +2

    adding int and bool like a madlad!

    • @PezzzasWork
      @PezzzasWork  25 วันที่ผ่านมา +1

      so fearless

  • @errorhostnotfound1165
    @errorhostnotfound1165 24 วันที่ผ่านมา

    mhm I love watching large clouds/larva draw lines :D

  • @vulnoryx
    @vulnoryx 24 วันที่ผ่านมา

    whoa...fascinating

  • @dormindurst349
    @dormindurst349 25 วันที่ผ่านมา

    Never seen a Fourier transform do graffiti before. That's magic.

  • @koko969w
    @koko969w 25 วันที่ผ่านมา

    awesome

  • @yuvalorp
    @yuvalorp 25 วันที่ผ่านมา +2

    You can do it with just one set of wheels by treating the drawing plane as the complex plane

  • @lucasxia2232
    @lucasxia2232 25 วันที่ผ่านมา +1

    Your animations are really cool and make it easy to understand. What do you use to make them ?

    • @PezzzasWork
      @PezzzasWork  25 วันที่ผ่านมา

      Thank you! I am using my own animation framework I wrote in C++

  • @mizoik9893
    @mizoik9893 25 วันที่ผ่านมา

    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

  • @scottbotgo4218
    @scottbotgo4218 25 วันที่ผ่านมา

    good stuff :]

  • @1.4142
    @1.4142 25 วันที่ผ่านมา +1

    Now I know why those drawing/ note ipad apps have those continuity glitches

  • @CliffHanger-fg6uy
    @CliffHanger-fg6uy 23 วันที่ผ่านมา

    If you did watch other TH-cam 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.

  • @MysteryPancake
    @MysteryPancake 25 วันที่ผ่านมา +1

    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

  • @Lucas-pj9ns
    @Lucas-pj9ns 25 วันที่ผ่านมา +3

    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?

    • @ccost
      @ccost 25 วันที่ผ่านมา +1

      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

    • @chartroniumdude5870
      @chartroniumdude5870 25 วันที่ผ่านมา +1

      i believe it works by feeding the positions as complex numbers (x+iy) into the formula.

    • @Vaaaaadim
      @Vaaaaadim 25 วันที่ผ่านมา +1

      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.

  • @spinteamok6877
    @spinteamok6877 25 วันที่ผ่านมา

    who else noticed how his english seems to get better with every new video?

  • @valeriogalieni2840
    @valeriogalieni2840 25 วันที่ผ่านมา +2

    you really should have more subscribers

  • @skilz8098
    @skilz8098 24 วันที่ผ่านมา

    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!

  • @ignatikklokov
    @ignatikklokov 25 วันที่ผ่านมา

    this is really cool, would be interesting to try and replicate in javascript

  • @robelbelay4065
    @robelbelay4065 17 วันที่ผ่านมา

    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)

  • @sdjhgfkshfswdfhskljh3360
    @sdjhgfkshfswdfhskljh3360 13 วันที่ผ่านมา

    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.

  • @Vairoon
    @Vairoon 25 วันที่ผ่านมา +1

    27 seconds old video, nice!

  • @Mathall0
    @Mathall0 25 วันที่ผ่านมา

    Great video, what do you use for the visualizations?

    • @PezzzasWork
      @PezzzasWork  25 วันที่ผ่านมา

      Thank you! I use a library I wrote myself

  • @wesleyjones1667
    @wesleyjones1667 25 วันที่ผ่านมา

    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?

    • @PezzzasWork
      @PezzzasWork  25 วันที่ผ่านมา

      Thank you! I hope this will help you :) I am using my own C++ framework !

  • @ronaldmullins8221
    @ronaldmullins8221 22 วันที่ผ่านมา +1

    I want this as a PC screensaver

  • @bytesandbikes
    @bytesandbikes 24 วันที่ผ่านมา

    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-fg6uy
      @CliffHanger-fg6uy 23 วันที่ผ่านมา

      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.

    • @bytesandbikes
      @bytesandbikes 23 วันที่ผ่านมา

      @@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.

  • @chris.hinsley
    @chris.hinsley 23 วันที่ผ่านมา +1

    Great to see you using C++ and not Python ;)

  • @DefinitlyAPerson
    @DefinitlyAPerson 12 วันที่ผ่านมา

    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.)

  • @timuren6422
    @timuren6422 25 วันที่ผ่านมา

    Totally looks like an orthographic projection of an alien tentacle drawing

  • @official-obama
    @official-obama 24 วันที่ผ่านมา

    zomg YOU do signal processing TOO!?!!?!?

  • @BlackPulsar13
    @BlackPulsar13 25 วันที่ผ่านมา

    🔥

  • @kyleeames8229
    @kyleeames8229 25 วันที่ผ่านมา

    ‘Ey! Collin Furze, I think I found a machine that needs building!

  • @truiteteam3428
    @truiteteam3428 25 วันที่ผ่านมา +1

    Everything is normal on this channel

  • @VladimirDemidovIllusiveMan
    @VladimirDemidovIllusiveMan 23 วันที่ผ่านมา +1

    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.

  • @manuelsuarez7521
    @manuelsuarez7521 25 วันที่ผ่านมา +1

    yes!

  • @Hycord
    @Hycord 25 วันที่ผ่านมา +13

    I love that I could recognize the forier transform in the intro sequence within seconds!

  • @zx3215
    @zx3215 25 วันที่ผ่านมา

    Eureka! The Antikythera mechanism was just an ancient drawing machine!

  • @JontePonte
    @JontePonte 15 วันที่ผ่านมา

    How do you make those nice animations / visualizations?