Skip to content

Main content

Unit Easing In Out Time Map

Map a unit progress into an in/out half’s local time and value affine parameters; caller separately evaluates the appropriate easing branch.

Loading tool…

Description

Map a unit progress into an in/out half’s local time and value affine parameters; caller separately evaluates the appropriate easing branch.

Easing maps normalized progress to a dimensionless curve value. A slope differentiates that curve with respect to progress, while delay remapping and ping-pong phases change the input coordinate. To turn progress into position or time-dependent velocity, supply the application’s distance scale and duration separately.

Map a unit progress into an in/out half’s local time and value affine parameters; caller separately evaluates the appropriate easing branch.

When to use this tool

Use this tool to map a unit progress into an in/out half’s local time and value affine parameters; caller separately evaluates the appropriate easing branch.

How to use the tool and how it works

  1. Enter t using the input definitions below.
  2. Run the operation. Resolve malformed-input errors before interpreting the result.
  3. Read result.half, result.localTime, result.valueScale, result.valueOffset. Interpret signs, units, ordering and null values using the rules below.

For t<1/2 return half=in, localTime=2t, valueScale=1/2 and valueOffset=0. Otherwise return half=out, localTime=2t−1 and valueOffset=1/2 with the same scale.1

Input fieldMeaning and unitsAccepted input
tDimensionless normalized input from 0 through 1, except the explicitly described delay-remapping coordinate.Finite number satisfying the stated comparisons.
Output fieldInterpretation
resultObject containing the fields below.
result.halfSelected local branch: in or out.
result.localTimeNormalized time coordinate within the selected half.
result.valueScaleMultiplier 0.5 for the separately evaluated branch value.
result.valueOffsetValue offset 0 for the in half or 0.5 for the out half.
json
{
  "input": {
    "t": 0.75
  },
  "output": {
    "result": {
      "half": "out",
      "localTime": 0.5,
      "valueScale": 0.5,
      "valueOffset": 0.5
    }
  }
}

Limitations and assumptions

  • This provides branch coordinates only; evaluate the chosen branch separately and combine valueOffset + valueScale×branchValue.
  • Curves ordinarily require normalized input t from 0 through 1; ping-pong and delay-remapping operations instead accept their explicitly stated progress coordinates. Floating-point roundoff remains possible.
  • Every declared top-level input is required and unknown fields are rejected. Ordinary strings are limited to 8,192 UTF-16 code units and lists to 128 entries, with tighter operation-specific bounds where stated. JSON text has bounded nesting and node counts.
  • Numeric outputs must be finite and within the absolute safe-integer magnitude; exact larger integers use decimal text. Source positions are zero-based UTF-16 offsets and span ends are exclusive unless a different convention is explicitly stated.

Alternative or Complementary methods

Choose the curve and parameter convention before combining operations. Use a scheduler or animation engine for playback, and apply the appropriate duration/distance factors when interpreting slopes physically.

References

  1. Tool behavior and example: Unit Easing In Out Time Map — tool.io

Similar or alternative tools

  • Unit Cubic In Out Easing Value

    Evaluate Unit Cubic In Out Easing Value on the closed unit domain; deterministic numerical curve arithmetic without animation scheduling.

  • Unit Easing Reversal Transform

    Reverse supplied ordered unit easing samples in both time and value, preserving an ascending sample sequence; does not evaluate an unknown easing function.