[kde-edu]: [RFC] KPhysics - Interactive physics experiments for KDE

Jason Harris kstars at 30doradus.org
Thu Apr 27 17:02:33 CEST 2006


I think it's a great idea for an Edu app.  I actually have toyed with a 
similar idea myself, but I don't have time to maintain another KDE app, 
so I'm really glad to hear this proposal.  I even have some code laying 
around somewhere for a gravity simulator, which could possibly evolve 
into one of the KPhysics modules.

Jure Repinc wrote:
> So here are my plans for KPhysics.
> I would like to make it as modular as possible. For example there would
> be a framework with user interface. All the experiments would be in
> plug-ins (so that anyone could add/remove experiments as easily as
> possible). 
I think this is the right approach.  I wonder if (eventually) the 
experiment modules could be abstracted such that they are not even 
plugins, but simply machine-readable descriptions of the experimental 
setup (perhaps an XML file?).  This would really allow anyone to write 
new experiments, and we could just concentrate on making a flexible, 
robust physics engine, and maybe a GUI module editor.  What do you 
think?  Probably to start out, it will be easier to simply code 
experiments as actual classes in the program, but keep the modularity in 
mind when designing the class structure.

> Those experiment plug-ins would contain one experiment (in
> picture, interactive graphics (maybe even OpenGL), ... ) and commentary
> about it (in HTML). Each plug-om would also have some properties like
> what type of experiment it contains so that you can filter them from the
> user interface (disable OpenGL experiments automatically if no support
> is found on the system, show only experiments from certain filed of
> physics, only experiments for certain level of education system...).
This metadata about the experiment modules is a good idea, and could be 
stored in the XML file (or whatever) that describes the module.  I think 
it's possible in Qt4 to seamlessly use OpenGL when it's available, and 
fall back to normal graphics calls when it isn't.

> How hard is it to make this framework/plug-ins structure?
> Keep in mind that I'm only a beginner C++/Qt/KDE programmer, but willing
> to learn a lot this summer. But I guess I would need quite a lot of help
> and answers from you guys and girls with much more experience.
To begin, I would concentrate on the framework only.  You can hard-code 
a few generic experiments, just to give the framework something to "chew 
on", but early efforts should be more-or-less devoted to making a 
well-designed backend physics engine.  Just my $0.02.

> I was thinking about targeting KDE4, because I guess it will take a bit
> longer until this KPhysics is done and because I would like to learn how
> to program for KDE4, which will also run on Mac OS and Windows and the
> more people can use KPhysics the better
Yes, this is very sensible.

> Is it that much harder to program for KDE4 then for KDE3. How fast are
> changes in API? Is there any history/changelog of API changes that is
> updated regularly and that I could easily follow?
No, in fact, it's meant to be even easier :).  You'll have to throw away 
some KDE3 habits, but once you do, it's a brave new world.  It's true 
that kdelibs is still a moving target, but it's actually not too hard to 
  keep up with it.

> Would anyone be willing to be my mentor for the Google Summer of Code
> 2006? Is this even the right kind of the project for SoC?
Hmm.  I really should say "sorry, I don't have time", but I really do 
not want to turn my back on this proposal.  So I will do it if no one 
else steps up :).  As for whether it's a good SoC project, my only 
concern would be the scope of the project.  It's probably not realistic 
to expect a fully-fledged KPhysics at the end of the summer, but maybe 
if you propose developing the physics engine framework as a 
proof-of-concept (perhaps with only some parts of it implemented, like 
simple mechanics, collisions, friction, gravity, springs, etc.), and 
then you can keep going with it after SoC is over.

Great idea!  Good luck,


More information about the kde-edu mailing list