{"id":21826993,"url":"https://github.com/microo8/ca-project","last_synced_at":"2026-05-09T02:05:44.607Z","repository":{"id":4780509,"uuid":"5932543","full_name":"microo8/CA-project","owner":"microo8","description":"C03 - Inverse Kinematics","archived":false,"fork":false,"pushed_at":"2013-01-31T09:43:07.000Z","size":292,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-01-26T08:26:43.983Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":false,"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/microo8.png","metadata":{"files":{"readme":"README.rst","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}},"created_at":"2012-09-24T09:45:24.000Z","updated_at":"2013-11-02T03:03:06.000Z","dependencies_parsed_at":"2022-08-28T06:22:09.670Z","dependency_job_id":null,"html_url":"https://github.com/microo8/CA-project","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/microo8%2FCA-project","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/microo8%2FCA-project/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/microo8%2FCA-project/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/microo8%2FCA-project/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/microo8","download_url":"https://codeload.github.com/microo8/CA-project/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":244795520,"owners_count":20511521,"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","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-27T18:11:49.725Z","updated_at":"2025-10-23T17:27:48.223Z","avatar_url":"https://github.com/microo8.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"==========\nCA project\n==========\n\n*autor:* Bc. Vladimir Magyar\n\nProject theme C03 - Inverse Kinematics:\n---------------------------------------\n\n- Scene: 2d line-segment skeleton of figure (min 15 bones)\n- Implement 2d skeleton creation\n        - User can create new bone by selecting parent bone (click on it) and clicking anywhere to define end of bone\n        - Bones can have more child bones\n        - Each bone has its position, rotation angle and length (end point can be calculated)\n        - User can select starting and ending bone of the IK sequence\n- Implement forward kinematics\n        - Select bone by clicking, change rotation angle by dragging\n        - Child bones must be transformed correctly (can use transformation 3x3 matrices - they handle both rotation and translation)\n- Implement inverse kinematics (relaxation by gradient calculation)\n        - User can move end bone - IK solves bones in the IK sequence\n\nImplementation\n--------------\n\n:programing language: `python 3.2 \u003cwww.python.org\u003e`_\n:graphical user interface: `GTK3 \u003chttps://live.gnome.org/PyGObject\u003e`_\n:mathematical library: `numpy \u003chttp://numpy.scipy.org/\u003e`_\n\nProgress\n--------\n\n- Scene with sceleton: \n        - user can create new bones by clicking on a joint and than right click to a diredtion\n        - user can drag the sceleton by clicking on a joint and then draging it\n- Forward kinematics:\n        - user can rotate the bones by selecting a joint and than draging a child joint, all descendants rotate with it\n- Inverse kinematics:\n        - user can drag leaf joint and the arm (from root to the leaf) will follow the mouse cursor (while mouse button is down)\n- Saving and loading sceletons\n\nThe application:\n\n|screenshot01|\n\nRotating the bones:\n\n|screenshot02|\n\nDraging the sceleton:\n\n|screenshot03|\n\nSaving and loading:\n\n|screenshot04|\n\nInverse kinematics, draging leaf joint with the mouse:\n\n|screenshot05|\n\n\n.. |screenshot01| image:: screenshots/Screenshot01.png\n.. |screenshot02| image:: screenshots/Screenshot02.png\n.. |screenshot03| image:: screenshots/Screenshot03.png\n.. |screenshot04| image:: screenshots/Screenshot04.png\n.. |screenshot05| image:: screenshots/Screenshot05.png\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmicroo8%2Fca-project","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmicroo8%2Fca-project","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmicroo8%2Fca-project/lists"}