/konstrukt

Commandline tool for me to play with concrete art.

Primary LanguageGoMIT LicenseMIT

konstrukt

A simple commandline tool to generate SVGs roughly fitting the area of concrete art.

Getting started

The konstrukt binary can be downloaded from releases section of this repository. It is contained together with the LICENSE in a .tar.gz or .zip depending on the target operating system.

You can interact with konstrukt through your native 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 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 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 commonly known as "Hicks' Hexagon". It became known in popular culture as the pattern of the carpet in The Shining. The code for the pattern was initially implemented here.

Usage examples

The original output can be generated with:

konstrukt gen shining

Shining

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

Interruptions

The pattern and default implementation is inspired by Horst Bartnigs collection of works titled 72 Unterbrechungen.

Usage examples

The default can be generated with:

konstrukt gen interruptions

Interruptions

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

Quadrat

The pattern and default implementation is inspired by Horst Bartnigs work titled 8 blaue und 8 schwarze Quadrate.

Usage examples

The default can be generated with:

konstrukt gen quadrat

Quadrat

Changing the colors can be easily done like this:

konstrukt gen quadrat --color1 "#f6b93b" --color2 "#38ada9"  --filename quadrat-fr.svg

Quadrat FR color inspiration

Janein

The pattern and default implementation is inspired by Wolfgang Bosses work titled JA-NEIN.

Usage examples

The default can be generated with:

konstrukt gen janein

Janein

Changing the colors can be easily done like this:

konstrukt gen janein --color1 "#ced6e0" --color2 "#ffa502"  --filename janein-cn.svg

Janein CN color inspiration

Fiftyfive

The pattern and default implementation is inspired by Julia Breunigs work titled Bild Nr. 55.

Usage examples

The default can be generated with:

konstrukt gen fiftyfive

Fiftyfive

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

Ladysweat

The pattern and default implementation is inspired by Joshua Blankenships work titled Lady Sweat Repeating Pattern.

Usage examples

The default can be generated with:

konstrukt gen ladysweat

Ladysweat

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

Modernhive

The pattern and default implementation is inspired by Emma Methods work titled modern hive.

Usage examples

The default can be generated with:

konstrukt gen modernhive

Modernhive

Changing the colors can be easily done like this:

konstrukt gen modernhive --color1 "#B33771" --color2 "#55E6C1"  --filename modernhive-in.svg

Modernhive IN color inspiration

Swiss16

The pattern and default implementation is inspired by Neo Geometrics work titled swiss-16.

Usage examples

The default can be generated with:

konstrukt gen swiss16

Swiss16

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

Interlocking

The pattern and default implementation is inspired by Cami Dobrins work titled Interlocking Abstract Pattern Background.

Usage examples

The default can be generated with:

konstrukt gen interlocking

Interlocking

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

Whitegold

The pattern and default implementation is MarcelMues work titled whitegold.

Usage examples

The default can be generated with:

konstrukt gen whitegold

Whitegold

Changing the colors can be easily done like this:

konstrukt gen whitegold --color1 "#dff9fb" --color2 "#6ab04c"  --filename whitegold-au.svg

Whitegold AU color inspiration

Fallingdaggers

The pattern and default implementation is MarcelMues work titled fallingdaggers.

Usage examples

The default can be generated with:

konstrukt gen fallingdaggers

Fallingdaggers

Changing the colors can be easily done like this:

konstrukt gen fallingdaggers --color1 "#e55039" --color2 "#f39c12"  --filename fallingdaggers-in.svg

Fallingdaggers randomized color inspiration

Whitegold2

The pattern and default implementation is MarcelMues work titled whitegold2.

Usage examples

The default can be generated with:

konstrukt gen whitegold2

Whitegold2

Changing the colors can be easily done like this:

konstrukt gen whitegold2 --color1 "#1e272e" --color2 "#f53b57"  --filename whitegold2-se.svg

Whitegold2 SE color inspiration

Blockplay

The pattern is inspired by Sophie Adams-Foster work titled blockplay.

Usage examples

The default can be generated with:

konstrukt gen blockplay

blockplay

Changing the colors can be easily done like this:

konstrukt gen blockplay --color1 "#ced6e0" --color2 "#ff6b81"  --filename blockplay-cn.svg

blockplay CN color inspiration

Blockplay2

The pattern is inspired by Sophie Adams-Foster work titled blockplay.

Usage examples

The default can be generated with:

konstrukt gen blockplay2

blockplay2

Changing the colors can be easily done like this:

konstrukt gen blockplay2 --color1 "#ced6e0" --color2 "#ff6b81"  --filename blockplay2-cn.svg

blockplay2 CN color inspiration

Octolines

The pattern and default implementation is MarcelMues work titled octolines.

Usage examples

The default can be generated with:

konstrukt gen octolines

octolines

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

Qbert

The pattern is inspired by the game Q-bert which is a variattion of Rhombille Tiling.

Usage examples

The default can be generated with:

konstrukt gen qbert

qbert

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

Hourglass

The pattern and default implementation is MarcelMues work titled hourglass.

Usage examples

The default can be generated with:

konstrukt gen hourglass

hourglass

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

Waves

The pattern and default implementation is MarcelMues work titled waves.

Usage examples

The default can be generated with:

konstrukt gen waves

waves

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

Riviera

The pattern and default implementation is MarcelMues work titled riviera.

Usage examples

The default can be generated with:

konstrukt gen riviera

riviera

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

Nolock

The pattern and default implementation is MarcelMues work titled nolock.

Usage examples

The default can be generated with:

konstrukt gen nolock

nolock

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

Pantheon

The pattern and default implementation is MarcelMues work titled pantheon.

Usage examples

The default can be generated with:

konstrukt gen pantheon

pantheon

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

Hex22

The pattern and default implementation is MarcelMues work titled hex22.

Usage examples

The default can be generated with:

konstrukt gen hex22

hex22

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

Euphonic

The pattern is inspired by johal_geometrics work title Euphonic Colour No. 8 and implemented by MarcelMues.

Usage examples

The default can be generated with:

konstrukt gen euphonic

euphonic

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

Woozoo

The pattern and default implementation is MarcelMues work titled woozoo.

Usage examples

The default can be generated with:

konstrukt gen woozoo

woozoo

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

Triangles

The pattern and default implementation is MarcelMues work titled triangles.

Usage examples

The default can be generated with:

konstrukt gen triangles

triangles

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

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.