{"id":50158122,"url":"https://github.com/joshbrew/webgpu_fractals","last_synced_at":"2026-05-24T13:35:25.161Z","repository":{"id":325409517,"uuid":"1101066134","full_name":"joshbrew/webgpu_fractals","owner":"joshbrew","description":"Fractals in WebGPU compute shaders, with a twist! Make infinite never-seen variations of famous fractals and more.","archived":false,"fork":false,"pushed_at":"2026-02-27T06:40:44.000Z","size":1983,"stargazers_count":1,"open_issues_count":1,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-05-24T13:35:20.839Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"JavaScript","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/joshbrew.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,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-11-21T06:28:37.000Z","updated_at":"2026-02-27T06:40:47.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/joshbrew/webgpu_fractals","commit_stats":null,"previous_names":["joshbrew/webgpu_fractals"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/joshbrew/webgpu_fractals","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/joshbrew%2Fwebgpu_fractals","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/joshbrew%2Fwebgpu_fractals/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/joshbrew%2Fwebgpu_fractals/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/joshbrew%2Fwebgpu_fractals/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/joshbrew","download_url":"https://codeload.github.com/joshbrew/webgpu_fractals/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/joshbrew%2Fwebgpu_fractals/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33436554,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-24T13:13:05.286Z","status":"ssl_error","status_checked_at":"2026-05-24T13:13:03.728Z","response_time":57,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":[],"created_at":"2026-05-24T13:35:24.082Z","updated_at":"2026-05-24T13:35:25.149Z","avatar_url":"https://github.com/joshbrew.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"## WebGPU Fractals\r\n\r\n\u003cp  align=\"center\"\u003e\r\n\u003cimg width=\"70%\" alt=\"Screenshot 2025-11-20 224655-min\" src=\"https://github.com/user-attachments/assets/8e010476-165b-4838-bdae-b8727c0085bd\" /\u003e\r\n\u003c/p\u003e\r\n\r\n### ----\u003e [Make your own fractals!](https://webgpufractals.netlify.app/) \u003c----\r\n\r\n#### [Codepen alt url](https://codepen.io/joshbrew/pen/ByNxqKB)\r\n\r\n#### See also: [3D point cloud fractals](https://github.com/joshbrew/3D_Fractals_Scale_Space) (earlier non-WebGPU version)\r\n\r\nThis is a comprehensive WebGPU fractal rendering system built on compute shaders. It features a lot of well known fractals plus a bunch of custom ones that mostly build off of newton's fractals. It is written in pure javascript and WGSL with zero dependencies.\r\n\r\nThere are 71 fractal formulas to mess around with plus dozens of modifiers that alter the coordinates per-iteration in combinable ways. There are infinite possibilites, you might be surprised what you find.\r\n\r\nYou can:\r\n- Control pan, zoom, iteration count, resolution (up to 8K!), escape radius, convergence...\r\n- Modify the per-iteration math with a variety of cumulative effects.\r\n- Add displacement mapping and lighting with flexible mesh resolution.\r\n- Control which parts of the fractal are visible.\r\n- Change color and hue in a very wide range, plus a simple optional lighting and specular model.\r\n- Edit in real time with instantaneous updates to fine tune your favorite images.\r\n- Click on the canvas to get camera control with WASD support. Press esc to quit.\r\n- Download the image at full resolution (use reset camera if you moved so you can get the full image!). 8K images can be up to 50MB raw\r\n- Play music (requires isolated context to use the audio worklet system correctly, see tinybuild.config.js for headers used)\r\n- Animate the fractals to the music\r\n\r\nSome limits:\r\n- No deep zoom as we rely on base 32 bit float precision. We make up for it with the modifiers. It bottoms out around 7 decimals of precision.\r\n- Julia sets don't work well with the modifiers so they're excluded, but you can still mess with the classic one.\r\n\r\n    \r\n## Build and run\r\n\r\nWith `tinybuild` installed globally (`npm i -g tinybuild`): `npm start`\r\n\r\n## Configuration\r\n\r\nSee [`./tinybuild.config.js`](./tinybuild.config.js) for settings. \r\n\r\nAdd build:true for build-only, add serve:true for serve-only, or set bundle or server to false alternatively.\r\n\r\nClick to go to youtube:\r\n[![VideoM](https://img.youtube.com/vi/G-FtKNiawx0/maxresdefault.jpg)](https://www.youtube.com/watch?v=G-FtKNiawx0)\r\n[![Video1](https://img.youtube.com/vi/3Sco25ak8AA/maxresdefault.jpg)](https://www.youtube.com/watch?v=3Sco25ak8AA)\r\nClick to go to youtube:\r\n[![Video4](https://img.youtube.com/vi/3WHPgqEGz9A/maxresdefault.jpg)](https://www.youtube.com/watch?v=3WHPgqEGz9A)\r\n#### More screenshots: \r\n\r\n\u003cimg width=\"400\" alt=\"image\" src=\"https://github.com/user-attachments/assets/41be92a9-16f0-448a-8ec8-ffd030594301\" /\u003e\r\n\r\n\u003cimg width=\"400\" alt=\"fractal-2560-kmrb67\" src=\"https://github.com/user-attachments/assets/e64ac17c-4dc7-4ea5-95dc-0cda4715bb80\" /\u003e\r\n\u003cimg width=\"400\" alt=\"fractal-2048-6w645p-min\" src=\"https://github.com/user-attachments/assets/d38ae2cf-b1cd-4450-b989-6e9dcc436ca1\" /\u003e\r\n\u003cimg width=\"400\" alt=\"Screenshot 2026-02-14 110935\" src=\"https://github.com/user-attachments/assets/062b8f1c-b411-433a-9d79-1d8e7d0e1966\" /\u003e\r\n\u003cimg width=\"400\" alt=\"Screenshot 2026-02-14 110908\" src=\"https://github.com/user-attachments/assets/b6e14b95-f3e1-45e5-b046-fff23b82ec0e\" /\u003e\r\n\u003cimg width=\"400\" alt=\"Screenshot 2026-02-14 110328\" src=\"https://github.com/user-attachments/assets/31581f02-8566-41b6-8fdc-8c713a150da7\" /\u003e\r\n\u003cimg width=\"400\" alt=\"Screenshot 2026-02-14 105859\" src=\"https://github.com/user-attachments/assets/74ec8941-7227-4c92-b710-3a58e7d62137\" /\u003e\r\n\u003cimg width=\"400\" alt=\"Screenshot 2026-02-14 105519\" src=\"https://github.com/user-attachments/assets/eca4956d-c439-469a-95db-54ee4251c98b\" /\u003e\r\n\r\n\u003cimg width=\"400\" alt=\"fractal-1536-jltvae-min\" src=\"https://github.com/user-attachments/assets/b6cd592b-284b-4f1f-94c2-69ed1fc73cd5\" /\u003e\r\n\u003cimg width=\"400\" alt=\"fractal-3968-jjxvep-min\" src=\"https://github.com/user-attachments/assets/9f91ef63-b003-416c-80bc-402b6d4f2e53\" /\u003e\r\n\u003cimg width=\"400\" alt=\"fractal-3968-vv22hy-min\" src=\"https://github.com/user-attachments/assets/41197fd5-e060-40ef-b19b-5097cd3b3385\" /\u003e\r\n\u003cimg width=\"400\" alt=\"fractal-4096-pl3iog-min\" src=\"https://github.com/user-attachments/assets/d8a089be-39d4-4d7c-9ea2-e5fe72638cdb\" /\u003e\r\n\u003cimg width=\"400\" alt=\"fractal-4096-4mfwjr-min\" src=\"https://github.com/user-attachments/assets/058dbf9f-d930-4d6a-911d-8225ce27311a\" /\u003e\r\n\u003cimg width=\"400\" alt=\"fractal-4096-1xos3i-min\" src=\"https://github.com/user-attachments/assets/7db77a47-1239-4f7b-a375-bce79862c245\" /\u003e\r\n\u003cimg width=\"400\" alt=\"19image\" src=\"https://github.com/user-attachments/assets/6efc14ab-1ede-4fad-96de-4699b7c04544\" /\u003e\r\n\u003cimg width=\"400\" alt=\"18image\" src=\"https://github.com/user-attachments/assets/aded6e13-dcbd-4662-ad46-47ac7eb4bb40\" /\u003e\r\n\u003cimg width=\"400\"  alt=\"17image\" src=\"https://github.com/user-attachments/assets/55da09e0-720e-4836-9196-80695d2a403a\" /\u003e\r\n\u003cimg width=\"400\"  alt=\"13image\" src=\"https://github.com/user-attachments/assets/27a258f2-4e17-4ed4-ba3e-38ea3bc5e6a0\" /\u003e\r\n\u003cimg width=\"400\" alt=\"11image\" src=\"https://github.com/user-attachments/assets/eb1e44d5-6176-4a4e-8e23-bfd04f65421f\" /\u003e\r\n\u003cimg width=\"400\" alt=\"9image\" src=\"https://github.com/user-attachments/assets/dee0e630-a11d-49ff-9063-ab2450d08537\" /\u003e\r\n\u003cimg width=\"400\" alt=\"7image\" src=\"https://github.com/user-attachments/assets/15404211-e77f-4ee4-a422-9901ad33ca67\" /\u003e\r\n\u003cimg width=\"400\" alt=\"6image\" src=\"https://github.com/user-attachments/assets/bfb187b4-48c9-41be-9be2-46425c33f575\" /\u003e\r\n\u003cimg width=\"400\"  alt=\"3image\" src=\"https://github.com/user-attachments/assets/2df131ac-af52-4887-8182-de2d661ac3a9\" /\u003e\r\n\u003cimg width=\"400\" alt=\"2image\" src=\"https://github.com/user-attachments/assets/d543fa56-2711-4682-a810-de43c91cbbcf\" /\u003e\r\n\u003cimg width=\"400\" alt=\"14image\" src=\"https://github.com/user-attachments/assets/655d0c31-2ab2-4439-9a5d-d96cd3f16021\" /\u003e\r\n\r\n\u003cimg width=\"400\" alt=\"Screenshot 2026-02-13 193303\" src=\"https://github.com/user-attachments/assets/1b41cf0e-1418-4159-9de8-01a14e31deea\" /\u003e\r\n\u003cimg width=\"400\" alt=\"Screenshot 2026-02-13 193419\" src=\"https://github.com/user-attachments/assets/c2df38ba-3d41-4a33-87f7-1a3722fb5452\" /\u003e\r\n\r\n\u003cimg width=\"400\" alt=\"Screenshot 2026-02-13 194008\" src=\"https://github.com/user-attachments/assets/10c68779-1cf7-4ab3-98ce-d78fdc143708\" /\u003e\r\n\u003cimg width=\"400\" alt=\"Screenshot 2026-02-13 193818\" src=\"https://github.com/user-attachments/assets/f9ca8c91-2086-4364-baa2-6f6966854439\" /\u003e\r\n\r\n\r\n\r\n\r\n\u003cimg width=\"400\" alt=\"fractal-4096-jbfcl2 (1)\" src=\"https://github.com/user-attachments/assets/2101cf1f-ef0d-4186-9bfd-7dc73278e773\" /\u003e\r\n\u003cimg width=\"400\" alt=\"fractal-4096-riq22k (1)\" src=\"https://github.com/user-attachments/assets/531cc43b-f912-4c2f-9851-168b291f794e\" /\u003e\r\n\u003cimg width=\"400\" alt=\"fractal-4096-x7i151 (1)\" src=\"https://github.com/user-attachments/assets/59832265-517f-422a-8b19-41043fba12d5\" /\u003e\r\n\u003cimg width=\"400\" alt=\"fractal-4096-xw1yly (1)\" src=\"https://github.com/user-attachments/assets/79685f12-4ed9-4fc4-bee4-19c28038ae4b\" /\u003e\r\n\u003cimg width=\"400\" alt=\"fractal-4096-oeqnyj (1)\" src=\"https://github.com/user-attachments/assets/3bf337b3-e401-4dcc-a87c-6835c0c4f293\" /\u003e\r\n\u003cimg width=\"400\" alt=\"fractal-4096-xuht3o (1)\" src=\"https://github.com/user-attachments/assets/c52c5357-7bd1-439b-96df-68b594f9b688\" /\u003e\r\n\u003cimg width=\"400\" alt=\"fractal-4096-tp1sgf (1)\" src=\"https://github.com/user-attachments/assets/10e90fbe-430a-4063-901b-c0e6fd6f4db0\" /\u003e\r\n\u003cimg width=\"400\" alt=\"fractal-canvas-3eool6 (1)\" src=\"https://github.com/user-attachments/assets/69baf559-fdea-4078-891b-a617bd7913db\" /\u003e\r\n\r\n\r\nClick to go to youtube:\r\n[![Video2](https://img.youtube.com/vi/uiNGqn5zEUs/maxresdefault.jpg)](https://www.youtube.com/watch?v=uiNGqn5zEUs)\r\nClick to go to youtube:\r\n[![Video3](https://img.youtube.com/vi/89uVpb0QUw8/maxresdefault.jpg)](https://www.youtube.com/watch?v=89uVpb0QUw8)\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjoshbrew%2Fwebgpu_fractals","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjoshbrew%2Fwebgpu_fractals","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjoshbrew%2Fwebgpu_fractals/lists"}