{"id":16227828,"url":"https://github.com/d0x2f/animate","last_synced_at":"2025-06-25T07:05:41.053Z","repository":{"id":118797471,"uuid":"81934021","full_name":"d0x2f/Animate","owner":"d0x2f","description":"Interesting minimalist animations","archived":false,"fork":false,"pushed_at":"2019-01-02T10:40:58.000Z","size":4608,"stargazers_count":8,"open_issues_count":0,"forks_count":4,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-04-03T03:05:54.249Z","etag":null,"topics":["animation","autotools","cpp14","glfw","opengl","vulkan"],"latest_commit_sha":null,"homepage":"","language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/d0x2f.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,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2017-02-14T10:31:08.000Z","updated_at":"2025-01-30T20:26:55.000Z","dependencies_parsed_at":null,"dependency_job_id":"460262a0-027d-48e3-98b8-1bb4d5005c90","html_url":"https://github.com/d0x2f/Animate","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/d0x2f/Animate","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/d0x2f%2FAnimate","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/d0x2f%2FAnimate/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/d0x2f%2FAnimate/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/d0x2f%2FAnimate/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/d0x2f","download_url":"https://codeload.github.com/d0x2f/Animate/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/d0x2f%2FAnimate/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":261823759,"owners_count":23215142,"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","autotools","cpp14","glfw","opengl","vulkan"],"created_at":"2024-10-10T12:53:56.763Z","updated_at":"2025-06-25T07:05:40.564Z","avatar_url":"https://github.com/d0x2f.png","language":"C","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Animate\nInteresting minimalist animations.\n\nJust a collection of animations, press space to \"change the channel\".\n\n## Animations\n* Complete\n  * Taquin/15 puzzle solving ([video](https://www.youtube.com/watch?v=F2GyDwdp1KU)).\n  * Multiplication modulo drawn on a circle ([video](https://www.youtube.com/watch?v=pxVHWqUBAmg)).\n  * Full random noise.\n  * Minesweeper ([video](https://youtu.be/qlBwNXP5lfM)).\n  * Mandlebrot Set ([video](https://youtu.be/o_jfFCumiGU)).\n\n## Intention\n\nI'm making this collection of Vulkan/OpenGL animations as a way to grow and showcase my C++/GL abilities.\n\nWritting computer graphics binds two of my favourite subjects, programming and mathematics. In particlar modern C++ and differential geometry.\n\n## TODO\n* Implement instanced draws, the modulo animation involved 1001 draws per frame, 2 would be nicer.\n  * Drawables within a pipeline are already organised into primitive types (Quad/Line/Circle).\n  * Using this pre-organisation the pipeline can store all drawable buffers into a single indexed buffer.\n  * Calls to drawable's set\\_model\\_matrix, set\\_color, etc. can trigger an update of only the relevant sections of the buffer.\n\n## Build Requirements\n\n* Autotools\n* Python 3\n* Vulkan SDK and vulkan compatible hardware\n* [libtaquinsolve](https://github.com/d0x2f/libtaquinsolve)\n* [Casspir](https://github.com/d0x2f/Casspir)\n\n## Resources\n\n* https://www.youtube.com/watch?v=qhbuKbxJsk8\n* https://en.wikipedia.org/wiki/3D_projection\n* http://www.opengl-tutorial.org/beginners-tutorials/tutorial-3-matrices/\n* https://en.wikipedia.org/wiki/Affine_transformation#Affine_transformation_in_plane_geometry\n* https://developer.gnome.org/gtkmm/stable/\n* https://developer.nvidia.com/open-source-vulkan-c-api\n* https://www.khronos.org/registry/vulkan/specs/1.0/apispec.html\n* https://vulkan-tutorial.com\n* http://paulbourke.net/fractals/mandelbrot/\n* https://www.toptal.com/opengl/opengl-tutorial-for-android-building-a-mandelbrot-set-generator","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fd0x2f%2Fanimate","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fd0x2f%2Fanimate","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fd0x2f%2Fanimate/lists"}