Skip to content

v0.9.0

Latest

Choose a tag to compare

@rawframe-release rawframe-release released this 02 Nov 19:09
9752834

0.9.0 (2026-11-02)

Changed

  • Breaking: maniSkeleton_BlendPoses refuses a threshold below
    FLT_MIN.
    The threshold must be at least FLT_MIN (2^-126) and at
    most 1. A subnormal threshold, which 0.8.0 accepted and which could
    blend translations and scales to infinity or NaN, now returns
    mani_errorInvalid and leaves the output pose as it was. Graphs blend
    at MANI_BLEND_THRESHOLD (1e-5) and are not affected
    (#216).

Fixed

  • Sampling a clip between two rotation samples in opposite hemispheres
    could give the identity rotation. A clip file may hold such samples,
    for example (1, 0, 0, 2^-80) and (-1, 0, 2^-80, 0); halfway between
    them, the interpolated rotation is too short for its squared length to
    be a normal binary32. It is now scaled by a power of two before it is
    normalized, so it keeps its direction. The builder keeps consecutive
    samples in one hemisphere, so built clips do not reach this case
    (#211).
  • The skinning jobs gave a zero normal or tangent for a direction that
    had not collapsed when the palette's scale was far from 1: a uniform
    scale of about 2^-40 or 2^40 for normals, and 2^-70 or 2^70 for
    tangents. They now keep its direction. Only a zero direction, or one
    that is not finite, still comes out zero
    (#214).

Results change only for the inputs above, which gave the identity or a
zero direction before. Every other pose, sample, skinned vertex, file
byte and format version is the same, and no pinned hash moves. As with
every release before 1.0.0, a graph instance, spring state or trainer
checkpoint saved by 0.8.0 is refused with mani_errorVersion: keep
assets, not saved states, across the upgrade.