bevyengine / bevyengine/bevy

"smooth_damp" functions for primitives and math structs

Open
#13,408 6 comments 1 reaction 0 assignees View on GitHub
A-Animation A-Math C-Feature S-Needs-Design
Dominant language
Rust
Stars
48.2k
Forks
4.8k
Avg merge
3d 16h
Merged PRs (30d)
171

Description

## What problem does this solve or what need does it fill?

I need to smoothly move a value towards a target value over time using velocity and other parameters (see below).

## What solution would you like?

I would like a set of "smooth_damp" functions for primitives and which have:
- current
- target
- velocity
- smooth time
- max value delta
- time delta

Importantly, I would also like a *spherical* smooth_damp for Vec2 and Vec3.

## What alternative(s) have you considered?

A similar effect can be achieved using interpolation functions while updating the start value. However, this lacks all the parameters of a smooth_damp function.

## Additional context

https://docs.unity3d.com/ScriptReference/Vector3.SmoothDamp.html

Contributor guide

Open the contributing guide

Research direction

The issue names no files or tests; start by reading the linked Unity Vector3.SmoothDamp reference and locating Bevy's existing interpolation functions for primitives, Vec2, and Vec3. Done means adding smooth_damp functions with the requested parameters, including spherical variants for Vec2 and Vec3, with behavior covered by appropriate tests.

Written by the indexing model from the issue text.

Assessment

Tech stack
rust
Domain
game-dev
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.