|
|
Kalamaris's homepage
What is Kalamaris ?
Kalamaris is the next generation on scientific applications. While
similar to Mathematica® in some aspects, it offers a new approach to solve
mathematical problems in an easy and intuitive way.
Kalamaris's functionality also provide developers with a powerful
library to manage complex mathematical operations.
It also has a distributed design, which will allow to separate the
KDE graphical interface from the real
working code. This will permit to have a Kalamaris server on a
big server, while running the clients on your usual computer on your desk.
Tell me more about Kalamaris
I've been thinking on developing a Mathematica-like application for years,
and when my teacher of Numerical Analysis told us that we had to implement some
numerical methods to solve systems of differential equations, I thought that
it was time to start such an application and do it "the right way"(tm).
I started working on it a few months ago, and version 0.5.6 was quickly working.
Note that this release is not considered stable yet, and it may crash (in fact,
I'm sure it will :) ) quite a lot. For example, there isn't yet any syntax checking
code, so when you do something wrong (like having an unmatched number of parenthesis),
it crashes.
It may be worth to mention that each time you enter an expression, Kalamaris stores
the complete history on the file .#kalamaris.lastcmds , so if it crashes,
you just have to copy this file with another name and edit it to use a correct syntax.
Note that syntax checking is one of the highest priority things on my TODO list, but
that list is decreasing very slowly due to other priorities in my personal life.
I'd like to see Kalamaris' features
- Kalamaris allows the user to define functions and evaluate them:
f(x)=Sin(x)*x^2
- It also work with matrices, and multiple variable functions:
f(x,y,z)=[ 1 , 2 , 3x ; 5*Sin(6y) , z+x , 2z ]
- It has symbolic and numeric evaluation:
f(2,a,3b)
Gives:
[ 1 , 2 , 6 ; 5*Sin(6a) , 3b+2 , 2*3b ]
- It plots data on a 2D view using qtai
and animates the data (using an extension to qtai) in a similar way. So you can enter :
c=EvalFunc(Cos(x),x,0,2PI,80)
s=EvalFunc(Sin(x),x,0,2PI,80)
PlotData(c[1],s[1])
m=EvalFunc(x^3-x,x,-1,1,80)
PlotData(m[0],m[1],0)
setPlotColor(0,1,Color(green))
m=EvalFunc(x^2-0.25,x,-1,1,80)
PlotData(m[0],m[1],0)
setPlotColor(0,2,Color(yellow))
and then Kalamaris opens a window like this:
- Solves systems of differential equations using the following methods:
Midpoint
Adams-Bashforth (with two different optional implementations)
Runge-Kutta 3/8
Fehlberg 5/6
Fehlberg 7/8
I'd like to mention that I've had help in implementing all these
methods. Thanks go to Benjamín Olea Andrades and María Franco
Barrionuevo for their detailed descriptions of the methods and their search
of some example models to test the numerical methods.
- Kalamaris also does symbolic derivations :
D(Sin(x),x) -> Cos(x)
D(Sin(2x)*Tan(x^3),x) -> Cos(2x)*2*Tan(x^3)+Sin(2x)*1/Cos(x)^2*3x^2
f(x,y)=[2,3x,y^4]
D(f(x,y),x) -> [ 0, 3, 4y^3 ]
D(f(x,y),y) -> [ 0, 0, 4y^3 ]
D(f(2a,b),a) -> [ 0, 6, 24y^3 ]
- Kalamaris also allows to visualize sets of 3D data using a beta
version of a new library I'm developing called KGL, which makes it easy to implement
3D OpenGL applications under the KDE environment.
The KGL library has also been used in KBillar.
The result of the test test.3d.2 (included in the sources) is something like
this:
Note that you can move the observer using your mouse, and it uses the
parallel transport of the orientation with which you're looking to keep it
good looking.
- Kalamaris can also be used to plot orbits and direction fields in 2 dimensions
and 3 dimensions, like this one (you can see more of these in the
screenshots section:
- Kalamaris generates runtime html files with help for each function
and variable (even user defined ones !). This allows Kalamaris to have
automatically a web-based interface which is quite nice to use.
- You can use python, perl, or any other scripting language (even your
shell !) to script your calculations and control Kalamaris using
an external application.
- It uses KDoc to document the sources, so it has an html internal
documentation.
I want to see a screenshot !
Ok, here you are :
Click here to see more screenshots.
Where can I download Kalamaris current version from ?
You can download Kalamaris by clicking on the following link :
Kalamaris-0.7.1.tar.bz2 (577 Kb.)
How do I install Kalamaris ?
You'll need KDE 3.x (it may also work with KDE 2.x, but I won't make this a priority
so I recommend to upgrade to the latest KDE 3.x release).
You'll also need :
- Mesa
- Qt compiled with OpenGL support (without using --no-opengl)
- libgmp library for arbitrary precision numbers
Once you have it all installed, run ./configure ; make ; make install on
Kalamaris sources.
Are there any known bugs ?
Lots of them ! Some of the most importants include:
- It crashes when doing something wrong. It doesn't currently show any
error, but just crashes. This is caused because it lacks a syntax verifier and
will be fixed in the summer.
- It lacks quite a lot of help. Feel free to read the examples to learn how
to use functions that lack help. There are many examples in the examples directories,
please read them too.
- Some other problems that I'm too tired to enumerate right now :-)
What's on the TODO list ?
Kalamaris already has many features, but it also lacks some things,
that I want to implement in the (near) future :
- Verificate the syntax, so it doesn't crash.
- Simplifications of complex expressions (it already simplify simple
expressions)
- Allow to specify the field in which we are working.
- Non-conmutative algebraic operations
- Implement other numerical methods (i.e. to find zeros !)
Anyway, all this seems to be coming very slowly, as I'm becoming quite busy with
my studies and real-life.
How can I help with Kalamaris development ?
You want to collaborate ? Good. Just write me and tell me your abilities as
developer or artist (yes, I also need someone to draw the icons ).
Btw, I also accept donations to continue Kalamaris development :-) (perhaps
even to implement any feature that I wouldn't add by myself)
What are Kalamaris terms of use ?
Kalamaris is distributed under the GNU General Public License Version 2.
|