My Own 3b1b Animation Engine but in C

  Рет қаралды 48,079

Tsoding Daily

Tsoding Daily

17 күн бұрын

Streamed Live on Twitch: / tsoding
Panim Playlist: • Panim
References:
- 3Blue1Brown Channel: / 3blue1brown
- Tsoding - Musializer - github.com/tsoding/musializer
- Tsoding - Tula - github.com/tsoding/tula
- Easings - easings.net/
Support:
- BTC: bc1qj820dmeazpeq5pjn89mlh9lhws7ghs9v34x9v9
- Pay for my VPS: zap-hosting.com/en/shop/donat...

Пікірлер: 94
@BboyKeny
@BboyKeny 14 күн бұрын
"Remember the code is more scared of you than you are scared of the code" - Zozin 2024
@Lewdovico
@Lewdovico 15 күн бұрын
Looks like we're alive.
@TheMelopeus
@TheMelopeus 14 күн бұрын
He is alive and well, active on twitch and discord :D
@user-lc8gw8vl7h
@user-lc8gw8vl7h 14 күн бұрын
that "i can't even spell 'world' anymore, i haven't programmed in C for a while" caught me off guard
@Daniikk1012
@Daniikk1012 15 күн бұрын
I think the main reason people love Lua is because of how incredibly simple, yet powerful it is (Same reason people like C, but it's a scripting language, so in a different way). The only structural data type in it is a table. Want arrays? Use integers as keys. Want an object? Use field names. Want a dictionary? Use whatever you want as the key. Want to access something that doesn't exist? It's nil. Want to delete something? Set it to nil. Applies to both fields in tables and variables. The syntax is minimal. No need for semicolons OR newlines, because it is always possible to infer where statement separation occurs. There are only 21 keywords, which is mostly control flow and primitive values. Want more power? That's what metatables are for. Use them to add operator overloading to your tables. Or use them to implement inheritance. The compiler/interpreter itself is also deliberately simple. It is a single pass compiler, written in pure ANSI C (Except for dynamic linking, but for embedding it is an understandable compromise), very fast and small (One of the fastest scripting languages), because it was designed to be embeddable.
@TheDolphiner
@TheDolphiner 15 күн бұрын
Reading the lua manual really gives the feeling of "we want the most power with the fewest features." It doesn't have traits I look for in a "real" language, but it's inspiring as a different perspective designed with a different use case than the mindset I usually work with.
@angryapplebombs914
@angryapplebombs914 15 күн бұрын
This is actually one of the best comments I’ve read describing why I find Lua so enjoyable thank you for this. I might steal it later
@JH-pe3ro
@JH-pe3ro 15 күн бұрын
I switched over from Lua to Janet recently because it brings the mindset of Lua to a Lisp syntax, without the compromises of Fennel or the baggage of CL/Scheme systems. And it's more fleshed out as a standalone scripting system, which ended up being "bolted on" to Lua with Luarocks, and I've never been happy with how that worked. It takes a little while to get comfortable with the idioms specific to Janet, but I'm finding it cozy enough. Edit: Also, if we are after minimalism, Forth is a decent scripting environment for gluing together chunks of assembly, and probably enough for this usecase.
@jeremyjurksztowicz6278
@jeremyjurksztowicz6278 14 күн бұрын
Metatables and coroutines elevates Lua to S-tier power. Also small and fast enough to run on a GameBoy Advance. Love Lua.
@gustavojoaquin_arch
@gustavojoaquin_arch 2 күн бұрын
Based, this is why I use neovim, I love Lua
@adampaul7905
@adampaul7905 15 күн бұрын
I want a full song from "Can you Rust doooo thaaaat ? i don't think soooo"
@HuntingKingYT
@HuntingKingYT 12 күн бұрын
"Remember - code is afraid of you more than you are afraid of code" - I really like this quote, until they start using it on dogs.
@toddkfisher
@toddkfisher 15 күн бұрын
The commentary on Stack Overflow alone makes this worth watching.
@rubenvis6568
@rubenvis6568 14 күн бұрын
Starting at about 1:52:10 :-)
@curious5972
@curious5972 13 күн бұрын
I made my own engine almost 2 years ago for my grad project. I used ffmpeg and nodejs child process and my own graphics library written in JS. Which gives me a massive success in grad result. Its even 3 times faster than manim ❤
@ardnys35
@ardnys35 5 күн бұрын
hi, i am looking for inspiration for my grad project and this graphic stuff is really interesting. how difficult was it and did you do it by yourself or with a group? it's hard to find a topic interesting but also not too difficult to scare people away, because we have to do it with a group.
@ratchet1freak
@ratchet1freak 15 күн бұрын
For programming the animation itself maybe an immediate mode style api would be nice. Instead of having to build an array of keyframes. Which are going to be a pain to change on a hot reload. If you don't mind borrowing from sebastian lague's animation setup. That is you have a function that gets called every frame and it then does things like float t = interval(a, 5); which returns a value from 0 to 1 depending on where in the animation you are. Then the next time you call interval(a, 3) the effective interval starts after the previous one finished. And it uses the t to render an animation. To facilitate this you would need a float animTime; and a float currentTime; in Animation where animTime gets updated based on the input into interval() and currentTime is the time you are visualizing. So the return value becomes return remapAndClamp(currentTime, animTime, animTime + period, 0, 1) You can apply ease-in and out on the returned t if needed.
@chillydill4703
@chillydill4703 14 күн бұрын
I like where this is going, tsoding!
@SiiKiiN
@SiiKiiN 15 күн бұрын
I'm excited to see what primitives you decide to use. I know that the what makes manim good is the choice of primitives, I'm assuming the same needs to happen with this library considering its a programming viz and not just a viz.
@stephanbranczyk8306
@stephanbranczyk8306 14 күн бұрын
Honestly, AI is not much better. Google's AI would refuse to give information on C/C++ functions to minors because the functions were tagged "unsafe"
@alexanderkovalev391
@alexanderkovalev391 10 күн бұрын
you're actually reinvented erlang's hot code reload approach with your plugin system. take a look at those ideas, it is really cool when the entire system upgrades with no restart
@_orangutan
@_orangutan 14 күн бұрын
I think Tsoding programs in a Hyperbolic Time Chamber.
@gg-bt4sp
@gg-bt4sp 15 күн бұрын
Hi, Panim playlist link broken Have a nice day
@TsodingDaily
@TsodingDaily 15 күн бұрын
Thank you! Fixed!
@SaidMetiche-qy9hb
@SaidMetiche-qy9hb 9 күн бұрын
17:20 Skia is a giant Google bloatware for drawing shapes that's like 600megs of source
@blackhaze3856
@blackhaze3856 15 күн бұрын
Is 3b1b parent of R2D2?
@Shywizz
@Shywizz 15 күн бұрын
Its 3*blue*1*brown* another channel that does explanatory math videos
@angelcaru
@angelcaru 15 күн бұрын
@@Shywizz www.wikipedia.org/wiki/Joke
@oserodal2702
@oserodal2702 15 күн бұрын
​@@angelcarubetter response than wooosh
@howdoiexitvim-sg2xl
@howdoiexitvim-sg2xl 15 күн бұрын
​@@oserodal2702the most amazing thing is youtube not obliterating the comment containing a link
@programist2.091
@programist2.091 15 күн бұрын
And a nephew of 2b2t
@hieudoan4929
@hieudoan4929 5 күн бұрын
Lol perfect illustration of SO answer
@sudoupdate
@sudoupdate 9 күн бұрын
Itzzzzz Tshooooding suiiiiiiiiii
@zeusdeux
@zeusdeux 15 күн бұрын
New tsoding vid, let’s goooooo!!
@hubstrangers3450
@hubstrangers3450 10 күн бұрын
Thank you....
@SaidMetiche-qy9hb
@SaidMetiche-qy9hb 9 күн бұрын
Tosding the gordon ramsy of C programming 🤣🤣
@apenaswellignton
@apenaswellignton 15 күн бұрын
Pog
@nashiora
@nashiora 14 күн бұрын
If I have to use a dynamic language, for any number of reasons, I'd want it to be Lua. I love it for the semantics, definitely not the syntax haha. Otherwise, yes I'd also prefer statically typed compiled languages.
@aniketbisht2823
@aniketbisht2823 19 сағат бұрын
2:02:53 Why do you use memset/memcpy for struct instead of assignment? Is this a C thing? I think C does support struct assignment. As a C++ programmer, this is absolutely bizarre.
@user-gi8oc4dr1c
@user-gi8oc4dr1c 14 күн бұрын
Best animation for loot boxes in game 😂
@AlmogD
@AlmogD 15 күн бұрын
LOVE YOUR VIDEOS The Panim Playlist link is not working :(
@mihailazar2487
@mihailazar2487 14 күн бұрын
As the prophecy fortold
@kerowagdy9417
@kerowagdy9417 12 күн бұрын
How is Twitch Chat caption even possible? 🤔 I haven't uploaded a single video on yt so it might be easy. Is it that you can export stream chat as transcript ?
@yjlom
@yjlom 11 күн бұрын
you can read the chat with the API, so it should just be a matter of storing the comments with their timestamps and then converting that to a transcript track
@kerowagdy9417
@kerowagdy9417 11 күн бұрын
@@yjlom Yeah that makes sense
@BolasDear
@BolasDear 7 күн бұрын
what are programming socks , i had not found them in whole market.
@anon_y_mousse
@anon_y_mousse 14 күн бұрын
Maybe RIIC should become the catch phrase. I think I should start that cult.
@bufferc6362
@bufferc6362 15 күн бұрын
I love you.
@hamed9327
@hamed9327 11 күн бұрын
the pascal case function names are so clear, what is this font?
@imgoingtojuneyou
@imgoingtojuneyou 5 күн бұрын
Iosevka
@suvetar
@suvetar Күн бұрын
Skia is a graphics library from Google, it has a lot of handy bindings ... in Csharp for example ... raylib is way cooler though 🙂
@tianned
@tianned 14 күн бұрын
38:18 expectation 38:34 reality 42:25 42:32 Mr Zozins explanations are the best imo, probably would become a great teacher if he wished to
@MasterHigure
@MasterHigure 14 күн бұрын
Macro source is as unreadable in C as it is in Rust.
@shoofle
@shoofle 8 күн бұрын
the captions seem to be a chat playback for some reason!
@lordeji655
@lordeji655 13 күн бұрын
28:53 I don't know why people ignore the gcc "-fanalyzer" option which gives A LOT more warning and would, for example here, clearly give a warning for a segfault.
@multicoloredwiz
@multicoloredwiz 13 күн бұрын
It's annoying n slow. Surprisingly cl /analyze is pretty good!
@lordeji655
@lordeji655 13 күн бұрын
@@multicoloredwiz annoying ? To have warnings that help you not crash your program ? And obviously it's slower. It's a tradeoff as always in programming. The most important thing is that you can choose between safety and speed which is the power of C (while rust fans will brag about the safety and then compile for 10min).
@multicoloredwiz
@multicoloredwiz 13 күн бұрын
@@lordeji655 I agree with you on all points I'm just answering ur question
@lordeji655
@lordeji655 13 күн бұрын
@@multicoloredwiz AH sorry x)
@GajanandamaniAdhikari
@GajanandamaniAdhikari 8 күн бұрын
Bruh, what font is this. Sweet
@0xdeadbabe240
@0xdeadbabe240 4 күн бұрын
Iosevka
@KnightOfEvil
@KnightOfEvil 13 күн бұрын
Why captions are just Twitch Chat. Is that a mistake?
@p99chan99
@p99chan99 13 күн бұрын
No he implemented it himself
@multicoloredwiz
@multicoloredwiz 13 күн бұрын
No it's tigjt
@tiwanndev
@tiwanndev 14 күн бұрын
what do you mean google shitiness
@DanelonNicolas
@DanelonNicolas 14 күн бұрын
Great 🎉
@marcsfeh
@marcsfeh 15 күн бұрын
mm nice
@RealCatDev
@RealCatDev 15 күн бұрын
when Vulkan?
@wildwestrom
@wildwestrom 14 күн бұрын
He did a Rust Vulkan stream awhile ago. Quite useful imo
@RealCatDev
@RealCatDev 14 күн бұрын
@@wildwestrom I don't care about some smelly bad language
@bhavyakukkar
@bhavyakukkar 14 күн бұрын
​@@RealCatDev then why are you watching this video
@RTZemun
@RTZemun 14 күн бұрын
​@@bhavyakukkar he probably wants to say that rust is a bad language and that he wants to see vulkan in C
@RealCatDev
@RealCatDev 14 күн бұрын
@@RTZemun yes
@mmmmm1438
@mmmmm1438 15 күн бұрын
you say what welcome to ? what
@AnksioXD
@AnksioXD 15 күн бұрын
recreational programming session
@aniketbisht2823
@aniketbisht2823 3 күн бұрын
Seeing you use macros all over the place gives me aneurysms, as a C++ programmer. I guess this is what "production" C looks like because you need generics and meta-programming in large projects. In C++ using templates (with concepts) and function overloading helps you achieve this (along with little bit of constexpr). You said you are not a fan of "dynamic" languages. Here C is no better than those dynamic languages. Whereas in C++ most (generic programming) errors would be caught at compile time and the usage of static_asserts and concepts make those errors easy to reason about. 44:04 It's embarrassing to see this dude. This function macro, in C++, could have been a simple function template (with appropriate constraints).
@monad_tcp
@monad_tcp 2 күн бұрын
C++ template metaprogramming is the embarassing thing
@D-V-O-R-A-K
@D-V-O-R-A-K 15 күн бұрын
WHERE RED CAR???
@dorktales254
@dorktales254 14 күн бұрын
you mean twitch.tuvalu right? right?
Can C actually do Perfect Bézier Curves?
2:17:22
Tsoding Daily
Рет қаралды 6 М.
I hope FFmpeg's Twitter won't Cancel me for This...
2:27:17
Tsoding Daily
Рет қаралды 19 М.
Mini Jelly Cake 🎂
00:50
Mr. Clabik
Рет қаралды 17 МЛН
Зу-зу Күлпәш.Курс (6 бөлім)
40:48
ASTANATV Movie
Рет қаралды 506 М.
ISSEI funny story😂😂😂Strange World | Pink with inoCat
00:36
ISSEI / いっせい
Рет қаралды 28 МЛН
[Vowel]물고기는 물에서 살아야 해🐟🤣Fish have to live in the water #funny
00:53
Easiest Tutorial to Learn DSPy with LLM Example
11:22
Fahd Mirza
Рет қаралды 371
Is John Carmack Right about UI?!
1:52:02
Tsoding Daily
Рет қаралды 29 М.
This Release is Insane!
1:25:56
Tsoding Daily
Рет қаралды 49 М.
How I re-created the rhythm game osu! from scratch in C++!
5:51
Omer Hasanov
Рет қаралды 20 М.
i cant stop thinking about this exploit
8:40
Low Level Learning
Рет қаралды 263 М.
Procedurally Generating Icons for my Farming Game
18:50
ThinMatrix
Рет қаралды 97 М.
WHY IS THE HEAP SO SLOW?
17:53
Core Dumped
Рет қаралды 178 М.
Teaching myself C so I can build a particle simulation
11:52
Gradience
Рет қаралды 115 М.
Is C++ better than C?
1:46:10
Tsoding Daily
Рет қаралды 27 М.
Signals. I spent 2 years to understand this part.
21:24
kimylamp
Рет қаралды 118 М.
The power button can never be pressed!!
0:57
Maker Y
Рет қаралды 43 МЛН
Fiber kablo
0:15
Elektrik-Elektronik
Рет қаралды 5 МЛН
Распаковка айфона в воде😱 #shorts
0:25
Mevaza
Рет қаралды 1,4 МЛН
📱 SAMSUNG, ЧТО С ЛИЦОМ? 🤡
0:46
Яблочный Маньяк
Рет қаралды 935 М.
Apple. 10 Интересных Фактов
24:26
Dameoz
Рет қаралды 69 М.