Тёмный
Freya Holmér
Freya Holmér
Freya Holmér
Подписаться
I do videos on tech art, math, game dev, and whatever else I want to project to your screens

channel art by yoss ❤ twitter.com/YO_SU_RA
Why can't you multiply vectors?
51:16
7 месяцев назад
The Continuity of Splines
1:13:50
Год назад
How to rotate a vector
5:50
2 года назад
The Beauty of Bézier Curves
24:26
2 года назад
Reach (drawing timelapse)
6:36
3 года назад
Shapes (release showcase)
0:24
3 года назад
Intro to Tool Dev in Unity [part 4/4]
1:46:57
4 года назад
Intro to Tool Dev in Unity [part 3/4]
1:59:54
4 года назад
Intro to Tool Dev in Unity [part 2/4]
3:53:56
4 года назад
Комментарии
@djwerd831
@djwerd831 2 часа назад
Thank you!!
@gulimo3035
@gulimo3035 3 часа назад
正常使用0.1不是应该固定值吧 应该乘以一个dt
@user-nr3zv2xs7e
@user-nr3zv2xs7e 6 часов назад
Thats why speed in GTA depends on fps
@jennalove6755
@jennalove6755 8 часов назад
easy solution: Decouple framerate from game logic
@ElliotGeno
@ElliotGeno 8 часов назад
Ha! I love lerping. It always felt so elegant (except for the frame rate thing) As you were talking about solving for R I kept thinking... wouldn't be better to just solve for half the distance or something. THANKYOU FOR DOING JUST THAT!
@arktessellator_10
@arktessellator_10 10 часов назад
There very less explaining in this video if you actually consider the technical content and ignore the visual asthetics. But overall it's good enlightened highlighting on bezier curves and 10/10 to visuals💯
@johnadama
@johnadama 14 часов назад
Do we really need Textures? Rust, Scratches could also be generated.
@EllyLoel
@EllyLoel 14 часов назад
omg before I saw the last slide I was about to say “you should totally watch animate with springs from wwdc23” but of course you already know what’s up 👏🏻👏🏻
@Firnael
@Firnael 14 часов назад
Insane quality and support !
@tacticalassaultanteater9678
@tacticalassaultanteater9678 15 часов назад
today I finally understood why the exponential function is its own derivative
@ahnng
@ahnng 16 часов назад
who blocked her on Twitter?
@acegikmo
@acegikmo 10 часов назад
jonathan blow, although he's unblocked me since
@fallen4eyes235
@fallen4eyes235 17 часов назад
Framerate dependence is good, actually, since it's trivial to turn framerate dependence into update dependence, and as long as your simulation runs faster than it's allowed time you can keep it up with the outside world. You don't need to calculate the delta time as it's a constant factor and you can keep your algorithm to subtraction and multiplication, plus it makes your simulations determanistic by not adding in the nondetermanistic factor of delta time which is error prone to calculate and can never be 100% correct.
@acegikmo
@acegikmo 10 часов назад
sure! but then the new problem is that if your render framerate is higher than your simulation rate, you'll need to implement interpolation for all your simulations to ensure they don't look choppy on high framerate monitors
@fallen4eyes235
@fallen4eyes235 6 часов назад
@@acegikmo Yeah, I've implemented something like this. I would have an information extraction stage where I would just interpolate dynamic information before punting it off to the renderer. It's a bunch of upfront complexity but making simulations that way is so nice once you get it working. I'm sure there was more dynamic ways than how my renderer was doing it but it worked well enough. I set my update rate to 100ups and my monitor was 120hz so it was necessary. Man were those cubes smooth as butter.
@Idonai
@Idonai 17 часов назад
Cool presentation. In what program did you make the presentation itself?
@acegikmo
@acegikmo 17 часов назад
custom made in html/js/css! There's more details in the pinned FAQ comment
@rusca8
@rusca8 18 часов назад
The simplification shenanigans at "Unraveling recursion" are gold.
@Cyliandre441
@Cyliandre441 18 часов назад
I just "fixed" that problem by multiplying the lerp ammont by the delta time and the result felt close enough to me😅. I already assumed that wasn't correct, but I'm also amazingly bad at maths, so I still dont get why, even after watching this.
@acegikmo
@acegikmo 17 часов назад
hah, yeah, I'd planned to cover that approximation in the talk, but there wasn't enough time. I felt like the exact solution is more useful and interesting in the end anyway. I will talk about it in my blog post though!
@DIXERION
@DIXERION 8 часов назад
You can use this: a = lerp (a, b, r/(r + 1)) Where r is equal to f*dt*π*2 f is the cutoff frequency you want which is related to the smoothing factor. This has been around for a long time and is widely used in the audio industry to attenuate high frequencies.
@putyavka
@putyavka 18 часов назад
That's all very cool and fun. But, hey, you don't need an hour to understand this idea if you know basic math and familiar with exponents. The whole concept of exponentiation is to converting addition to multiplication. May the Math to be with you.
@Filup
@Filup 19 часов назад
I took an ODE course as part of my degree, and it is pretty awesome when you finally understand everything and can apply it to things like this!
@Anonymous-54545
@Anonymous-54545 19 часов назад
Omg what a beautiful voice!
@marga2708
@marga2708 20 часов назад
19:58 I never heard what a complete algebra is before, but things closed under all of the five operations are called „algebraically closed fields“ in mathematics, and there exist quite a few of them. (For example there is one living inside the complex numbers that is missing all the transcendental elements that cannot be obtained by +,-,*,/,^ from the natural numbers, like π for example) However, if you additionally ask that they are complete with respect to an archimedean absolute value, i.e. there are no holes, every sequence that looks like it converges actually converges, then there is only the complex numbers.
@zoop391
@zoop391 22 часа назад
When you said in the end of the presentation during the Q&A that you enjoy doing something fully yourself in order to understand the solution from A to B, I really resonated with you. I've often been criticized for reinventing the wheel or whatever, "Just google it, simple.", okay but I want to understand; "You're wasting your time!", since when was learning a waste of time? I feel like when you solve a problem all by yourself from scratch, there's not just new-rich material ingrained in your mind, but also intuition gets built!
@zoop391
@zoop391 22 часа назад
Also I realized you have ADHD aswell just like me, apologize if it's another deviation of the condition. But I now am beginning to see a pattern of people with ADHD like you and me just wanting to delve deep into things, litterally get hyperfocused on it and will NOT stop until the solution is present. Maybe it's a coincidence, but I think since our standard dopamine levels are relatively low, that when we are engaged with mathematics, or such a fascinating problem to us, we're so highly stimulated by it that we become fucking sorceries to solve them lol, sounds silly but I genuinely feel that way! I often am able to solve very sophisticated problems because my ADHD drive is fucking insane sometimes, but dangerous sometimes aswell. I remember overworking for companies / comissioners because I loved the work so much, I completely forgot I was getting paid XD.
@acegikmo
@acegikmo 17 часов назад
hah, maybe yeah, I usually attribute my need for detail-digging to my autism, but I have no data to back that up really, who knows! I've just noticed that, on top of *wanting* to dig deep into things, there's also the fact that I often *need* to dig deep to understand something, where others might pick it up faster than me. or at least, that's the only way I've been able to explain the fact that people keep telling me I'm a good teacher even though I've never had any formal training in it
@zoop391
@zoop391 14 часов назад
@@acegikmo That **requirement** of extra knowledge needed to fully make your brain interpret something is SO GODDAMN RELATABLE! Holy shit, like I felt like I was the only one, but it is a double edged sword because you end up understanding the topic at hand EXTREMELY well, like we're talking like you feel like you could've invented it yourself because you dug so deep, and for me this doesn't only apply for learning, but also just everyday conversations, people get so fucking annoyed when I need them to explain things rigorously, there can be NO PARADOX or AMBIGUITY in their statement otherwise my brain will allocate that paradox and/or ambiguity into my memory and think about that in parallel with what the fuck the person is saying (which by the end of the conversation, will be meaningless enchantment table speech) my brain is like a goddamn c++ compiler LOL (which I think, the majority of us do not like, at all, like at all lol)
@Alexander_Sannikov
@Alexander_Sannikov 23 часа назад
Honestly this could have been a 30 second video. Or a tiny part of a longer video addressing typical dimensional analysis errors in games.
@acegikmo
@acegikmo 17 часов назад
hey I literally labeled one section tldr specifically so that those of you who found it too long could just go there!
@DIXERION
@DIXERION 23 часа назад
TL; DR: double smooth (double A, double B, double F, double DT) { double R = F*DT*3.141592654*2.0; return A + (B - A)/(R + 1.0)*R; } The great thing about knowing DSP and analysis of electrical circuits is that this can be seen as a simple RC low pass filter. You just have to calculate the relationship between the input and output voltage (transfer function) and discretize it to the time domain giving you this (uppercase for clarity): A += (B - A)/(R + 1)*R Where: A is the current/previous output value. B is the input value. R = F*DT*PI*2 F is the cutoff frequency you want (usually in hertz). DT is the delta time you are working with (usually in seconds/frame). PI is the constant π. In audio programming, this is a first-order (-6 dB/Oct) fast low pass filter with no resonance. This provides consistent behavior at different frame rates (there are still differences, but they are insignificant, unless the frame rate is very low), can easily be expanded to higher dimensions by doing the same calculation component-wise, you can use the output of one filter as the input of another to get smoother results (known as high order filter), or use it in combination with filters of different types (high pass, band pass, band reject/stop/notch and more) to get fine control of what you want to do. I think it is convenient to have the frequency as parameter especially when you use white noise as input. If you are interested in the frequency response, you can pass to the frequency domain and calcule the transfer function, giving you this: H (Z) = U/(Z*(U - 1) + 1) Where: U = R/(R + 1) Z = e^(-i*W*DT*PI*2) e is the Euler number. i is sqrt (-1) W is the frequency you want to analyze. I wrote this quickly, if you think I got something wrong please let me know. I hope this helps :)
@marverickbin
@marverickbin День назад
Thats so cool. I think the damped spring equation were my favorite topic on university. However, i never use it in work... I miss it so much...
@otter502
@otter502 День назад
9:37 what your describing feels a ton like an untuned pid loop (i know it from frc, used in a similar situation where you have an input that varies with time (setpoint) and you want something to follow it (usually you can only control speed)) There are ways to dampen the oscillations by changing the i and d terms (and a buncha videos that can properly explain it too!)
@Ziplock9000
@Ziplock9000 День назад
That's because you're using a framerate dependant reference for Lerp, instead of frame time. If you have fluctuating frame rates or lags spikes, then that's the issue, not Lerp.
@acegikmo
@acegikmo 16 часов назад
I wouldn't say "that's the issue" - most modern games, especially on PC, have or at least support varying rendering framerates, and while yes, physics engines often run at fixed framerates, lerp smoothing isn't always run in the physics loop, and even if you created a separate fixed loop, you'd need to add interpolation for the visuals if you want to support higher framerates, and so now you have replaced one problem with another
@JonathanZigler
@JonathanZigler День назад
Looks like point spacing where maybe a chevy chev spacing may be appropriate.
@JonathanZigler
@JonathanZigler День назад
PID's work really well for overshoots too.
@GameBoy-ep7de
@GameBoy-ep7de День назад
At 5:50 when you said to define a conversion factor I went "Ah, dimensional analysis, I'll be impressed if she mentions it" Then you started to talk about dimensional analysis right after and I was somewhat surprised, though I probably shouldn't have been since this seems really professional so far. I'll see if I can understand the rest of the video after this point, and think more than "That seems to have good logic" that is common when stuff above my understanding is described, but still understandable due to good explanations. Edit: I tried to do lerp smoothing in Desmos while watching, and failed. I could follow from step to step but it introduced too many new concepts to nail on a first watch. I'm sure that a rewatch would let me understand it more fully, and then do it in Desmos fine. This was a really nice explanation though, with it being very understandable and clear, and far better than the videos I watched for my Calc I, II, and III classes.
@dialectricStudios
@dialectricStudios День назад
Funny how these ideas appear in many disciplines. From a signal processing perspective lerp is cheap and dirty interpolation but gets the job done - windowed sinc interpolation (FIR style) is the real deal but costs more - an exponential integrator or IIR filter like this uses recursion, is cheap, but has non-linear phase. In this case it's an excellent conclusion. Love it! Power to tha low pass filter :)
@stulora3172
@stulora3172 День назад
A day with a new video from Freya is a good day.
@SeanCMonahan
@SeanCMonahan День назад
Holy cow, the interactive animations in the presentation are so illustrative! (I'm only partway through at this point.) I've always wanted to do this sort of thing. I imagine it can help give excellent A's during a Q&A at the end.
@KaitoverMoon
@KaitoverMoon День назад
lerp ❌️ derp ✅️
@MetapeterUndMetagreta
@MetapeterUndMetagreta День назад
This dude at the end, "like"... Just "SHUT UP" dude!
@AbualHassanPervaizAkther
@AbualHassanPervaizAkther День назад
need more new videos please
@LucasStraub
@LucasStraub День назад
The visuals on this presentation are so freaking good! It's just perfect!
@jwvdvuurst
@jwvdvuurst День назад
Very interesting talk!
@MetapeterUndMetagreta
@MetapeterUndMetagreta День назад
Endlich mal wieder ein Freya-Video und mal wieder lehrreich. Großartig!
@natpbs
@natpbs День назад
38:09 you could also use lerp(b,a,pow(r,dt)), no need for one-minuses :)
@gaboqv
@gaboqv День назад
Excited to hopefully see you in person in LATAM some day, your presentations are unique, beautiful and endearing as always. I'm sad that Jonathan blocked you because you geeked about this subject, I guess he just thinks of math as a tool but I was hoping for more context in the comment section, I have great respect for John's work, but I also think he is very stubborn and also was raised in an era where information was not as available (I have seen him suggest calculate inverse matrices for motion in his old blogs when using gaussian reduction was the better solution).
@teenspirit1
@teenspirit1 День назад
Why are people going insane over simple arithmetic?
@mikec518
@mikec518 День назад
Seemed a little more involved than simple arithmetic. And I saw no one going insane lol
@JackSalzman
@JackSalzman День назад
As someone who has just taken calculus, this video is amazing
@Chaoskampfkeks
@Chaoskampfkeks День назад
The last 2 slides opens up another question: Can we use any (autonomous) differential equation to gain frame independent update function? I assume they do, but will they look any good when applied to an animation would be the follow up question...
@JustinDuijn
@JustinDuijn День назад
Why not use the cpu? They have something called a tick
@zoop391
@zoop391 День назад
God it must've been a good feeling when you put the mathematical expression for the lerp smoothing function into desmos and it exactly corresponded accordingly, can only imagine.
@zhizhou3907
@zhizhou3907 День назад
I really hope there could be a smooth transition function that guarantees I can reach b from a in a cetain amount of time.
@directrix1
@directrix1 День назад
I am consistently impressed with how well you present this type of material. Always well made, and always worth the watch. Thanks!
@KilgoreTroutAsf
@KilgoreTroutAsf 2 дня назад
That's why you should ALWAYS run the world simulation clock at constant intervals, decoupled from the graphics FPS clock
@DominicClifton
@DominicClifton 2 дня назад
Fantastic presentation. I wish I'd known about the event as I live local to Malaga!
@guwuse
@guwuse 2 дня назад
I find it incredibly ironic that "lerp" stands for linear interpolation and we game devs use it to interpolate... non-linearly...
@ddiq47
@ddiq47 2 дня назад
awesome talk!