Skip to content

About

Fractal explorer supporting complex, quaternion, and octonion spaces with custom equations (C++20, CLI + UI)

Topics

Resources

Stars

6 stars

Watchers

1 watching

Forks

Latest commit

Β 

History

73 Commits

Folders and files

NameName
Last commit message
Last commit date
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Octo Fractalis Logo

Octo Fractalis

High-dimensional fractal viewer for Complex, Quaternion, and Octonion spaces


✨ Overview

Octo Fractalis is a C++20 fractal viewer designed for exploring Mandelbrot and Julia sets across multiple number systems:

  • Complex (2D)
  • Quaternion (4D)
  • Octonion (8D)

It supports custom equations with arbitrary operators and functions, and can run either as an interactive UI or a lightweight CLI.

Tested on:

  • Windows 11 (MSVC)
  • Linux (Debian / Ubuntu)
  • Android (CLI mode on Termux)

πŸš€ Features

  • Number Spaces: Complex, Quaternion, Octonion
  • Fractal Types: Mandelbrot & Julia (fully customizable equations)
  • Fast CPU Rendering: OpenMP + SIMD (AVX2)
  • Dual Modes:
    • UI (SDL3 + Dear ImGui + lodepng + stb_image.h)
    • CLI (fast and minimal + lodepng + stb_image.h)

πŸ–ΌοΈ Preview

UI (Work in Progress)

UI preview

Fractals (Examples)

Mandelbrot Julia

πŸ“₯ Prebuilt Binaries

Precompiled builds are available in the Releases section:

πŸ‘‰ https://github.com/Ar57m/octofractalis/releases

Downloads

  • Windows (x64) β†’ octofractalis-win-x64.zip
  • Linux (x64) β†’ octofractalis-linux-x64.tar.gz

These builds are compiled for 64-bit systems.
If they don't run on your machine, try building from source.


πŸš€ Quick Start (No Build Required)

  1. Download the archive for your platform
  2. Extract it
  3. Run octofractalis.exe (Windows) or ./octofractalis (Linux)

πŸ“¦ Installation

1. Clone the Repository

⚠️ This project uses submodules (ImGui). You must include them if you want to compile the UI mode.

git clone --recurse-submodules https://github.com/Ar57m/octofractalis
cd octofractalis

If you already cloned:

git submodule update --init --recursive

πŸ”§ Dependencies

Required

  • C++20 compiler

    • GCC / Clang (Linux / Termux)
    • MSVC (2019 tested on Windows)
  • OpenMP support

UI Only

  • SDL3

Windows

Place the prebuilt SDL3 lib folder inside:

libs/

Linux

The build script will automatically compile SDL3 if not found.

But make sure you have:

sudo apt install build-essential cmake

🧱 Building

πŸ–₯️ Windows (MSVC)

Run inside a Developer Command Prompt:

UI version using double

build.bat

CLI version using double

build.bat --cli

🐧 Linux (Debian / Ubuntu)

chmod +x build.sh

UI version

./build.sh

CLI version

./build.sh --cli

πŸ“± Android (Termux)

CLI mode is recommended:

pkg install build-essential cmake

chmod +x build.sh
./build.sh --cli

βš™οΈ Build Flags

Flag Description
--cpu CPU mode (default)
--cli No UI binary
--float 32-bit precision (faster, less depth)
--double 64-bit precision (default)
--share Portable binary (no AVX2, runs on older CPUs)

▢️ Running

UI

./octofractalis      # Linux
octofractalis.exe    # Windows

CLI

./octofractalis-cli
octofractalis-cli.exe

CLI help:

./octofractalis-cli -h
octofractalis-cli.exe -h

🧠 Notes

  • Deep zooms are limited by floating-point precision
  • float = faster, less stable
  • double = slower, much deeper zoom
  • AVX2 is enabled by default (disable with --share)

πŸ’Έ Support

If you find this project useful:

0x190ac445974a989a87dd223f212a76ca0090c804

About

Fractal explorer supporting complex, quaternion, and octonion spaces with custom equations (C++20, CLI + UI)

Topics

Resources

Stars

6 stars

Watchers

1 watching

Forks

Releases

Used by

Contributors

Languages