dronus / VisSynthWeb

MIT License
6 stars 1 forks source link

VisSynthWeb - browser-based video synthesizer and effects

VisSynthWeb is a browser-based realtime video effect and synthesizer platform. It creates or transforms a live video (captured by an connected camera, stream) by user defined "chains" made of user-adjustable effects. The setup can be controlled in realtime by another browser device.

The user interface is provided by an integrated control server and may be accessed on any internet browser. Effects can be sorted from the collection into several chains, which can be switched on the fly. Effect parameters may be twiddled in realtime by sliders. A stack-based image memory allows the creation of more complex effect networks inside the linear chain. It is possible to drop effects into the running chain. As the chain paradigm does not require manual interconnecting of the effects the new effect becames active immediately.

It runs well in lower resolutions even on small hardware like the Odroid XU4 or Nvidia Jetson. Such small computers can be tucked to screens or projectors. They will run the saved effect chain on power-up and can then be accessed as needed to tweak or replace the effect, making them useful for permanent installations.

Requirements

Installation

Usage

Sessions

By adding a hash mark '#' and some name to the end of the URL, a session is created. All ui.html and index.html from the same server using the same session will be synced to each other, the index.html showing the chain modified by all ui.html currently connected to this session.

Best practices

Library use

VisSynthWeb can be used as part of other web applications. Just include vissynth.js to your web page (plain JS modules, NO need for build systems like npm, yarn). This way, you can:

See example_minimal.html and example_multiple.html for library use.

Issues / TODO

Troubleshooting

Technical details

TO BE DONE

Credits

Originally used and now losely based on WebCamVidja: https://github.com/johanan/WebCamVidja.git , glfx.js: http://evanw.github.com/glfx.js/