PDA

View Full Version : Modern Tech in VJ'ing and an Open Source "Engine".


Goz
30th September 2003, 08:12 AM
Something about VJ'ing intrigues me. Quite often i see the use of 3D in the software but im lost as to how old the hardware in use often is. I have been developing games professionally for over 3 years now (Inlcuding over a year of back end render engine development) and have a pretty good understanding of how to push modern hardware to its limits. The pixel fill rate on modern cards and vertex throughput allows a MASSIVE array of effects to be performed at high frame rate. I saw in a post abit further down that someone was asking about photoshop style effects in realtime, and yes many ARE possible in real time. However, IMO, the greatest effect available to you now is what is know as High Dynamic Range rendering (HDR) allowing you to build exposure filters directly into your visuals allowing you to, effectively, change camera exposure simply and quickly (and in real time with high polygon scenes or with specially designed 2D). Other effects such as depth of field, motion blur and cel shading would also be simple to implement at high frame rate. And with the next wave of cards (due out at the start of next year) 1600x1200 real time high detail rendering will be a possibility.

Has anyone ever considered the idea of an open source, scalable, backend for which pluggable units can be developed? The idea has intrigued me for a while and i have considered beginning work on it but what intrigues me most is would people use it? And if you would what sort of things would you like it to support (such as video overlays and other input sources)? Pluggable input device support would be a possibility as well.

Anyway just intrigues as to what your thoughts are ...

vjTranceKoder
30th September 2003, 08:30 AM
I am interested. VDMXX has utilized some of these effects (including the photoshop 'edge detection' filter) and it is now modular (mac based).

We here at VJF would ALWAYS be interested in real-time effects using a laptop. Please continue...tell us more

sleepytom
30th September 2003, 11:59 AM
www.freeframe.org - freeframe is the opensource, crossplatform, cross compiler VJ video effects api

Goz
1st October 2003, 02:59 AM
I am interested. VDMXX has utilized some of these effects (including the photoshop 'edge detection' filter) and it is now modular (mac based).


Please excuse my ignorance but what exactly is VDMXX? Does it use hardware accelerated 3D effects or does it use the CPU to do the processing. Edge detection is actually quite an easy filter to implement using a couple of passes and render to texture. But post processing effects are just the tip of the iceberg of what is possible. One intersting feature that has got my attention recently is known as "Tweening" (short for inbetweening). With clever setting up it can be used to smoothly morph between 2 different 3D meshes and ALL under the control of the hardware.


We here at VJF would ALWAYS be interested in real-time effects using a laptop. Please continue...tell us more


Tell you more what exactly? What it is possible to do? Realistically, pretty much, anything is possible if you break it down. Just, it maybe VERY slow.


www.freeframe.org - freeframe is the opensource, crossplatform, cross compiler VJ video effects api


Cheers for that link :) I had a good look through your site. The one thing that strikes me straight off is that all your screenshots show 2D rendering. Do you use any forms of 3D rendering in this at all? 2D rendering can benefit from 3D hardware acceleration as well as allowing for all manner or morph effects and post processing.

I may seem overly focused on using the 3D hardware available but once you have moved all image processing off CPU and onto the 3D hardware you can start to use the main processor for other tasks (it IS afterall a massively powerful number cruncher). Why not fully utilise the power available in a given system?

elbows
1st October 2003, 07:27 AM
I would love such a project to be developed. In general most VJ applications to date use 2D techniques for their effects. Freeframe is indeed 2D so far as I have seen. I think a lot of the time there are quite different programming skills/knowledge involved between 2D and 3D so I guess thats why we havent seen to many VJ apps using hardware 3D more yet.

pDooms advanced package for visualJockey is starting to enter into using 3D opengl stuff to do morphing, most of the stuff uses hardware 3D to create 3D objects or do very 3D looking effects, not what you are talking about.

Theres a demo for the ATI Radeon 9700 AllInWonder that uses pixelshaders to put live "2D" effects onto the live video input in realtime with very low latency, its nice. Could add own effect by writing new shaders for it and dropping them in a directory.

KazetachiAD (Blow) is the most advanced Ive seen so far for using hardware 3D (pixel shaders, vertex shaders & other stuff) and gives good idea what potential there is for VJs with this stuff - there is a LOT of potential!

Would love to see an opensource engine for this stuff. In an ideal world it should bring 2D and 3D together. Write basic engine that can load & trigger clips or use live video capture. Create plugin architecture for effects that use hardware 3D and include some examples. Allow people to use their own shaders, maybe in HLSL. Include support for freeframe plugins to give 2D effect support. That would be nice :)

Goz
2nd October 2003, 02:48 AM
You've basically got what im talking about elbows :)

Well at least im not the only one who thinks the idea has potential. I may as well press ahead getting some basics down. Ill set up a website as soon as I have something tangible.

Cheers for your input and opinions :) If you wanna know anymore about this, or have any ideas etc, feel free to drop me an e-Mail at vjforums@REMOVE.THIS.SHITE.trueharmoniccolours.co. uk

DrEskaton
2nd October 2003, 05:03 AM
Originally posted by Goz
Something about VJ'ing intrigues me. Quite often i see the use of 3D in the software but im lost as to how old the hardware in use often is.

There are four VJ packages I know of that work the way you are talking (i.e. move everything to the 3D card and treat all video as textures on 3D planes.) It's definately the way to go forward.

Those packages are:

Pixelshox, www.pixelshox.com
macosx only unfortunately development abandoned.

Salvation www.treyharrison.com/salvation
in beta for windows xp

Pilgrim
www.loosegoose.nl

Blow
http://www.vjcentral.com/software/show/5484

If you're interested in developing the idea yourself why not work with an existing open source project (or two)?

pd/gem is a framework for modular graphics and audio processing and all opensource. others have mentioned freeframe, wouldn't it be cool to have a specialised set of pd/gem objects for vj'ing that include a freeframe compatible rendering node as part of the mix?

http://gem.iem.at/ is the site for pd/gem

there is also freej, an open source vj project but it seems to be quite the old school 3d filter type of software. it's at freej.org

that should keep you busy....

Goz
2nd October 2003, 05:59 AM
Cheers some interesting links there. Mind I'd say most of the work being down on those 4 visualisation packages is a couple of years out of date (i was experimenting with this kind of thing back at the start of 2001!). The websites may be out of date but there is nothing that particularly "pushes" the boundaries there :(

The issue with taking an existing engine and porting it to support high level shading systems (thats not anything to do with HLSL confusingly) is the lack of a decent cross platform standard at the moment. Open GL 2.0 would be ideal but until the final spec is released and supported its just a nice idea. This leaves only 2 other options. Nvidia's cg and Microsoft's HLSL. The problem with cg is that it, more or less, ties you down to nVidia hardware and HLSL ties you down to DirectX. This can be dealt with through an abstraction layer but it does mean that I can only, really, work on a Win 32 system until the release of GL2 :( Ill certainly, at the very least, have a flick through the code though :)

nkm
2nd October 2003, 06:34 AM
PilgrimR1.1 is based on DirectX 8.1 hardware, has a full 3d editing environment to create effects and uses NVidia Cg for it's 2d pixel shader version 1.0- 1.3 based filters.

Amongst the pixelshader filters is amongst standard stuff also state of the art stuff, like a halo filter (also seen in Littech's Tron), edge filters and a bunch of convolition kernel multipass filters.

Currently we're experimenting with DirectX9 High Dynamic Range rendering.

nkm / Loose Goose

syzygy
2nd October 2003, 06:36 AM
Originally posted by Goz
Mind I'd say most of the work being down on those 4 visualisation packages is a couple of years out of date (i was experimenting with this kind of thing back at the start of 2001!). The websites may be out of date but there is nothing that particularly "pushes" the boundaries there :(


There's a big difference between experimenting and actually producing software.

As you will discover if you take the plunge and start developing something for other people to use, software developers soon get caught up in issues such as supporting different hardware setups, providing an interface that people can actually use and dealing with weird bugs that are stopping their users getting the most out of the software.

In 2 years time, someone will probably look at your site and say "tsk, not very advanced, I was experimenting with those things 2 years ago" ;)

I'm really interested in this area as well. I don't like 3D visuals as a rule (they just seem too sterile to me) but I do like the idea of using the processing power of modern gfx cards rather than just sending frames to them.

Can modern grahics cards do any mixing of streams on the card itself? Could that be offloaded to the graphics card?

Would effects done with shaders be limited to doing effects onto the final output?

Dan.

sleepytom
2nd October 2003, 07:13 AM
VJamm 2 is actually running all the video as textures on an openGL serface.

but as you've allready spotted there is no open standard for the latest technology - openGL 2 is what your effectivly talking about. for any 3d hardware bassed standard to take off it has to be in use by the games developers so i doubt that anyone in the vj software world is in the position to really kick such a project off (and lets face it by the time you get anything remotly stable and finnished GL2 will be out and everyone will use that)

LEVLHED
2nd October 2003, 07:13 AM
yeah man, I'm very interested in utilizing the powers that lie within my ATI AIW 9700pro for VJ purposes such as effects that are possible by routing the video-input through the 3D pipeline...I was talking about this almost a year ago here and everyone thought I didn't know what I was talking about...

nkm
2nd October 2003, 07:45 AM
Hi Levlhead,

Have you ever tried pilgrim? It does exactly what you describe. The idea is that one creates 3d and 2d effects in a simple 3d editor. These environments can include normal objects, particle emitters, procedural objects like tunnels etc. The environments can then be used to display a movie in a special way. As a last step filters can be applied. An example of such a filter is the Halo filter which creates a halo around all the graphics. You cans see the Halo filter - amongst others - in action on this page:

http://www.loosegoose.nl/pilgrim/news030912.html

The screenshots on our site are the result of realtime output. There is hardly any prerendered stuff in there :)

To see some work created with pilgrim: www.acidgfx.com

nkm

Goz
2nd October 2003, 08:11 AM
also state of the art stuff, like a halo filter (also seen in Littech's Tron),


No disrespect intended, but state of the art? We used this in an, unfortunately canned, playstation 1 game well over 3 years ago :) And we weren't the first :)


Currently we're experimenting with DirectX9 High Dynamic Range rendering


Definately do so. It allows for some spectacular looking effects :) But while doing so i strongly recommend you look into the background theory behind what you are doing and how you are doing it. Once you fully understand the theory you will have ideas on things that you probably didn't think were possible. Don't use ideas, come up with new and interesting ones. Far more fun to be had here :) Incidentally HDR allows for much nicer halo effects than they used in Tron 2.0.


In 2 years time, someone will probably look at your site and say "tsk, not very advanced, I was experimenting with those things 2 years ago"


<Warning: Techy Rant>
hehehe while i agree with you in principle dude, not staying at the fore front of graphics rendering technology would lose me my job ;). Scalability is the key. If you can build core tech that is easily "pluggable" it doesn't matter how out of date things may get becuase they can always be ripped out and replaced with the newest effects. This is the key.
As an example, since the last core rewrite of our engine at work (only took 4.5 months to complete!) we have upgraded the tech numerous times without having to do little more than add bits to the core. Everything is modularised to the degree that you can just add a new component in and use it. Everything plugs into the core. Imagine each of those "components" is actually an "effect".
You see, Im not talking about writing the latest effects, i leave that up to those that use the software, im talking about providing an interface on to the currently available technology. When DX10 or GL 3 comes along it then becomes a simple process of upgrading the core to support the new functionality.
</Warning: Techy Rant>
Im also one of the laziest bastards on the planet, who spends far too much of his time bouncing around a dance floor, so the odds on me getting this technology together quickly are quite low :D


Can modern grahics cards do any mixing of streams on the card itself? Could that be offloaded to the graphics card?

Would effects done with shaders be limited to doing effects onto the final output?


The graphics card is not limited to output. The output stage occurs when you render to the back/frame buffer. You can do anything you please during a given frame including renderign to multiple textures. As an example, the R9500+ supports floating point and multiple render targets. Floating point render targets allwos you to represent any number from -3x10^38 + 3x10^38 (A fairly high range and the basis of High Dynamic Range rendering) and you have 4 components (R, G, B and A). You don't, however, have to use those components to store colour values you can store what you like. You can also output to up to 4 of these floating point textures. Then run another pass using those outputs as input to the next stage. Once you have all the data you want to generate you can then composite all that data onto the framebuffer any way you like. Now where that data comes from is up to you but many capture cards are now capable of outputting their frame data directly to a given area of memory. IE you stream 1 or more video input sources into a texture and then use those textures as an input to the first stage. Per pass all modern cards accept up to 8 different textures (a total of 16 samples can be taken from the textures ie for 8: 2 each, for 1: 16 samples, coincidentally allowing for a 2 pass 64 tap gaussian filter for the anti-aliasing freaks) and those textures could be videos, hand generated on CPU or whatever you choose. You do have limitations, of course. The AGP Bus will come into play and it, unfortunately, only has up to 2GB/sec (which is only about 1 1600x1200 128-bit texture per frame ... who needs that sort of streamed input though? :) For the record thats also 16 800x600 32-bit images).

Perhaps a slightly more comprehensive (ok ... jibbery ;)) answer than you were looking for but i hope it starts to give you an idea of what is possible :)

nkm
2nd October 2003, 08:45 AM
Hi Goz,

What's wrong with using existing ideas (eg. the halo filter) and applying them in the field of vj software where they are currently not available? I don't think you can vj decently with that 3 year old Playstation game :)

What we're trying to do is to bring game graphics technology to the vj scene. And sure, our engine is currently not making full use of directx9 HDR rendering or running completely in a vertex shader :) because we believe that the scene is not ready yet. Currently, hardly any vj owns a directx9 VGA. Even DirectX8.1 VGA's are not common yet. We've seen many vj's at our forum who still work with TNT generation VGA's.

Ofcourse things will be different in a year's time. That's why we're also investigating the options that DirectX9 technology provides.

Another important thing which syzygy already correctly pointed out: graphics is not everything. VJ's want an intuitive interface, a stable program, good controlling options etc. Most importantly imo, is interactivity and sound reaction. A single pixel jumping on the beat can be much more appealing to me than a HDRed sperical harmonics based image space lighting effect BUT totally out of synch with the sound.

Ofcourse i don't intend to discourage you. Like you I think that the modern graphics hardware is extremely suitable and interesting for vj's. I just want to warn you that it is not the only important aspect.

nkm

Rovastar
2nd October 2003, 08:54 AM
Goz,

A word of warning Vj apps are designed to be run through a video mixer for teh most part and then a projector.

It is cool that you can have 1600x1200 by 75fps but it really isn't needed.

640x480- by 25fps is what the general VJ public will need for stuff.

ALso what cards do you think people are running. Do most out there have a DX9 compatable card. OpenGL2 has been pending for months/years now and I am not holdig my breath.

You do games devolpment what fixed platform (Xbox, ps2, etc) where you know the hardward so compatibality issues area minimum/no existant or the dynamic PC world of things. They are totally different kettles of fish.

Goz
3rd October 2003, 12:02 AM
Again, cheers for the advice and info guys :) Im not in any way saying this is a good idea or even an idea that will ever get off the ground, but it is definately an interesting project, if nothing else :)


Currently, hardly any vj owns a directx9 VGA. Even DirectX8.1 VGA's are not common yet. We've seen many vj's at our forum who still work with TNT generation VGA's.


This statement is kinda worrying in a way. Its a chicken/egg kinda situation. No VJ is going to bother upgrading their hardware if there isn't any software to take advantage of it. And no developer will bother supporting it because no VJ has the hardware :(


Ofcourse i don't intend to discourage you. Like you I think that the modern graphics hardware is extremely suitable and interesting for vj's. I just want to warn you that it is not the only important aspect.


Definately! :) Interface design is ALWAYS the hardest thing to get right, in my mind at least. However once the backend is working fully interface design can be refined or rebuilt to suit the needs of the user :)


It is cool that you can have 1600x1200 by 75fps but it really isn't needed.

640x480- by 25fps is what the general VJ public will need for stuff.


This is exactly why i prefer to think in terms of memory bandwidth. Though I disagree that 640x480 @ 25Hz is good enough. Just because people are used to something does not mean that it can't be improved. In my mind a minimum 800x600@60Hz should be what people aim for. Afterall fluidity is so much better at high frame :) There was once a time when 25fps was considered "enough" for any purpose...

zap25
3rd October 2003, 01:11 AM
Besides, DirectX is not a standard (outside windows)
Not that there's any standard I'm particularly fond of. Virtually none of the standards out there have any consideration for us poor VJs.
Multitasking schemes in most OSs are not multimedia friendly.
Video cards have mpeg accellerators, but VJs want them in the beginning of the chain to add effects to the video, not at the end of the chain... just before video is pumped to the screen.

Computers are inherently unsuitable for multimedia applications, the fact that they're even up to the task is due to sheer brute force.

Rovastar
3rd October 2003, 03:04 AM
Originally posted by Goz
This is exactly why i prefer to think in terms of memory bandwidth. Though I disagree that 640x480 @ 25Hz is good enough. Just because people are used to something does not mean that it can't be improved. In my mind a minimum 800x600@60Hz should be what people aim for. Afterall fluidity is so much better at high frame :) There was once a time when 25fps was considered "enough" for any purpose...

No you misunderstand the limitations come when running your tv-out through a video mixer (therefore converting it into 'broadcast' quailty PAL res 25 fps (but interlaced so a perceive 50fps alhough that is never as good as true 50fps)) and onto the projector.

Not what is 'enough' for desire more then 'enough' given the current work dynamics.

I love to us higher and do infact if I do not us a video mixer (and risk it) I try and make my TV-out as a 'monitor and feeed teh VGA to teh projector at a high res and fps.

You cannot get any decent real-time sound reactivity running at a low fps. :);) Every 0.05 of a second makes teh world of difference. :)

LEVLHED
3rd October 2003, 03:35 AM
well I have a DX9 card and I think all the cards coming out these days are DX9...seems to be but a matter of time?
I don't understand why so many people are so darn hesitant to accept this fantastic development for VJs! I feel like some of you are having some kind of sour grapes thing going on...and maybe don't fully understand what this new tech/platform is capable of...thats OK..you stick with what you know then and I'll go ahead and embrace anything that taps the power with open arms...

zap25
3rd October 2003, 04:38 AM
No sour grapes here.
Just spoilt. Played with PovRay when I had my 1040ST... polygon based shaders are inferior.

elbows
3rd October 2003, 08:38 AM
The way I see it, talking about DirectX9 features is not going to excite a certain (probably large) percentage of VJs simply because it isnt clear to them what could be done with this technology. We know that people have a large variety of different methods for VJing, and not all people would benefit from the latest technology.

I completely disagree with the idea that development is not worth it until more people own the cards. Unless people want a fast 3D card for other computer stuff, what is the point in buying a card when there is no VJ soft to take full advantage of it?

Deciding when to start development using a certain technology is difficult if you are looking for a profit-making venture. Games developers need a mass market, they have to time their development right so that when the game is ready for release it is runnable on a wide variety of machines. Now realistically, at the moment, there arent many opportunities for VJ soft developers to make money anyway, so this should be less of a concern. Not much concern at all really if the project is to be opensource.

So in a nutshell I would say that at this moment in time the appeal of such software will be limited to a percentage of VJs who loke experimenting on the bleeding edge, or have to date not been able to translate their imagination into reality using current technology. But in time this will change, and it would only take one kickass feature for people to start to take notice on a wider scale.

syzygy
3rd October 2003, 09:55 AM
I agree with Goz that new VJ software should really aim to run at 800x600 - better to output a higher res than full PAL than a lower res than full PAL.

Dan.

Goz
4th October 2003, 04:30 AM
Besides, DirectX is not a standard (outside windows)


Quite true but graphics card manufacturers work to the DX standard (Windows being the most common platform they are selling cards for) so when thikning of features it is often best to think in terms of DirectX :)


Multitasking schemes in most OSs are not multimedia friendly.


Again true, but there are ways to avoid these issues. Ever heard of realtime processing? You "can" totally block out the OS from any kind of processing while your software is running. It works too :)


No you misunderstand the limitations come when running your tv-out through a video mixer (therefore converting it into 'broadcast' quailty PAL res 25 fps (but interlaced so a perceive 50fps alhough that is never as good as true 50fps)) and onto the projector.


I am fully aware. Though i'd suggest using NTSC because 60fps DOES look better than 50fps. None-the-less due to the way TV modulators work there are LOADS of tricks you can employ to get round these issues and get some impressive effects from them. None-the-less 50fps interlaced (with each alternate line displaying a different frame) looks massively better than a 25fps non-interlaced render.


So in a nutshell I would say that at this moment in time the appeal of such software will be limited to a percentage of VJs who loke experimenting on the bleeding edge, or have to date not been able to translate their imagination into reality using current technology. But in time this will change, and it would only take one kickass feature for people to start to take notice on a wider scale.


This is one reason i talk about scalability. Just because an engine is based on DX9/GL2/Whatever doesn't prevent it from using older features that would work on lesser cards. You just gt faster, nicer effects on the top of the range kit :)

nkm
11th October 2003, 06:54 AM
Hi,

For those of you who are interested in seeing your VGA flex its muscles on some extremely fast pixel- and vertexshaders :), can try out the new PilgrimR1.1 demo's at: www.pilgrim-visuals.com.

If your VGA doesn't support DirectX8.1 pixelshaders but you still want to see them in action: www.pilgrim-visuals.com/movies/vjnkm.wmv.

Regards,
nkm

neoteo
21st October 2003, 08:28 PM
id love to see a power software using 3D render RAM not just to play multiple video layers but also to create 3D in real time ... oohh this would be VJing alright ... each key a predefined tunnel , object .. what ever ... effect ... video ..

-----------------------------------------------------------------

I don't like 3D visuals as a rule (they just seem too sterile to me)

-----------------------------------------------------------------


see this 3D video and then say it again (http://akryls.free.fr/)

:yep:

ultrapepita
23rd October 2003, 04:34 PM
That it is your opinion,
but me I prefer, (if I can) the true vga (800 x 600) or xga (1024 x 768)
The quality is so much better, and almost projector support this kind of resolution.
Of course in this resolutions I work only with a computer.

Bo.


Originally posted by Rovastar
Goz,

A word of warning Vj apps are designed to be run through a video mixer for teh most part and then a projector.

It is cool that you can have 1600x1200 by 75fps but it really isn't needed.

640x480- by 25fps is what the general VJ public will need for stuff.

ALso what cards do you think people are running. Do most out there have a DX9 compatable card. OpenGL2 has been pending for months/years now and I am not holdig my breath.

You do games devolpment what fixed platform (Xbox, ps2, etc) where you know the hardward so compatibality issues area minimum/no existant or the dynamic PC world of things. They are totally different kettles of fish.

Goz
24th October 2003, 01:26 AM
I got into an interesting discussion about this last night. A friend, a synth freak, came up with the idea of video synthesis. He caused me to think about this a little more and it became apparent that it is possible to build a Reaktor like system for visual synthesis that works ENTIRELY in hardware (on a modern GFX card).

There are interesting times ahead for real time, tweakable, image generation ...

eirenah
24th October 2003, 03:19 AM
As DrEskaton allready said, be shure to checkout FreeJay, but i would say it's not SO oldschool anymore - there are new versions and updates and bugfixes every now and then, and the greatest part is that it comes as a part of whole gnu linux based OS called dyne:bolic , without Linux actually needed (it's bootabile from CD). Also there are some other cool applications included, not strictly for VJing but can be very usefull - eg HasciiCam - streaming video converted to ascii... also it supports usb cams+firewire... in 1 word: sweeeeet

dyne:bolic (http://www.dynebolic.org/)
dyne:bolic_features (http://www.dynebolic.org/index.php?show=features)

neoteo
24th October 2003, 03:21 AM
oh oh oh oh ... :nod: the future is coming :cool:

jaw
25th October 2003, 12:16 AM
Originally posted by Goz
I got into an interesting discussion about this last night. A friend, a synth freak, came up with the idea of video synthesis. He caused me to think about this a little more and it became apparent that it is possible to build a Reaktor like system for visual synthesis that works ENTIRELY in hardware (on a modern GFX card).

There are interesting times ahead for real time, tweakable, image generation ...

I agree. That's what we thought as well...

We already have this somewhat working. It's just not ready for release yet...
It works exactly like reaktor, you have channels between the components carrying textures, mesh data and parameters. Parameters can be vectors, floats, strings, binary data (sound data for waveforms) etc etc. (feedback already works!)
Like this you can write a mesh plugin and combine that with output of a tree of other plugins and use that as texture. (like visualjockey)

All the gfx computing is done within the gfx card - the AGP port should not be used to transfer anything else than video streams, textures and commands to the gfx card which should give the best performance you possibly can get out of today's hardware. With fragment and pixel shaders written in Cg you should be able to do all kinds of 2d effects - old and new - as the authors of pilgrim already pointed out. Some things like rotating, moving and rescaling a texture is very easy, just make a component that messes around with the texture channel's texture transform matrix (part of the texture channel).

Also you have a full DSP engine pretty much like reaktor in wich outputs of DSP or whatever input (midi, keyboard, joystick, sound data) can be connected first to the DSP engine and then to parameters in the gfx engine which also looks like that...

We're thinking the GUI to be something like reaktor as this is the easiest way to work - you can hide stuff you know you won't mess with in a box so that the workspace doesn't get cluttered.

As our software is based on Pthreads, OpenGL and GLUT etc. our system will hopefully run on Windows, MacOSX, Linux and Irix which will cover every need out there - from a small laptop (powerbook maybe) up to SGI's ultra-high-end Onyx4 systems. That is, all from nightclubs to the largest venues in the world. In theory that is (we have low expectations). We're developing this on windows with the mingw compiler and DevC++

Our plan is not to have this entirely opensource - but! it will be free for personal use and for small venues. Maybe people will charge for effects instead or maybe scripts for combinedd effects. Also the plugin standard will be totally open. We will release bits and pieces of the core engine as opensource as well to educate the VJ community about how to do this kind of architecture properly. Or maybe we'll release it free.. We'll see, that's not decided yet.

Another cool feature which i'm investigating is the ability to command several slave servers from one single client over TCP/IP - if you need overlayed projections or multiple screens displaying the same scene... Also sending parameters and live sound data over the network seems very possible.

Note that this is still under development but these are our plans anyway and a bit more than 45% is realized already in our codebase. Maybe all of our plans aren't possible to do but so far it looks promising and it's a lot of fun to code this!

Later on when the core system works we will give you guys access to the plugin API - there's no way we can write all these plugins ourselves considering the time we have to put in this project... 90% of the work will be put in plugins (i.e. we let this project run itself by people supporting it (or not)), not the core, so we're almost there. We're gonna take the liberty of moderating which plugins are accepted for distribution as the risk is otherwise that we end up like the winamp plugin archive which is bloated with lamers and spyware...

We don't expect anyone to like this but we will use it ourselves at least ;) so far we're having fun with it :)