wxMaxima gives Maxima a document interface and a real GUI
A gui for the computer algebra system Maxima built with wxWidgets
At a glance
- What is it?
- wxMaxima is a wxWidgets front end for the Maxima computer algebra system, with menus and dialogs for common commands, autocompletion, inline plots and animations. It ships with the Windows and macOS installers for Maxima and packages for many Linux distributions, but on recent Wayland desktops it needs to be told to use X11.
- Who is it for?
- wxMaxima is a good fit for someone who already thinks in Maxima but wants a window instead of a read-eval-print loop, or for a teacher who needs to hand students a document that opens with the computation already in it, since the .wxm format stores the session as a file.
- Can I use it commercially?
- Check first. The repository uses a licence we do not classify automatically, so read its LICENSE file before any commercial use.
- Is it still maintained?
- Yes. The repository last received commits 1 day ago.
- What is it written in?
- Mainly C++, according to GitHub's language statistics.
Answers come from the project's GitHub data, last synced on October 22, 2026, and from our analysis. They are not legal advice.
Editorial analysis
A front end, not a fork of the algebra system
wxMaxima describes itself as a document based interface for the computer algebra system Maxima, and that phrasing matters. The symbolic work happens in Maxima, and wxMaxima is the shell around it: menus and dialogs for many common Maxima commands, autocompletion, inline plots and simple animations. It uses wxWidgets and runs natively on Windows, macOS, Linux and other platforms. The consequence for anyone evaluating it is that the ceiling on what it can do is set by Maxima itself, and the value it adds is entirely in the interface layer. A user who knows Maxima will feel at home quickly, since the same expressions and the same output apply. A user who does not will find a friendly front end to a system that still requires learning, and no amount of buttons changes that.
Where to get it, and the two ways it reaches you
Distribution is the easiest part of the decision. WxMaxima is included with the Windows and the Macintosh installer for Maxima, and packages are also available for many Linux distributions. The README points to the Maxima download page for instructions on where to get a complete Maxima package, since wxMaxima is the interface and Maxima itself is the engine. That ordering is the one to respect: installing a wxMaxima package without a matching Maxima gives you a window that opens and cannot compute. For people who want to build it themselves, the README points to Compiling.md in the repository, and the tree backs that up with a CMakeLists.txt, a cmake/ directory, a src/ tree and a Doxyfile for the Doxygen documentation of the code itself. The project also ships a snap package, with continuous integration workflows for the snappy package of maxima on the edge and stable channels.
The .wxm document is the unit of work
The examples directory is the most informative part of the repository for a newcomer, because it shows what a wxMaxima artifact actually is. There are files such as diffEquations.wxm, displaying3DCurves.wxm, draw2d.wxm, fittingEquations.wxm, fastListAccess.wxm, memoizing.wxm, numberFormats.wxm, solvingEquations.wxm, toleranceCalculations.wxm and variableNames.wxm, along with a CASvsProgrammingLanguage.wxm that compares a computer algebra system to a programming language. These are documents, and the presence of an examples/CMakeLists.txt and examples/README.md means they are wired into the build rather than left as loose files. This is the feature that distinguishes wxMaxima from a plain terminal: a computation can be saved, version controlled, emailed and reopened, and a teacher can hand a student a file that reproduces a result without asking them to retype it.
The Wayland problem, stated plainly
The README carries a specific warning about recent Linux and BSD distributions: there seem to be issues between the Wayland display server and wxWidgets, and wxMaxima may be affected, for example with sidebars that are not moveable. There are two ways out. You can disable Wayland and use X11 globally, or you can tell wxMaxima to use the X Window System for its own process by setting GDK_BACKEND=x11. The README shows the latter as a launch, with Ubuntu 22.04 on a Wayland capable graphics card given as an example of an affected setup:
`GDK_BACKEND=x11 wxmaxima`This is a small but real papercut for a Linux install, and it is worth knowing about before a user concludes the application is broken. The environment variable has to be present at launch, which means it goes in the shell profile, in a .desktop file, or in the wrapper script, and each of those is a small piece of per-machine setup that has to be repeated.
What the continuous integration actually covers
The status table in the README is a list of build and analysis jobs, and it is a good proxy for what the project takes seriously. The build side covers compiling and testing under Ubuntu on both AMD64 and IA32, compiling and testing on Windows, compiling on the Mac on ARM64, and compiling with Cygwin. The package side keeps the snappy package of maxima updated on the edge and stable channels. The analysis side is where the project is unusual for a desktop application: fuzzing of file and keyboard input, a Coverity code scan, a CodeQL code scan, Flawfinder, Microsoft C++ Code Analysis, and a check that asks whether the bundled MathJaX is current. Fuzzing of file and keyboard input matters for an application that renders content and reads documents, and the MathJaX check is a specific dependency currency check that most projects do not run. The tree also carries .clang-format, .clang-tidy, CPPLINT.cfg, .editorconfig and a wxMaxima.cppcheck file, so style and static analysis are configured in the repository rather than left to reviewers.
Translations, licences and the volunteer base
Two things stand out about how the project is organised. First, translations are handled through plain text .po files in the locales/ subdirectory, edited and submitted as a pull request, and locales/README.md explains how the files fit together. The README recommends a dedicated editor such as Poedit or Lokalize for comfort but insists a plain text editor is enough, which keeps the contribution barrier low. Second, licensing is stated as the GPL, with a COPYING file and a GPL.txt file at the top level, and separate third party notices for Gnuplot and for the webview component alongside a general THIRD-PARTY-NOTICES.txt. The README describes the project as open source and developed by volunteers, with contributions welcome. The release cadence is regular: Version-26.07.1 on 2026-07-21, Version-26.08.0 on 2026-08-12 and Version-26.09.0 on 2026-09-30, with the last push on 2026-10-19.
Where wxMaxima is the wrong tool
Three cases. The first is a notebook workflow, since wxMaxima is a desktop application with a document format of its own, not a cell-based notebook you can share as a web page, and its .wxm files will not render in a notebook viewer. The second is a modern Wayland desktop where you cannot set environment variables per launch, where the sidebars will be awkward until the wxWidgets and Wayland interaction improves. The third is a project that wants a maintained, versioned release train, since wxMaxima and Maxima are released separately and the README does not document which Maxima version a given wxMaxima release expects, so compatibility is something you check rather than something you rely on. Against the alternative of running Maxima in a terminal, the difference in approach is that wxMaxima adds menus, dialogs, autocompletion, inline plotting and a saved document format, and gives up the raw prompt, the compact output and the scripts that drive a terminal session. A person who types Maxima quickly all day will often be faster in the terminal.
Editorial conclusion
wxMaxima is a good fit for someone who already thinks in Maxima but wants a window instead of a read-eval-print loop, or for a teacher who needs to hand students a document that opens with the computation already in it, since the .wxm format stores the session as a file. It is a poor fit if you want a notebook experience, if you are on a Wayland-only desktop and unwilling to set an environment variable, or if you need the newest Maxima, since the two are versioned separately and the README does not state which Maxima version a given wxMaxima release expects. Check three things before you install: whether your Linux session is Wayland, in which case set GDK_BACKEND=x11 because the README warns that sidebars may not be moveable otherwise, that the Maxima version available to you matches what your workflow needs, since wxMaxima is a front end and inherits Maxima's capabilities exactly, and that the licence suits you, with the GPL stated in the README and a COPYING file, a GPL.txt file and separate third party notices for Gnuplot and the webview component in the tree.
Frequently asked questions
What is wxMaxima and what does it do?
WxMaxima is a document based interface for the computer algebra system Maxima, built with wxWidgets. It provides menus and dialogs for many common Maxima commands, autocompletion, inline plots and simple animations, and runs natively on Windows, macOS, Linux and other platforms.
How do I install wxMaxima?
WxMaxima is included with the Windows and the Macintosh installer for Maxima, and packages are available for many Linux distributions, including a snap package. The README points to the Maxima download page for a complete Maxima package, and to Compiling.md in the repository for instructions on compiling wxMaxima from source.
What is a .wxm file?
It is a wxMaxima document. The repository examples directory contains files such as diffEquations.wxm, displaying3DCurves.wxm, fittingEquations.wxm and solvingEquations.wxm, and the examples are wired into the build with their own CMakeLists.txt, which shows they are a supported artifact rather than loose attachments.
Why do sidebars not move on Wayland?
The README says there seem to be issues between the Wayland display server and wxWidgets, and that wxMaxima may be affected, for example with sidebars that are not moveable. The fix is to run it with GDK_BACKEND=x11 set, or to disable Wayland globally and use X11.
How can I contribute a translation to wxMaxima?
Translations are contributed by editing the .po files in the locales/ subdirectory and opening a pull request, with locales/README.md explaining how the files fit together. The .po files are plain text, so a text editor works, though the README suggests Poedit or Lokalize for comfort.
Official sources
Add this badge to your README
If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.
[](https://hysenlabs.com/projects/wxmaxima-developers-wxmaxima)Was this useful?