Open-source project
xaos-project/XaoS avatar
xaos-project/XaoS

XaoS: a realtime fractal zoomer for the Mandelbrot set and friends

Real-time interactive fractal zoomer

627 stars69 forksC++GPL-2.0

At a glance

What is it?
XaoS renders the Mandelbrot set and other fractals in realtime, recomputing only what changed as you zoom instead of regenerating the image, and it has been doing so since 1996. It is a Qt Widgets application with an added web build, a WebAssembly build and a mobile build, and it is one of the oldest fractal explorers still shipping.
Who is it for?
XaoS suits someone exploring the Mandelbrot set who wants an interactive renderer rather than a batch image generator, since it recomputes only the changed region as you zoom, and the autopilot lets it fly on its own when you want a tour. It does not suit a project that needs programmable output for rendering or video, since the repository describes a viewer with an autopilot rather than a scripting interface.
Can I use it commercially?
Yes, with conditions. GPL-2.0 is a copyleft licence: if you distribute software that includes it, you must release that software's source code under the same licence. Running it internally without distributing it does not trigger that obligation.
Is it still maintained?
Yes. The repository last received commits 42 days 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 23, 2026, and from our analysis. They are not legal advice.

Editorial analysis

Realtime means recomputing the changed region, not redrawing the frame

XaoS is pronounced chaos and is also known as GNU XaoS, and it is a realtime interactive fractal zoomer. The defining property is that it lets you zoom smoothly into any place in the fractal you choose without the long calculation required by other fractal generators.

That sentence describes the whole technical idea. A conventional fractal generator renders an image at a fixed resolution and then you zoom a bitmap, which means you are looking at interpolated pixels. XaoS keeps the mathematical state of the view and recomputes the fractal as you move, so what you see is the actual set at the current scale rather than a scaled-up picture of it.

The audience is people exploring fractals interactively rather than people producing final artwork through a script. The features list supports that reading: different fractal types, autopilot, special colouring modes, random palette generation and colour cycling.

Autopilot is the one worth understanding. It is a mode where the program drives the zoom itself along a path, which turns the tool from something you operate into something you watch. For exploring a fractal that has no obvious interesting features on the way in, autopilot is the difference between finding the interesting region and seeing it.

The topic tags name the scope: fractal, mandelbrot, math, qt, realtime and zoom. The mathematics is not decoration here, the realtime rendering is the point, and the visualisation is the deliverable.

The project is GPL-2.0 or later, with the copyright held by the XaoS Contributors from 1996 to 2026, and the COPYING file at the repository root. The primary language is C++, the default branch is master, and the last push was on 2026-09-11, which is also the date of release 4.3.8, after 4.3.7 in July 2026 and 4.3.6 in July 2026.

Qt Widgets is the base, and the ports follow from it

XaoS is based on Qt and has been tested on Windows, Mac and Linux, and the README says it should also work on any other platform supporting Qt Widgets, like the BSDs.

That single dependency explains a lot about the shape of the project. The Qt Widgets constraint is what makes the desktop application straightforward across platforms, and it is also what makes the other builds possible, because every target in the repository is Qt with a different front end or toolchain.

The repository root shows the range: a CMakeLists.txt for the main build, an XaoS.pro file for the qmake path, a Dockerfile.wasm, a Dockerfile.mobile and a Dockerfile.win, plus android/ and server/ directories, an installer/ directory, a tools/ directory, doc/, tutorial/, examples/ and catalogs/.

The web application is the newer surface. Since version 4.3, in September 2023, XaoS is available as a full-featured web application as well, and you can try it at xaos.app. There is also a simplified version of the XaoS zooming algorithm running online through XaoS.js, which lives under the project's GitHub Pages site.

So there are three levels of web presence: the full web application at xaos.app, a simplified JavaScript build of the zooming algorithm alone, and the desktop application that can be built for WebAssembly through Dockerfile.wasm.

The example directory is the best map of what the program can do. It holds one subdirectory per contributor, including 0rfelyus, Hubicka, Langston, Malczak, Rezocrypt, ZKovacs, ZsKovacs and adammaj1, each presumably containing a saved fractal configuration. Those directories are effectively a gallery of settings, and the fact that they are named after people rather than after features tells you they are personal configurations rather than a curated set of presets.

There is a catalogs/ directory at the root as well, which is where the shipped colour schemes and configuration files live, and a fonts.qrc and i18n.qrc resource file for the bundled fonts and translations.

Getting it running means choosing between the desktop app, the web app and a build

The README does not document an installation procedure, so the practical question is where you actually get XaoS and which of the four surfaces you use.

The easiest route is the web application at xaos.app, which needs nothing installed and, since version 4.3, is described as full-featured rather than a limited demo. If your question is whether the realtime rendering approach is worth your time, that page answers it in a minute.

The second route is the binary releases page on GitHub, linked from the project resources as Binary Releases, which is the path for anyone who wants the desktop application without building it.

The third is building from source, and the repository shows three build systems. CMakeLists.txt at the root is the modern one. XaoS.pro is the qmake project file for the older Qt workflow. The Dockerfiles exist for the three non-standard targets: Dockerfile.wasm for the WebAssembly build, Dockerfile.mobile for the mobile build paired with the android/ directory, and Dockerfile.win for the Windows build.

The three container files are the interesting part of the layout, because they are the clearest statement of the project's ambition. A Qt Widgets desktop application of this kind is not trivially portable to a browser, to a phone, or to a Windows package, and the presence of three Dockerfiles and an android/ tree says the maintainers took all three on rather than leaving them as an exercise.

If you want to build the desktop application, the practical advice is to follow the Developer's Guide in the project wiki, which is linked from the project resources list, and to check the RELEASING.md file for how releases are cut, since the version tags follow the release- prefix pattern.

The NEWS file at the root is the changelog, and the wiki linked as Documentation is where the user-facing guides live.

Community support is a Google Group, and expectations are set honestly

The support section is unusually candid about what a volunteer project can promise, and that candour is itself a signal about the project's health.

XaoS is a community-supported free software project. The Google Group provides a place for XaoS users to help each other get the most out of XaoS, and the XaoS developers also monitor the discussion and answer questions from time to time. You can browse the archives freely but to prevent spam you must join the group in order to post, and Google Groups provides options for participation from a traditional mailing list to a completely web-based forum, so you do not have to get emails if you do not want to.

The paragraph on bugs is the one to read twice. XaoS is developed on a volunteer basis and the developers work on it in their spare time. Therefore, we cannot guarantee that issues will be addressed in a certain timeframe. If you are able to fix a bug or implement a new feature yourself, pull requests are very welcome.

So the support model is explicit: peer support through the group, volunteer developer time, no fix guarantee, and pull requests accepted. For a thirty-year-old volunteer project, that is a reasonable contract, and knowing it in advance is better than discovering it when a regression sits unaddressed for a year.

The project has kept its original authorship credit visible. The original authors are Jan Hubička and Thomas Marsh, and the current maintainers are J.B. Langston and Zoltán Kovács, with a complete contributor list in CREDITS.md.

The release history shows a project that is still moving rather than coasting: 4.3.8 in September 2026, 4.3.7 in July 2026, 4.3.6 in July 2026, with the last push on 2026-09-11. The 4.3 line began in September 2023 with the web application, and the version has moved through seven patch releases since then.

Where XaoS is the wrong tool

The first wrong-tool case is a production rendering pipeline. XaoS is a viewer, with an autopilot that navigates and a catalogue of saved configurations. Nothing in the repository suggests a scripting interface, a command line that renders a sequence to images, or a headless mode that produces frames for video. If you need thousands of high resolution renders at specific coordinates for a print or an animation, this is an application you drive by hand, and you would be screenshotting it.

The second case is a task where an offline renderer is enough. A tool that computes a full image at a given coordinate and lets you wait for it will give you a cleaner result at a fixed deep zoom, because XaoS is optimised for a viewport that moves, not for a single arbitrarily deep image. The realtime design trades peak fidelity at extreme depth for responsiveness during navigation.

The third case is a non-Qt environment. If you are on a modern Linux desktop the Qt Widgets dependency is a non-issue, but the README names Windows, Mac and Linux as tested and other Qt Widgets platforms as probable. It does not cover a browser as a native target, a phone other than through the Android build, or an environment where you cannot install a Qt runtime.

The fourth case is mathematical work rather than exploration. XaoS shows you the set. It is not a symbolic algebra system, it does not prove anything about the set, and it does not export a model of what you are looking at. The Mandrelbrot family of renderers exist, and the difference is that they let you select the exact region and parameters for output. XaoS is for finding those regions and then, if you need the output, for producing it elsewhere.

There is a practical caution about the configuration model worth knowing before you invest time. The saved configurations live in per-person directories under examples/ and in the catalogues at the root, which means the settings that produce a particular view are stored as data files, and how they are stored, merged and resolved is not documented in the README. If your workflow depends on reproducing an exact fractal image later, you should check the Developer's Guide and the wiki before assuming a saved configuration is portable.

On licence, the terms are the GNU General Public License version 2 or, at your option, any later version. That is the more permissive of the two GPL options and is unusual for a project of this age, so a company embedding or redistributing XaoS has less friction than the version 2 only phrasing would suggest. The warranty disclaimer is the standard one, no warranty, and the project is distributed in the hope that it will be useful.

Editorial conclusion

XaoS suits someone exploring the Mandelbrot set who wants an interactive renderer rather than a batch image generator, since it recomputes only the changed region as you zoom, and the autopilot lets it fly on its own when you want a tour. It does not suit a project that needs programmable output for rendering or video, since the repository describes a viewer with an autopilot rather than a scripting interface. Before adopting, try the web build at xaos.app first, because that tells you in a minute whether the realtime approach suits you, and read the Catalogs directory if you care about custom colouring, since that is where the saved colour schemes live.

Frequently asked questions

What is XaoS?

XaoS, also known as GNU XaoS and pronounced chaos, is a realtime interactive fractal zoomer. It lets you zoom smoothly into any point in the fractal without the long calculation other fractal generators require, and it also offers different fractal types, autopilot, special colouring modes, random palette generation and colour cycling.

What platforms does XaoS run on?

XaoS is based on Qt and has been tested on Windows, Mac and Linux, and the README says it should work on any other platform supporting Qt Widgets, such as the BSDs. Since version 4.3 it is also available as a full-featured web application at xaos.app.

How do I get XaoS?

The README does not give an installation procedure. You can try the web application at xaos.app, download a binary from the Binary Releases page on GitHub, or build from source using CMakeLists.txt for the desktop application, the XaoS.pro qmake file, or the Dockerfile.wasm, Dockerfile.mobile and Dockerfile.win files for the other targets.

What is autopilot in XaoS?

Autopilot is a feature that lets XaoS drive the zoom itself along a path instead of waiting for you to steer. It is listed among the program's main features alongside different fractal types, special colouring modes, random palette generation and colour cycling.

How is XaoS supported?

XaoS is a community-supported free software project. The Google Group lets users help each other, and the developers monitor it and answer questions from time to time. The README states the developers work on it on a volunteer basis in their spare time, so issues cannot be guaranteed to be addressed within a timeframe, and pull requests are welcome.

What license is XaoS released under?

XaoS is released under the GNU General Public License version 2 or, at your option, any later version, with copyright held by the XaoS Contributors from 1996 to 2026. The current release is 4.3.8, tagged on 2026-09-11.

Official sources

  1. License: GPL-2.0
  2. Project website
  3. README
  4. Releases
  5. xaos-project/XaoS on GitHub
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.

Add this badge to your README

markdown
[![Hysen Labs](https://hysenlabs.com/badge/xaos-project-xaos.svg)](https://hysenlabs.com/projects/xaos-project-xaos)

Was this useful?