Тёмный

Writing a Physics Engine from scratch 

Pezzza's Work
Подписаться 141 тыс.
Просмотров 192 тыс.
50% 1

Github github.com/johnBuffer/VerletSFML
Music used pixabay.com/music/ambient-min...

Наука

Опубликовано:

 

14 апр 2022

Поделиться:

Ссылка:

Скачать:

Готовим ссылку...

Добавить в:

Мой плейлист
Посмотреть позже
Комментарии : 511   
@PezzzasWork
@PezzzasWork 2 года назад
There is an error at 3:04 at line 41: it should be (radius - 50.0f). Thanks to those who pointed it out to me!
@PezzzasWork
@PezzzasWork 2 года назад
@Vitor m the dt is not needed because here « velocity » is in fact the distance traveled since the last update so it’s already equivalent to velocity * dt
@ziyadcodes
@ziyadcodes 2 года назад
Me after spending 4 hours of pure suffering to figure out the problem then figuring it out and being so proud of my self. Then moving both of my fingers up to see the comment section and realizing that the first comment is addressing the problem 😭😭😭😭😭😭😭😭😭. It's even worse when I realize that I have tests and that I should have spend that time studying 😭😭😭😭😭😭. Please edit the video to save people from suffering like that. Or maybe it's just me whose that stupid |(>_
@TetyLike3
@TetyLike3 2 года назад
@@ziyadcodes sorry not sorry ¯\_(ツ)_/¯
@wiking2888
@wiking2888 2 года назад
Thank you soooo much I finally have it working
@oamioxmocliox8082
@oamioxmocliox8082 2 года назад
;)
@AngeTheGreat
@AngeTheGreat 2 года назад
I like how it really doesn't take much to create an amazing looking result (as long as you know what to actually implement of course). Nice video!
@PezzzasWork
@PezzzasWork 2 года назад
Thank you! And thank you for your videos as well, I found your channel very recently and I really like what you are doing! it seems that we have common interests :)
@PezzzasWork
@PezzzasWork 2 года назад
Waiting for your next video as well! (And btw the video on bloom was amazing)
@LineOfThy
@LineOfThy 10 месяцев назад
engine guy :D
@yell9140
@yell9140 2 года назад
My understanding of the code is currently too limited, but I will definitely learn and come back to this amazing video, I have always wanted to do things like that. Amazing work again Pezzza, wish you all the best.
@mickyr171
@mickyr171 2 года назад
I dont even know what language it is lol, i was thinking C++ but not 100%
@mickyr171
@mickyr171 2 года назад
Maybe rust
@PezzzasWork
@PezzzasWork 2 года назад
It’s indeed C++ :)
@mickyr171
@mickyr171 2 года назад
@@PezzzasWork thought so, I'm more a java/c# man myself, want to learn c++ but struggle to wrap my head around some of the functions
@PezzzasWork
@PezzzasWork 2 года назад
C++ is a big and complex language, it's not easy to get into it
@NotAFoe
@NotAFoe 2 года назад
Wow I love this kind of content so much, thanks pezzza!
@PezzzasWork
@PezzzasWork 2 года назад
You're welcome :)
@gaspardallimant1768
@gaspardallimant1768 2 года назад
How ?! It looks so easy to implement and the result is awesome ! Thank you so much, each of your videos is a bigger mindblowing for me than the previous one
@bigsmoke6414
@bigsmoke6414 2 года назад
I guess thats the Sebastian Lague Effect😉
@muuubiee
@muuubiee 2 года назад
I suspect this is just the art of having studied some mathematics (multivariable calculus and linear algebra is probably enough). With math knowledge you can just take the equation and implement it.
@americanhuman1848
@americanhuman1848 Год назад
why struggle finding happiness when you can just watch this video? seriously its so relaxing and makes you feel like you have reached nirvana
@stylextv
@stylextv 2 года назад
The colored circles at the end turning into your logo was pretty bad ass. How was it done though? Running the simulation to see where each object ends up then running the simulation again and coloring each object based on its final resting point?
@themikek99
@themikek99 2 года назад
Maybe it's reversed? B)
@khatharrmalkavian3306
@khatharrmalkavian3306 2 года назад
@@themikek99 Possibly, but Verlet integration is lossy when you add collision handling, so it would have to be a different process in order to be reversible. I think Stylex may have the right idea there. The process is entirely deterministic, so with the same conditions you'll always get the same outcome. You could run the simulation once, take note of where each object ends up, then color them accordingly, and re-run the sim to get the logo.
@gytiskau1865
@gytiskau1865 2 года назад
@@khatharrmalkavian3306 You could also bake the whole simulation, color the outcome and replay
@vacucumber_enjoyer
@vacucumber_enjoyer 2 года назад
He probably read the image data and the. assigned the objects for some of the pixels and then gave them the velocity to make them move in the right way.
@GG64du02
@GG64du02 2 года назад
If he did not do it in reserve i am interested on how he pulled it off....
@dragonminz602
@dragonminz602 2 года назад
Beautiful work and thank you for showing how you did it. That was very interesting. Also very cool ending
@carrymeorgg8512
@carrymeorgg8512 2 года назад
You inspired me to learn C++ after fearing its complexity for months. I finally was able to learn C++ because of you. Please make more videos like this in the future. I enjoyed the teaching style and learned a lot. Keep up the great work man.
@PezzzasWork
@PezzzasWork 2 года назад
Thank you so much for your message, it is so cool to read ! I hope you will enjoy the possibilities that c++ offers! It’s a complex but very powerful language
@nejsonsvejson9861
@nejsonsvejson9861 11 месяцев назад
Yeah, the hardest part of programming is overcoming the fear of complexity. It's what kept me away for years.
@MM2isBest
@MM2isBest Месяц назад
So did you learn it carry?
@bird5790
@bird5790 Год назад
Please a part 2! this was by far the most interesting and ACTUALLY HELPFUL video i have seen in a while
@general3978
@general3978 2 года назад
This video is a masterpiece in technical execution and artistry
@SuboptimalEng
@SuboptimalEng 2 года назад
I'm really glad to have found your channel after Sebastian Lague made the ant simulation video. The stuff you make is amazing!
@alliepiper4772
@alliepiper4772 2 года назад
This is really cool, I always learn something new watching your videos! Implementing collisions and constraints by simply updating positions and having an integration function that can figure out velocity/acceleration is powerfully clever. Great explanation at the beginning, and the surprise picture at the end was a nice touch. Looking forward to your next adventure :)
@nothingnothing1799
@nothingnothing1799 2 года назад
I love the inclusion of the code itself seeing what it does is cool but being able to see how it was made is very cool imo
@spencer__
@spencer__ Год назад
No idea how you made a physics programming video both beatiful and relaxing. Amazing work.
@sushismitcher225
@sushismitcher225 4 месяца назад
Wow! Incredible. I can't believe how elegantly and simply you set up the code for a complex-looking and incredible result. I also can't believe how you fit this into a 9min video. You're incredible.
@alexhooper27
@alexhooper27 Год назад
I always finish your videos in awe. This is what I aspire to be able to do with my knowledge of math and coding.
@movingheadmau8128
@movingheadmau8128 2 года назад
Always love watching your videos for the cool content you tackle :)
@PezzzasWork
@PezzzasWork 2 года назад
Thank you :)
@user-tr2hc2xx3b
@user-tr2hc2xx3b 2 года назад
Wow, looks so simple and elegant! Great job, looking forward to more videos like this one!
@michaberkowicz8239
@michaberkowicz8239 2 года назад
That ending was..... unexpected
@SpringDavid
@SpringDavid 9 месяцев назад
Nice cock
@sierpinskibrot
@sierpinskibrot 2 года назад
Phenomenal work ur doing here man
@singularityoptimist
@singularityoptimist 2 года назад
Excellent work and a beautiful result
@cirogarcia8958
@cirogarcia8958 2 года назад
It's amazing! You just taught me in less than 10 minutes what I wasn't able to learn on my own in weeks! Do you plan on uploading more videos like this in the future? It would be amazing to see how you deal with problems like tunnelling and static collision shapes
@dandymcgee
@dandymcgee 2 года назад
Very cool demonstration. Great work.
@rtsa4633
@rtsa4633 Год назад
This video is gold and I will definitely have to come back to it in the future if I build something like this
@gigaprofisi
@gigaprofisi Год назад
will never regret subscribing to this amazing and talented channel
@mariusvanc
@mariusvanc Год назад
5:40 I was thinking the "perfect" solution to this would be, aside from sub-stepping, to add a bit of friction every time there is a collision, this would settle the objects quicker so they don't vibrate while stationary. Just multiply the vectors by 0.99 or something like that.
@kikawet
@kikawet 2 года назад
I loved the video and really respect this channel! if you do a version with continuous collision detection then there is nothing more to expect from you!
@mementomori7160
@mementomori7160 2 года назад
I'm glad I subscribed to you, this vid made me really interested in making my own physic engine
@pelicannot.
@pelicannot. 2 года назад
i love this channel :D
@PezzzasWork
@PezzzasWork 2 года назад
Thank you :)
@NimsoStudios
@NimsoStudios 2 года назад
Bravo my friend, Bravo! An excellent look at the basic Velocity per frame physics engine and just how powerful circle collisions can be. I spent a moment trying to figure out why the velocity was updating before realising you were actually calculating it each step rather than keeping it persistent throughout. I'm going to play a little with the idea of calculating Velocity before applying motion to it, in 3D though since I work a lot on 3D character control systems and write the motion custom. This has been visually the nicest way to show the beauty of a physics engine.
@PezzzasWork
@PezzzasWork 2 года назад
Thank you very much! This should be directly transposable to 3D. I think it’s a good fit for what you are trying to do!
@NimsoStudios
@NimsoStudios 2 года назад
@@PezzzasWork I do plenty of platformer gameplay systems, but usually keep velocity persistent rather than calculate immediately before applying the new step. Definitely something I want to try out, might end up making some cool stuff out of it too.
@rodakdev
@rodakdev 2 года назад
That chicken has glasses for a reason! So cool!
@JosephCatrambone
@JosephCatrambone 2 года назад
Good choice of music. Nicely demoed. Solid video.
@eboatwright_
@eboatwright_ 2 года назад
This is amazing! Thank you so much for your help! I've always wanted to make a physics engine, and I'll definitely implement this in Rust! :D
@valet_noir
@valet_noir 2 года назад
Love ur content, great to see a "behind the simulation" video ! Amazing :D
@WDGSWhatDoesGodSay
@WDGSWhatDoesGodSay 2 года назад
OMG I have been trying to figure out how to make a physics "engine" like this from scratch.
@WDGSWhatDoesGodSay
@WDGSWhatDoesGodSay 2 года назад
Can you make the .cpp files available in the description or tell me where I can find them. THANKYOU!!!
@newcooldiscoveries5711
@newcooldiscoveries5711 Год назад
Unreal! Very Enjoyable! Thank You!
@aleksandarstankovic4476
@aleksandarstankovic4476 Год назад
This video greatly benefits my coding skills! Thank you for the explenation!
@SpartanG318
@SpartanG318 Год назад
I find you right that moment and i am a software engineer in trainee... i can understand the code a bit and on the other hand i sit here and think, i know nothing about physics and simulations. Pretty mind blowing your work. This Bonus at the end.... HOW?? Thanks man, i cant stop to smile. :)
@akosszabo3163
@akosszabo3163 2 года назад
Your work is very impressive. Thanks for the video. It motivated me to implement this on the language I know the most, so I implemented it in Java. Finally after a couple of hours it worked fine. I implemented all the functions you demonstrated. Functions can be initiated from the menu. Additionally based on the chain example I implemented a rigid body. The last function will be the magic. You can open a picture and cut a part of it and that will appear as your logo did. I will share it as soon as it is done. So thanks again, nice job!
@GradientAscent_
@GradientAscent_ 2 года назад
Love these endings, keep it up
@LogInValid
@LogInValid 2 года назад
This makes me want to go back to school and learn programming. Simply Amazing!
@sanderbos4243
@sanderbos4243 2 года назад
Amazing tutorial, and the ending was such a twist!
@softpaw6234
@softpaw6234 2 года назад
These simulations would have made great screensavers back when we needed those
@NoxiusVI
@NoxiusVI Год назад
Amazing tutorial! Worked really well even when using a different language!
@Katniss218
@Katniss218 Год назад
The end was really cool!
@NeverForgetNasa
@NeverForgetNasa Год назад
Oh my god, that is so beautiful.
@duongquanghuy4387
@duongquanghuy4387 2 года назад
The ending got me. Nice work!
@brecoldyls
@brecoldyls Год назад
Can’t wait for part 2: Writing a Physics Engine in Scratch
@xvitxr
@xvitxr Год назад
bro, this video is a masterpiece, my dream is to be a developer like you. i saw all your past and recent videos and every one of them are amazing! please, PLEASE keep the good work
@Reditect
@Reditect Год назад
Amazing! I've been trying to understand the programming behind physics and make my own 2D and 3D game engines. Visually appealing and informative video. Thanks. :)
@redspyro4750
@redspyro4750 Год назад
I don't even know much about code, so this is already very helpful! And by helpful I mean I will probably keep rewatching this every time I want to do physics simulation.
@henwill8
@henwill8 2 года назад
Wow it literally felt like magic how it just simply worked with such little effort and code
@caoduythanh1453
@caoduythanh1453 2 года назад
what a master piece!
@busy_beaver
@busy_beaver 2 года назад
Thanks for this great video!
@Rentaro_dev
@Rentaro_dev 2 года назад
Nice video man! A wiki article and your video helped me very much.
@glumpfi
@glumpfi 2 года назад
:O Especially the end blew me away!
@williambarajas8090
@williambarajas8090 2 года назад
yes!!!!!!! love the video please make more of them!!!
@osartur
@osartur 2 года назад
You must have worked really hard to get where you are. You are really good at what you do
@osartur
@osartur 2 года назад
I used a translator so I don't know if what I said was strange 😁
@wilykary
@wilykary 2 года назад
@@osartur nah not at all
@TetyLike3
@TetyLike3 2 года назад
@@osartur the only problem with that sentence was the punctuation lol
@pineapplerindm
@pineapplerindm Год назад
@@TetyLike3 i dont see anything wrong with the punctuation
@DevashishGuptaOfficial
@DevashishGuptaOfficial 2 года назад
This video made my day!
@devmarboy4045
@devmarboy4045 Год назад
this is so sick, can’t wait to get as advanced as u lol
@NStripleseven
@NStripleseven 2 месяца назад
The concept of Verlet integration is actually super cool IMO, because it means momentum changes from collisions/etc are handled more or less automatically.
@nikbivation
@nikbivation Год назад
thank you for this!
@Chareidos
@Chareidos 2 года назад
lol... was gonna write so many questions in another video, asking how to get there... now I found this clip before I would have sent that long comment! This is a clip to start with, I guess. Thank you for enabling me to at least try. Subscribed! Maybe you link this video clip in the notifications of other stuff you uploaded!
@markwinfield845
@markwinfield845 8 месяцев назад
Great video, I am subscribing.
@mctuble
@mctuble Год назад
Just using the colors makes this so much better lol.
@starship9874
@starship9874 2 года назад
This is the most underrated coding channel ever. Your videos are so high quality
@Hailfire08
@Hailfire08 2 года назад
Awesome video!!!
@prometheusli101
@prometheusli101 2 года назад
amazing effect
@Archangel2x
@Archangel2x 2 года назад
The ending logo showing up was like magic.
@mr.milindsingh7671
@mr.milindsingh7671 Месяц назад
This was fantastic. I loved the way you simply coded this complex looking problem. I was wondering what would it take if I wanted to add friction forces among particles.
@arcturuslight_
@arcturuslight_ 2 года назад
In the last scene, did you assign colors to balls and then rerun the simulation since the physics is deterministic?
@error-42
@error-42 2 года назад
Yes, they did.
@official-obama
@official-obama 2 года назад
@@capturedflame huh?
@yudhistira7231
@yudhistira7231 2 года назад
Awesome dudeee, I never get bored watching your videos. A subscriber btw, keep it up!🏃
@PezzzasWork
@PezzzasWork 2 года назад
Thank you!
@Radu
@Radu 2 года назад
Nice ending! It's the reason I subscribed :-)
@odedkadshai
@odedkadshai 2 года назад
felt like magic show
@ArashRabbani
@ArashRabbani Год назад
the jaw dropping last scene!!!
@jacktapping9290
@jacktapping9290 2 года назад
beautiful
@leod6011
@leod6011 9 месяцев назад
Cheers to that bro
@user-lp8pq4en5u
@user-lp8pq4en5u Год назад
excellent!!!!
@VincePhoenix
@VincePhoenix 2 года назад
Impressive !
@and_I_am_Life_the_fixer_of_all
@and_I_am_Life_the_fixer_of_all 2 года назад
that ending felt like an assembly theory flex before its time, wow.
@lorenzoassiro8532
@lorenzoassiro8532 2 года назад
Wow this code is mind blowing🤯
@simonsvoboda8849
@simonsvoboda8849 4 месяца назад
I'm so glad youtube recommended this video to me. How did I not know about this??
@Sam-hu3xt
@Sam-hu3xt Год назад
Three words: epic!
@unknown-bx8my
@unknown-bx8my 2 года назад
awesome😍
@mathijswy
@mathijswy 2 года назад
Whoa, that's amazing for entry projects. Is the code of the engine and physic imports available somewhere to play around with?
@artemonstrick
@artemonstrick 2 года назад
Fantastic
@expressoaddict
@expressoaddict Год назад
That ending was lit.
@HyperHrishiHD
@HyperHrishiHD Год назад
You scared away half of the people away with the equation as the first thing in the video. But I’m all here for it
@BobzBlue
@BobzBlue 2 года назад
I remember Kaze Emanuar talk about using ray casting to calculate collision in between frames, an alternative to sub steps but may not provide realistic physics... I don't really know.
@tomfourcaudot9535
@tomfourcaudot9535 6 месяцев назад
Amazing video, I learned a lot from it. I just have a quick question : what software did you use to render the video ( like in the beginning when you explained the formula ). It looks like the 3blue 1brown animation software.
@mariovelez578
@mariovelez578 2 года назад
nice physics baking at the end 😎
@MrWandalen
@MrWandalen 2 года назад
I love this
@raushankumar2336
@raushankumar2336 Год назад
I can't understand how thing is being applied, but i loved it especially the bonus clip 🔥 I have to learn alot to achieve this, nevermind i will do that
@browntowncurry8674
@browntowncurry8674 2 года назад
Absolutely AMAZING! I will try and replicate in C# now.
@Tarou9000
@Tarou9000 2 года назад
I'll try to do it in scratch
@imukai
@imukai 2 года назад
I was having the same idea since I'm rooted in C# myself. Did you get it done? Share?
@Mas3341
@Mas3341 2 года назад
Pezza this is great! I have made a couple of simple physics engines and most were kind of working but generally terrible, ill have to try out verlet integration! My main question is how the hell did you do the 'bonus' where the balls form your profile pic? Im guessing its like the constraint system but you base the color of the ball relative to its position?
@xintreavideo
@xintreavideo 2 года назад
Cool! It's view so easy...
@MrNucleosome
@MrNucleosome 2 года назад
THANK YOU
@ziggyzoggin
@ziggyzoggin 9 дней назад
Thank you for this, I used it to make a 4D gravity simulation in Godot 4!
@bluesillybeard
@bluesillybeard 9 месяцев назад
I was literally trying to implement physics, then I though "wait a sec, Pezzza's Work as a video on that!" I'm surprised how well it works without even considering the forces between the objects or even their masses - it just moves the objects around based on an extremely simple set of rules.
Далее
Evolving AIs - Predator vs Prey, who will win?
12:15
Просмотров 2,8 млн
How to train simple AIs to balance a double pendulum
24:59
Becoming A World-Record Holder 🔥
01:00
Просмотров 4,8 млн
Who Hurt My Girlfriend? 😡
00:34
Просмотров 6 млн
I'm Coding an Entire Physics Engine from Scratch
9:19
Real time Fire Simulation
7:23
Просмотров 153 тыс.
How Particle Life emerges from simplicity
10:16
Просмотров 323 тыс.
Giving Personality to Procedural Animations using Math
15:30
Soft Body Physics Explained
10:47
Просмотров 528 тыс.
I Made an Entire Game from Particle Physics
9:01
Просмотров 453 тыс.
Animation vs. Physics
16:08
Просмотров 23 млн
Не обзор DJI Osmo Pocket 3 Creator Combo
1:00
Mi primera placa con dios
0:12
Просмотров 607 тыс.