I made my own animation library

Поділитися
Вставка
  • Опубліковано 25 жов 2024

КОМЕНТАРІ • 166

  • @dougmercer
    @dougmercer  3 місяці тому +1

    To try everything Brilliant has to offer-free-for a full 30 days, visit brilliant.org/DougMercer .
    You’ll also get 20% off an annual premium subscription.

  • @wido1085
    @wido1085 3 місяці тому +101

    Reminds me of Tsoding creating Panim. Except his is a lot more low level and very focused on just the sort of animations he wants to do.

    • @dougmercer
      @dougmercer  3 місяці тому +16

      Oh neat, I'll have to check that out.
      "I need something to do this" is a great incentive to make something, hah

    • @XeZrunner
      @XeZrunner 3 місяці тому +9

      @@dougmercer More people should attempt creating their own tooling! It's probably the easiest way to familiarize yourself with realistic development scenarios.

    • @dougmercer
      @dougmercer  3 місяці тому +4

      @@XeZrunner absolutely! such a great (and fulfilling) way to learn a ton of stuff fast

  • @artificiyal
    @artificiyal 3 місяці тому +71

    you should definitely open source this, maybe manim could implement some of its features

  • @alphago9397
    @alphago9397 3 місяці тому +41

    If it's an improvement to what 3b1b uses; I'll almost definitely find some use case for it in the future likely with some kind of personal project.. can't wait for the release! Thanks, and good luck!

    • @dougmercer
      @dougmercer  3 місяці тому +6

      I think it'll be better for some things (animating code) and worse for others. As much as Manim frustrates me it's still a great library.
      Thanks =]

  • @ericjmorey
    @ericjmorey 3 місяці тому +9

    I don't understand the reasoning of "it's not ready to be open sourced", but I'm excited to see it when you change your mind.

  • @knuddelig5304
    @knuddelig5304 3 місяці тому +19

    Please open source it, it’s exactly what I was looking for!

  • @cemrehancavdar
    @cemrehancavdar 3 місяці тому +18

    I like the fact of more videos coming!

    • @dougmercer
      @dougmercer  3 місяці тому +1

      Me too! This makes code animation so much easier...

  • @mhmarcush
    @mhmarcush 3 місяці тому +2

    Please continue with videos like these!
    I doubt that I’ll ever have a personal use case for creating animations in code but I really enjoy learning about how it’s made and the thought processes behind it.

  • @alexfinkelshtein8066
    @alexfinkelshtein8066 3 місяці тому +3

    I'll be happy to use it!

  • @iChrisBirch
    @iChrisBirch 3 місяці тому +2

    More videos for sure! I would definitely like more about the development and your thought process for how you get from one version of the code to a more advanced or elegant implementation. Thanks!

    • @dougmercer
      @dougmercer  3 місяці тому

      Will do! Thanks for letting me know =]

  • @brandonlewis2599
    @brandonlewis2599 27 днів тому

    Props for using cairio! It's an awesome little library, and the unsung hero behind GTK.

  • @bebeno1
    @bebeno1 3 місяці тому +2

    That's great! I'd love to see more videos about this project!

  • @summussum7540
    @summussum7540 3 місяці тому +3

    Looking forward to seeing more on this! It’s an awesome feeling building a toll and having it fit your needs like a glove. Great work!

  • @StefaanHimpe
    @StefaanHimpe 3 місяці тому +2

    I like the approach to implementing constraints using operator overloading. Fun project.

  • @tonas3843
    @tonas3843 3 місяці тому +1

    I really love these kind of tools, so happy to see more being created. This really reminds me of Aarthficial's MotionCanvas typescript library

  • @ThinkWithGames
    @ThinkWithGames 3 місяці тому +3

    This library looks awesome! I would definitely use it (maybe for pre rendering some cutscenes for games or for making videos)

  • @fizzlefritz9782
    @fizzlefritz9782 3 місяці тому +6

    Awesome project; there's definitely a void for this kind of tool that needs to be filled. I did not know Manim even had coding support in it, thank you.
    It might be fun for you to look into some of Bisqwit's content, specifically relating to "That Editor." He wrote an editor that would just type his code out in a way that looked pleasing to him and then screen records it typing. This might be a very viable approach today considering you could do this as a plugin for existing editors that didn't exist back in the day- especially in editors that already have JS/CSS available to them since this gives you animation for free.

    • @dougmercer
      @dougmercer  3 місяці тому +2

      I'll have to look into his videos/that repo a bit more. Looks interesting!
      It's funny to me how many code UA-camrs end up making their own animation libraries

    • @Muhammed_English314
      @Muhammed_English314 3 місяці тому +1

      ​@@dougmercer The last part is so true!

  • @alexanderzikal7244
    @alexanderzikal7244 3 місяці тому +7

    Myself I don't need this kind of software..., but learning from the code You have done all this things will be exiting! Actually I refresh my C-knowledge, learn Zig and Rust...

    • @dougmercer
      @dougmercer  3 місяці тому

      I really want to learn Zig too.
      The code will be available on GitHub sometime later this year or early next year-- kind of far away, but hope it's helpful for learning!

  • @brandonlewis2599
    @brandonlewis2599 27 днів тому

    Again, props for using Cairo! Release early, release often. Give people a link to your repo in your announcement, and you'll start getting contributions before you know it. The only thing you really need to have in place before you "release" it is a license (that's compatible with your dependencies).

  • @OranCollins
    @OranCollins 3 місяці тому

    cant wait to see the open source!

  • @morgengabe1
    @morgengabe1 3 місяці тому +2

    So far it reminds me of the processing libraries with extra tools for text (which is great). I look forward to this being open sourced, i'd like to read it!

  • @michaeldamolsen
    @michaeldamolsen 2 місяці тому +1

    I am trying to do something similar with C++ for astronomy animations, but I am really struggling with exactly the aspects you cover here. You have given me some additional things to consider, thank you very much!
    On a side note, this video is very well structured and presented; a real pleasure to watch. I've subscribed for more :)

    • @dougmercer
      @dougmercer  2 місяці тому +1

      That sounds awesome. good luck on the project! Let me know if you eventually open source it-- would love to check it out.
      There's definitely a lot that can go wrong with animation 😂. I'm in the middle of refactoring a core part of my library. Unit tests are a must, and do your best to clearly define any assumptions (e.g., I apply transformations in the order that their applied, not the order of the starting frame).

  • @MrWorshipMe
    @MrWorshipMe 3 місяці тому +1

    Very cool. I'm excited to see what's next.

  • @makkura9497
    @makkura9497 3 місяці тому +1

    As someone who just recently got into making video content and trying to animate and emphasize different things, this looks great!
    I found even basic transition animations are a pain. Older more traditional style video editors have their own conventions that can make it hard to manage key frames and newer applications where key frames are a little more intuitive for me are often subscription or freemium with cluttered ui’s.
    I’ve been wishing I could interact with content and animate more programmatically.
    It’s really awesome to see how programmers in the video creation space are tackling these problems.
    Pixegami also has a video on how he creates videos under the hood as well that’s quite enlightening.

    • @dougmercer
      @dougmercer  3 місяці тому +1

      I'll have to check out pixegami!

    • @makkura9497
      @makkura9497 3 місяці тому

      @@dougmercer the particular video where he goes over his process is titled “Using Python and AI to Automate My Video Editing Process”.
      He details out how he writes his episodes in markdown and has written tools to help make bumper / transition images, code blocks with the osx buttons similar to yours, etc.
      Code isn’t yet available as he wants to polish it up some similarly to where you are at.
      I’ll be keeping an eye out ;)
      My initial video is under @DarkModeCode and I’m just starting to see the pinpoints in things like recording live code vs still images, translations, etc
      Encountering videos like this and pixegami’s gives me some insight into how others are approaching it.

    • @dougmercer
      @dougmercer  3 місяці тому

      @@makkura9497 I just watched it-- very interesting. It inspired me to potentially right a Python script to group takes together for each line of my script... that would make editing a lot faster!
      I generally prefer having a programmatically generated animation or compositing my animation in my editor, rather than screen recording code. A lot of little things can go wrong when screen recording, or if you ever need to change a bit of text or reformat something, screen recording can cause a lot of re-work.
      In one my earlier videos, I had to manually cut out a bunch of weird black frames that popped up in vscode whenever it was making multiple characters into a ligature cause of the font I was using. It was so painful 😣

  • @vaisakh_km
    @vaisakh_km 3 місяці тому +1

    You should take a look at singals architecture for reactivity
    it's really simple to impliment, yet makes code a joy to work with... almost a major JS frameworks are finally settling on it

    • @dougmercer
      @dougmercer  3 місяці тому

      I have started to look into it!
      I got pretty far along coding up my own implementation, but then realized that the `param` library from the holoviz team implemented reactive values/functions (annoyingly, though, their library isn't type hinted, so it makes it annoying to work with)

  • @achichorro
    @achichorro 3 місяці тому

    I would definitely use this!

  • @ruroruro
    @ruroruro 3 місяці тому +2

    14:11 instead of raising a TypeError, you should return NotImplemented

    • @dougmercer
      @dougmercer  3 місяці тому

      Doh, yeah -- that's the preferred way of doing it. Not sure what I was thinking (this feature was added in a bit of a rush)

  • @markfischer6850
    @markfischer6850 3 місяці тому +1

    I would definitely take a look at something like this if it was available. As a part time CS instructor for web and cloud topics, finding animation and visualization tools for code topics is challenging. Good luck!

    • @dougmercer
      @dougmercer  3 місяці тому +1

      Sounds good! I'm working on documentation, unit tests, and CI/CD. When it's available I'll announce it on the channel.
      In mean time, maybe check out Motion Canvas? A few people have commented about it, and it does seem quite nice

  • @ismailcreatvt
    @ismailcreatvt 2 місяці тому +1

    This is amazing. Do open source this soon!

    • @dougmercer
      @dougmercer  Місяць тому +1

      Working on it! But got side tracked on a crazy refactor that makes the library even more useful

  • @GustavoPinho89
    @GustavoPinho89 3 місяці тому +1

    All of the above. Keep them coming

  • @Muhammed_English314
    @Muhammed_English314 3 місяці тому +10

    Doug Mercer: Makes a 4 brown joke
    Also Doug Mercer: wears a brown shirt

  • @ThomasHaberkorn
    @ThomasHaberkorn 3 місяці тому +2

    exactly the type of content I like to watch

  • @MaxG628
    @MaxG628 3 місяці тому +2

    What you call a variable is what’s known in functional reactive programming as a signal. That might be a better term. FRP is a rabbit hole, you might learn something, but you don’t want to have too much of a theoretical background required to use the library.

    • @dougmercer
      @dougmercer  3 місяці тому

      Hmmm, you're right-- I'll have to think a bit more about the name 🤔

  • @NabekenProG87
    @NabekenProG87 3 місяці тому +1

    Love your glasses. I always wanted to get ones like that

    • @dougmercer
      @dougmercer  3 місяці тому +1

      Thanks! They are Morel glasses from their 1880 line (I don't remember the exact model). I wish they still sold them, cause they have held up well!

  • @TheWebgecko
    @TheWebgecko 3 місяці тому +1

    I’m definitely interested!!!!!

  • @balorprice
    @balorprice 3 місяці тому +1

    Wow, love this!

  • @remiheneault8208
    @remiheneault8208 3 місяці тому +2

    I know nothing about animations in Python apart from Pygame physics simulations, but I like to think I know Python very well.
    I really support the idea of writing your own package to solve your own problem. I very often do that, thinking it will help people.
    But in the end, designing a library API, one that will be used by many, is another job of its own.
    For example: you mentionned using "lambda" or small functions to link between one parameter and another. That doesn't sound crazy to me. It's zen and Pythonic, it sounds perfectly reasonable.
    Creating a new method in the package _just for that_ adds complexity, for a use case that could be debatable.
    Again, I'm not criticizing any feature here, I don't know much about animation libraries. My point is: it's hard to keep a package maintable if we create a method for every use case. Yet it is *very* hard to trust that every user will find a nice way to make it work for them.
    I guess the only bit of experience I'd like to share is: we all _looove_ to make a shiny new class with cool generic methods and perfect docstrings, sometimes - in my opionion - to the detriment of readability, clarity and scope of the package.

    • @dougmercer
      @dougmercer  3 місяці тому

      Oh yeah, you're absolutely right-- there's a high risk of this spinning out of control and becoming unmaintainable.
      Worst case, it'll only be good for making my videos faster (and I'll still consider that a success)
      Thanks for the thoughtful comment =]

  • @luquest1848
    @luquest1848 3 місяці тому +1

    Hey, awesome video - I'm interested in the architectural concepts - basically more what you presented today :-) Would love to hear more about how you overcome problems, your design considerations, and the dogfood tools you make - awesome stuff, thanks!

    • @dougmercer
      @dougmercer  3 місяці тому

      Awesome! I'll try to make some more videos going into that!

  • @karmandev
    @karmandev 3 місяці тому +1

    You could look into singals. The concept recently sparked in many frontend JavaScript frameworks. There are quite some similarities with what you describe in your video. The concept might inspire you.

    • @dougmercer
      @dougmercer  3 місяці тому +1

      Thanks for the idea! I probably will consider this in a future refactor. It might simplify the implementation a bit and make it more flexible 🤔

  • @matthewvgrogan
    @matthewvgrogan 3 місяці тому +2

    What a tease!! Looking forward to seeing more and giving it a try.
    How fast is render as compared to manim?

    • @dougmercer
      @dougmercer  3 місяці тому +2

      Hah, sorry! I didn't want to YOLO the code out into the world the first time I used it (I was still fixing bugs/adding features during post production)
      As for speed, I haven't really bench marked it too much yet. Its fast for simple scenes, and the ability to easily jump ahead in the preview window makes it "fast" even for complex scenes, because you can skip generating in-between frames and jump right to the thing you care about.
      Some of the section screen animations were slow to render, but I was animating 1000s of things at once. Similar, a code object with a thousand lines of code can become slower than I'd like.
      I've made a few theoretically ugly and practically quite nice optimizations to cache some computations. More stuff is probably cachable, but I don't want to make the code more difficult to debug while it's still so early in development.
      I'll try to keep moving on this so I can release it sooner than later!

    • @matthewvgrogan
      @matthewvgrogan 3 місяці тому +2

      ​@@dougmercerthat's great. I love manim but the cycle time is just too long. I'm definitely in the market for an alternative. Good luck and let me know if I can help in any way.

    • @dougmercer
      @dougmercer  3 місяці тому

      Will do!

  • @AliUlasHayr-db7rq
    @AliUlasHayr-db7rq 3 місяці тому +1

    Didn't understand much but still enjoyed it very much. The video shows how to approach problems thumbs up!

    • @dougmercer
      @dougmercer  3 місяці тому

      Yeah, this video definitely got a bit down in the weeds, but I'm going to try to make future videos more focused on a specific topic and easier to understand.
      Thanks for watching!

  • @r-i-ch
    @r-i-ch 3 місяці тому +1

    Very interested to see about the dev process for it.
    Especially for presentational [2D] code as animation there are a number of libs out there already so I’m wondering if you tried any others?

    • @dougmercer
      @dougmercer  3 місяці тому +1

      For code animation, I've tried Manim and reveal.js. I also took a look at another JavaScript library that I forget the name of.
      I've also played around with Py5 and P5. They are honestly very nice. It's possible I'll regret basing my library off Cairo instead of Processing

  • @pw5687
    @pw5687 3 місяці тому +1

    Very cool! Good luck with the project.

  • @danielgilleland8611
    @danielgilleland8611 3 місяці тому +1

    Yes, I'm very interested in your process for this. Subscribing as a result.

  • @ericmoras3448
    @ericmoras3448 3 місяці тому +1

    Great video! I am also creating a personal python project to address my specific needs when the alternatives are kinda slow. I am sort of a noobie python developer, so it is really interesting to see how you code this!

    • @dougmercer
      @dougmercer  3 місяці тому

      Solving your own problems is a ton of fun. Good luck on your project!

  • @j.i.-cruz
    @j.i.-cruz 2 місяці тому

    So interested. Would totally use it. Would totally want to contribute. Cant wait to see it open sourced!

  • @mattcauth
    @mattcauth 3 місяці тому +1

    Would love to see more and would love to see the open source project whenever it's ready. I've used Manim and it's fantastic in its own way but I eventually fell back to Resolve/Fusion for most animation because Manim got in my way for reasons that you lay out better than I could. I keep coming back to animations in code, but everything I've found so far doesn't quite get me there. Really nice work, and I'm looking forward to seeing more! Sub'd.

    • @dougmercer
      @dougmercer  3 місяці тому

      Oh wow, it's good to hear from someone who shares that same experience (and frustrations =])
      I think the best workflow will be hybrid-- use this library for animating code and a few other things where it's most convenient, and composite over top in fusion whatever else.
      Thanks for your comment!

  • @RodrigoCoinCurvo
    @RodrigoCoinCurvo 3 місяці тому +2

    Please, open source it! I've worked with Manim Community, and it's great, but I've had some of the same problems you mentioned, including losing my mind trying to animate code in it, plus the slow process of finding and previewing things.

    • @dougmercer
      @dougmercer  3 місяці тому

      Will do! =] (And it's always nice to hear from people who had similar experiences with the Code object... Not many people use it/can relate to the resulting struggles)

  • @AronNemeth95
    @AronNemeth95 3 місяці тому +2

    This looks really promising. I tried manim and I love what it can do, but fully agree with your points against it. Especially having to re-render every time I change something to see it.
    I would love to see something like this made as a plugin for a editor like DaVinci or even Blender's video editor. (So you wouldn't have to develope your own GUI.)

    • @dougmercer
      @dougmercer  3 місяці тому +1

      I tried to understand Davinci Resolve's plugin system, but I couldn't make heads or tails of it 😞. The docs are bad, and they don't support the reaktor community (I'm stuck on Resolve 18.1 because they broke compatibility with a plugin I use in 18.5, and refuse to even acknowledge the problem)
      I agree though... It'd be awesome to integrate into Resolve

    • @dougmercer
      @dougmercer  3 місяці тому +1

      At this point, my plan is to keep enhancing my own UI. I think it's possible I could eventually add features for creating the animation/adjusting parameters with the UI (or at the very least, support a live preview that monitors for changes to the source file-- that's easy but not implemented yet)

    • @AronNemeth95
      @AronNemeth95 3 місяці тому +1

      @@dougmercer I see, I have never looked into making davinci plugins.
      Looking forward what you can achieve with this 🙂

  • @AlecMaly
    @AlecMaly 3 місяці тому

    Looks like a cool project, thanks for sharing what you learned and some of the more interesting technical takeaways. Cheers!

  • @theoneandonly1833
    @theoneandonly1833 3 місяці тому +6

    You either live long enough to use an animation library or to code your own.

    • @dougmercer
      @dougmercer  3 місяці тому +1

      So true. The dev to UA-camr pipeline takes no prisoners

    • @theoneandonly1833
      @theoneandonly1833 3 місяці тому +1

      @@dougmercer im not kidding you are the fourth dev yt’er Ive seen do this

    • @dougmercer
      @dougmercer  3 місяці тому +1

      @theoneandonly1833 I know! I wish more of them would have open sourced their libraries so I wouldn't have had to make my own!
      I think it was @coderized whose videos I saw and thought, yeah... I guess I'm doing this, huh

  • @fidhalkotta
    @fidhalkotta 3 місяці тому +1

    Love this!

  • @bilalinci4981
    @bilalinci4981 3 місяці тому +3

    Motion canvas is best

    • @dougmercer
      @dougmercer  3 місяці тому +1

      I do think I need to play around with it more.

    • @WillowOne
      @WillowOne 3 місяці тому

      Love Motion Canvas

  • @literal-jk
    @literal-jk 3 місяці тому +1

    please release this!

    • @dougmercer
      @dougmercer  3 місяці тому

      I definitely will! Just need to make it usable for people other than me first =P

    • @literal-jk
      @literal-jk 3 місяці тому +1

      @@dougmercer word! Just subscribed so i dont miss it!

  • @mmilerngruppe
    @mmilerngruppe 3 місяці тому +1

    12:35 funny highlighting, I must look twice to recognize how they mimic the manual hand style

    • @dougmercer
      @dougmercer  3 місяці тому

      That's an accidental feature, hah. Under the hood, I'm tracking the bounding box of each character. I then draw a line through the centroid of every character I want to highlight. Because the characters have slightly different heights for the centroids, it creates a squigly line that kind of looks hand drawn
      I can make a straight highlight by selecting only the first and last characters
      That said, I did add the ability to add noise when drawing shapes to give a hand drawn effect (you can see it in the videos thumbnail...).
      I'm really excited about that cause I think hand drawn looks cool, but I added the feature after recording the video

    • @mmilerngruppe
      @mmilerngruppe 3 місяці тому

      ​@@dougmercer yeah, I paused the video and took a good look at what was going on. If the line were a bit bigger/thicker as the vertical bbox I would really consider it hand-drawn

    • @dougmercer
      @dougmercer  3 місяці тому

      @@mmilerngruppe I wish Cairo made it possible to interpolate line width between two points easily (akin to "pressure" of a stroke). That's a problem for another day, hah!

    • @mmilerngruppe
      @mmilerngruppe 3 місяці тому

      @@dougmercer well, Instead of one line, the problem can be solved with two lines, one on top of the other.
      or as a bunch of various bezier curves (from one character to another step) that form a svg shape you can fill.

    • @dougmercer
      @dougmercer  3 місяці тому

      Yeah, I do think it's possible.

  • @robpruzan7292
    @robpruzan7292 3 місяці тому +1

    Really great video

  • @alventures97
    @alventures97 16 днів тому +1

    How’s progress going?

    • @dougmercer
      @dougmercer  16 днів тому

      Pretty good-- I'm about 90% done with a huge refactor that allows "reactive values" to be used. As part of it, I had to make a new library (pip install signified).
      There will be a new video on the reactive programming library coming out by the end of the month

  • @Nakameguro97
    @Nakameguro97 3 місяці тому

    Use linear algebra.
    Just apply transforms encoded via matrices. The code will be much smaller and simpler.

    • @dougmercer
      @dougmercer  3 місяці тому

      That is what's happening under the hood already.

    • @Nakameguro97
      @Nakameguro97 3 місяці тому

      @@dougmercer Then the code looks way too verbose for what it's doing, maybe due to too much OOP boilerplate.

  • @simonwillover4175
    @simonwillover4175 3 місяці тому

    8:00 who in the world reads code like this? This just makes me want to close my eyes.

  • @NostraDavid2
    @NostraDavid2 3 місяці тому +1

    Very cool! Does that mean the next video is going to be delivered sooner? :P

  • @guowanglin4537
    @guowanglin4537 3 місяці тому +2

    impressive

  • @lmkawakami
    @lmkawakami 3 місяці тому +4

    eagerly awaiting the release of your Python package

    • @dougmercer
      @dougmercer  3 місяці тому +1

      Thanks! I'll announce it on the channel when I do

  • @VioletJewel1729
    @VioletJewel1729 3 місяці тому

    btw the lofree flow feels so much nicer than the nuphy

    • @dougmercer
      @dougmercer  3 місяці тому

      Ah interesting-- it does seem nice.
      I recently went off the keyboard deep end and got a ZSA Voyager. I really like it (but miss wireless operation =[)

  • @Qwerasd
    @Qwerasd 3 місяці тому +3

    Genuine question: Why make a new library and not just submit these things as improvements to manim?

    • @dougmercer
      @dougmercer  3 місяці тому +2

      Good question! Originally, I tried to subclass the code object. However, I kept running into bugs... it was really hard to retrofit the capabilities I wanted. Also, Manim's VGroups would occasionally produce weird visual bugs when doing complex animations, and some code objects would bug out when tokenizing code (in hindsight, this issue might have been my own fault of not using a raw string... r"like this", instead of "like this").
      It's definitely not impossible, but it is telling that it was easier for me to make my entire own library than it was to extend Manim

    • @Qwerasd
      @Qwerasd 3 місяці тому +1

      @@dougmercer That's fair! Thanks for the reply.

  • @midnightfuture
    @midnightfuture 2 місяці тому

    TIL that [some in] the Python community call[s] "__" "dunder"! Like, I get it-double underscore-but I'd never heard it despite 22 years of casual Python programing.
    Anyway, you should open source your library, and you shouldn't wait to clean it up first. That's what sub-1.0 semvers are for!

    • @dougmercer
      @dougmercer  2 місяці тому

      Hah, yeah, I remember when I first heard dunder-- I was like, huh? 😂 I think before that I heard them referred to as "magic methods". Not sure which is better ¯\_(ツ)_/¯

  • @caballerosalas
    @caballerosalas 3 місяці тому

    where is the library?

    • @dougmercer
      @dougmercer  3 місяці тому

      It's not available yet-- I need to add more documentation/testing and set up GitHub actions for it

  • @unLinuxeroMas
    @unLinuxeroMas 3 місяці тому +2

    what about motion canvas

    • @dougmercer
      @dougmercer  3 місяці тому

      That library looks awesome. JavaScript has a few really powerful animation libraries
      P5.js is also very cool
      I'd consider trying them more in the future if I eventually get frustrated with trying to extend/maintain this library

    • @vaisakh_km
      @vaisakh_km 3 місяці тому

      ​​@@dougmercer you might be intrested in animotion too
      Wrt p5js, processing is also solid option (i started learning coding outside of school is with p5.js and processing, after cpp from school)
      manim (3b1b), motion canvas, animotion(joy of code), remotion (with react)
      There are a lot of libs to do this...

    • @dougmercer
      @dougmercer  3 місяці тому

      @@vaisakh_km processing based animation libraries are definitely interesting. I've played with them a bit, and am not ruling out eventually replacing Cairo with Py5 as the actual underlying library that draws stuff

    • @dougmercer
      @dougmercer  3 місяці тому

      Manim doesn't work well for me. Animotion is interesting but I believe he screen records his final animations rather than actually rendering directly to video (which I don't want to do)

    • @vaisakh_km
      @vaisakh_km 3 місяці тому

      @@dougmercer i felt manim really hard to work with, as he was not a programmer by profession... and made it as a personal lib
      But best way to do anything is doing it by ourself :) maybe slow and hard, but in the long run, worth the effort

  • @specy_
    @specy_ 3 місяці тому

    Instead of manim, have you ever seen "motion canvas"?

  • @cvabds
    @cvabds 3 місяці тому +2

    I bet you can't port it to TempleOS

    • @dougmercer
      @dougmercer  3 місяці тому +1

      Native integration with God words and God doodle would bring this library to the next level 🤔

    • @cvabds
      @cvabds 3 місяці тому

      @@dougmercer forget about the bible stuff, just develop on it, fork it call it heresy OS

  • @uis246
    @uis246 2 місяці тому

    Programming is just applied mathematics. So another version manim.

  • @shakkar23
    @shakkar23 3 місяці тому +1

    The complexity of manim left a horrible taste in my mouth. Even the examples are hard to read as someone who never worked with it before.
    I hope this project goes smoothly, a simple to use, easy to understand animation library is direly in need in my opinion.

    • @dougmercer
      @dougmercer  3 місяці тому

      Manim definitely has a steep learning curve. I can't promise I'll achieve "simple" for everything that Manim is able to do, but my goal is to at least make it simple for animating code.

  • @fantasmashy
    @fantasmashy 3 місяці тому

    i got til the end of the video... i don't even know what "animation" means here

  • @Bakobiibizo
    @Bakobiibizo 3 місяці тому

    i can help you document it

    • @dougmercer
      @dougmercer  3 місяці тому

      I appreciate it! Could def use the help as it gets closer to being ready. Right now I'm debating a refactor of how I handle variables, so stand by for a bit!

  • @DesignThinkerer
    @DesignThinkerer 3 місяці тому +1

    for those interested to animate with code, there is also manim and remotion

  • @Skeleman
    @Skeleman 3 місяці тому +1

    you are very attractive and have a nice looking keyboard

    • @dougmercer
      @dougmercer  3 місяці тому

      Aw thanks. Keyboard is Nuphy air75v2. In my next video, I'll show a keyboard I just got that's even cooler looking (ZSA Voyager)

  • @ianliu88
    @ianliu88 3 місяці тому +4

    Man, your beeping sounds are WAY too loud. It hurts my ears when using headphones

    • @dougmercer
      @dougmercer  3 місяці тому

      My bad...

    • @ego-lay_atman-bay
      @ego-lay_atman-bay 3 місяці тому +2

      I think your headphones are just too loud, since I'm using earbuds, and I have my volume at my usual below 50%, and he sounds just as loud as other youtube videos (probably even a bit quieter).

  • @duytdl
    @duytdl 3 місяці тому +5

    You didn't mention what other existing and well-established libraries and stuff you've tried and why they didn't suit your needs or their shortcomings. Screams over engineering to me.

    • @dougmercer
      @dougmercer  3 місяці тому +3

      I've tried a few others. Reveal.js for one-- the automatic animations just don't look good ¯\_(ツ)_/¯
      Many libraries will do general animations better than whatever I make, but surprisingly no library out there really animates code transformation well enough (in my opinion). That said I'd be happy to be proven wrong. Did you have a library in mind?

  • @qwoolrat
    @qwoolrat 3 місяці тому +1

    this guy has never heard of regexp 😞😞

    • @dougmercer
      @dougmercer  3 місяці тому

      What makes you think that? The part about indexing into the code object in Manim?
      My point was, I shouldn't need to look back at the source code to index into the SVG glyphs stored in the Manim code object. I tried to write a Manim extension to do it, and the bookkeeping was a nightmare

  • @mbarrio
    @mbarrio 3 місяці тому

    No source? Bad... Sad... Nothing burger

    • @dougmercer
      @dougmercer  3 місяці тому

      Sorry, it's coming eventually. I can't spend a year on one video. I plan to make a few more videos about the dev process (testing, documentation, interesting problem solving) and then open source it

  • @TheSaintsVEVO
    @TheSaintsVEVO 3 місяці тому

    your nose is getting redder as the video goes on, whats up with that

    • @dougmercer
      @dougmercer  3 місяці тому

      Mmm, I messed around with color correction to make the video look nicer. I don't know what I'm doing, and probably exaggerated minor color differences. ¯\_(ツ)_/¯

  • @Yoku5
    @Yoku5 3 місяці тому +2

    You have a bug at 14:35: `__rsub__` should return the negation of `__sub__`

    • @dougmercer
      @dougmercer  3 місяці тому

      Oh dang, you're right. Thanks!
      One of the many things I haven't had the chance to write unit tests for 😬
      edit: my rtruediv was wrong too 🤦🏻 . welp, unit tests for those are written now ¯\_(ツ)_/¯