11
Manifesto
BHBN edited this page 2024-11-27 00:01:57 +01:00

Open Source

vimix is open source (GPL3+) and links to several other open source projects (github internal dependencies).

The core video playing library is gstreamer, supported by a dynamic community providing a rich set of features for reading and encoding videos, as well as importing live streams from network and devices.

The user interface is programmed with Dear ImGui and glfw.

Video Live

vimix is made for live performance and direct manipulation of scenes with several video clips and live graphics.

Although it can save images and record sequences, it is not a video editing software. Plenty of professional and open source software do this very well. You might however discover a new way to make videos on the fly which is rich and spontaneous.

vimix is best used with multiple computer monitors: one with the user interface, the others showing the visual output. This visual output is intended to be projected to an audience, e.g. during a live show.

Audio is not a priority in vimix. If specifically enabled in the settings, vimix will play the audio of the playing video files, with limited audio mixing possibilities.

Interfacing with other inputs and cooperation with other applications (e.g. interactive music) is encouraged and is supported in multiple ways:

Less is more

Vimix user interface follows a philosophy of minimalism. It favors simple and direct operations to an extensive and detailed list of features. Complexity however comes from the richness of the interactions between objects and views.

As it is rather intended to be used on stage than in the studio, vimix actions are designed to be clearly accessible and visible, and to intuitively lead to the intended behavior. The user interface might not provide all the possible options and features that a video editing software would, but rather allows smooth and fast control during a live show (e.g. pre-mapping of keyboard or joystick inputs to visual events). The videos to be blended and mixed live should be prepared in a video-editing software before use in vimix.

The use of a graphic tablet is encouraged for the manipulation of the user interface. Drawing tablets with a screen are perfect for the job.

Performance real-time computer graphics

vimix tries to use minimal resources for maximal graphical output quality.

OpenGL and GPU rendering is the barebone of vimix graphics engine. OpenGL GPU features (frame buffer objects, pixel buffer objects, GLSL vertex and fragment shading, etc.) are used to let the GPU perform the work as efficiently as possible. The program targets a fixed framerate of 60Hz (v-sync with monitor's vertical refresh).

Hardware GPU decoding of videos is supported through g-streamer plugins; binary releases under OSX use hardware acceleration native Apple Media toolbox, and Linux binaries support hardware decoders and encoders (e.g., nvidia decoders, vaapi).

Real-time GPU graphics can also be very expressive and artistically rich: vimix tries to bring a little help to the artistic community to make this more accessible thanks to the support of ShaderToy. Live GLSL coding opens new horizons...

Multi platform

Primarily developed under Linux, vimix can be compiled for Mac OSX. Packages are provided for these two platforms.

Support for Microsoft Windows should be possible (all dependencies are cross-platform); contribution welcome!