{"id":20716573,"url":"https://github.com/akira-cn/glsl-doodle","last_synced_at":"2025-12-24T02:15:37.572Z","repository":{"id":47732007,"uuid":"188212918","full_name":"akira-cn/glsl-doodle","owner":"akira-cn","description":"Drawing patterns with glsl shaders  on modern browsers.","archived":false,"fork":false,"pushed_at":"2022-10-26T08:57:40.000Z","size":14372,"stargazers_count":60,"open_issues_count":0,"forks_count":9,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-03-11T07:27:05.349Z","etag":null,"topics":["glsl","glsl-shaders","pattern","webgl"],"latest_commit_sha":null,"homepage":"https://doodle.webgl.group/","language":"GLSL","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/akira-cn.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":"2019-05-23T10:31:06.000Z","updated_at":"2024-10-28T11:54:53.000Z","dependencies_parsed_at":"2023-01-20T10:45:48.008Z","dependency_job_id":null,"html_url":"https://github.com/akira-cn/glsl-doodle","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/akira-cn/glsl-doodle","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/akira-cn%2Fglsl-doodle","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/akira-cn%2Fglsl-doodle/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/akira-cn%2Fglsl-doodle/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/akira-cn%2Fglsl-doodle/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/akira-cn","download_url":"https://codeload.github.com/akira-cn/glsl-doodle/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/akira-cn%2Fglsl-doodle/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":27992997,"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","status":"online","status_checked_at":"2025-12-24T02:00:07.193Z","response_time":83,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":["glsl","glsl-shaders","pattern","webgl"],"created_at":"2024-11-17T03:06:06.850Z","updated_at":"2025-12-24T02:15:37.552Z","avatar_url":"https://github.com/akira-cn.png","language":"GLSL","funding_links":[],"categories":[],"sub_categories":[],"readme":"# glsl-doodle\n\nDrawing patterns with glsl shaders on modern browsers.\n\nhttps://doodle.webgl.group/\n\n## Usage\n\nFrom CDN:\n\n```html\n\u003cscript src=\"https://unpkg.com/glsl-doodle@0.1.2/dist/glsl-doodle.js\"\u003e\u003c/script\u003e\n\u003cglsl-doodle for=\"myShader\"\u003e\u003c/glsl-doodle\u003e\n\u003cscript id=\"myShader\" type=\"x-shader/x-fragment\"\u003e\n#ifdef GL_ES\nprecision mediump float;\n#endif\n\n#pragma include \u003cgraphics\u003e\n#pragma include \u003ccolor\u003e\n#pragma include \u003cpattern\u003e\n\nuniform vec2 dd_resolution;\nuniform vec2 dd_randseed0;\n\nvoid main() {\n  vec2 st = gl_FragCoord.xy / dd_resolution;\n  // st = polar(st);\n  vec2 grid = vec2(10, 10);\n  vec2 idx = grid_index(st, grid);\n  st = grid_xy(st, grid);\n\n  box2 box = create_box();\n  box = scale(box, center(box), vec2(random(idx, 0.1, 0.9)));\n  st = box_quad(st, box);\n\n  float pct = sdf_rect(st, vec2(0), 1.0, 1.0);\n  color(fill(pct, 0.0), random3(idx + dd_randseed0));\n}\n\u003c/script\u003e\n```\n\nWith external resource:\n\n```html\n\u003cscript src=\"https://unpkg.com/glsl-doodle@0.1.2/dist/glsl-doodle.js\"\u003e\u003c/script\u003e\n\u003cglsl-doodle src=\"https://raw.githubusercontent.com/akira-cn/glsl-doodle/master/demos/preview/grids/index.glsl\"\u003e\u003c/glsl-doodle\u003e\n```\n\nFrom NPM:\n\n```bash\nnpm i glsl-doodle --save\n```\n\n```js\nimport Doodle from 'glsl-doodle';\n(async function () {\n  const doodle = new Doodle();\n  const program = await doodle.load('https://raw.githubusercontent.com/akira-cn/glsl-doodle/master/demos/preview/grids/index.glsl');\n  doodle.useProgram(program);\n  doodle.render();\n}());\n```\n\nFor more information, please visit https://doodle.webgl.group/.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fakira-cn%2Fglsl-doodle","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fakira-cn%2Fglsl-doodle","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fakira-cn%2Fglsl-doodle/lists"}