Skip to content

cdstrachan/DesktopImageGeneration

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Desktop Image Generation

Generate procedural wallpapers from the CLI or a GUI.

Quick Start

1. Create and activate a virtual environment

python3 -m venv .venv
source .venv/bin/activate

2. Install dependencies

pip install -r requirements.txt

3. Run the GUI

python -m wallpaper_gen --gui

4. Or generate from the CLI

python -m wallpaper_gen --style random --out wallpaper.png

GUI

Use the GUI to preview and save wallpapers with live controls.

Open UI

Tips:

  • Use Generate preview to test settings fast.
  • Use Save wallpaper(s) to export one or many images.
  • If style is random, the status bar shows the resolved style used for that preview.

Sample Gallery

Click any medium preview to open the full-size image.

Sample 1 Sample 2 Sample 3
Wallpaper 1 Wallpaper 2 Wallpaper 3
Wallpaper 4 Wallpaper 5 Wallpaper 6

Available Styles

  • random: chooses a style each run.
  • fractal: Julia, Mandelbrot, or Burning Ship inspired fractal fields.
  • tiling: Islamic-inspired geometric lattice and star motifs.
  • geometric: layered lines, circles, polygons, and focal rings.
  • polyhedra: 3D Platonic solids in wire, solid, or mixed rendering.
  • penrose: quasiperiodic Penrose-style triangle tiling.
  • hyperbolic: Poincare-disk-like hyperbolic tessellation.
  • lowpoly: faceted low-poly gradient fields.
  • crystal: vivid angular shard and facet compositions.
  • rosette: radial star rosette compositions.
  • tessellation: generalized tessellation generator with multiple tilings.
  • hexmosaic: hex-focused tessellation preset.
  • mixed: blends multiple generators together.

CLI Usage

python -m wallpaper_gen [arguments]

Core Arguments

  • --width, --screen-width: output width in pixels. Default 2048.
  • --height, --screen-height: output height in pixels. Default 1152.
  • --out: output PNG path. Default wallpaper.png.
  • --seed: fixed integer seed for reproducible output.
  • --batch: generate N images, auto-numbered when N > 1.
  • --style: target style. Use random for auto-selection.
  • --supersample: antialias scale 1..4. Default 2.

Color and Look

  • --palette: exact palette name, or random.
  • --palette-pack: choose random palette from a pack, or random.
  • --brightness: global brightness multiplier. Must be > 0. Default 1.12.
  • --saturation: global saturation multiplier. Must be >= 0. Default 1.0.

Line Controls

  • --line-width: random or positive number. Typical range 0.2..5.0.
  • --line-visibility: random or number >= 0. Typical range 0..5.
  • --line-lightness: random or number -1..1.
    • negative darkens lines
    • positive lightens lines

Polyhedra Controls

  • --solid: tetrahedron, cube, octahedron, icosahedron, dodecahedron, random, or mix.
  • --polyhedra-render: wire, solid, both, or random.
  • --polyhedra-opacity: random, 0..1 opacity, or 0..255 alpha.

Penrose Controls

  • --penrose-symmetry: random or integer >= 5.
    • 5 gives the classic look
    • 6 gives a six-sided variant
    • larger values are more experimental

Tessellation Controls

  • --tiling: random, hex, square, triangle, square_octagon, square_octagon_triangles, trihexagonal, rhombille, cairo.
  • --tess-outline-width: tessellation-only outline multiplier. Typical range 0..5.
  • --square-octagon-circle-mode: random, white, or colours.
  • --square-octagon-split-mode: random, white, or colours.
  • --square-octagon-gap-mode: random, white, sheet, or per_octagon.

GUI Argument

  • --gui: launch GUI instead of CLI generation.

Sample CLI Commands

Basic

python -m wallpaper_gen --style random --out wallpaper.png
python -m wallpaper_gen --style geometric --seed 42 --out geometric.png

Batch Generation

python -m wallpaper_gen --style random --batch 6 --out wallpaper.png

Palette Packs

python -m wallpaper_gen --style rosette --palette-pack islamic --out rosette.png
python -m wallpaper_gen --style tessellation --tiling hex --palette-pack hex --out tess_hex.png

Line Emphasis

python -m wallpaper_gen --style hyperbolic --line-width 2.8 --line-visibility 2.0 --line-lightness 0.2 --out hyper_bold.png
python -m wallpaper_gen --style penrose --line-width 0.5 --line-visibility 0.7 --line-lightness -0.5 --out penrose_subtle.png

Penrose Variants

python -m wallpaper_gen --style penrose --penrose-symmetry 5 --out penrose_s5.png
python -m wallpaper_gen --style penrose --penrose-symmetry 6 --out penrose_s6.png
python -m wallpaper_gen --style penrose --penrose-symmetry random --out penrose_random_symmetry.png

Tessellation Fine-Tuning

python -m wallpaper_gen --style tessellation --tiling square_octagon_triangles --tess-outline-width 2.2 --line-width 1.6 --out tess_sq_oct.png
python -m wallpaper_gen --style tessellation --tiling rhombille --tess-outline-width 0.6 --line-visibility 1.4 --out rhombille.png

Notes

  • Width and height must each be at least 128.
  • Supersample must be between 1 and 4.
  • Batch must be at least 1.
  • Reuse a seed to reproduce a result.

About

Python app to randomly generate desktop wallpapers

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages