Skip to content
This repository

The Clojure Image Synthesis Kit

Fetching latest commit…

Octocat-spinner-32-eaf2f5

Cannot retrieve the latest commit at this time

Octocat-spinner-32 src
Octocat-spinner-32 .gitignore
Octocat-spinner-32 README.md
Octocat-spinner-32 deployment.txt Version 0.4.1, added deployment instructions August 27, 2012
Octocat-spinner-32 pom.xml
README.md

Clisk

Clisk is a DSL-based library for procedural image generation that can be used from Clojure and Java.

Example code and resulting image

;; Create a Voronoi map based on a mathematical function
(def vblocks 
  (v* 5.0 
      (voronoi-function 
        `(Math/sqrt (- (* ~'y ~'y) (* ~'x ~'x))))))

;; Render an texture using the Voronoi map as a height-field
(show (render-lit 
        (seamless vplasma) 
        (v+ (v* 0.2 (seamless 0.2 (rotate 0.1 plasma))) 
            (v* 0.6 vblocks))))

Voronoi rocks

For more examples see the Wiki

Installation

The best way to get started with clisk is to install it from Clojars using either leiningen or Maven.

Once you have Clisk specified as a dependency, you should be able to get going with the key functionality as follows:

(ns my-namespace
  (:use [clisk core functions patterns colours]))

(show (checker red white))

Features

  • A concise DSL for specifying image generators through function composition
  • Multi-dimensional texture generation (e.g. 4D textures including time dimension for animations)
  • Fast image synthesis thanks to compiled image generation functions (typically sub-second generation 256*256 4x antialiased textures)
  • Anti-aliasing (arbitrary precision)
  • A wide variety of patterns and transforms, e.g. Voronoi maps, Perlin Noise
  • Easily extensible with your own image generation functions
  • Ability to render surfaces with shading based on 3D heightmaps

Plasma Globe

Something went wrong with that request. Please try again.