diff --git a/ScriptCore/Math/Math.cs b/ScriptCore/Math/Math.cs
index 6a45d3a..df46de5 100644
--- a/ScriptCore/Math/Math.cs
+++ b/ScriptCore/Math/Math.cs
@@ -1109,4 +1109,56 @@ public static partial class Math
public static float4 tanh(float4 value) => new((float)System.Math.Tanh(value.X), (float)System.Math.Tanh(value.Y), (float)System.Math.Tanh(value.Z), (float)System.Math.Tanh(value.W));
#endregion
+
+ #region remap
+
+ ///
+ /// Remaps a value from one range to another.
+ ///
+ /// The value to remap.
+ /// The minimum value of the old range.
+ /// The maximum value of the old range.
+ /// The minimum value of the new range.
+ /// The maximum value of the new range.
+ /// The remapped value.
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public static float remap(float value, float oldMin, float oldMax, float newMin, float newMax)
+ {
+ return newMin + (value - oldMin) * (newMax - newMin) / (oldMax - oldMin);
+ }
+
+ ///
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public static float2 remap(float2 value, float2 oldMin, float2 oldMax, float2 newMin, float2 newMax)
+ {
+ return new float2(
+ remap(value.X, oldMin.X, oldMax.X, newMin.X, newMax.X),
+ remap(value.Y, oldMin.Y, oldMax.Y, newMin.Y, newMax.Y)
+ );
+ }
+
+ ///
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public static float3 remap(float3 value, float3 oldMin, float3 oldMax, float3 newMin, float3 newMax)
+ {
+ return new float3(
+ remap(value.X, oldMin.X, oldMax.X, newMin.X, newMax.X),
+ remap(value.Y, oldMin.Y, oldMax.Y, newMin.Y, newMax.Y),
+ remap(value.Z, oldMin.Z, oldMax.Z, newMin.Z, newMax.Z)
+ );
+ }
+
+ ///
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public static float4 remap(float4 value, float4 oldMin, float4 oldMax, float4 newMin, float4 newMax)
+ {
+ return new float4(
+ remap(value.X, oldMin.X, oldMax.X, newMin.X, newMax.X),
+ remap(value.Y, oldMin.Y, oldMax.Y, newMin.Y, newMax.Y),
+ remap(value.Z, oldMin.Z, oldMax.Z, newMin.Z, newMax.Z),
+ remap(value.W, oldMin.W, oldMax.W, newMin.W, newMax.W)
+ );
+ }
+
+ #endregion
}