overview
veldt is a rough composition of several different concepts i have developed and explored over the past two years, both in program design, interface techniques, and design studies. most of it was to feed my desire to manipulate live video and came into shape over a year's worth of vj events in new york and brooklyn.
this is a preliminary description of the project, in an effort to head toward some form of documentation. If you're interested in trying it out, send me an email.
coding
veldt has been coded in C++, using OpenGL rendering and Quicktime as a media library tool. Development is now concurrent on Mac OS X and Windows.
control
osd
Veldt has an extensive on-screen display interface, which is manipulated through keyboard/mouse input. there are structures in place for MIDI control input A crude system for remote-control over UDP is present. Support for OSC control has been lagging for far too long.
control interface
In addition to direct operation, a patched signal network has been implemented to provide visual access and control of program parameters. Various methods and objects within the system register with the control network and may be modified using the elements in this interface.
MIDI continuous control inputs and OSC address spaces will be incorporated into this space to allow sophisticated remote operation.
Simple value elements can be used to directly modify control data. for more sophisticated control, basic expression parsing ( much like the expr box of max/msp ) can be used to provide functional mappings between global values and other elements in the control network. At the moment there are no "trigger" input as such - a more suitable system for timing and events is in the words, but for the moment we use general parameter adjustment..
video
sources
Video playback uses the Quicktime media libraries and as such supports formats that can be embedded within a quicktime .mov file. Formats which use keyframes for every frame are preferable to improve time-scrubbing performance.
Live video input is supported using Quicktime's SequenceGrabber interface, and should be compatible with most USB or FireWire cameras. A video digitizer component ( such as WinVDIG ) is needed for operation on Windows systems.
Flash/SWF playback is still in development but will hopefully be on-line soon.
mixing
Video compositing in veldt takes place on-card as much as possible, using standard OpenGL methods and common extensions, in order to maximize speed. some mixing elements will pull frames back from the card for additional processing that may not be supported.
The compositing interface was developed as something of a cross-breed between Max/MSP's patch structure and Shake's compositing tree. Sources, mixing elements and delay lines can be set on a canvas, connected, and reconnected to built various effects. Sources and mixer elements used within the compositing interface may be linked into the control network for customized control or automation.
Subpatching is used to separate functional segments of the compositing tree in a way that is generally transparent to mixer operation. connection to subpatches is managed by the use of inlet and outlet elements, which exist the sole sake of regulating interpatch communication. while fully modular patch loading and instatiation is not yet supported, it does allow for slightly cleaner patch organization
time remapping
To facilitate beat-matching video clips to rhythm, there is a time/frame curve adjustment tool for remapping the time-scale over the course of a clip, using Bezier curves for the sake of prettiness.
rendering
frame rendering
There are several preset rendering styles that can be cycled through to render processed video. more later.
projection surfaces
a mass-spring polygon mesh is used as a basic projection surface for a second-level of video. elements are created by clicking in the video space and will react and conglomerate by default to form larger surfaces in a sort of bastard molecular modeling way. Textures are then projected to these surfaces, allowing for a free form distortion with fluid and responsive motion
animation
marchers
veldt is home to a small crowd of simple animated characters. They are governed by a small set of flocking / obstacle avoidance algorithms, and are tied in to the physical system to provide interesting secondary motion. Each character has a basic armature that is governed by a hard-coding walking algorithm
Skins can be created and modified using the opensource Blender animation tool, which is used to export to VRML and loaded at run-time. Skin config files can modify some parameters of the walk cycle animation
crowd simulation
physical modeling
veldt uses a mass-spring system on top of a forward Euler solver to calculate dynamic structures.