{"id":13711708,"url":"https://github.com/BanchouBoo/algae","last_synced_at":"2025-05-06T21:32:01.100Z","repository":{"id":180783133,"uuid":"375190111","full_name":"BanchouBoo/algae","owner":"BanchouBoo","description":"Zig math library focused on game development","archived":false,"fork":false,"pushed_at":"2022-01-19T23:27:03.000Z","size":84,"stargazers_count":7,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-04-14T14:57:08.290Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Zig","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"unlicense","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/BanchouBoo.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}},"created_at":"2021-06-09T01:26:30.000Z","updated_at":"2023-07-17T20:35:32.000Z","dependencies_parsed_at":"2023-07-12T21:15:49.290Z","dependency_job_id":null,"html_url":"https://github.com/BanchouBoo/algae","commit_stats":null,"previous_names":["banchouboo/algae"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BanchouBoo%2Falgae","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BanchouBoo%2Falgae/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BanchouBoo%2Falgae/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BanchouBoo%2Falgae/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/BanchouBoo","download_url":"https://codeload.github.com/BanchouBoo/algae/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":252772114,"owners_count":21801854,"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-08-02T23:01:10.858Z","updated_at":"2025-05-06T21:32:00.651Z","avatar_url":"https://github.com/BanchouBoo.png","language":"Zig","readme":"# Algae\nMath library with a focus on game development, currently primarily focused on linear algebra but with plans to eventually include other things useful for game dev as I encounter needs for them such as fast RNG implementations, noise, 1D tranformations, etc.\n\nInspired by [zlm](https://github.com/ziglibs/zlm).\n\n## Usage\n\n### Linear Algebra\nCurrent types available:\n* Vec2\n* Vec3\n* Vec4\n* Quaternion\n* Matrices\n\nLinear algebra is imported with a numeric type and has config options, example with default config options:\n\n```zig\nalgae.lin_alg.WithType(f32, .{\n    .use_degrees = false, // angles will be passed into and returned as degrees if true\n    .integer_division_behavior = .truncate, // how division operations work when the underlying type is an integer\n    .auto_normalize_quaternions = true, // ensure quaternions are normalized for operations that require it if true\n    .extern_types = true, // Vector and Matrix types will be extern structs instead of regular structs if true\n});\n```\n\nMatrices are generic on their rows and columns, and if the rows and columns are the same length it will have an `identity` constant. Additionally, there is a pre-defined 4x4 matrix type with various functions for creating translations, rotations, scaling, and perspective and orthographic projections.\n\nVectors can do arithmetic with other struct types and with arrays so long as the length and types match, as can matrices, example:\n\n```zig\nconst vec = vec2(1, 2).add([_]f32{3, 4}); // returns vec2(4, 6)\n```\n\n### Float\nOffers the following:\n* `toDegrees` and `toRadians` to convert angles\n* `lerp`\n* A variety of easing functions\n","funding_links":[],"categories":["Data \u0026 Science"],"sub_categories":["Linear Algebra"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FBanchouBoo%2Falgae","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FBanchouBoo%2Falgae","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FBanchouBoo%2Falgae/lists"}