{"id":18517409,"url":"https://github.com/spicycactuar/skeletal-blending","last_synced_at":"2026-04-15T15:32:54.505Z","repository":{"id":261339714,"uuid":"884019105","full_name":"SpicyCactuar/skeletal-blending","owner":"SpicyCactuar","description":"Skeletal animation blending of BVH files","archived":false,"fork":false,"pushed_at":"2025-02-20T22:59:02.000Z","size":107,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-05-14T15:18:56.032Z","etag":null,"topics":["animation-blending","computer-graphics","cpp","opengl","qt5","skeletal-animation"],"latest_commit_sha":null,"homepage":"","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/SpicyCactuar.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2024-11-06T01:42:06.000Z","updated_at":"2025-02-20T22:59:06.000Z","dependencies_parsed_at":"2025-09-05T17:33:02.606Z","dependency_job_id":null,"html_url":"https://github.com/SpicyCactuar/skeletal-blending","commit_stats":{"total_commits":5,"total_committers":1,"mean_commits":5.0,"dds":0.0,"last_synced_commit":"d95b1b9c14f2b988766e5438341017410c63b3b3"},"previous_names":["spicycactuar/skeletal-blending"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/SpicyCactuar/skeletal-blending","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SpicyCactuar%2Fskeletal-blending","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SpicyCactuar%2Fskeletal-blending/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SpicyCactuar%2Fskeletal-blending/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SpicyCactuar%2Fskeletal-blending/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/SpicyCactuar","download_url":"https://codeload.github.com/SpicyCactuar/skeletal-blending/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SpicyCactuar%2Fskeletal-blending/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":273790554,"owners_count":25168674,"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-09-05T02:00:09.113Z","response_time":402,"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":["animation-blending","computer-graphics","cpp","opengl","qt5","skeletal-animation"],"created_at":"2024-11-06T17:03:18.652Z","updated_at":"2026-04-15T15:32:54.457Z","avatar_url":"https://github.com/SpicyCactuar.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Skeletal Blending\n\n![skeletal-blending](https://github.com/user-attachments/assets/888d0f05-9ecf-4f48-b6d3-986000cad34e)\n\nQt application showcasing skeletal animation blending of BVH (Biovision hierarchical data) data.\nA single character with basic movement (rest, run and veer) can be moved around an undulating terrain.\n\nEach bone is rendered from a recursive hierarchical joint transformation matrix constructed as follows:\n\n$J = J * T_{J} * R_{J}$\n\nJoint rotation is applied first, following translation and finally the accumulated transform.\n\nAnimations are blended by `slerp`ing between keyframe rotations over a fixed period of time.\n\n## Project Structure\n\n```plaintext\nskeletal-blending/\n├── src/                   # Source code\n├── assets/                # Static assets (.dem and .bvh files)\n├── skeletal-blending.pro  # QMake project\n└── README.md              # Project README\n```\n\n## Build\n\n```bash\nqmake\nmake\n```\n\n## Run\n\n```bash\nbin/skeletal-blending\n```\n\n## Controls\n\n| Key(s)                | Action                             |\n|-----------------------|------------------------------------|\n| `↑` / `↓` / `←` / `→` | Move character around              |\n| `P`                   | Reset character to initial state   |\n| `W` / `S`             | Move camera forwards and backwards |\n| `A` / `D`             | Move camera left and right         |\n| `R` / `F`             | Move camera up and down            |\n| `Q` / `E`             | Yaw camera left and right          |\n| `X`                   | Exit application                   |\n\n## Technologies\n\n* **C++**: `\u003e= C++17`\n* **Qt**: `5.12.x`\n* **OpenGL**: `\u003e= 4.0`\n\nNewer versions of Qt might work correctly, if no breaking changes that affect the application were introduced.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fspicycactuar%2Fskeletal-blending","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fspicycactuar%2Fskeletal-blending","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fspicycactuar%2Fskeletal-blending/lists"}