rose is a Penrose tiling generator written in Rust
Clone the repository and run cargo run -- out.svg to generate a tiling using the default options. rose will create an SVG file that can be viewed in a web browser.
Run rose --help to see a full list of arguments.
Use -n <num-generations> to control how many decomposition steps should be made.
You can change the starting seed for the tiling with --seed <seed>. There are 6 available seeds: rose, pizza, large-rhombus, small-rhombus, kite and dart. This will change the shape of the Penrose tiling. The first four seed use the rhombus (P3) tiles, while the kite and dart seeds use the kite and dart (P2) tiles.
Use -s <color-scheme> to change the appearance of the tiling. There are 6 available color schemes: red, green, blue, purple, grey and yellow,
You can also use the --colors and --stroke-color options to create your own custom color scheme. See --help for more ways to customize the appearance of the Penrose tiling.
You can use the --draw-triangles flag to skip the triangle merging step and render the Robinson triangles used to generate the tiling. The --draw-arcs flag will render colored arcs to show the tile matching rules.
To build the WebAssembly version, you will need to have wasm-pack and npm installed in your system. First, cd into the rose-wasm directory and run wasm-pack build --release. Then, go the the web directory and run npm install. Finally, you can either serve the website with npm run serve, or build it in the dist folder with npm run build.


