{"id":21125948,"url":"https://github.com/shimpe/pyvectortween","last_synced_at":"2025-07-11T21:34:28.939Z","repository":{"id":62587184,"uuid":"89052044","full_name":"shimpe/pyvectortween","owner":"shimpe","description":"some helper classes to generate vector graphics animations with tweening","archived":false,"fork":false,"pushed_at":"2022-12-23T13:56:13.000Z","size":35233,"stargazers_count":15,"open_issues_count":0,"forks_count":0,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-07-03T10:56:09.783Z","etag":null,"topics":["animation","python","tweening","tweening-library"],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/shimpe.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2017-04-22T07:21:49.000Z","updated_at":"2024-05-12T04:29:08.000Z","dependencies_parsed_at":"2023-01-30T18:35:12.589Z","dependency_job_id":null,"html_url":"https://github.com/shimpe/pyvectortween","commit_stats":null,"previous_names":[],"tags_count":3,"template":false,"template_full_name":null,"purl":"pkg:github/shimpe/pyvectortween","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/shimpe%2Fpyvectortween","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/shimpe%2Fpyvectortween/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/shimpe%2Fpyvectortween/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/shimpe%2Fpyvectortween/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/shimpe","download_url":"https://codeload.github.com/shimpe/pyvectortween/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/shimpe%2Fpyvectortween/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":264365524,"owners_count":23596854,"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":["animation","python","tweening","tweening-library"],"created_at":"2024-11-20T04:38:35.792Z","updated_at":"2025-07-08T23:31:39.976Z","avatar_url":"https://github.com/shimpe.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Vectortween\n\nSome helper classes to generate vector graphics animations with tweening.\n\nThis library works wity python 3 only. It depends on the python libraries \"pytweening\", \"numpy\", \"scipy\" and \"sympy\"\n\nWhile it can be used in combination with any other library, the examples are made using the libraries \"gizeh\" and \"moviepy\".\n\nDocumentation is mostly non-existing at the moment, but you can look at the examples to get some inspiration.\n \n #  Basic concept\n An animation is modeled as numbers that evolve over time from a starting point to an end point. \n Animation specifications do not include start and stop times or durations. \n These are specified only while realizing the animations. \n This makes it easy to compose animations into more complex animations.\n \n ## Example\n ```python\n from vectortween.NumberAnimation import NumberAnimation\n \n n = NumberAnimation(frm=0, to=100, tween=[\"easeOutBounce\"])\n \n for i in range(100):\n    print (n.make_frame(frame=i/20, birthframe=0, startframe=0, \n                        stopframe=5, deathframe=5))\n```\n\n## Discussion\n\nThe simplest animation is a NumberAnimation. The specification says that the \nanimation will produce values between 0 and 100 and that, as the \nanimation progresses towards the end, the numbers will bounce back and forth a bit.\n\nWhen calling the make_frame method, we must specify a timeline. \nThe animation is automatically stretched to fill the time between startframe and stopframe:\n * `frame`: the current frame or timestep for which we want to get a NumberAnimation \n  value.\n * `birthframe`: for frames \u003c birthframe, make_frame returns None \n (the animation is not yet \"alive\"). For birthframe \u003c= frame \u003c startframe, \n the animation returns the initial value.\n * `startframe`: for startframe \u003c= frame \u003c= stopframe, the animation returns values\n as specified in the NumberAnimation parameters.\n * `stopframe`: for stopframe \u003c frame \u003c deathframe, the animation returns\n the final animation value (the animation remains \"alive\", but doesn't\n evolve further).\n * `deathframe`: for frame \u003e= deathframe, the animation returns None. \n The animation is \"dead\".\n\nAll frame arguments are floats. So it's perfectly possible to\nask (and get, within machine precision) the animated value for frame 3.52634.\n\n## Not for real-time usage!\n\nAlthough I try to get a reasonable performance, performance is not the \nfirst concern. The library is not intended for real-time usage. \nMy current interest lies in offline generation/rendering of graphics.\nThe library will happily sacrifice speed for accuracy when faced with \nthe choice. As a result it can be arbitrarily slow \n(especially with heavy parametric equations).\n\n## Examples\n\nI suggest to look at the examples to get an idea of how the different animation types work.\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fshimpe%2Fpyvectortween","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fshimpe%2Fpyvectortween","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fshimpe%2Fpyvectortween/lists"}