Skip to content

Tracking Issue: Curves Working Group Tasks #13213

@mweatherley

Description

@mweatherley

About

The Curves working group exists to implement the Curve API described in this RFC and integrate it into Bevy's existing codebase (primarily in math and animation).

The design document for this group is here.

This working group is coordinated in this Discord channel.

If you are interested in contributing to this effort, please check in on Discord first — and, of course, external reviews on related PRs are always welcome.

Tasks

  • Implement the Curve API itself.
  • Integrate the Curve API with bevy_animation.
    • Replace each component of VariableCurve (translation, rotation, scale, morph weights) with a type that implements the associated Curve trait. (Curve-based animation #15434)
    • Refactor AnimationTargetContext to sample from new VariableCurve components instead of doing its own interpolation.
    • Benchmark animation update performance and compare the refactored version with the existing one.
  • Integrate the Curve API with bevy_math.
    • Perform design work on shared API for producing and consuming geometric curves which may be constrained by the input quality (e.g. C0 vs C1 curves).
    • Implement curve-production API for CubicCurve and implementors of CubicGenerator.
    • Implement curve-production API for RationalCurve and implementors of RationalGenerator.

Beyond

This section is for tracking related tasks outside of the scope of the present working group proposal that may be spun off into external issues when this work is completed (or advanced to a sufficient state).

  • Investigate the inclusion of more common easing/tweening functions into Bevy itself.
  • Improve the Reflect implementations for adaptors in the Curve API so that the adaptors are Reflect when their bases are.

Metadata

Metadata

Assignees

No one assigned

    Labels

    A-AnimationMake things move and change over timeA-MathFundamental domain-agnostic mathematical operationsC-Tracking-IssueAn issue that collects information about a broad development initiative

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions