Coder Social home page Coder Social logo

rumblesan / improviz Goto Github PK

View Code? Open in Web Editor NEW
89.0 6.0 6.0 31.41 MB

DEPRECATED: A live-coded visual performance tool

Home Page: https://improviz.rumblesan.com

License: BSD 3-Clause "New" or "Revised" License

Haskell 96.62% Emacs Lisp 0.20% GLSL 0.80% HTML 0.45% Shell 1.41% PowerShell 0.52%
livecoding graphics algorave haskell live-coding visual vjing deprecated

improviz's Introduction

DEPRECATED: Improviz

Build Status Windows build

Deprecation

Unfortunately, I've decided to deprecate Improviz.

Building Improviz on recent versions of MacOS is now no-longer possible due to the removal of OpenGL. It should still build on Mojave, and those binaries should still run on later versions, but I have no idea how long that will continue for.

Building on Linux and Windows should still be fine.

Description

Improviz is a live-coding environment built for creating visual performances of abstract shapes, blurred shades and broken GIFs.

It is built in Haskell and interacts directly with OpenGL. It's very much a work in progress but is definitely stable enough to use for performances.

Documentation

The most up-to-date documentation can be found in the docs folder which are also used to build the Improviz site, but the README should give enough of an overview to get started.

Community

If you find bugs, need help setting things up, are unsure where to begin, or just want to share what you've made, then there is an Improviz channel on the TOPLAP live coding discord.

Browser Version

There is now a browser based version of Improviz available at https://improviz-web.rumblesan.com/ which has much of the functionality of the native version.

The primary differences are that it currently lacks the ability to load custom textures, geometries and materials, though hopefully that will be changed in future.

More details can be found in the docs whilst the code can be found in a different repository.

Installing

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.

Building

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

From there, you'll be able to run what was just built using

stack exec improviz

which will use the improviz.yaml file in the root of the repository.

For more information about building and installing Improviz, check the development documentation.

Running

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

Using

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)
loop 10 times
	rotate(time, 3, time)
	cube(4)

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

Language

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

Configuration

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 be found in the hellocatfood/gifs folder in this repo. The hellocatfood/geometries folder contains the .obj files used to make some of them which can also be loaded by Improviz. They're all 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.

By default they're not loaded by improviz when using the default configuration as they're quite large and slow startup a bit, but just uncomment the relevant lines in the improviz.yaml config file and you're ready to go.

Contributors

Many thanks to the following people who have contributed to Improviz and it's development.

hellocatfood for the excellent gifs and general feedback darch for some really helpful feedback, and teaching improviz workshops nihilazo for helping polish the vim plugin and give it some necessary updates claudeha for debugging some of the memory/space leaks and providing some much needed performance improvements

Contact

Drop me an email at [email protected]

License

BSD License.

improviz's People

Contributors

claudeha avatar dependabot[bot] avatar hellocatfood avatar rumblesan avatar sorenpeter avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

improviz's Issues

Improviz doesn't accept OSC lists

I'm attempting to send random fill values from Pure Data to Improviz via OSC but I'm finding that it's not working.

This is the improviz code that I'm using

color = ext(:color, 0)
fill(color)
strokeSize(8)
rotate(time)
cube(4)

And the Pure Data patch I'm using is attached, and screenshot below:
Screenshot from 2021-03-28 19-40-01

pd_improviz.zip

If I click on the toggle to generate random values or click on the message box Improviz returns this error: ERROR: invalid OSC address

If I send just one number it works but it only changes the fill to shades of grey

printLine() function?

Hey Guy,

Is there some king of print/echo fuction in improviz, to output numbers to the terminal?
I would like to see the values that i feed into my code, and not just having to guess if my math is correct.

Add background colouring

Will be fine with just basic block colours for the moment. Gradients might happen later.

May need to investigate how well this works with paintOver

strokeWeight?

Is it possible to change the weight stroke to something wider than 1px?

More shapes

Cylinder (and all details), Sphere, Rectangle, Line

Triangles?

Give text background colour

With no fixed background, text will become difficult to see at times depending on the colours in the scene behind it

Fix transparency

transparent colours seem to draw in black. borks noFill and noStroke as well

OSC only work in main patch, not in usercode

I tried to put my definition of OSC-input in the usercode directory and load it via the config file, but then i does not seem to work. Can it be because the usercode is loaded before the OSC?

fullscreen:1 not workings as expeted on macOS

When I set the "fullscreen: 1" in config.yaml, the windows on my 2nd screen is taking up alle the space, but I still need go to the Window-menu and select Enten Full Screen to get the resolution right. If not the code-overlay is too big.

Atom plugin usage instructions

I've installed the Atom plugin and found the menu item to send the code but can't find instructions on how to execute the code.

Are there keyboard shortcuts?

Not crashing when dividing by zero

I would be nice if improviz did not crash/close when you happen to divide by zero, i.e. when using a variable, that is sometimes zero (or is this too much to ask for:)

Improve vim mode

  • Syntax highlighting
  • Message logging
  • Auto send on change
  • Error highlighting

random() and noise() functions

I find myself missing a way of getting random or (perlin)noise-based numbers for making my sketches more organic or chaotic. So that is something i would like to see in improviz.

Mac OSX troubleshooting

Just tried to run the 'improviz' command from terminal on Catalina 10.15.

This is what I get (Pre-built Binary download):

Last login: Thu Sep 10 15:23:29 on ttys000
claudiodonaggio@MacBook-Pro-di-Claudio ~ % cd desktop
claudiodonaggio@MacBook-Pro-di-Claudio desktop % cd improviz-osx
claudiodonaggio@MacBook-Pro-di-Claudio improviz-osx % improviz
zsh: command not found: improviz
claudiodonaggio@MacBook-Pro-di-Claudio improviz-osx %

instead, if I double click on the improviz executable, I get:

Last login: Thu Sep 10 15:28:42 on ttys000
/Users/claudiodonaggio/Desktop/improviz-osx/improviz ; exit;
claudiodonaggio@MacBook-Pro-di-Claudio ~ % /Users/claudiodonaggio/Desktop/improviz-osx/improviz ; exit;
InvalidYaml (Just (YamlException "Yaml file not found: ./improviz.yaml"))
2020-09-10 13:30:.532323 INFO: Running at 640 by 480
2020-09-10 13:30:.532577 INFO: Framebuffer 1280 by 960
2020-09-10 13:30:.532729 ERROR: YAML exception:
Yaml file not found: ./textures/config.yaml
2020-09-10 13:30:.532802 INFO: Loaded 0 texture files
2020-09-10 13:30:.556727 INFO: Loaded 0 material files
2020-09-10 13:30:.556855 ERROR: YAML exception:
Yaml file not found: ./materials/config.yaml
2020-09-10 13:30:.556968 ERROR: YAML exception:
Yaml file not found: ./geometries/config.yaml
2020-09-10 13:30:.557035 INFO: Loaded 0 geometry files
2020-09-10 13:30:.557084 INFO: *****************************
2020-09-10 13:30:.557137 INFO: Creating Improviz Environment
2020-09-10 13:30:.557219 INFO: Improviz HTTP server listening on port 3000
2020-09-10 13:30:.557314 INFO: Improviz resolution: 640 by 480

In this case the white screen on the top left corner opens up, but as the .yaml file did not charge, nothing will happen when I try to send code (either from the editor or from the atom plug in).

Any idea how can I fix it?? Thanx!

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.