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:

    2D Plot screenshot

  • 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:

    3D Animation screenshot

    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:

    2D Direction Field

  • 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 :

Another screenshot
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.

KDE Troll Tech OpenGL