{"id":144,"date":"2025-01-08T17:57:43","date_gmt":"2025-01-08T22:57:43","guid":{"rendered":"https:\/\/kushaltimsina.com\/blog\/?p=144"},"modified":"2025-02-08T11:25:16","modified_gmt":"2025-02-08T16:25:16","slug":"beginners-guide-to-linear-interpolation","status":"publish","type":"post","link":"https:\/\/kushaltimsina.com\/blog\/2025\/01\/08\/beginners-guide-to-linear-interpolation\/","title":{"rendered":"Beginner&#8217;s Guide to Linear Interpolation"},"content":{"rendered":"\n<p>In this article, I present a beginner&#8217;s guide to linear interpolation.<\/p>\n\n\n\n<p>Linear interpolation is, in my opinion, one of the most useful concepts in game development. <\/p>\n\n\n\n<p>This guide to linear interpolation will help you learn about what it is and how we can use it to become better game developers.<\/p>\n\n\n\n<h2 class=\"wp-block-heading has-large-font-size\"><strong>What is Linear Interpolation?<\/strong><\/h2>\n\n\n\n<p>Linear interpolation is essentially a method we use to find a number that is some % in between two numbers. For example, if we were interested in knowing what&#8217;s 30% in between 5 and 15, we can use linear interpolation.<\/p>\n\n\n\n<h2 class=\"wp-block-heading has-large-font-size\"><strong>When is Linear Interpolation Used?<\/strong><\/h2>\n\n\n\n<p>Linear interpolation is used in many aspects of game development, such as making objects fade out smoothly, making text travel across the page, etc.<\/p>\n\n\n\n<h2 class=\"wp-block-heading has-large-font-size\"><strong>Beginner&#8217;s Guide to Linear Interpolation<\/strong><\/h2>\n\n\n\n<h3 class=\"wp-block-heading has-medium-font-size\"><strong>Finding the Middle Number Between 0 and 10<\/strong><\/h3>\n\n\n\n<p>Let me explain <a href=\"https:\/\/en.wikipedia.org\/wiki\/Linear_interpolation\">linear interpolation<\/a> in a simple way.<\/p>\n\n\n\n<p>If we had a number line ranging from 0 to 10, what is the middle number?<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"261\" src=\"https:\/\/kushaltimsina.com\/blog\/wp-content\/uploads\/2025\/01\/image-8-1024x261.png\" alt=\"A number line illustration for this guide to linear interpolation that goes from 0 to 10 with a question mark in the middle.\" class=\"wp-image-145\" srcset=\"https:\/\/kushaltimsina.com\/blog\/wp-content\/uploads\/2025\/01\/image-8-1024x261.png 1024w, https:\/\/kushaltimsina.com\/blog\/wp-content\/uploads\/2025\/01\/image-8-300x76.png 300w, https:\/\/kushaltimsina.com\/blog\/wp-content\/uploads\/2025\/01\/image-8-768x195.png 768w, https:\/\/kushaltimsina.com\/blog\/wp-content\/uploads\/2025\/01\/image-8.png 1234w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>In other words, what is the number that sits in the middle of 0 and 10?<\/p>\n\n\n\n<p>Do you think it&#8217;s 5?<\/p>\n\n\n\n<p>Are you sure?<\/p>\n\n\n\n<p>Okay, okay. It&#8217;s 5.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"287\" src=\"https:\/\/kushaltimsina.com\/blog\/wp-content\/uploads\/2025\/01\/image-9-1024x287.png\" alt=\"A number line illustration for this guide to linear interpolation that goes from 0 to 10 with a 5 in the middle.\" class=\"wp-image-146\" srcset=\"https:\/\/kushaltimsina.com\/blog\/wp-content\/uploads\/2025\/01\/image-9-1024x287.png 1024w, https:\/\/kushaltimsina.com\/blog\/wp-content\/uploads\/2025\/01\/image-9-300x84.png 300w, https:\/\/kushaltimsina.com\/blog\/wp-content\/uploads\/2025\/01\/image-9-768x215.png 768w, https:\/\/kushaltimsina.com\/blog\/wp-content\/uploads\/2025\/01\/image-9.png 1264w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>How did you figure it out? Maybe you said &#8220;Oh, well if I divide it by a half, then I get 5.&#8221; So, you solved <span class=\"wp-katex-eq\" data-display=\"false\">\\frac{10}{2}=5<\/span>.<\/p>\n\n\n\n<h3 class=\"wp-block-heading has-medium-font-size\"><strong>Finding the Middle Number Between 2 and 10.<\/strong><\/h3>\n\n\n\n<p>That&#8217;s great! It works, but what about this?<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"268\" src=\"https:\/\/kushaltimsina.com\/blog\/wp-content\/uploads\/2025\/01\/image-10-1024x268.png\" alt=\"A number line illustration of linear interpolation from 2 to 10.\" class=\"wp-image-147\" srcset=\"https:\/\/kushaltimsina.com\/blog\/wp-content\/uploads\/2025\/01\/image-10-1024x268.png 1024w, https:\/\/kushaltimsina.com\/blog\/wp-content\/uploads\/2025\/01\/image-10-300x79.png 300w, https:\/\/kushaltimsina.com\/blog\/wp-content\/uploads\/2025\/01\/image-10-768x201.png 768w, https:\/\/kushaltimsina.com\/blog\/wp-content\/uploads\/2025\/01\/image-10.png 1298w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>The first step in solving this problem is realizing that whatever number is in the middle is equidistant from the left number (2) and (10).<\/p>\n\n\n\n<p>Take <span class=\"wp-katex-eq\" data-display=\"false\">4<\/span>, for example. What if the number in the middle was <span class=\"wp-katex-eq\" data-display=\"false\">4<\/span>?<\/p>\n\n\n\n<p>Then, <span class=\"wp-katex-eq\" data-display=\"false\">4<\/span> is <span class=\"wp-katex-eq\" data-display=\"false\">4 - 2 = 2<\/span> away from <span class=\"wp-katex-eq\" data-display=\"false\">2<\/span>, and <span class=\"wp-katex-eq\" data-display=\"false\">10 - 4 = 6<\/span> away from the <span class=\"wp-katex-eq\" data-display=\"false\">10<\/span>.<\/p>\n\n\n\n<p>Since <span class=\"wp-katex-eq\" data-display=\"false\">4<\/span> is <span class=\"wp-katex-eq\" data-display=\"false\">2<\/span> away from <span class=\"wp-katex-eq\" data-display=\"false\">2<\/span> and <span class=\"wp-katex-eq\" data-display=\"false\">6<\/span> away from <span class=\"wp-katex-eq\" data-display=\"false\">10<\/span>, <span class=\"wp-katex-eq\" data-display=\"false\">4<\/span> definitely can&#8217;t be in the middle.<\/p>\n\n\n\n<p>So maybe you try another number: <span class=\"wp-katex-eq\" data-display=\"false\">6<\/span>?<\/p>\n\n\n\n<p>Let&#8217;s see. <span class=\"wp-katex-eq\" data-display=\"false\">6 - 2 = 4<\/span> and <span class=\"wp-katex-eq\" data-display=\"false\">10 - 6 = 4<\/span>.<\/p>\n\n\n\n<p>Woo-hoo! So, <span class=\"wp-katex-eq\" data-display=\"false\">6<\/span> is in the middle of <span class=\"wp-katex-eq\" data-display=\"false\">2<\/span> and <span class=\"wp-katex-eq\" data-display=\"false\">10<\/span>. Easy peasy, right?<\/p>\n\n\n\n<h3 class=\"wp-block-heading has-medium-font-size\"><strong>A Harder Example<\/strong><\/h3>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"247\" src=\"https:\/\/kushaltimsina.com\/blog\/wp-content\/uploads\/2025\/01\/image-11-1024x247.png\" alt=\"A number line illustration for this guide to linear interpolation that goes from 2.23 to 10.89 with a question mark in the middle.\" class=\"wp-image-148\" srcset=\"https:\/\/kushaltimsina.com\/blog\/wp-content\/uploads\/2025\/01\/image-11-1024x247.png 1024w, https:\/\/kushaltimsina.com\/blog\/wp-content\/uploads\/2025\/01\/image-11-300x72.png 300w, https:\/\/kushaltimsina.com\/blog\/wp-content\/uploads\/2025\/01\/image-11-768x185.png 768w, https:\/\/kushaltimsina.com\/blog\/wp-content\/uploads\/2025\/01\/image-11.png 1336w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>Okay, let&#8217;s see if you can figure this one out.<\/p>\n\n\n\n<p>It&#8217;s way more complicated than before, isn&#8217;t it? <\/p>\n\n\n\n<p>Let me introduce to you the midpoint formula: <span class=\"wp-katex-eq katex-display\" data-display=\"true\">\\frac{a+b}{2}<\/span><\/p>\n\n\n\n<p>To find the middle of any 2 numbers, you just have to add both of them up and divide them by 2.<\/p>\n\n\n\n<p>So, the middle number between <span class=\"wp-katex-eq\" data-display=\"false\">2.23<\/span> and <span class=\"wp-katex-eq\" data-display=\"false\">10.89<\/span> is..<\/p>\n\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\">\\frac{2.23+10.89}{2}=6.56<\/span>\n\n\n\n<p>Wow! Way easier, right?<\/p>\n\n\n\n<p>But what if we were interested in finding what&#8217;s 25% in between 2.23 and 10.89?<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"229\" src=\"https:\/\/kushaltimsina.com\/blog\/wp-content\/uploads\/2025\/01\/image-12-1024x229.png\" alt=\"A number line illustration of linear interpolation from 2.23 to 10.89.\" class=\"wp-image-149\" srcset=\"https:\/\/kushaltimsina.com\/blog\/wp-content\/uploads\/2025\/01\/image-12-1024x229.png 1024w, https:\/\/kushaltimsina.com\/blog\/wp-content\/uploads\/2025\/01\/image-12-300x67.png 300w, https:\/\/kushaltimsina.com\/blog\/wp-content\/uploads\/2025\/01\/image-12-768x172.png 768w, https:\/\/kushaltimsina.com\/blog\/wp-content\/uploads\/2025\/01\/image-12.png 1350w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>The midpoint formula only allows us to find what&#8217;s in the middle of two points.<\/p>\n\n\n\n<p>But if we can find what&#8217;s in the middle of two points, we should be able to easily deduce the point 25% of the way as well.<\/p>\n\n\n\n<p>The midpoint formula is given below:<\/p>\n\n\n\n<p><span class=\"wp-katex-eq katex-display\" data-display=\"true\">\\frac{a+b}{2}<\/span>, where <span class=\"wp-katex-eq\" data-display=\"false\">a<\/span> is the first number (<span class=\"wp-katex-eq\" data-display=\"false\">2.23<\/span> in our case) and <span class=\"wp-katex-eq\" data-display=\"false\">b<\/span> is the second number (<span class=\"wp-katex-eq\" data-display=\"false\">10.89<\/span>).<\/p>\n\n\n\n<p>Notice that we&#8217;re dividing the sum of the numbers by <span class=\"wp-katex-eq\" data-display=\"false\">2<\/span>.<\/p>\n\n\n\n<p>But isn&#8217;t dividing a number by <span class=\"wp-katex-eq\" data-display=\"false\">0.5<\/span> the same thing as multiplying it by <span class=\"wp-katex-eq\" data-display=\"false\">0.5<\/span>?<\/p>\n\n\n\n<p>So, <\/p>\n\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\">\\frac{a+b}{2}=(a+b)*0.5<\/span>\n\n\n\n<p>Remember that in the word &#8220;midpoint formula&#8221;, the first 3 letters is &#8220;mid&#8221;, which also means &#8220;middle.&#8221;<\/p>\n\n\n\n<p>So, the <span class=\"wp-katex-eq\" data-display=\"false\">0.5<\/span> is there to find that &#8220;middle&#8221;, since 0.5 = 50%, which is midway.<\/p>\n\n\n\n<p>Instead of multiplying it by <span class=\"wp-katex-eq\" data-display=\"false\">0.5<\/span> to find the middle, you might think that if we want to find <span class=\"wp-katex-eq\" data-display=\"false\">25<\/span>% of the way between the two numbers, we can just multiply it by <span class=\"wp-katex-eq\" data-display=\"false\">0.25<\/span>, since <span class=\"wp-katex-eq\" data-display=\"false\">25<\/span>%=<span class=\"wp-katex-eq\" data-display=\"false\">0.25<\/span>.<\/p>\n\n\n\n<p>So, to find the number that&#8217;s <span class=\"wp-katex-eq\" data-display=\"false\">25<\/span>% of the way in between two numbers, you&#8217;re probably thinking we can use:<\/p>\n\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\">(a+b)*0.25<\/span>\n\n\n\n<p>You&#8217;re close! The reason this doesn&#8217;t work is because in this case, we are finding <span class=\"wp-katex-eq\" data-display=\"false\">25<\/span>% of <span class=\"wp-katex-eq\" data-display=\"false\">a+b<\/span>, not <span class=\"wp-katex-eq\" data-display=\"false\">25<\/span>% of what&#8217;s in between a and b. Notice that we are multiplying <span class=\"wp-katex-eq\" data-display=\"false\">(a + b)<\/span> by <span class=\"wp-katex-eq\" data-display=\"false\">0.25<\/span><\/p>\n\n\n\n<h3 class=\"wp-block-heading has-medium-font-size\"><strong>Deriving the Linear Interpolation Formula<\/strong><\/h3>\n\n\n\n<p>What we&#8217;ll instead use is:<\/p>\n\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\">a + (b-a)*0.25<\/span>\n\n\n\n<p>Let&#8217;s break this formula down:<\/p>\n\n\n\n<p>The <span class=\"wp-katex-eq\" data-display=\"false\">a<\/span> represents the start.<\/p>\n\n\n\n<p>The <span class=\"wp-katex-eq\" data-display=\"false\">(b-a)<\/span> represents the difference in <span class=\"wp-katex-eq\" data-display=\"false\">a<\/span> and <span class=\"wp-katex-eq\" data-display=\"false\">b<\/span>.<\/p>\n\n\n\n<p>Notice that in this case, we are saying &#8220;start + difference multiplied by <span class=\"wp-katex-eq\" data-display=\"false\">0.25<\/span>.&#8221;<\/p>\n\n\n\n<p>In particular, we are multiplying the difference by the <span class=\"wp-katex-eq\" data-display=\"false\">0.25<\/span>. <\/p>\n\n\n\n<p>And that&#8217;s how we got <span class=\"wp-katex-eq katex-display\" data-display=\"true\">2.23 + (10.89 - 2.23) * 0.25=4.2575<\/span><\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"209\" src=\"https:\/\/kushaltimsina.com\/blog\/wp-content\/uploads\/2025\/01\/image-18-1024x209.png\" alt=\"\" class=\"wp-image-159\" srcset=\"https:\/\/kushaltimsina.com\/blog\/wp-content\/uploads\/2025\/01\/image-18-1024x209.png 1024w, https:\/\/kushaltimsina.com\/blog\/wp-content\/uploads\/2025\/01\/image-18-300x61.png 300w, https:\/\/kushaltimsina.com\/blog\/wp-content\/uploads\/2025\/01\/image-18-768x156.png 768w, https:\/\/kushaltimsina.com\/blog\/wp-content\/uploads\/2025\/01\/image-18.png 1276w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>And remember that the <span class=\"wp-katex-eq\" data-display=\"false\">2.23<\/span> and <span class=\"wp-katex-eq\" data-display=\"false\">10.89<\/span> are just arbitrary numbers I chose. Let&#8217;s call them <span class=\"wp-katex-eq\" data-display=\"false\">a<\/span> and <span class=\"wp-katex-eq\" data-display=\"false\">b<\/span>.<\/p>\n\n\n\n<p>But what if instead of these concrete percentages, we want to find the number that&#8217;s <span class=\"wp-katex-eq\" data-display=\"false\">t<\/span>% in between <span class=\"wp-katex-eq\" data-display=\"false\">a<\/span> and <span class=\"wp-katex-eq\" data-display=\"false\">b<\/span>?<\/p>\n\n\n\n<p>Well, let&#8217;s say <span class=\"wp-katex-eq\" data-display=\"false\">t=50<\/span>%. In this case, we&#8217;re trying to find the midpoint between the numbers.<\/p>\n\n\n\n<p>We can use the same formula:<\/p>\n\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\">a + (b-a)*0.5<\/span>\n\n\n\n<p>Notice that we had to turn <span class=\"wp-katex-eq\" data-display=\"false\">50<\/span>%, into <span class=\"wp-katex-eq\" data-display=\"false\">t=0.5<\/span> by dividing the <span class=\"wp-katex-eq\" data-display=\"false\">50<\/span>% by <span class=\"wp-katex-eq\" data-display=\"false\">100<\/span>.<\/p>\n\n\n\n<p>So, when <span class=\"wp-katex-eq\" data-display=\"false\">t<\/span> is a %, we have to convert it by dividing <span class=\"wp-katex-eq\" data-display=\"false\">t<\/span> by <span class=\"wp-katex-eq\" data-display=\"false\">100<\/span>. And there is our linear interpolation formula:<\/p>\n\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\">lerpPercent(a, b, t) = a + (b-a)*\\frac{t}{100}<\/span>\n\n\n\n<h3 class=\"wp-block-heading has-large-font-size\"><strong>Why is Linear Interpolation Important?<\/strong><\/h3>\n\n\n\n<p>Well, it&#8217;s important because now, we have a formula that will tell us the number that is <span class=\"wp-katex-eq\" data-display=\"false\">t<\/span>% away from any 2 numbers <span class=\"wp-katex-eq\" data-display=\"false\">a<\/span> and <span class=\"wp-katex-eq\" data-display=\"false\">b<\/span>.<\/p>\n\n\n\n<p>So, if I asked you what&#8217;s 25% in between 2.23 and 10.89?<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"229\" src=\"https:\/\/kushaltimsina.com\/blog\/wp-content\/uploads\/2025\/01\/image-19.png\" alt=\"\" class=\"wp-image-160\" srcset=\"https:\/\/kushaltimsina.com\/blog\/wp-content\/uploads\/2025\/01\/image-19.png 1024w, https:\/\/kushaltimsina.com\/blog\/wp-content\/uploads\/2025\/01\/image-19-300x67.png 300w, https:\/\/kushaltimsina.com\/blog\/wp-content\/uploads\/2025\/01\/image-19-768x172.png 768w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>You can just say: &#8220;Oh, that&#8217;s just <code>lerpPercent(2.23, 10.89, 25)<\/code>&#8220;, where the:<\/p>\n\n\n\n<p> <code>2.23<\/code> represents the first number<\/p>\n\n\n\n<p><code>10.89<\/code> represents the second number <\/p>\n\n\n\n<p><code>25<\/code> represents the %.<\/p>\n\n\n\n<p>Now, most of the time, we don&#8217;t want that <span class=\"wp-katex-eq\" data-display=\"false\">t<\/span> to be in percent form. We would rather just leave it in decimal form. This way, we can eliminate the <span class=\"wp-katex-eq\" data-display=\"false\">\\frac{t}{100}<\/span>, and just leave it as <span class=\"wp-katex-eq\" data-display=\"false\">t<\/span>.<\/p>\n\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\">lerp(a, b, t) = a + (b-a)*t<\/span>\n\n\n\n<p>That is, instead of saying <code>lerpPercent(2.23, 10.89, 25)<\/code>, we can just say <code>lerp(2.23, 10.89, 0.25)<\/code>. Since the 25 is already converted to decimal, we don&#8217;t need the <span class=\"wp-katex-eq\" data-display=\"false\">\\frac{t}{100}<\/span>.<\/p>\n\n\n\n<p>And there&#8217;s our <a href=\"https:\/\/en.wikipedia.org\/wiki\/Linear_interpolation\">linear interpolation formula<\/a>.<\/p>\n\n\n\n<p>Now, let&#8217;s look at some use cases in the next section of this beginner&#8217;s guide to linear interpolation.<\/p>\n\n\n\n<h2 class=\"wp-block-heading has-large-font-size\"><strong>Making an Object Fade Out with Linear Interpolation<\/strong><\/h2>\n\n\n\n<p>Now that you know the formula for linear interpolation, let&#8217;s see where this is applied in Roblox.<\/p>\n\n\n\n<p>Let&#8217;s say that you have a Part in workspace.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"862\" height=\"784\" src=\"https:\/\/kushaltimsina.com\/blog\/wp-content\/uploads\/2025\/01\/image-14.png\" alt=\"A brown cube.\" class=\"wp-image-154\" srcset=\"https:\/\/kushaltimsina.com\/blog\/wp-content\/uploads\/2025\/01\/image-14.png 862w, https:\/\/kushaltimsina.com\/blog\/wp-content\/uploads\/2025\/01\/image-14-300x273.png 300w, https:\/\/kushaltimsina.com\/blog\/wp-content\/uploads\/2025\/01\/image-14-768x699.png 768w\" sizes=\"auto, (max-width: 862px) 100vw, 862px\" \/><\/figure>\n\n\n\n<p>This Part has lots of properties, like <a href=\"https:\/\/create.roblox.com\/docs\/reference\/engine\/classes\/BasePart#Transparency\">Transparency<\/a>, which ranges between <span class=\"wp-katex-eq\" data-display=\"false\">0<\/span> and <span class=\"wp-katex-eq\" data-display=\"false\">1<\/span>. In the image above, the cube is fully visible, as its Transparency is set to 0.<\/p>\n\n\n\n<p>And if the Transparency is 0.5, we now have a Part that&#8217;s 50% transparent.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"740\" height=\"718\" src=\"https:\/\/kushaltimsina.com\/blog\/wp-content\/uploads\/2025\/01\/image-15.png\" alt=\"A brown cube that is 50% transparent.\" class=\"wp-image-155\" srcset=\"https:\/\/kushaltimsina.com\/blog\/wp-content\/uploads\/2025\/01\/image-15.png 740w, https:\/\/kushaltimsina.com\/blog\/wp-content\/uploads\/2025\/01\/image-15-300x291.png 300w\" sizes=\"auto, (max-width: 740px) 100vw, 740px\" \/><\/figure>\n\n\n\n<p>And if the Transparency is 0.9, well, it&#8217;s barely even there.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"790\" height=\"696\" src=\"https:\/\/kushaltimsina.com\/blog\/wp-content\/uploads\/2025\/01\/image-16.png\" alt=\"A brown cube that is 90% transparent.\" class=\"wp-image-156\" srcset=\"https:\/\/kushaltimsina.com\/blog\/wp-content\/uploads\/2025\/01\/image-16.png 790w, https:\/\/kushaltimsina.com\/blog\/wp-content\/uploads\/2025\/01\/image-16-300x264.png 300w, https:\/\/kushaltimsina.com\/blog\/wp-content\/uploads\/2025\/01\/image-16-768x677.png 768w\" sizes=\"auto, (max-width: 790px) 100vw, 790px\" \/><\/figure>\n\n\n\n<p>So, a Transparency of 0 means it&#8217;s fully visible and 1 means it&#8217;s completely invisible.<\/p>\n\n\n\n<p>How can we make this Part fade?<\/p>\n\n\n\n<p>Remember our linear interpolation formula from above?<\/p>\n\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\">lerp(a, b, t) = (a+b)*\\frac{t}{100}<\/span>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"453\" src=\"https:\/\/kushaltimsina.com\/blog\/wp-content\/uploads\/2025\/01\/image-17-1024x453.png\" alt=\"A number line for this guide to linear interpolation, illustrating the stages of transparency upon fading out.\" class=\"wp-image-157\" srcset=\"https:\/\/kushaltimsina.com\/blog\/wp-content\/uploads\/2025\/01\/image-17-1024x453.png 1024w, https:\/\/kushaltimsina.com\/blog\/wp-content\/uploads\/2025\/01\/image-17-300x133.png 300w, https:\/\/kushaltimsina.com\/blog\/wp-content\/uploads\/2025\/01\/image-17-768x340.png 768w, https:\/\/kushaltimsina.com\/blog\/wp-content\/uploads\/2025\/01\/image-17.png 1460w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>Let&#8217;s take our linear interpolation formula and put it in Roblox Lua code.<\/p>\n\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\">lerp(a, b, t) = a + (b-a)*t<\/span>\n\n\n\n<p>In LuaU, this translates into:<\/p>\n\n\n\n<pre class=\"wp-block-code has-contrast-color has-text-color has-link-color wp-elements-f9e7abbcc0f87f9cb90533eac1fc7d6d\"><code>function lerp(a: number, b: number, t: number)\n  return a + (b - a) * t\nend<\/code><\/pre>\n\n\n\n<p>So first, let&#8217;s use linear interpolation to make this Part 50% transparent.<\/p>\n\n\n\n<p>We can just say:<\/p>\n\n\n\n<pre class=\"wp-block-code has-contrast-color has-text-color has-link-color wp-elements-9bacfc29c3d7be8a4e07936659620a0b\"><code>workspace.Part.Transparency = lerp(0, 1, 0.5)<\/code><\/pre>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p>In Roblox, a Transparency of 0 means the object is completely visible. A Transparency of 1 means the object is completely invisible.<\/p>\n<\/blockquote>\n\n\n\n<p>And this will give us <code>0.5<\/code>, because <code>0.5<\/code> is 50% in between <code>0<\/code> and <code>1<\/code>. <\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"740\" height=\"718\" src=\"https:\/\/kushaltimsina.com\/blog\/wp-content\/uploads\/2025\/01\/image-20.png\" alt=\"You can use this beginner's guide to linear interpolation to make a Roblox Part fade out.\" class=\"wp-image-161\" srcset=\"https:\/\/kushaltimsina.com\/blog\/wp-content\/uploads\/2025\/01\/image-20.png 740w, https:\/\/kushaltimsina.com\/blog\/wp-content\/uploads\/2025\/01\/image-20-300x291.png 300w\" sizes=\"auto, (max-width: 740px) 100vw, 740px\" \/><\/figure>\n\n\n\n<p>Now, to make this Part fade out, we have to basically ask the questions: &#8220;What is 1% between 0 and 1? What is 2% between 0 and 1? What is 3% between 0 and 1? &#8230; What is 100% between 0 and 1?&#8221;<\/p>\n\n\n\n<p>The reason is because we want a smooth fading effect. We essentially want the Part&#8217;s Transparency to move up the number line.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"453\" src=\"https:\/\/kushaltimsina.com\/blog\/wp-content\/uploads\/2025\/01\/image-21.png\" alt=\"A number line illustrating the stages of transparency upon fading out.\" class=\"wp-image-162\" srcset=\"https:\/\/kushaltimsina.com\/blog\/wp-content\/uploads\/2025\/01\/image-21.png 1024w, https:\/\/kushaltimsina.com\/blog\/wp-content\/uploads\/2025\/01\/image-21-300x133.png 300w, https:\/\/kushaltimsina.com\/blog\/wp-content\/uploads\/2025\/01\/image-21-768x340.png 768w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>So, we can just do something like this:<\/p>\n\n\n\n<pre class=\"wp-block-code has-contrast-color has-text-color has-link-color wp-elements-3a0e02353f5510e865a337e97d30511f\"><code>workspace.Part.Transparency = lerp(0, 1, 0.01)\ntask.wait(0.01)\nworkspace.Part.Transparency = lerp(0, 1, 0.02)\ntask.wait(0.01)\nworkspace.Part.Transparency = lerp(0, 1, 0.03)\ntask.wait(0.01)\nworkspace.Part.Transparency = lerp(0, 1, 0.04)\ntask.wait(0.01)\n...\nworkspace.Part.Transparency = lerp(0, 1, 1)<\/code><\/pre>\n\n\n\n<p>Note that the <code>task.wait(0.01)<\/code> is needed between each value, so that everything doesn&#8217;t happen instantly, and that we can see it happening frame by frame. If we omit the <code>task.wait(0.01)<\/code>, then the the Transparency will go from 0 to 1 instantly. <\/p>\n\n\n\n<p>And we can package that into a neat for loop:<\/p>\n\n\n\n<pre class=\"wp-block-code has-contrast-color has-text-color has-link-color wp-elements-e122085d3297301d3b77a131ac7d66ad\"><code>for i = 0, 1, 0.01 do\n   workspace.Part.Transparency = lerp(0, 1, i)\n   task.wait(0.01)\nend<\/code><\/pre>\n\n\n\n<p>And remember that all this is doing is moving the <span class=\"wp-katex-eq\" data-display=\"false\">t<\/span> down the slider from 0 to 1, smoothly.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"495\" src=\"https:\/\/kushaltimsina.com\/blog\/wp-content\/uploads\/2025\/01\/image-22-1024x495.png\" alt=\"A number line illustrating the stages of transparency upon fading out.\" class=\"wp-image-163\" srcset=\"https:\/\/kushaltimsina.com\/blog\/wp-content\/uploads\/2025\/01\/image-22-1024x495.png 1024w, https:\/\/kushaltimsina.com\/blog\/wp-content\/uploads\/2025\/01\/image-22-300x145.png 300w, https:\/\/kushaltimsina.com\/blog\/wp-content\/uploads\/2025\/01\/image-22-768x372.png 768w, https:\/\/kushaltimsina.com\/blog\/wp-content\/uploads\/2025\/01\/image-22.png 1426w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>And that creates our awesome fading part effect.<\/p>\n\n\n\n<h2 class=\"wp-block-heading has-large-font-size\"><strong>Was Linear Interpolation Really Needed For Fading Out?<\/strong><\/h2>\n\n\n\n<p>Now, you might be wondering &#8220;why did we need to use linear interpolation for this?&#8221;<\/p>\n\n\n\n<p>You might have noticed:<\/p>\n\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\">lerp(0, 1, 0.01)=0.01<\/span>\n\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\">lerp(0, 1, 0.02)=0.02<\/span>\n\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\">lerp(0, 1, 0.03)=0.03<\/span>\n\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\">lerp(0, 1, 0.04)=0.04<\/span>\n\n\n\n<p>And thus,<\/p>\n\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\">lerp(0, 1, t)=t<\/span>\n\n\n\n<p>In other words, performing a linear interpolation from <span class=\"wp-katex-eq\" data-display=\"false\">0<\/span> to <span class=\"wp-katex-eq\" data-display=\"false\">1<\/span> just yields <span class=\"wp-katex-eq\" data-display=\"false\">t<\/span>.<\/p>\n\n\n\n<p>So, our code could&#8217;ve gone from:<\/p>\n\n\n\n<pre class=\"wp-block-code has-contrast-color has-text-color has-link-color wp-elements-3a0e02353f5510e865a337e97d30511f\"><code>workspace.Part.Transparency = lerp(0, 1, 0.01)\ntask.wait(0.01)\nworkspace.Part.Transparency = lerp(0, 1, 0.02)\ntask.wait(0.01)\nworkspace.Part.Transparency = lerp(0, 1, 0.03)\ntask.wait(0.01)\nworkspace.Part.Transparency = lerp(0, 1, 0.04)\ntask.wait(0.01)\n...\nworkspace.Part.Transparency = lerp(0, 1, 1)<\/code><\/pre>\n\n\n\n<p>to something simple:<\/p>\n\n\n\n<pre class=\"wp-block-code has-contrast-color has-text-color has-link-color wp-elements-614d450471430ea37baa8b3d8306d762\"><code>workspace.Part.Transparency = 0.01\ntask.wait(0.01)\nworkspace.Part.Transparency = 0.02\ntask.wait(0.01)\nworkspace.Part.Transparency = 0.03\ntask.wait(0.01)\nworkspace.Part.Transparency = 0.03\ntask.wait(0.01)\n...\nworkspace.Part.Transparency = 1<\/code><\/pre>\n\n\n\n<p>This observation is true and valid. <\/p>\n\n\n\n<pre class=\"wp-block-code has-contrast-color has-text-color has-link-color wp-elements-4151f76fde54432316e8286b58365eb4\"><code>for i = 0, 1, 0.01 do\n   workspace.Part.Transparency = i\n   task.wait(0.01)\nend<\/code><\/pre>\n\n\n\n<p>If you were able to deduce this, applaud yourself.<\/p>\n\n\n\n<p>But, if your <span class=\"wp-katex-eq\" data-display=\"false\">a<\/span> and <span class=\"wp-katex-eq\" data-display=\"false\">b<\/span> aren&#8217;t <span class=\"wp-katex-eq\" data-display=\"false\">0<\/span> and <span class=\"wp-katex-eq\" data-display=\"false\">1<\/span>, it helps to perform linear interpolation.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>The Best Roblox Scripting Book for Beginners<\/strong><\/h2>\n\n\n\n<p>If you&#8217;ve enjoyed this article so far, make sure to check out my <a href=\"http:\/\/kushaltimsina.com\/book\">Beginner&#8217;s Guide to Roblox Scripting book<\/a>, guaranteed to help you learn scripting with the best beginner-friendly explanations.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><a href=\"kushaltimsina.com\/book\"><img loading=\"lazy\" decoding=\"async\" width=\"510\" height=\"680\" src=\"https:\/\/kushaltimsina.com\/blog\/wp-content\/uploads\/2025\/01\/image-1.png\" alt=\"\" class=\"wp-image-126\" srcset=\"https:\/\/kushaltimsina.com\/blog\/wp-content\/uploads\/2025\/01\/image-1.png 510w, https:\/\/kushaltimsina.com\/blog\/wp-content\/uploads\/2025\/01\/image-1-225x300.png 225w\" sizes=\"auto, (max-width: 510px) 100vw, 510px\" \/><\/a><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Using Linear Interpolation to Grow a Part<\/strong><\/h2>\n\n\n\n<p>From this linear interpolation guide, we&#8217;ve learned that we can use linear interpolation to fade an object out of existence. <\/p>\n\n\n\n<p>But what about using it to make an object grow with animation?<\/p>\n\n\n\n<figure class=\"wp-block-image size-medium\"><img loading=\"lazy\" decoding=\"async\" width=\"300\" height=\"300\" src=\"https:\/\/kushaltimsina.com\/blog\/wp-content\/uploads\/2025\/01\/image-23-300x300.png\" alt=\"A brown cube.\" class=\"wp-image-164\" srcset=\"https:\/\/kushaltimsina.com\/blog\/wp-content\/uploads\/2025\/01\/image-23-300x300.png 300w, https:\/\/kushaltimsina.com\/blog\/wp-content\/uploads\/2025\/01\/image-23-150x150.png 150w, https:\/\/kushaltimsina.com\/blog\/wp-content\/uploads\/2025\/01\/image-23.png 656w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/figure>\n\n\n\n<p>We want to take this Part, which has a Size of (6, 6, 6) and make it uniformly grow into a size of (32, 32, 32)<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"820\" height=\"746\" src=\"https:\/\/kushaltimsina.com\/blog\/wp-content\/uploads\/2025\/01\/image-24.png\" alt=\"\" class=\"wp-image-165\" srcset=\"https:\/\/kushaltimsina.com\/blog\/wp-content\/uploads\/2025\/01\/image-24.png 820w, https:\/\/kushaltimsina.com\/blog\/wp-content\/uploads\/2025\/01\/image-24-300x273.png 300w, https:\/\/kushaltimsina.com\/blog\/wp-content\/uploads\/2025\/01\/image-24-768x699.png 768w\" sizes=\"auto, (max-width: 820px) 100vw, 820px\" \/><\/figure>\n\n\n\n<p>We can use linear interpolation!<\/p>\n\n\n\n<p>Just like in the fading out example, we have to take the growth step by step.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"623\" src=\"https:\/\/kushaltimsina.com\/blog\/wp-content\/uploads\/2025\/01\/image-25-1024x623.png\" alt=\"\" class=\"wp-image-166\" srcset=\"https:\/\/kushaltimsina.com\/blog\/wp-content\/uploads\/2025\/01\/image-25-1024x623.png 1024w, https:\/\/kushaltimsina.com\/blog\/wp-content\/uploads\/2025\/01\/image-25-300x183.png 300w, https:\/\/kushaltimsina.com\/blog\/wp-content\/uploads\/2025\/01\/image-25-768x467.png 768w, https:\/\/kushaltimsina.com\/blog\/wp-content\/uploads\/2025\/01\/image-25.png 1522w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>Now, in this case, Size is a <code>Vector3<\/code>, meaning that it needs 3 numbers, so we&#8217;re going to need to use <code>lerp<\/code> 3 times. And instead of going from <code>0<\/code> to <code>1<\/code>, it&#8217;s going to go from <code>6<\/code> to <code>32<\/code>, because our starting size is <code>(6, 6, 6)<\/code> and our end size is <code>(32, 32, 32)<\/code>.<\/p>\n\n\n\n<pre class=\"wp-block-code has-contrast-color has-text-color has-link-color wp-elements-061ccce98e652f228957558de3c22aa3\"><code>workspace.Part.Size = Vector3.new(lerp(6, 32, 0.01), lerp(6, 32, 0.01), lerp(6, 32, 0.01))\ntask.wait(0.01)\nworkspace.Part.Size = Vector3.new(lerp(6, 32, 0.02), lerp(6, 32, 0.02), lerp(6, 32, 0.02))\ntask.wait(0.01)\n...\nworkspace.Part.Size = Vector3.new(lerp(6, 32, 1), lerp(6, 32, 1), lerp(6, 32, 1))<\/code><\/pre>\n\n\n\n<p>And once again, we can package this into a neat for loop.<\/p>\n\n\n\n<pre class=\"wp-block-code has-contrast-color has-text-color has-link-color wp-elements-9329bbd9c94f5959a60a13900e4bdd10\"><code>for i = 0, 1, 0.01 do\n   workspace.Part.Size = Vector3.new(lerp(6, 32, i), lerp(6, 32, i), lerp(6, 32, i))\n   task.wait(0.01)\nend<\/code><\/pre>\n\n\n\n<p>And since we&#8217;re using <code>lerp(6, 32, i)<\/code> 3 times, we can make use of a variable.<\/p>\n\n\n\n<pre class=\"wp-block-code has-contrast-color has-text-color has-link-color has-medium-font-size wp-elements-91611b38ef57edf5c4b979c51ac2c865\"><code>for i = 0, 1, 0.01 do\n   local lerpedValue = lerp(6, 32, i)\n   workspace.Part.Size = Vector3.new(lerpedValue, lerpedValue, lerpedValue)\n   task.wait(0.01)\nend<\/code><\/pre>\n\n\n\n<p>And we&#8217;re done!<\/p>\n\n\n\n<p>If you enjoyed this beginner&#8217;s guide to linear interpolation, make sure to subscribe to Kushal Writes, so that you don&#8217;t miss out on new game development\/computer science articles.<\/p>\n\n\n\n<p>Thanks for reading!<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Linear interpolation is a method we use to find a number that is some % in between two numbers.<\/p>\n","protected":false},"author":1,"featured_media":166,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[19],"tags":[11,10,7,14],"class_list":["post-144","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-roblox-developers-corner","tag-algorithms","tag-computer-science","tag-game-development","tag-roblox-scripting"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v24.0 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Beginner&#039;s Guide to Linear Interpolation - Kushal Writes<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/kushaltimsina.com\/blog\/2025\/01\/08\/beginners-guide-to-linear-interpolation\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Beginner&#039;s Guide to Linear Interpolation - Kushal Writes\" \/>\n<meta property=\"og:description\" content=\"Linear interpolation is a method we use to find a number that is some % in between two numbers.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/kushaltimsina.com\/blog\/2025\/01\/08\/beginners-guide-to-linear-interpolation\/\" \/>\n<meta property=\"og:site_name\" content=\"Kushal Writes\" \/>\n<meta property=\"article:published_time\" content=\"2025-01-08T22:57:43+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-02-08T16:25:16+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/kushaltimsina.com\/blog\/wp-content\/uploads\/2025\/01\/image-25.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1522\" \/>\n\t<meta property=\"og:image:height\" content=\"926\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"kushal\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"kushal\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"11 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/kushaltimsina.com\/blog\/2025\/01\/08\/beginners-guide-to-linear-interpolation\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/kushaltimsina.com\/blog\/2025\/01\/08\/beginners-guide-to-linear-interpolation\/\"},\"author\":{\"name\":\"kushal\",\"@id\":\"https:\/\/kushaltimsina.com\/blog\/#\/schema\/person\/9ae64ce30587c804d89b1eef21ba5d2f\"},\"headline\":\"Beginner&#8217;s Guide to Linear Interpolation\",\"datePublished\":\"2025-01-08T22:57:43+00:00\",\"dateModified\":\"2025-02-08T16:25:16+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/kushaltimsina.com\/blog\/2025\/01\/08\/beginners-guide-to-linear-interpolation\/\"},\"wordCount\":1803,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/kushaltimsina.com\/blog\/#\/schema\/person\/9ae64ce30587c804d89b1eef21ba5d2f\"},\"image\":{\"@id\":\"https:\/\/kushaltimsina.com\/blog\/2025\/01\/08\/beginners-guide-to-linear-interpolation\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/kushaltimsina.com\/blog\/wp-content\/uploads\/2025\/01\/image-25.png\",\"keywords\":[\"algorithms\",\"computer science\",\"game development\",\"roblox scripting\"],\"articleSection\":[\"Roblox Developer's Corner\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/kushaltimsina.com\/blog\/2025\/01\/08\/beginners-guide-to-linear-interpolation\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/kushaltimsina.com\/blog\/2025\/01\/08\/beginners-guide-to-linear-interpolation\/\",\"url\":\"https:\/\/kushaltimsina.com\/blog\/2025\/01\/08\/beginners-guide-to-linear-interpolation\/\",\"name\":\"Beginner's Guide to Linear Interpolation - Kushal Writes\",\"isPartOf\":{\"@id\":\"https:\/\/kushaltimsina.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/kushaltimsina.com\/blog\/2025\/01\/08\/beginners-guide-to-linear-interpolation\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/kushaltimsina.com\/blog\/2025\/01\/08\/beginners-guide-to-linear-interpolation\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/kushaltimsina.com\/blog\/wp-content\/uploads\/2025\/01\/image-25.png\",\"datePublished\":\"2025-01-08T22:57:43+00:00\",\"dateModified\":\"2025-02-08T16:25:16+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/kushaltimsina.com\/blog\/2025\/01\/08\/beginners-guide-to-linear-interpolation\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/kushaltimsina.com\/blog\/2025\/01\/08\/beginners-guide-to-linear-interpolation\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/kushaltimsina.com\/blog\/2025\/01\/08\/beginners-guide-to-linear-interpolation\/#primaryimage\",\"url\":\"https:\/\/kushaltimsina.com\/blog\/wp-content\/uploads\/2025\/01\/image-25.png\",\"contentUrl\":\"https:\/\/kushaltimsina.com\/blog\/wp-content\/uploads\/2025\/01\/image-25.png\",\"width\":1522,\"height\":926},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/kushaltimsina.com\/blog\/2025\/01\/08\/beginners-guide-to-linear-interpolation\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/kushaltimsina.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Beginner&#8217;s Guide to Linear Interpolation\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/kushaltimsina.com\/blog\/#website\",\"url\":\"https:\/\/kushaltimsina.com\/blog\/\",\"name\":\"Kushal Timsina\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\/\/kushaltimsina.com\/blog\/#\/schema\/person\/9ae64ce30587c804d89b1eef21ba5d2f\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/kushaltimsina.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\/\/kushaltimsina.com\/blog\/#\/schema\/person\/9ae64ce30587c804d89b1eef21ba5d2f\",\"name\":\"kushal\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/kushaltimsina.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/kushaltimsina.com\/blog\/wp-content\/uploads\/2024\/11\/tempImage75F1Sw-edited.jpg\",\"contentUrl\":\"https:\/\/kushaltimsina.com\/blog\/wp-content\/uploads\/2024\/11\/tempImage75F1Sw-edited.jpg\",\"width\":1274,\"height\":849,\"caption\":\"kushal\"},\"logo\":{\"@id\":\"https:\/\/kushaltimsina.com\/blog\/#\/schema\/person\/image\/\"},\"description\":\"Kushal Timsina has been developing Roblox games since 2016, played 40,000,000+ times, teaches Roblox scripting on YouTube to 1,000,000+ views, and is the author of the Beginner's Guide to Roblox Scripting book.\",\"sameAs\":[\"https:\/\/kushaltimsina.com\/blog\"],\"url\":\"https:\/\/kushaltimsina.com\/blog\/author\/kushal\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Beginner's Guide to Linear Interpolation - Kushal Writes","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/kushaltimsina.com\/blog\/2025\/01\/08\/beginners-guide-to-linear-interpolation\/","og_locale":"en_US","og_type":"article","og_title":"Beginner's Guide to Linear Interpolation - Kushal Writes","og_description":"Linear interpolation is a method we use to find a number that is some % in between two numbers.","og_url":"https:\/\/kushaltimsina.com\/blog\/2025\/01\/08\/beginners-guide-to-linear-interpolation\/","og_site_name":"Kushal Writes","article_published_time":"2025-01-08T22:57:43+00:00","article_modified_time":"2025-02-08T16:25:16+00:00","og_image":[{"width":1522,"height":926,"url":"https:\/\/kushaltimsina.com\/blog\/wp-content\/uploads\/2025\/01\/image-25.png","type":"image\/png"}],"author":"kushal","twitter_card":"summary_large_image","twitter_misc":{"Written by":"kushal","Est. reading time":"11 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/kushaltimsina.com\/blog\/2025\/01\/08\/beginners-guide-to-linear-interpolation\/#article","isPartOf":{"@id":"https:\/\/kushaltimsina.com\/blog\/2025\/01\/08\/beginners-guide-to-linear-interpolation\/"},"author":{"name":"kushal","@id":"https:\/\/kushaltimsina.com\/blog\/#\/schema\/person\/9ae64ce30587c804d89b1eef21ba5d2f"},"headline":"Beginner&#8217;s Guide to Linear Interpolation","datePublished":"2025-01-08T22:57:43+00:00","dateModified":"2025-02-08T16:25:16+00:00","mainEntityOfPage":{"@id":"https:\/\/kushaltimsina.com\/blog\/2025\/01\/08\/beginners-guide-to-linear-interpolation\/"},"wordCount":1803,"commentCount":0,"publisher":{"@id":"https:\/\/kushaltimsina.com\/blog\/#\/schema\/person\/9ae64ce30587c804d89b1eef21ba5d2f"},"image":{"@id":"https:\/\/kushaltimsina.com\/blog\/2025\/01\/08\/beginners-guide-to-linear-interpolation\/#primaryimage"},"thumbnailUrl":"https:\/\/kushaltimsina.com\/blog\/wp-content\/uploads\/2025\/01\/image-25.png","keywords":["algorithms","computer science","game development","roblox scripting"],"articleSection":["Roblox Developer's Corner"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/kushaltimsina.com\/blog\/2025\/01\/08\/beginners-guide-to-linear-interpolation\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/kushaltimsina.com\/blog\/2025\/01\/08\/beginners-guide-to-linear-interpolation\/","url":"https:\/\/kushaltimsina.com\/blog\/2025\/01\/08\/beginners-guide-to-linear-interpolation\/","name":"Beginner's Guide to Linear Interpolation - Kushal Writes","isPartOf":{"@id":"https:\/\/kushaltimsina.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/kushaltimsina.com\/blog\/2025\/01\/08\/beginners-guide-to-linear-interpolation\/#primaryimage"},"image":{"@id":"https:\/\/kushaltimsina.com\/blog\/2025\/01\/08\/beginners-guide-to-linear-interpolation\/#primaryimage"},"thumbnailUrl":"https:\/\/kushaltimsina.com\/blog\/wp-content\/uploads\/2025\/01\/image-25.png","datePublished":"2025-01-08T22:57:43+00:00","dateModified":"2025-02-08T16:25:16+00:00","breadcrumb":{"@id":"https:\/\/kushaltimsina.com\/blog\/2025\/01\/08\/beginners-guide-to-linear-interpolation\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/kushaltimsina.com\/blog\/2025\/01\/08\/beginners-guide-to-linear-interpolation\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/kushaltimsina.com\/blog\/2025\/01\/08\/beginners-guide-to-linear-interpolation\/#primaryimage","url":"https:\/\/kushaltimsina.com\/blog\/wp-content\/uploads\/2025\/01\/image-25.png","contentUrl":"https:\/\/kushaltimsina.com\/blog\/wp-content\/uploads\/2025\/01\/image-25.png","width":1522,"height":926},{"@type":"BreadcrumbList","@id":"https:\/\/kushaltimsina.com\/blog\/2025\/01\/08\/beginners-guide-to-linear-interpolation\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/kushaltimsina.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Beginner&#8217;s Guide to Linear Interpolation"}]},{"@type":"WebSite","@id":"https:\/\/kushaltimsina.com\/blog\/#website","url":"https:\/\/kushaltimsina.com\/blog\/","name":"Kushal Timsina","description":"","publisher":{"@id":"https:\/\/kushaltimsina.com\/blog\/#\/schema\/person\/9ae64ce30587c804d89b1eef21ba5d2f"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/kushaltimsina.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":["Person","Organization"],"@id":"https:\/\/kushaltimsina.com\/blog\/#\/schema\/person\/9ae64ce30587c804d89b1eef21ba5d2f","name":"kushal","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/kushaltimsina.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/kushaltimsina.com\/blog\/wp-content\/uploads\/2024\/11\/tempImage75F1Sw-edited.jpg","contentUrl":"https:\/\/kushaltimsina.com\/blog\/wp-content\/uploads\/2024\/11\/tempImage75F1Sw-edited.jpg","width":1274,"height":849,"caption":"kushal"},"logo":{"@id":"https:\/\/kushaltimsina.com\/blog\/#\/schema\/person\/image\/"},"description":"Kushal Timsina has been developing Roblox games since 2016, played 40,000,000+ times, teaches Roblox scripting on YouTube to 1,000,000+ views, and is the author of the Beginner's Guide to Roblox Scripting book.","sameAs":["https:\/\/kushaltimsina.com\/blog"],"url":"https:\/\/kushaltimsina.com\/blog\/author\/kushal\/"}]}},"_links":{"self":[{"href":"https:\/\/kushaltimsina.com\/blog\/wp-json\/wp\/v2\/posts\/144","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/kushaltimsina.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/kushaltimsina.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/kushaltimsina.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/kushaltimsina.com\/blog\/wp-json\/wp\/v2\/comments?post=144"}],"version-history":[{"count":13,"href":"https:\/\/kushaltimsina.com\/blog\/wp-json\/wp\/v2\/posts\/144\/revisions"}],"predecessor-version":[{"id":395,"href":"https:\/\/kushaltimsina.com\/blog\/wp-json\/wp\/v2\/posts\/144\/revisions\/395"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/kushaltimsina.com\/blog\/wp-json\/wp\/v2\/media\/166"}],"wp:attachment":[{"href":"https:\/\/kushaltimsina.com\/blog\/wp-json\/wp\/v2\/media?parent=144"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/kushaltimsina.com\/blog\/wp-json\/wp\/v2\/categories?post=144"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/kushaltimsina.com\/blog\/wp-json\/wp\/v2\/tags?post=144"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}