{"id":28299617,"url":"https://github.com/micurs/shaders-mono","last_synced_at":"2025-06-15T19:31:55.936Z","repository":{"id":204801596,"uuid":"707821156","full_name":"micurs/shaders-mono","owner":"micurs","description":"A simple library to manage WebGPU rendering along with some examples ","archived":false,"fork":false,"pushed_at":"2023-12-04T23:05:03.000Z","size":59092,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-05-30T11:57:27.030Z","etag":null,"topics":["3d-graphics","geometry","shaders","typescript","web","webgpu"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","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/micurs.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"license.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null}},"created_at":"2023-10-20T18:27:52.000Z","updated_at":"2024-10-15T17:08:12.000Z","dependencies_parsed_at":"2023-12-05T00:35:00.866Z","dependency_job_id":null,"html_url":"https://github.com/micurs/shaders-mono","commit_stats":null,"previous_names":["micurs/shaders-mono"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/micurs/shaders-mono","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/micurs%2Fshaders-mono","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/micurs%2Fshaders-mono/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/micurs%2Fshaders-mono/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/micurs%2Fshaders-mono/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/micurs","download_url":"https://codeload.github.com/micurs/shaders-mono/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/micurs%2Fshaders-mono/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":260039645,"owners_count":22949652,"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":["3d-graphics","geometry","shaders","typescript","web","webgpu"],"created_at":"2025-05-23T10:13:23.036Z","updated_at":"2025-06-15T19:31:55.926Z","avatar_url":"https://github.com/micurs.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# shaders-mono\n\nWelcome to the \"shaders-mono\" project, an evolving exploration into the realms of WebGPU API and geometric programming using TypeScript.\n\nAt the heart of this project lies two core libraries housed within the shared folder: \"geopro\" and \"webgpu.\"\nThe \"geopro\" library is dedicated to 'coordinate-free' geometric programming, providing a robust toolkit for handling and manipulating geometric data and algorithms in a way that abstracts away the complexities of traditional coordinate systems.\n\nParallel to \"geopro,\" the \"webgpu\" library represents a forward-thinking endeavor in the realm of WebGPU technology.\nThis library is not just an accumulation of shader programming techniques; it's an ongoing attempt to streamline WebGPU programming.\n\nWe are not trying to replicate the abstractions found in other libraries built on top of low-level graphics APIs.\nInstead, the focus is on creating a more intuitive and accessible interface for WebGPU, aiming to unlock the full potential of this modern API while avoiding the complexities and limitations imposed by previous models.\n\nBy exploring innovative approaches and prioritizing a simplified user experience, this library serves as a foundational tool for developers venturing into the intricate world of WebGPU, providing an environment where creativity and efficiency coexist.\n\nTo test and showcase the features of these library this repo also includes a few demo applications under the `demos` folder.\nYou can also run the live [demos here](https://micurs.github.io/shaders-mono/).\n\n## Demo 1\n\n![Alt text](assets/demo-01.png)\n\n[Open the demo](https://micurs.github.io/shaders-mono/demo-01.html).\n\n## Demo 2\n\nA simple example with realtime animation of a 3D clock.\n\n![Alt text](assets/demo-02.png)\n\n[Open the demo](https://micurs.github.io/shaders-mono/demo-02.html).\n\n## Demo 3\n\nA simple integration with [Oimo.js 3d physics engine](https://github.com/lo-th/Oimo.js/).\n\n![Alt text](assets/demo-03.png)\n\n[Open the demo](https://micurs.github.io/shaders-mono/demo-03.html).\n\n## Development\n\nThis mono repo is managed with NX and use `pnpm` as package manager.\n\nSo first thing run `pnpm install` to get all the dependencies.\n\nThen you can run the main scripts from the root folder of this project to build the code:\n\n* `pnpm build:all`: Build all the projects in the repo. Nx will intelligently order the build process based on the dependency graph.\n* `pnpm build:shared`: Builds only the shared libraries in the repo (projects under `shared`).\n* `pnpm build:demo`: Builds the current main demo project.\n\nTo run the demo apps you can `cd` to any `demos` subfolder and run the `dev` script defined in each `package.json`\n\nFor example:\n\n```\ncd demos/demo-02\npnpm dev\n```\n\nFrom the root you can run the latest demo by invoking\n\n```\npnpm dev:demo\n```\n\n### License\n\nThis project is licensed under the MIT License - see the [LICENSE](license.txt) file for details.\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmicurs%2Fshaders-mono","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmicurs%2Fshaders-mono","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmicurs%2Fshaders-mono/lists"}