{"id":20790589,"url":"https://github.com/brainiumllc/celerity","last_synced_at":"2025-10-17T13:56:05.699Z","repository":{"id":52515170,"uuid":"317669322","full_name":"BrainiumLLC/celerity","owner":"BrainiumLLC","description":"Buttery smooth animation toolkit 🧈","archived":false,"fork":false,"pushed_at":"2023-03-14T21:17:35.000Z","size":164,"stargazers_count":18,"open_issues_count":0,"forks_count":2,"subscribers_count":5,"default_branch":"main","last_synced_at":"2025-07-24T12:50:59.272Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/BrainiumLLC.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE-APACHE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-12-01T21:14:16.000Z","updated_at":"2025-04-05T21:29:17.000Z","dependencies_parsed_at":"2024-11-17T15:40:44.842Z","dependency_job_id":"4b2bc163-cf61-46fa-86f2-e8e9bbdd7b65","html_url":"https://github.com/BrainiumLLC/celerity","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/BrainiumLLC/celerity","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BrainiumLLC%2Fcelerity","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BrainiumLLC%2Fcelerity/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BrainiumLLC%2Fcelerity/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BrainiumLLC%2Fcelerity/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/BrainiumLLC","download_url":"https://codeload.github.com/BrainiumLLC/celerity/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BrainiumLLC%2Fcelerity/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":279356279,"owners_count":26154592,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-10-17T02:00:07.504Z","response_time":56,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-17T15:36:00.070Z","updated_at":"2025-10-17T13:56:05.644Z","avatar_url":"https://github.com/BrainiumLLC.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"# celerity\n\nButtery smooth animation toolkit.\n\n\n## Overview\n\nCelerity implements primitives for precise animation of arbitrary value types.\n\nCelerity is largely compatible with the animation model of Adobe After Effects, relying on Cubic Beziers for both temporal and spatial easing. After Effects animations exported using the [`bodymovin`](https://exchange.adobe.com/creativecloud.details.12557.bodymovin.html) plugin can be imported into celerity. This is very similar to the [Lottie](https://airbnb.design/lottie/) web animation framework.\n\n## Example\n\n```\nTODO\n```\n\n## Traits\n\nCelerity centers on a few traits:\n\n- `trait Animatable` - A value type that can be used for animation keyframes. Must be able to `lerp(...)` (linear interpolation) and measure shortest `distance_to()` between two values A and B. `C` is the type of the scalar components (e.g. `f32`).\n- `trait Animation\u003cV\u003e` - A time-changing value `V` that you can `sample(...)` at any point in time.\n- `trait BoundedAnimation\u003cV\u003e` - An animation with a known duration\n\n## Combinators\n\nCelerity has a set of animation combinators which can be used to produce higher-order animations:\n\n- `Chain\u003cA, B, V\u003e` - Play animation A, then play animation B\n- `Cutoff\u003cA, V\u003e` - Play only part of animation A\n- `Cycle\u003cA, V\u003e` - Repeat animation A indefinitely\n- `Interrupt\u003cB, V\u003e` - Interrupt an animation A in the middle and transition into a smooth animation B\n- `Rev\u003cA, V\u003e` - Reverse a bounded animation\n\n## Keyframes vs Intervals\n\nIn the API, there are two ways to specify track animations:\n1) A user-friendly `Keyframe` API\n2) A code-friendly `Interval` API.\n\nIn the first, an animation `Track` contains `Keyframe`s with values at specific points in time. This representation is easiest to define and edit, with a single source of truth for each value.\n\nIn the second, an animation contains `Interval`s, each of which is a self-contained data structure. This representation is optimized for playback. It describes the entire animation between time `t1` and `t2`, with no dependency on the interval before or after.\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbrainiumllc%2Fcelerity","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbrainiumllc%2Fcelerity","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbrainiumllc%2Fcelerity/lists"}