[gephex-devel] Similar project
Jean-Sebastien Senecal
lord_tatien at yahoo.ca
Tue Nov 9 18:05:02 CET 2004
Georg Seidel wrote:
[...]
> Just had a short look at your project, and I find it very promising.
> Especially the GUI screenshot is very nice - the way you paint your
> effects (are they called gears in drone-speech?) seems very good to me.
Yes, we call them "gears".
[...]
> So far I only had a very superficial look at your source code.
> But maybe long enough to outline some of the most obvious differences
> I see between drone and gephex (which are equally important as the
> conceptual similarities if we want to cooperate):
>
> ~ * gephex has a clear separation of modules (= effects =? gears)
> ~ and their representation in the gui. Modules do not contain any
> ~ GUI code, just meta-data about their parameters (e.g. which widget
> ~ to use etc.)
Actually, the same concept holds in Drone. We've got a GearGui that may
be associated with each Gear: those define the gears' look. That allows
us to design any kind of interface for the gears (see MiniTV and Slider
for instance).
> ~ * gephex has a C-interface to its modules (because modules are
> ~ loaded in shared libraries at run-time this is just simpler and
> ~ more portable) - this interface is very small
> ~ (if you are interested, you can check it in engine/src/dllmodule.h,
> ~ and the interface for types in engine/src/dlltype.h)
Yes, this is something we would like to see in Drone. I guess that could
be a common ground. Looking at the code, there are a few things I don't
get however; I'll send you another mail to ask you a few questions, if
you don't mind.
> ~ * gephex has a client server architecture, the gui is a different
> ~ program
Why did you choose to do so?
>
> I want to outline the new design we have for gephex-0.5 shortly, just
> to inform you about the direction we are currently heading.
> The new design can be seen as consisting of three layers:
>
> ~ 1 gphx_core
> ~ -----------
> ~ 2 gphx_runtime
> ~ ------------
> ~ 3 gphx_gui
>
Actually, the next big step we'd like to make is to design what we call
"metagears", which is the equivalent of functional programming
facilities in Drone. The idea is, we'd like the user to be able to
create graphs and "wrap" them in a single gear. Another example is a
gear that loops over an array and calls another gear for each element. I
guess this is what you call "hierarchical graphs".
We've also thought about adding an extra layer in a language such as
python or scheme. Scheme seems fine to me, so that might be another
common ground.
[...]
> The next important change for gephex-0.5 is the module interface:
> we want to move into a more functional style of modules because
> we think this makes it easier to write effects and also makes
> the core conceptually simpler and optimisations more efficient.
I don't see why it'd make optimisations more efficient.
[...]
> just connect the output of the random generator with its seed input.
> This way, the state is inherent in the connection of the effect graph
> and can be easily safed and restored.
Well, this is ok if your state consists of such a simple thing as a
random seed; but what if it consists of many different parameters?
You'll have to remember to plug all of them back in the inputs. Or you
could create a specific class (type) for them, but then that adds more
complexity IMHO. I don't know if it is much suitable for a graphical
interface (but then, I guess that would all be in the "runtime layer"
and the GUI would contain objects in which these things are abstracted).
I'll need to discuss with the Drone team ASAP. However, this week is
Drone's first week at school: we're doing a first live performance
thursday and a first interactive installation saturday... so we're much
occupied! I'll call for a meeting next week.
Cheers,
J.S.
More information about the gephex-devel
mailing list