Skip to content
A live-coded visual performance tool
Haskell GLSL Other
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.
assets/html Move editor html back into assets folder Feb 5, 2019
docs Bump rubyzip from 1.2.3 to 2.0.0 in /docs Oct 22, 2019
editor Update editor info Jan 18, 2019
scripts Revert building osx bundle for the time being Aug 3, 2019
stdlib Fixing bug with stdlib shapes functions Aug 2, 2019
.gitignore ignore zipped archive files Aug 3, 2019
.travis.yml Tweaking docs about necessary libraries Aug 2, 2019
LICENSE Update license year Jul 13, 2019
appveyor.yml Deploy all tags, don't specify master Feb 19, 2019
stack.yaml Don't need to pin freetype2 in extra-deps Aug 2, 2019


Build Status Windows build

An offshoot of LiveCodeLab


Improviz is built in Haskell and interacts directly with OpenGL. It's very much a work in progress but it should be about usable.


Pre-built binaries are available for OSX, Windows and Linux, and can be found on the Releases Page. Download one and then jump straight to the relevant section in Running.

These should "just work" but if there are any problems please raise an issue.


Improviz is built using Stack.

With that installed, it should just be a matter of cloning the repository, entering the directory and running

stack build

Depending on your platform it may be necessary to install some or all of the following packages.

  • libgmp-dev
  • libxrandr-dev
  • libxi-dev
  • libxinerama-dev
  • libxcursor-dev
  • freeglut3-dev
  • zlib1g-dev


This differs slightly depending on whether you've built from source or downloaded a binary.

Pre-built binary

After downloading the zip file

  • Unzip it to somewhere on your machine
  • Open a terminal and browse to the folder (double clicking on it doesn't work currently because the paths need fixing)
  • Run the improviz or improviz.exe command (depending on your platform)
  • If a white window appears in the top left of your screen then you're ready to go!
  • If it doesn't then have a look at the errors that have appeared in the terminal


Once Improviz is running, you need to send code for it to run. The simplest way to do this to test is to use the (very basic) built in editor.

Open your browser and go to http://localhost:3000/editor, then try entering the following. Indentation is a single tab.

background(255, 0, 0)

fill(0, 255, 255)
10 times
	rotate(time, 3, time)

There are better clients available for Vim and Atom. There is a very basic client available for Emacs.


Please check the language document for details of the language itself.


Please check the configuration document for details on how to configure Improviz.

Hellocatfood GIFS

As part of the project, artist, algoraver, and all-round excellent human being hellocatfood was commissioned to create a series of animated GIFs that can be used as textures with Improviz.

These excellent and unique images are bundled in the pre-built binary releases and can also be found in the Improviz Performance repository. They're licensed under the Creative Commons Attribution 4.0 International licence so can be freely used and misused for performances, projects, and anything else you want.


Drop me an email at


BSD License.

You can’t perform that action at this time.