{"id":50772277,"url":"https://github.com/jo56/painting-with-roughness","last_synced_at":"2026-06-11T20:01:59.685Z","repository":{"id":313974315,"uuid":"1053073718","full_name":"jo56/painting-with-roughness","owner":"jo56","description":"Painting app with the ability to trigger dynamic patterns of roughness","archived":false,"fork":false,"pushed_at":"2026-04-29T19:01:01.000Z","size":1180,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-04-29T20:32:22.394Z","etag":null,"topics":["art","cellular-automata","complex-networks","fractal","mandlebrot","roughness","system"],"latest_commit_sha":null,"homepage":"https://jo56.github.io/painting-with-roughness/","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/jo56.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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-09-09T00:38:02.000Z","updated_at":"2026-04-29T19:00:58.000Z","dependencies_parsed_at":"2025-09-09T22:33:56.065Z","dependency_job_id":"8d9079a3-358c-45b5-b565-4fe77c7ff9b4","html_url":"https://github.com/jo56/painting-with-roughness","commit_stats":null,"previous_names":["jo56/painting-with-roughness"],"tags_count":11,"template":false,"template_full_name":null,"purl":"pkg:github/jo56/painting-with-roughness","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jo56%2Fpainting-with-roughness","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jo56%2Fpainting-with-roughness/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jo56%2Fpainting-with-roughness/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jo56%2Fpainting-with-roughness/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jo56","download_url":"https://codeload.github.com/jo56/painting-with-roughness/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jo56%2Fpainting-with-roughness/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34215254,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-11T02:00:06.485Z","response_time":57,"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":["art","cellular-automata","complex-networks","fractal","mandlebrot","roughness","system"],"created_at":"2026-06-11T20:01:59.193Z","updated_at":"2026-06-11T20:01:59.679Z","avatar_url":"https://github.com/jo56.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# painting-with-roughness\n\n  \u003cdiv align=\"center\"\u003e\n      \u003ca href=\"https://jo56.github.io/painting-with-roughness\" target=\"_blank\"\u003e\n          \u003cimg src=\"assets/painting-with-roughness-title.png\" alt=\"painting-with-roughness title\"\u003e\n      \u003c/a\u003e\n      \u003cbr\u003e\n      \u003ca href=\"https://jo56.github.io/painting-with-roughness\" target=\"_blank\"\u003e\n          \u003cb\u003ehttps://jo56.github.io/painting-with-roughness\u003c/b\u003e\n      \u003c/a\u003e\n    \u003cbr\u003e\n    Paint-like art application that incorporates generative cellular automata spread patterns into its painting toolbox\n  \u003c/div\u003e\n\n### Quick Start\n\n1. `npm install`  \n2. `npm run dev`\n\nThis project uses **Vite + React + TypeScript**. The primary app is `src/App.tsx` (default export component).  \n\nThe canvas is responsive; use the controls to start/stop, step, randomize, and clear the simulation.\n\n### Warning:\nThis program may cause rapidly flashing light effects depending on how the settings are configured.\n\nThese effects become rapid at high speeds, so it might be worth testing on slower speeds first if you are concerned.\n\nThe effect can be easier to induce depending on the current count settings, such as when selecting the the Conway's Game of Life spread pattern with same birth and survive count values simultaneously\n\n### Controls\n\nPress **1-8** to swap to one of the 8 colors in the current palette.\n\n**Shift** toggles menu visibility. Pressing **Shift** once will cause the toolbox to disappear. Pressing **Shift** again will cause it to reappear where your mouse is.\n\n**T** toggles menu transparency.\n\nUse **W**,**A**,**S**,**D** or **Up**, **Left**, **Down**, **Right** to toggle directions for certain spread patterns.\n\nUse **B**,**F**,**E** to toggle **Brush**, **Fill**, **Erase** respectively.\n\nUse **U**,**I**,**O**,**P** to toggle **Brush (Square)**, **Brush (Circle)**, **Brush (Diagonal)**, **Brush (Spray)** respectively.\n\nPress **Space**, **J**, **K**, **L** to toggle auto **Spread**, **Dots**, **Shapes**, **All** respectively.\n\nPress **9** and **0** to adjust **Brush Size**. Press **\\[** and **\\]** to adjust **Diagonal Thickness** and **Spray Density** when corresponding brush types are enabled.\n\nPress **R** to toggle **Recording** when enabled.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjo56%2Fpainting-with-roughness","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjo56%2Fpainting-with-roughness","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjo56%2Fpainting-with-roughness/lists"}