Home

Awesome

Patches

====

Patches is a visual programming environment for WebGL, WebVR and other HTML5 APIs. It features live preview, data flow visualization, network communication, publishing, unlimited undo, and a catalog of ready-made patches that can be used as modular building blocks. Complex logic can be nested in subgraphs and they can be rendered directly to a specific render target, or simply used as a texture. Loops are modeled as nested graphs that are evaluated once per loop iteration.

Try the cloud version of Patches now at patches.vizor.io.

Be sure to watch the tutorials, read the documentation and read tutorials on Patches. Plugin API documentation is available, but unstable.

Installing on macOS/OSX

Installing a local instance of Patches requires MongoDB (MongoDB Server should be 3.2.12), Redis, node.js (Get v6.11) and graphicsmagick. To install the required packages, issue the following commands (on Mac using Homebrew):

    $ /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
    $ brew install graphicsmagick
    $ brew install mongodb 
    $ brew install redis
    $ brew services start mongodb
    $ brew services start redis
    $ npm install && npm install -g gulp
    $ gulp

NOTE: Currently using Web Sockets or OSC requires running Patches locally.

Building

To build the LESS, plugins, etc [continuously]:

    $ gulp [watch]

Running the tests:

    $ npm install -g mocha
    $ npm test

Quick list of versions for running with Ubuntu Linux

OS: Ubuntu 16.04.2 MongoDB shell version: 3.2.18 Redis server v=3.0.6 Node v6.11.5 NPM 5.5.1

Also, if you do not want to downgrade your node version then upgrade the mongodb package to 2.2.24 and the gridfs-stream package to the latest version.

One more detail, the exiftool can be installed like this sudo apt-get install libimage-exiftool-perl

How to run Patches locally using Windows

Please consult WindowsInstallationReadme.md

Running Patches

  1. Make sure you have the right export for ENGI_BIND_IP configured in your .bash_profile
    export ENGI_BIND_IP=0.0.0.0
  1. Make sure MongoDB and Redis are running.
    $ brew services start mongodb
    $ brew services start redis
  1. Gulp one more time, then run the server:
    $ gulp
    $ npm start
  1. Open in the browser: http://localhost:8000/edit

If you have access to an Oculus Rift DK1 or DK2 and want to play with the VR features, you currently need one of Toji's special Chromium builds. You can find them here: http://blog.tojicode.com/2014/07/bringing-vr-to-chrome.html

Contributing

We welcome your contributions! Please create and work in a fork, submitting a pull request when (and if) you're ready for a review. Contributors may note some inconsistencies in style. We're in the process of migrating; new work should be done in JavaScript ES5 using Airbnb code style (exception: tabs instead of spaces).

A note on plugins

Patches features hundreds of plugins, including ways to obtain or create data:

...Ways to modify data:

...Ways to utilize data:

...And ways to structure logic or store state:

Created sequences can be imported and exported as JSON, embeddable into any context with the included standalone player, or simulated in a bare core instance. The latter permits sequences to be leveraged in other JavaScript projects as a domain-specific visual scripting language by providing the embedded graph with appropriate values from its host, updating the graph and acting on the emitted output values. Created sequences can be automatically exported to an optimized file set, ready to deploy to any Web server.

License

Patches is released under the MIT License

Contact Us

@vizor_vr on Twitter @VizorPatches on Twitter

E-Mail