Manim Tutorial Series E02: Positioning and Configuration | Mathematical Animations WITH EASE

Поделиться
HTML-код
  • Опубликовано: 29 ноя 2024

Комментарии • 100

  • @Jubijub
    @Jubijub 2 года назад +22

    This is the tutorial Manim needs, thanks so much for doing this !

  • @danielhutchinson6158
    @danielhutchinson6158 3 месяца назад +1

    Dr. Hackl, this was invaluable! Grateful for all the thoughtful examples.

  • @solusacademy
    @solusacademy 10 месяцев назад +3

    These tutorials are very helpful for learning Manim! thank you!

  • @erikzdrumpi
    @erikzdrumpi Год назад +2

    THANK YOU!!! I LOVE YOU!!!!
    I can finally start making beautiful mathematics problems, and transformations, using animations! I have waited a lot of time to be able to show others how I imagine problems :)

  • @shahswatmallick1222
    @shahswatmallick1222 6 месяцев назад +1

    Excellent 👌 Tutorial Sir. Precise - Clear & To the point !!! Hands down the best tutorial video for Manim !!! Thank You very much Sir.

  • @thescenicscenes
    @thescenicscenes Год назад +4

    Hi Benjamin,
    Recently, I installed MANIM and watching your tutorial. I don't have any coding background but still, the way you have explained in the video, trust me, I have grasped every bit of it and I really want to thank you for providing such great content. Lots of LOVE from India.

  • @TimTeatro
    @TimTeatro 10 месяцев назад +1

    I'm loving this series. Funny story: I'm when I get distracted and you say "Vee-Group" in the background, it lands as "Lie group" on my Canadian englaphone ear, and my attention snaps back over to the video.

  • @tnield9727
    @tnield9727 Год назад +4

    I’ve been using Manim for about a year, even purchased some learning material for it. But I’m learning quite a few new things from this series! Thank you and I hope you keep up this great work and this becomes part of the Manim documentation. You’re a great instructor.

    • @behackl
      @behackl  Год назад +1

      Thank you very much for the kind words, glad you found this helpful!

  • @mathflipped
    @mathflipped 3 года назад +30

    Please, keep going! This is a welcome contribution. Manim is not easy to learn as is, and the lack of documemtation and tutorials does not help.

    • @CodeMathsPhysics
      @CodeMathsPhysics Год назад +1

      It is damn easy but very labourious, to create a small animation video of 2-3 minutes it takes nearly 200 lines of code atleast.

    • @amarug
      @amarug Месяц назад

      @@CodeMathsPhysicsthere is a small learning curve at the start but then it indeed gets very easy and you can do anything, provided you are pretty solid in python. i think you can make animations really quickly compared to almost any other method, especially if you consider how pretty they look. i teach continuum mechanics at a big uni and i occasionally make animations for my class with manim and the reactions are always pretty strong!

  • @den_Mshen19
    @den_Mshen19 Год назад

    Your guides are the best! I actually started yesterday and now I can make basic animations with your help!

  • @joelrcha3368
    @joelrcha3368 Год назад

    Nice, relaxing way to spend time, very useful, thank you

  • @tupinikim_analytics
    @tupinikim_analytics 2 года назад +2

    Best Manim's tutorial! Thanks!!

  • @joubil8689
    @joubil8689 Год назад

    Thank you very much for making the Jupyter notebook available!

  • @batsunet
    @batsunet Месяц назад

    Thanks Ben! This is so awesome!

  • @elmar64
    @elmar64 Год назад +1

    It is very nice that you provide video tutorials for Manim. It's better to have an explanation than just a documentation or reference.
    I miss the information on how to retrieve the default value of a Mobject property, particularly from text of which you showed setting the default value in the video.
    Since the `set_default` method is writing a `partialmethod` into the constructor, I tried to access arguments from `Text.__init__` but without success.

    • @behackl
      @behackl  Год назад

      Thanks for the kind words! The easiest way to see the default values is probably by checking the docs or the implementation. Or do you mean retrieving it after it has been changed? In that case I'm not sure; the inspect module has a useful "signature" function, IIRC.

    • @elmar64
      @elmar64 Год назад

      @@behackl Yeah. It's difficult to find specific things in the docs. In my opinion documentation is mostly just a reference and always incomplete but with VSCode I can more quickly look it up. The implementation of `set_default` apparently uses `partialmethod` to apply arguments to the constructor. It does not scale well but is functional for a limited number of calls to `set_default`.
      My simple solution is, to create a variable in the class. I pass the variable into `Text.set_default()` and just reuse that variable when I want to know the default value. I only need to ensure that the variable is updated whenever a new default is set. Not nice but functional.

  • @wizardfix
    @wizardfix Год назад +1

    This series of videos is excellent, thank you @Benjamin for providing seemingly the best teaching available about Manim.
    I do have a really strong aversion to background music for anything, especially coding - it fries my brain (maybe due to my being a musician, I cannot but have my attention drawn to the music) - but thankfully here the volume is very low! A request for future productions though - could you possibly manage without this distracting irrelevancy? (Background music seems to be more and more common, but I have no idea what the purpose of it is...)

    • @behackl
      @behackl  Год назад +1

      Thanks for the feedback, I'll think a bit about it. :-)

  • @pavelperina7629
    @pavelperina7629 2 года назад

    Uh. Thanks. It's exactly what I was looking for. Manim documentation is pretty bad at this. Ofc I started by drawing scene explaining perspective projection on paper with 5mm grid, then tried to make at least basic SVG and then transfer it into manim. But my drawing was 2 to 40 units wide (with zoom) and 1 to 20 units tall. Here comes the fun: make NumberPlane/Axes with 40x20 grid covering roughly given rectangle at screen, draw all lines, squares and polygons inside it in grid coordinates. As one of the steps, zoom it 20 times and scale objects 20 times as well (at one or in sequence). At best don't scale texts and line widths ad dynamically adjust label spacing.

  • @renujain8911
    @renujain8911 7 месяцев назад

    Really helpful as I always wanted to make learning of mathematics with python language interesting... This library is actually doing what I was looking for you... Thanks for your effort Benjamin... :-)

  • @straylightc4b
    @straylightc4b 2 года назад +1

    Thanks, for a very helpful and well thought thorough tutorial. Looking forward to the next one.

  • @richiroman7
    @richiroman7 2 года назад

    I didn't know all that interesting things that can be done with the configuration. Thanks for the effort. Greetings from Mexico 🇲🇽

    • @behackl
      @behackl  2 года назад

      Well, that's what this series is here for! Glad you find it helpful. :-)

  • @TheKhalidmehmood
    @TheKhalidmehmood Год назад

    Amazing video, very well explained, and step-by-step examples with each and every detail I never expected.

  •  2 года назад

    Great video! I find it very complementary to the written tutorials. Tanks :)

    • @behackl
      @behackl  2 года назад

      Thank you! :-)

  • @sagart23
    @sagart23 Год назад

    Thank you for the video tutorials. I am new to manim. Hope to practice and get good at it.

  • @AndresFirte
    @AndresFirte Год назад

    Thank you very much! You have a great rythm, it's very easy to follow. You are super helpful!

  • @benjarm89
    @benjarm89 2 года назад

    Great tutorial Benjamin. Congrats!

  • @StatsUnited
    @StatsUnited Год назад +1

    Is it possible to align separate text objects so that they sit on the same line?
    Rather than having the bottom of "help" (the bottom point of the p) aligned with the bottom of "me" (the bottom of either letter). So "help" ends up slightly above "me".

  • @ChrisOffner
    @ChrisOffner 3 года назад +3

    Thank you for another great episode! In terms of feedback, I was going to say that throughout the video I was hoping to see how we can animate object and group positions and arrangements, but since you mentioned at the end that this will follow in the next episode I'll just look forward to that one. :) Keep up the great work!

    • @behackl
      @behackl  3 года назад +2

      Thanks for the kind words! Indeed, my plan is to make the next episode about all sorts of animations. :-)

  • @Matematicas_David
    @Matematicas_David Год назад +1

    Great video!
    I changed some parameters like the background color, the default color of the MathTex objects, etc.
    Is there a way to change some parameter of some animation?
    For example, I use the Indicate animation lots of time, the default color for Indicate animation is YELLOW.
    Is there a way to change the default color for all the callbacks of the Indicate class, or the run_time parameter for example.
    Thank you.

    • @behackl
      @behackl  Год назад

      Unfortunately the Animation class currently doesn't support the same `set_default`-mechanism that Mobjects do -- maybe at some point in the future! You can build something similar yourself though, take a look how we are doing it for Mobject: github.com/ManimCommunity/manim/blob/7c9f98c090d62a54e4c435b583e65e41974bda91/manim/mobject/mobject.py#L181

  • @sinaumath
    @sinaumath 2 года назад

    This is brilliant. I subbed since the first second.

  • @evaristeric6290
    @evaristeric6290 10 месяцев назад

    Very useful and clear ! Thank you !

  • @iamfrog47
    @iamfrog47 3 года назад +4

    perfect, and great explanation, keep going ❤

  • @booma2
    @booma2 Год назад +1

    Is it true? shift work with manim units where are next_to work differently . Why in next to 1*UP+1*RIGHT has different meaning that 1*UP+1*RIGHT in next to . As you have mentioned 1*UP+1*RIGHT in next_to example it transform dot2 to 1,1 in plane but at different position!?

    • @behackl
      @behackl  Год назад +1

      In the shift method, you specify the exact vector a mobject is shifted for. In next_to, you only specify the direction in which, relative to the given anchor, your mobject should be moved. The "buff" parameter controls the distance in next_to. Does that help?

    • @booma2
      @booma2 11 месяцев назад

      Thanks for guidance

  • @consumeentertainment9310
    @consumeentertainment9310 9 месяцев назад

    I glanced at stuff, and I understood your point immediately. Thank you!!!💩

  • @heonymath-os9tg
    @heonymath-os9tg 11 месяцев назад +1

    I'm always watching it well.
    I'm sorry, but can you add subtitles?

  • @fosheimdet
    @fosheimdet Год назад

    What IDE are you using? How do you get all the Manim suggestions shown at 12:06?

    • @behackl
      @behackl  Год назад

      I am using VS Code -- my friend Naveen has a pretty detailed guide on how to set things up correctly, see here: www.naveenmk.me/manim/manim-configuration-for-vscode/

  • @nawsailabang3361
    @nawsailabang3361 3 года назад +1

    Great work!! Please keep going

  • @MinhBui-h4x
    @MinhBui-h4x 2 года назад

    Keep it up, Ad! Greeting from a member in the group 👍🏻 😁

    • @behackl
      @behackl  2 года назад +1

      Ad? :-) Thank you, the next episode will drop in the next few days (I hope).

    • @MinhBui-h4x
      @MinhBui-h4x 2 года назад

      @@behackl My bad! In my country, we often shorten admin as Ad. I mean you’re the “Admin” of the group. Can’t wait to watch the video, cheers!

  • @djfn4s3r45
    @djfn4s3r45 2 года назад +1

    I'm pretty sure that you're the only person who has explained the Munites in his video.
    I really appreciate the good work.
    By the way, it was really hard for me to follow the video because of the music.
    I could use subtitles instead, but they cover the video, so I didn't use them.

    • @behackl
      @behackl  2 года назад +1

      Thanks for the kind words! I wish RUclips would support multiple audio tracks per video, otherwise it is hard to please everyone. :-)

    • @djfn4s3r45
      @djfn4s3r45 2 года назад

      @@behackl Though I think a video without music would be a compromise plan, don't you think?

    • @behackl
      @behackl  2 года назад

      @@djfn4s3r45 I'll think about it, but it's not a straightforward compromise; I also got feedback that others found that the music made the videos more engaging for them.

    • @djfn4s3r45
      @djfn4s3r45 2 года назад

      @@behackl It's completely up to your preferences, Ben.
      I appreciate your feedback.

  • @BanMidouSan
    @BanMidouSan 2 года назад

    Nuevamente, disfruté mucho el episodio. Muchas muchas gracias. (Thanks!)

  • @Matematicas_David
    @Matematicas_David Год назад

    Great Video! Thanks

  • @arjun_garva
    @arjun_garva 3 года назад +2

    Thank you and Keep the videos coming Ben!

  • @reverse2themean776
    @reverse2themean776 3 года назад +3

    I loved the video, really informative! I learned a lot from it. Also, the music creates a really chill atmosphere :)!

  • @likewisepro
    @likewisepro 7 месяцев назад

    It would be amazing if I could use Manim to demonstrate a 3D brain and the electro signals capture by the eeg sensors. Is this possible? Thanks

  • @scollyer.tuition
    @scollyer.tuition 3 года назад +1

    Nice video and very useful.
    1. Is there any chance that you could increase your text size in future videos? It's a little small for old folk like me.
    2. I've been playing around with manim (only for the last 3 days though - I'm a noob) and have been animating objects via the set_x() and set_y() methods. I don't really understand how the x/y units accessible via those setters relate to the Munit/pixel positions that you have discussed here. Could you explain, please?
    Danke im voraus!

    • @behackl
      @behackl  3 года назад +2

      Thanks for the feedback!
      1. I'll try to remember making the font size a bit larger when recording the next episode, sure. Bear with me, I'm new to producing this sort of content, might take a while until I get things figured out. :-)
      2. The values you are passing to set_x and set_y are exactly the Munit measurements of the scene: mobj.set_x(0).set_y(0) will move your mobject's center to the center of the scene; mobj.set_y(4) will move it exactly to the top of the scene and so on. You could also move your mobejcts using mobj.move_to([x, y, 0]), that should have the same effect as using set_x and set_y. Maybe go to the interactive notebook I've linked in the video description and just try how your approach of using set_x & set_y compares to the other positioning methods discussed in the video. That might help - but feel free to keep asking if not!

    • @scollyer.tuition
      @scollyer.tuition 3 года назад

      @@behackl Thanks for the response. Four more points/questions:
      1. I've found that it's much easier to understand how the coord. system is layed out if I temporarily add a NumberPlane to the Scene.
      2. If I add a NumberPlane and an Axes to the Scene, then I can see that the Axes units and NumberPlane units differ, but I can't see how to fix this, or why it should be. This seems to be unnecessarily confusing - shouldn't the two sets of units coincide?
      3. Where is the best place to report bugs in the community version? There seem to be at least some bugs related to Axes display in a NumberPlane, and with tip size control (seems not to work at all, AFAICS)
      4. It would be very helpful if, in a later video, you could discuss the animation model in some detail. At the moment, I'm not finding it easy to construct a mental picture of how it works, or what the canonical approach to animation is.

    • @behackl
      @behackl  3 года назад

      @@scollyer.tuition 1: sure, makes sense; whatever helps.
      2: No, this is more or less intended: with Axes, you are supposed to specify the x_range and y_range, and these might just not be in a 16:9 ratio so that stretching the axes lengths to make them fit the scene dimensions is not a good default behavior. There are x_length and y_length keyword arguments though with which you can control the axes lengths yourself.
      3: Please report bugs to github.com/manimCommunity/manim/issues
      4. My plan is to make the next episode about animations, it might just take a few more days until I find the time to produce it.

    • @scollyer.tuition
      @scollyer.tuition 3 года назад

      @@behackl Thanks for the rapid and detailed response.
      I'm rather confused about the Axes units, given your explanation. My main interest in manim at the moment is animation of 2D graphs, and more specifically, dots moving on graphs (to illustrate tangent vectors to curves, etc)
      I was intending to do this via the set_x()/set_y() methods driven off a ValueTracker, but the (x,y) coords produced by doing that will be incorrect if I display an Axes. I guess I'm misunderstanding how to generate (x,y) coords that are compatible with an Axes instance - mine will be compatible only with a NumberPlane. Anyway, I shall investigate this further on my own.
      And completely off-topic: I've looked at some of your German videos and I was wondering if you have an Austrian or Bavarian accent, when you speak German.

    • @behackl
      @behackl  3 года назад

      @@scollyer.tuition happy to have helped! :-)
      If you create an Axes mobject ax, then you can use ax.coords_to_point(x, y) to get the scene coordinates corresponding to your coordinates in your axes. That is, if you want to add a dot at (1,2) in your axes, you could do so with self.add(Dot().move_to(ax.coords_to_point(1, 1))). I'll probably have an example around that in Episode 4, but that might, unfortunately, take while. :-/
      My accent is Austrian; I've been living in Carinthia (southern Austria) for most of my life.

  • @CowboyRocksteady
    @CowboyRocksteady 2 года назад

    thank you for this fantastic tutorial

  • @hbevt4263
    @hbevt4263 2 года назад

    exuce me y have a screen made on pygame and I want to display a manim code on that screen, is tha posible?

  • @unknownvariablex7
    @unknownvariablex7 2 года назад

    you are a awesome teacher

  • @johnkardier6327
    @johnkardier6327 3 года назад +1

    Thanks. Great !

  • @ajithkumarg3219
    @ajithkumarg3219 2 года назад

    wonderfull❣❣❣

  • @dR-bAbAk
    @dR-bAbAk Год назад +1

    Thanks!

    • @behackl
      @behackl  Год назад +1

      ... and thanks again! It's good to see that you found this helpful!

  • @tomas_soeterik
    @tomas_soeterik 8 месяцев назад

    why does RIGHT for a dot makes the dot not go as far as the SQUARE to the RIGHT?

  • @zihadulhaquetalukdar9346
    @zihadulhaquetalukdar9346 2 года назад

    keep going ❣️

  • @greedskith6612
    @greedskith6612 Год назад +1

    GEM*2!

  • @KapilSachdeva
    @KapilSachdeva 3 года назад +2

    Great stuff!

  • @jiahao2709
    @jiahao2709 Год назад +1

    ruclips.net/video/1Fv0Nu-Tb7Q/видео.html the green dot seems just 0.5 distance with red dot, why not distance 1? which is one grid.

    • @behackl
      @behackl  Год назад

      The next_to method places the mobject in the specified direction (note: just direction) given a certain buffer distance which can be controlled with the "buff" keyword.

    • @wojciechmocek4586
      @wojciechmocek4586 7 месяцев назад

      @@behackl but for moving a square it was not just direction but exact amount of units UP and RIGHT? How would you explain it?

    • @wojciechmocek4586
      @wojciechmocek4586 7 месяцев назад

      _

    • @wojciechmocek4586
      @wojciechmocek4586 7 месяцев назад

      @@behackl I have realized that shift method does what I want but next_to just move it in the direction but by how many units exactly?

    • @behackl
      @behackl  7 месяцев назад +1

      @@wojciechmocek4586 The default value of buff is 0.25; next_to moves the appropriate contact point of the mobject to the appropriate point of the target an then adds a buffer of 0.25 times the specified direction.

  • @ABHISHEKKUMAR-bl5wy
    @ABHISHEKKUMAR-bl5wy 2 года назад

    Can you please provide your complete pdf of your slides it will help a lot in revision

    • @behackl
      @behackl  2 года назад +1

      I have updated the video description to include a link to the slides, behackl.github.io/manim-with-ease/slides/e02.html -- hope this helps!

  • @muhammadrezaanggarahermawa5610
    @muhammadrezaanggarahermawa5610 Год назад +1

    please ad subtitle for this video

  • @ClarkVangilder
    @ClarkVangilder 2 года назад

    What IDE are you using here?

    • @behackl
      @behackl  2 года назад

      This is VS Code.

  • @satish_patil4677
    @satish_patil4677 11 дней назад

    You have also blue eyes 4blue1brown😅

  • @hichemzerdi1580
    @hichemzerdi1580 2 года назад

    can we add another language for text such as Arabic language ?

    • @behackl
      @behackl  2 года назад +1

      Yes, you just need to use a font that supports the glyph of the language; see this example in our documentation: docs.manim.community/en/stable/reference/manim.mobject.text.text_mobject.Text.html#multiplefonts

  • @Autistaar
    @Autistaar 2 года назад

    Hello, again. Activate the subtitles please. 😢

    • @behackl
      @behackl  2 года назад +1

      If I could do it easily I'd do it -- enabling subtitles requires me to transcribe the entire video. I unfortunately don't have enough time to get this done fast(er), sorry.

    • @Autistaar
      @Autistaar 2 года назад

      @@behackl But RUclips has an AI that translates everything.

    • @behackl
      @behackl  2 года назад +1

      @@Autistaar the automatically generated subtitles are not available for these videos. :(