Tuesday, August 30, 2011

Kayali - a Qt based Computer Algebra System

Kayali - http://kayali.sourceforge.net


Kayali is a Qt based Computer Algebra System (CAS) that can also be used as an advanced replacement for KDE KCalc. It is essentially a front end GUI for Maxima (and is easily extended to other CAS back-ends) and Gnuplot.

Please Note: I am currently targetting a small subset of Maxima, while maintaining a medium-term goal of supporting all of Maxima. Please bear in mind that although Kayali probably does not support what you want to do with it right now, it can be made do so - but I need your feedback to do that. Please try it out if you can and share your thoughts.

Kayali is currently alpha software and has only been tested on my own PC. It you are reading this (condition1 : satisfied) and are prepared to give it a go, then please do send me feedback as to how you get on. At this stage I am particularly looking for hints about where to focus my development efforts, so please email me or post a message to the Kayali sourceforge forum with what you would like to see Kayali support.

I expect to see rapid development of Kayali so please check back regularly for updates.



Kayali has been written in Python. Nearly all linux installations already have python installed.

Python Web Site


Maxima is the engine behind Kayali. It is called a CAS (Computer Algebra System). Kayali passes all its commands to Maxima, so to learn more about the advanced use of Kayali you need to learn Maxima:

Maxima Sourceforge Web Site


PyQt4 is the interface between Python, which Kayali is written in, and Qt4. Qt4 is a great development toolkit developed by Trolltech in Norway.

Trolltech Qt Web Site

Riverbank PyQt Web Site


(Only required for plotting) GnuPlot is a plotting utility under the GNU umbrella. The 3D plots require v4 or above.

GnuPlot Web Site


(Only required for plotting) libgd is a gif manipulation library needed by gnuplot to produce png files.

libgd Web Site

User Documentation

Until Kayali reaches beta there is no user documentation. However, a little exploration of the system will go a long way. To learn the more advanced usage of Kayali, go to the Maxima web site.

Maxima Sourceforge Web Site



Yapps is a python-based parser which I have used for parsing the expressions.

Yapps Web Site


Pexpect is a python-based implementation of Expect, which I am using to communicate with Maxima.

Pexpect Web Site

No comments:

Post a Comment