# konstrukt A simple commandline tool to generate SVGs roughly fitting the area of [concrete art](https://en.wikipedia.org/wiki/Concrete_art). ## Getting started The `konstrukt` binary can be downloaded from [releases](https://github.com/MarcelMue/konstrukt/releases) section of this repository. It is contained together with the [LICENSE](LICENSE) in a `.tar.gz` or `.zip` depending on the target operating system. You can interact with `konstrukt` through your native [command line interface](https://en.wikipedia.org/wiki/Command-line_interface). If you are unfamiliar with a command line then these examples should give you some guidance:
Using Windows First download the latest `.zip` release from the [releases](https://github.com/MarcelMue/konstrukt/releases) page. Unzip the archived files in a location of your choice (e.g. your `Downloads` folder). Open a command line of your choice (e.g. `cmd.exe`). Navigate tp the location of the unpacked `konstrukt` binary (e.g. `cd C:\Users\SomeUser\Downloads`). Display the help text of `konstrukt` by calling it without arguments (`konstrukt.exe`). The output should look like this: ``` Command line tool for generating konstruktive art. Usage: konstrukt [flags] konstrukt [command] Available Commands: gen Generate files. help Help about any command Flags: -h, --help help for konstrukt Use "konstrukt [command] --help" for more information about a command. ``` Now you should be able to experiment with the usage examples below just remember to use `konstrukt.exe`!
Using Linux/MacOS First download the correct `.tar.gz` release depending on your operating system from the [releases](https://github.com/MarcelMue/konstrukt/releases) page. Unpack the `.tar.gz` in a location of your choice (e.g. your `Downloads` folder). Open a terminal of your choice. Navigate to the location of the unpacked `konstrukt` binary (e.g. `cd ~/Downloads`). Display the help text of `konstrukt` by calling it without arguments (`./konstrukt`). The output should look like this: ``` Command line tool for generating konstruktive art. Usage: konstrukt [flags] konstrukt [command] Available Commands: gen Generate files. help Help about any command Flags: -h, --help help for konstrukt Use "konstrukt [command] --help" for more information about a command. ``` Now you should be able to experiment with the usage examples below!
## Usage All commands allow for the following flags: ``` --filename string Name of the output file. --height int Height of the output file in pixels. (default 500) -h, --help help --randomize Randomize all colors in the pattern, ignore other color flags. --width int Width of the output file in pixels. (default 500) ``` Other flags for coloring patterns can be explored in the individual usage examples below. ### Shining The pattern and default implementation is inspired by a carpet design by [David Nightingale Hicks](https://en.wikipedia.org/wiki/David_Nightingale_Hicks) commonly known as "Hicks' Hexagon". It became known in popular culture as the pattern of the carpet in [The Shining](https://en.wikipedia.org/wiki/The_Shining_(film)). The code for the pattern was initially implemented [here.](https://github.com/ajstarks/svgo-workshop/blob/master/code/svgplay-samples/shining.go)
Usage examples The original output can be generated with: ``` konstrukt gen shining ``` ![Shining](samples/shining.svg) Changing the colors can be easily done like this: ``` konstrukt gen shining --color3 "#2c2c54" --color2 "#d1ccc0" --color1 "#ffb142" --filename shining-es.svg ``` ![Shining ES color inspiration](samples/shining-es.svg)
### Interruptions The pattern and default implementation is inspired by [Horst Bartnigs](https://de.wikipedia.org/wiki/Horst_Bartnig) collection of works titled `72 Unterbrechungen`.
Usage examples The default can be generated with: ``` konstrukt gen interruptions ``` ![Interruptions](samples/interruptions.svg) Changing the colors can be easily done like this: ``` konstrukt gen interruptions --color1 "#00a8ff" --color2 "#2f3640" --color3 "#fbc531" --filename interruptions-br.svg ``` ![Interruptions BR color inspiration](samples/interruptions-br.svg)
### Quadrat The pattern and default implementation is inspired by [Horst Bartnigs](https://de.wikipedia.org/wiki/Horst_Bartnig) work titled `8 blaue und 8 schwarze Quadrate`.
Usage examples The default can be generated with: ``` konstrukt gen quadrat ``` ![Quadrat](samples/quadrat.svg) Changing the colors can be easily done like this: ``` konstrukt gen quadrat --color1 "#f6b93b" --color2 "#38ada9" --filename quadrat-fr.svg ``` ![Quadrat FR color inspiration](samples/quadrat-fr.svg)
### Janein The pattern and default implementation is inspired by [Wolfgang Bosses](https://kulturanalyse.de//wolfgang_bosse/index.html) work titled `JA-NEIN`.
Usage examples The default can be generated with: ``` konstrukt gen janein ``` ![Janein](samples/janein.svg) Changing the colors can be easily done like this: ``` konstrukt gen janein --color1 "#ced6e0" --color2 "#ffa502" --filename janein-cn.svg ``` ![Janein CN color inspiration](samples/janein-cn.svg)
### Fiftyfive The pattern and default implementation is inspired by [Julia Breunigs](https://juliaskonkretekunst.wordpress.com/) work titled `Bild Nr. 55`.
Usage examples The default can be generated with: ``` konstrukt gen fiftyfive ``` ![Fiftyfive](samples/fiftyfive.svg) Changing the colors can be easily done like this: ``` konstrukt gen fiftyfive --color1 "#cd84f1" --color2 "#4b4b4b" --color3 "#ffaf40" --filename fiftyfive-tr.svg ``` ![Fiftyfive TR color inspiration](samples/fiftyfive-tr.svg)
### Ladysweat The pattern and default implementation is inspired by [Joshua Blankenships](https://blankenship.xyz/) work titled `Lady Sweat Repeating Pattern`.
Usage examples The default can be generated with: ``` konstrukt gen ladysweat ``` ![Ladysweat](samples/ladysweat.svg) Changing the colors can be easily done like this: ``` konstrukt gen ladysweat --color1 "#303952" --color2 "#f8a5c2" --color3 "#778beb" --filename ladysweat-ru.svg ``` ![Ladysweat RU color inspiration](samples/ladysweat-ru.svg)
### Modernhive The pattern and default implementation is inspired by [Emma Methods](http://www.emmamethod.com/) work titled `modern hive`.
Usage examples The default can be generated with: ``` konstrukt gen modernhive ``` ![Modernhive](samples/modernhive.svg) Changing the colors can be easily done like this: ``` konstrukt gen modernhive --color1 "#B33771" --color2 "#55E6C1" --filename modernhive-in.svg ``` ![Modernhive IN color inspiration](samples/modernhive-in.svg)
### Swiss16 The pattern and default implementation is inspired by [Neo Geometrics](https://dribbble.com/vladikkk09) work titled `swiss-16`.
Usage examples The default can be generated with: ``` konstrukt gen swiss16 ``` ![Swiss16](samples/swiss16.svg) Changing the colors can be easily done like this: ``` konstrukt gen swiss16 --color1 "#222f3e" --color2 "#5f27cd" --color3 "#1dd1a1" --filename swiss16-ca.svg ``` ![Swiss16 CA color inspiration](samples/swiss16-ca.svg)
### Interlocking The pattern and default implementation is inspired by [Cami Dobrins](https://camidraws.com/) work titled `Interlocking Abstract Pattern Background`.
Usage examples The default can be generated with: ``` konstrukt gen interlocking ``` ![Interlocking](samples/interlocking.svg) Changing the colors can be easily done like this: ``` konstrukt gen interlocking --color1 "#f7f1e3" --color2 "#40407a" --color3 "#33d9b2" --filename interlocking-es.svg ``` ![Interlocking ES color inspiration](samples/interlocking-es.svg)
### Whitegold The pattern and default implementation is [MarcelMues](https://github.com/MarcelMue) work titled `whitegold`.
Usage examples The default can be generated with: ``` konstrukt gen whitegold ``` ![Whitegold](samples/whitegold.svg) Changing the colors can be easily done like this: ``` konstrukt gen whitegold --color1 "#dff9fb" --color2 "#6ab04c" --filename whitegold-au.svg ``` ![Whitegold AU color inspiration](samples/whitegold-au.svg)
### Fallingdaggers The pattern and default implementation is [MarcelMues](https://github.com/MarcelMue) work titled `fallingdaggers`.
Usage examples The default can be generated with: ``` konstrukt gen fallingdaggers ``` ![Fallingdaggers](samples/fallingdaggers.svg) Changing the colors can be easily done like this: ``` konstrukt gen fallingdaggers --color1 "#e55039" --color2 "#f39c12" --filename fallingdaggers-in.svg ``` ![Fallingdaggers randomized color inspiration](samples/fallingdaggers-in.svg)
### Whitegold2 The pattern and default implementation is [MarcelMues](https://github.com/MarcelMue) work titled `whitegold2`.
Usage examples The default can be generated with: ``` konstrukt gen whitegold2 ``` ![Whitegold2](samples/whitegold2.svg) Changing the colors can be easily done like this: ``` konstrukt gen whitegold2 --color1 "#1e272e" --color2 "#f53b57" --filename whitegold2-se.svg ``` ![Whitegold2 SE color inspiration](samples/whitegold2-se.svg)
### Blockplay The pattern is inspired by [Sophie Adams-Foster](https://www.instagram.com/sharp.line.hunter/) work titled `blockplay`.
Usage examples The default can be generated with: ``` konstrukt gen blockplay ``` ![blockplay](samples/blockplay.svg) Changing the colors can be easily done like this: ``` konstrukt gen blockplay --color1 "#ced6e0" --color2 "#ff6b81" --filename blockplay-cn.svg ``` ![blockplay CN color inspiration](samples/blockplay-cn.svg)
### Blockplay2 The pattern is inspired by [Sophie Adams-Foster](https://www.instagram.com/sharp.line.hunter/) work titled `blockplay`.
Usage examples The default can be generated with: ``` konstrukt gen blockplay2 ``` ![blockplay2](samples/blockplay2.svg) Changing the colors can be easily done like this: ``` konstrukt gen blockplay2 --color1 "#ced6e0" --color2 "#ff6b81" --filename blockplay2-cn.svg ``` ![blockplay2 CN color inspiration](samples/blockplay2-cn.svg)
### Octolines The pattern and default implementation is [MarcelMues](https://github.com/MarcelMue) work titled `octolines`.
Usage examples The default can be generated with: ``` konstrukt gen octolines ``` ![octolines](samples/octolines.svg) Changing the colors can be easily done like this: ``` konstrukt gen octolines --color1 "#2c3e50" --color2 "#bdc3c7" --color3 "#b8e994" --filename octolines-cn.svg ``` ![octolines CN color inspiration](samples/octolines-cn.svg)
### Qbert The pattern is inspired by the game [Q-bert](https://en.wikipedia.org/wiki/Q*bert) which is a variattion of [Rhombille Tiling](https://en.wikipedia.org/wiki/Rhombille_tiling).
Usage examples The default can be generated with: ``` konstrukt gen qbert ``` ![qbert](samples/qbert.svg) Changing the colors can be easily done like this: ``` konstrukt gen qbert --color1 "#1abc9c" --color2 "#f39c12" --color3 "#079992" --filename qbert-ca.svg ``` ![qbert CA color inspiration](samples/qbert-ca.svg)
### Hourglass The pattern and default implementation is [MarcelMues](https://github.com/MarcelMue) work titled `hourglass`.
Usage examples The default can be generated with: ``` konstrukt gen hourglass ``` ![hourglass](samples/hourglass.svg) Changing the colors can be easily done like this: ``` konstrukt gen hourglass --color1 "#e55039" --color2 "#fa983a" --color3 "#fad390" --filename hourglass-cn.svg ``` ![hourglass CN color inspiration](samples/hourglass-cn.svg)
### Waves The pattern and default implementation is [MarcelMues](https://github.com/MarcelMue) work titled `waves`.
Usage examples The default can be generated with: ``` konstrukt gen waves ``` ![waves](samples/waves.svg) Changing the colors can be easily done like this: ``` konstrukt gen waves --color1 "#e55039" --color2 "#ecf0f1" --color3 "#fad390" --filename waves-ca.svg ``` ![waves CA color inspiration](samples/waves-ca.svg)
### Riviera The pattern and default implementation is [MarcelMues](https://github.com/MarcelMue) work titled `riviera`.
Usage examples The default can be generated with: ``` konstrukt gen riviera ``` ![riviera](samples/riviera.svg) Changing the colors can be easily done like this: ``` konstrukt gen riviera --color1 "#27ae60" --color2 "#2980b9" --color3 "#f1c40f" --filename riviera-ca.svg ``` ![riviera CA color inspiration](samples/riviera-ca.svg)
### Nolock The pattern and default implementation is [MarcelMues](https://github.com/MarcelMue) work titled `nolock`.
Usage examples The default can be generated with: ``` konstrukt gen nolock ``` ![nolock](samples/nolock.svg) Changing the colors can be easily done like this: ``` konstrukt gen nolock --color1 "#6a89cc" --color2 "#f6b93b" --color3 "#9b59b6" --filename nolock-ca.svg ``` ![nolock CA color inspiration](samples/nolock-ca.svg)
### Pantheon The pattern and default implementation is [MarcelMues](https://github.com/MarcelMue) work titled `pantheon`.
Usage examples The default can be generated with: ``` konstrukt gen pantheon ``` ![pantheon](samples/pantheon.svg) Changing the colors can be easily done like this: ``` konstrukt gen pantheon --color1 "#bdc3c7" --color2 "#f6b93b" --color3 "#6a89cc" --filename pantheon-au.svg ``` ![pantheon CA color inspiration](samples/pantheon-au.svg)
### Hex22 The pattern and default implementation is [MarcelMues](https://github.com/MarcelMue) work titled `hex22`.
Usage examples The default can be generated with: ``` konstrukt gen hex22 ``` ![hex22](samples/hex22.svg) Changing the colors can be easily done like this: ``` konstrukt gen hex22 --color1 "#e74c3c" --color2 "#1e3799" --color3 "#82ccdd" --color4 "#ecf0f1" --filename hex22-cv.svg ``` ![hex22 CV color inspiration](samples/hex22-cv.svg)
### Euphonic The pattern is inspired by `johal_geometrics` work title `Euphonic Colour No. 8` and implemented by [MarcelMues](https://github.com/MarcelMue).
Usage examples The default can be generated with: ``` konstrukt gen euphonic ``` ![euphonic](samples/euphonic.svg) Changing the colors can be easily done like this: ``` konstrukt gen euphonic --color1 "#2980b9" --color2 "#2c3e50" --color3 "#e58e26" --color4 "#d35400" --color5 "#f6b93b" --color6 "#0c2461" --filename euphonic-cv.svg ``` ![euphonic CV color inspiration](samples/euphonic-cv.svg)
### Woozoo The pattern and default implementation is [MarcelMues](https://github.com/MarcelMue) work titled `woozoo`.
Usage examples The default can be generated with: ``` konstrukt gen woozoo ``` ![woozoo](samples/woozoo.svg) Changing the colors can be easily done like this: ``` konstrukt gen woozoo --color1 "#079992" --color2 "#ecf0f1" --color3 "#0c2461" --filename woozoo-cv.svg ``` ![woozoo CV color inspiration](samples/woozoo-cv.svg)
### Triangles The pattern and default implementation is [MarcelMues](https://github.com/MarcelMue) work titled `triangles`.
Usage examples The default can be generated with: ``` konstrukt gen triangles ``` ![triangles](samples/triangles.svg) Changing the colors can be easily done like this: ``` konstrukt gen triangles --color1 "#079992" --color2 "#ecf0f1" --color3 "#0c2461" --filename triangles-ca.svg ``` ![triangles CA color inspiration](samples/triangles-ca.svg)
## Guidelines Additions to this project should follow these guidelines: - Patterns should be repeatable and scaleable. - Patterns should be constant across the generated SVG (e.g. no convex pattern). - All patterns should be made up of low count polygons (no curves or similar). - Accurate citation should be given if a pattern was inspired by an artwork or artist.