https://github.com/jo56/painting-with-roughness
Painting app with the ability to trigger dynamic patterns of roughness
https://github.com/jo56/painting-with-roughness
art cellular-automata complex-networks fractal mandlebrot roughness system
Last synced: 2 days ago
JSON representation
Painting app with the ability to trigger dynamic patterns of roughness
- Host: GitHub
- URL: https://github.com/jo56/painting-with-roughness
- Owner: jo56
- Created: 2025-09-09T00:38:02.000Z (9 months ago)
- Default Branch: main
- Last Pushed: 2026-04-29T19:01:01.000Z (about 2 months ago)
- Last Synced: 2026-04-29T20:32:22.394Z (about 2 months ago)
- Topics: art, cellular-automata, complex-networks, fractal, mandlebrot, roughness, system
- Language: TypeScript
- Homepage: https://jo56.github.io/painting-with-roughness/
- Size: 1.13 MB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# painting-with-roughness
https://jo56.github.io/painting-with-roughness
Paint-like art application that incorporates generative cellular automata spread patterns into its painting toolbox
### Quick Start
1. `npm install`
2. `npm run dev`
This project uses **Vite + React + TypeScript**. The primary app is `src/App.tsx` (default export component).
The canvas is responsive; use the controls to start/stop, step, randomize, and clear the simulation.
### Warning:
This program may cause rapidly flashing light effects depending on how the settings are configured.
These effects become rapid at high speeds, so it might be worth testing on slower speeds first if you are concerned.
The 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
### Controls
Press **1-8** to swap to one of the 8 colors in the current palette.
**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.
**T** toggles menu transparency.
Use **W**,**A**,**S**,**D** or **Up**, **Left**, **Down**, **Right** to toggle directions for certain spread patterns.
Use **B**,**F**,**E** to toggle **Brush**, **Fill**, **Erase** respectively.
Use **U**,**I**,**O**,**P** to toggle **Brush (Square)**, **Brush (Circle)**, **Brush (Diagonal)**, **Brush (Spray)** respectively.
Press **Space**, **J**, **K**, **L** to toggle auto **Spread**, **Dots**, **Shapes**, **All** respectively.
Press **9** and **0** to adjust **Brush Size**. Press **\[** and **\]** to adjust **Diagonal Thickness** and **Spray Density** when corresponding brush types are enabled.
Press **R** to toggle **Recording** when enabled.