{"id":44097572,"url":"https://github.com/divetoxx/mandelbrot","last_synced_at":"2026-04-02T14:01:45.225Z","repository":{"id":337194960,"uuid":"1152640357","full_name":"Divetoxx/Mandelbrot","owner":"Divetoxx","description":"True 24-bit BGR TrueColor. High-Precision Rendering (80-bit). Multi-threaded performance (OpenMP). True SSAA 8x8 (64 independent samples per pixel) direct RGB-space integration. G, B, R - The Red, Green, and Blue channels are calculated using sine and cosine waves ","archived":false,"fork":false,"pushed_at":"2026-03-23T16:41:59.000Z","size":77453,"stargazers_count":6,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2026-03-24T14:10:05.676Z","etag":null,"topics":["antialiasing","cpp","cpu-rendering","fractal","fractals","generative-art","generative-arts","high-precision","high-resolution","image-processing","mandelbrot-set","math","multithreading","openmp","supersampling","truecolor","truecolors","visualization","visualizations"],"latest_commit_sha":null,"homepage":"https://github.com/Divetoxx/Mandelbrot","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Divetoxx.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-02-08T07:22:09.000Z","updated_at":"2026-03-23T16:40:18.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/Divetoxx/Mandelbrot","commit_stats":null,"previous_names":["divetoxx/mandelbrot"],"tags_count":28,"template":false,"template_full_name":null,"purl":"pkg:github/Divetoxx/Mandelbrot","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Divetoxx%2FMandelbrot","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Divetoxx%2FMandelbrot/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Divetoxx%2FMandelbrot/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Divetoxx%2FMandelbrot/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Divetoxx","download_url":"https://codeload.github.com/Divetoxx/Mandelbrot/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Divetoxx%2FMandelbrot/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31307462,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-02T12:59:32.332Z","status":"ssl_error","status_checked_at":"2026-04-02T12:54:48.875Z","response_time":89,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["antialiasing","cpp","cpu-rendering","fractal","fractals","generative-art","generative-arts","high-precision","high-resolution","image-processing","mandelbrot-set","math","multithreading","openmp","supersampling","truecolor","truecolors","visualization","visualizations"],"created_at":"2026-02-08T13:03:22.916Z","updated_at":"2026-04-02T14:01:45.214Z","avatar_url":"https://github.com/Divetoxx.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"[English](#english) | [Русский](#russian)\n\u003ca name=\"english\"\u003e\u003c/a\u003e\n\n# Mandelbrot set. 24-bit TrueColor. 80-bit long double. OpenMP. Supersampling 8x8 (64 passes). Colors\n\n## True 24-bit BGR\nMigrated to full 24-bit BGR color output, enabling smooth gradients and millions of unique shades.\nBy utilizing a native 24-bit BGR pipeline, the engine can render millions of intermediate colors.\n\n\n## High-Precision Rendering (80-bit)\nMost Mandelbrot explorers use standard **64-bit double precision**, which leads to \"pixelation\" at zoom levels around $10^{14}$. \nThis project leverages **80-bit Extended Precision Arithmetic** (`long double`) to push the boundaries of the fractal:\n\n*   **My Implementation (80-bit):** Provides **4 extra decimal digits** of precision, allowing you to explore **10,000x deeper** ($10^{18}$ range).\n*   **Hardware Optimized:** Directly utilizes the **x87 FPU registers** for maximum mathematical depth.\n\n## OpenMP\nOpenMP is a standard that tells the compiler, \"Take this loop and distribute the iterations among the different processor cores.\"\nYes, using OpenMP you are doing parallel programming at the Multithreading level.\nEverything is powered by **OpenMP** parallel loops for maximum performance.\nOpenMP - Scalability: Your code will run equally efficiently on a 4-core laptop and a 128-core server.\n\n\n## 8x8 Supersampling (64 Samples Per Pixel)\nSuper-Sampling Anti-Aliasing (SSAA) is a high-end technique increasing samples per pixel to enhance image quality, \nwith 8x (N=8) rendering scenes at 8x resolution on both axes to produce 64 samples per pixel. \nThis process calculates an extreme number of pixels-scaling to a 15360 x 15360 grid for a 1920 x 1920\ntarget-before downscaling to remove jaggies and improve detail.\n\nI decided to take the visual quality to a completely different level. This engine implements\nTrue 8x8 Supersampling Anti-Aliasing (SSAA) with 64 independent samples per single screen pixel, utilizing Direct RGB-Space Integration.\nInstead of a standard 1920x1920 render, the engine internally processes a massive 15,360 x 15,360 sub-pixel grid!\nAfter calculating all 64 samples for a pixel, they are downsampled into one.\nKey Technical Advantages:\n\n*    64-Point Fractal Sampling: Each final screen pixel is computed from sixty-four independent fractal coordinate points.\n*    High-Precision Per-Channel RGB Accumulation: The engine first calculates the specific 24-bit color for every single sub-pixel before performing any blending.\n*    Noise Elimination: By accumulating color intensities (R, G, B) rather than raw iteration counts, we completely eliminate \"chromatic noise.\" The result is a crystal-clear, razor-sharp image where every micro-filament is perfectly reconstructed.\n*    True Color Integration: Our solution performs integration directly in the RGB color space. By computing the exact Red, Green, and Blue components for each sub-pixel before downsampling, we achieve a cinematic level of smoothness and structural integrity that 8-bit or iteration-based renderers simply cannot match.\n\n\n## Visual Aesthetics\nThe Red, Green, and Blue channels are calculated using sine and cosine waves to create smooth color transitions:\n127 + 127 * cos(2 * PI * a / 255) and 127 + 127 * sin(2 * PI * a / 255).\n\n\n## Look at the results! The smoothness is incredible \n\n![Mandelbrot Set](Mandelbrot%20Set%20Image%201.jpg)\n![Mandelbrot Set](Mandelbrot%20Set%20Image%202.jpg)\n![Mandelbrot Set](Mandelbrot%20Set%20Image%203.jpg)\n![Mandelbrot Set](Mandelbrot%20Set%20Image%204.jpg)\n![Mandelbrot Set](Mandelbrot%20Set%20Image%205.jpg)\n![Mandelbrot Set](Mandelbrot%20Set%20Image%206.jpg)\n![Mandelbrot Set](Mandelbrot%20Set%20Image%207.jpg)\n![Mandelbrot Set](Mandelbrot%20Set%20Image%208.jpg)\n\n## Controls \u0026 Hotkeys\nKeys [1-6]: Choose one of six predefined locations within the Mandelbrot set to generate a Mandelbrot.bmp image.\n\n```C++\nabsc = -1.39966699645936; ordi = 0.0005429083913; size_val = 0.000000000000036;\nabsc = -0.691488093510181825; ordi = 0.465680729473216972; size_val = 0.0000000000000026;\nabsc = -1.26392609056234794; ordi = -0.17578764215262827; size_val = 0.000000000000033;\nabsc = -0.88380294401099034; ordi = -0.23531813998049201; size_val = 0.0000000000000029;\nabsc = 0.38923838852618047304; ordi = -0.37956875637751280668; size_val = 0.0000000000000095;\nabsc = -0.5503493176297569; ordi = 0.6259309572825709; size_val = 0.00000000000041;\n```\n\nKey [7]: Read coordinates/parameters from three lines in Mandelbrot.txt and generate the corresponding Mandelbrot.bmp.\n\n![Mandelbrot txt](Mandelbrot.png)\n\n**[Download Latest Version (Windows \u0026 Linux)](https://github.com/Divetoxx/Mandelbrot/releases)**\n\n\n## The Mandelbrot Set: A Mathematical Absolute\n\nThe Mandelbrot Set. It is perfect — an immaterial origin existing outside of space and time. \nNo matter who or where the observer is, even an alien a hundred million light-years away, the Mandelbrot Set remains the same. \nEven in a different century, in a different galaxy, and even with a completely different brain, the set is identical. \nIt transcends everything, bypassing billions of light-years.\n\nThis is not a human invention, but a mathematical discovery. It belongs to the category of \"eternal truths\" \nthat Plato referred to as the Realm of Ideas. This is why it remains constant for any observer in the universe:\n\n*   **Pure Logic**: It is generated by a simple formula. The rules of arithmetic are universal. Any intelligence would inevitably arrive at the exact same fractal boundaries.\n*   **Substrate Independence**: This set doesn't need a computer or a human brain to exist. It is an abstract structure woven into the very logic of the cosmos.\n*   **Fractal Constancy**: Even if physical constants were different in another galaxy, the mathematical topology of this object would remain unshakable.\n\nIt is truly one of the few objects that connects us to something absolutely objective and infinite, \ntranscending biology and history. Even if our entire universe and all its atoms were to vanish tomorrow, \nthe equation would remain true. It is not \"written\" on the stars; it is embedded in the structure of logic itself. \nThis makes the Mandelbrot Set a kind of absolute.\n\nThis is classic Mathematical Platonism: the idea that mathematical objects exist in reality, but in a non-material realm. \nIf all matter were to disappear, there would be no one to write down the formula or witness its visualization, \nbut the relationship between the numbers would remain true. Much like \"2 + 2 = 4\", this rule doesn't need apples \nor stones to be valid.\n\nIn this sense, truth is primary to the physical world.\n\nThe Mandelbrot Set is absolutely predetermined. Every single one of its points was already 'there' long before the Big Bang. \nYet, at the same time, it is entirely unpredictable-you cannot know what you will see in the next zoom until you perform the calculation.\n\nLooking at a fractal, we witness an incredible complexity that appears chaotic. But we know that at its core lies a formula \nof just three symbols. This makes one wonder: could all the chaos of our universe-the turbulence of water, the formation of clouds, \nthe structure of galaxies-be nothing more than the result of a very simple algorithm that we have yet to calculate?\n\n\n\n\n\u003ca name=\"russian\"\u003e\u003c/a\u003e\n# Множество Мандельброта. 24-бит TrueColor. 80-бит long double. OpenMP. Суперсэмплинг 8x8 (64 прохода). Цвета\n\n \n## True 24-bit BGR\nПереход на полную 24-битную цветопередачу BGR, обеспечивающую плавные градиенты.\nЭто позволяет отображать миллионы оттенков.\nНаш движок работает в честном 24-битном цветовом пространстве, может отображать миллионы промежуточных цветов.\n\n\n## Высокоточная отрисовка (80-бит)\nБольшинство исследователей фрактала Мандельброта используют стандартную **64-битную двойную точность**,\nчто приводит к \"пикселизации\" при масштабировании около $10^{14}$.\nВ этом проекте используется **80-битная арифметика с расширенной точностью** (\u003clong double\u003e) для расширения границ фрактала:\n\n* **Моя реализация (80-бит):** Обеспечивает **4 дополнительных десятичных знака** точности, позволяя исследовать **в 10 000 раз глубже** (диапазон $10^{18}$).\n* **Аппаратная оптимизация:** Непосредственно использует **регистры FPU x87** для максимальной глубины математических вычислений.\n\n\n## OpenMP\nOpenMP - это стандарт, который говорит компилятору: \"Возьми этот цикл и сам раздай итерации разным ядрам процессора\".\nИспользуя OpenMP, вы занимаетесь параллельным программированием на уровне многопоточности (Multithreading).\nOpenMP - масштабируемость: ваш код будет одинаково эффективно работать как на 4-ядерном ноутбуке,\nтак и на 128-ядерном сервере.\n\n\n## Суперсэмплинг 8x8 (64 прохода на один пиксель)\nСуперсэмплинг (SSAA) - ресурсоемкий метод сглаживания, увеличивающий число выборок на пиксель для повышения качества изображения. \nПри значении 8x (N=8) сцена рендерится в разрешении, в 8 раз превышающем целевое, по обеим осям, создавая 64 (или 8 х 8) выборки \nна пиксель. Изображение просчитывается в более высоком разрешении, а затем принудительно уменьшается до разрешения дисплея, \nустраняя лесенки и улучшая чёткость. Это очень высокая нагрузка! Это не 1920 на 1920 пикселя а в 8x8 больше - 15360 на 15360 пикселя!\n\nЯ решил вывести качество изображения на совершенно новый уровень. Этот движок использует\nистинное сглаживание 8x8 Supersampling Anti-Aliasing (SSAA) с 64 независимыми сэмплами на каждый пиксель экрана, используя прямую интеграцию в RGB-пространство.\nВместо стандартного рендеринга 1920x1920, движок обрабатывает внутри себя огромную сетку из 15 360 x 15 360 субпикселей!\n\nПосле вычисления всех 64 сэмплов для пикселя, они уменьшаются до одного.\nКлючевые технические преимущества:\n\n* 64-точечное фрактальное сэмплирование: каждый конечный пиксель экрана вычисляется из шестидесяти четырех независимых \nфрактальных координатных точек.\n* Высокоточное накопление RGB-цвета по каналам: движок сначала вычисляет конкретный 24-битный цвет для каждого субпикселя, \nпрежде чем выполнять какое-либо смешивание.\n* Устранение шума: Накапливая интенсивность цвета (R, G, B), а не просто подсчитывая количество итераций, мы полностью \nустраняем \u003cхроматический шум\u003e. В результате получается кристально чистое, резкое изображение, где каждая микронить идеально воссоздана.\n* Интеграция истинного цвета: Наше решение выполняет интеграцию непосредственно в цветовом пространстве RGB. \nВычисляя точные компоненты красного, зеленого и синего цветов для каждого субпикселя перед понижением разрешения, \nмы достигаем кинематографического уровня плавности и структурной целостности, недостижимого для 8-битных или итерационных рендеров.\n\n\n## Визуальная эстетика\nКрасный, зеленый и синий каналы рассчитываются с использованием синусоидальных и косинусоидальных волн для создания плавных цветовых переходов:\n127 + 127 * cos(2 * PI * a / 255) и 127 + 127 * sin(2 * PI * a / 255).\n\n\n## Посмотрите на результаты! Невероятная плавность работы\n\n![Mandelbrot Set](Mandelbrot%20Set%20Image%201.jpg)\n![Mandelbrot Set](Mandelbrot%20Set%20Image%202.jpg)\n![Mandelbrot Set](Mandelbrot%20Set%20Image%203.jpg)\n![Mandelbrot Set](Mandelbrot%20Set%20Image%204.jpg)\n![Mandelbrot Set](Mandelbrot%20Set%20Image%205.jpg)\n![Mandelbrot Set](Mandelbrot%20Set%20Image%206.jpg)\n![Mandelbrot Set](Mandelbrot%20Set%20Image%207.jpg)\n![Mandelbrot Set](Mandelbrot%20Set%20Image%208.jpg)\n\n## Горячие клавиши\nУтилита из командной строке. Либо клавиша 1-6 - это одно из шести разных мест множество Мандельброта и создает Mandelbrot.bmp\n\n```C++\nabsc = -1.39966699645936; ordi = 0.0005429083913; size_val = 0.000000000000036;\nabsc = -0.691488093510181825; ordi = 0.465680729473216972; size_val = 0.0000000000000026;\nabsc = -1.26392609056234794; ordi = -0.17578764215262827; size_val = 0.000000000000033;\nabsc = -0.88380294401099034; ordi = -0.23531813998049201; size_val = 0.0000000000000029;\nabsc = 0.38923838852618047304; ordi = -0.37956875637751280668; size_val = 0.0000000000000095;\nabsc = -0.5503493176297569; ordi = 0.6259309572825709; size_val = 0.00000000000041;\n```\n\nЛибо читает из файла Mandelbrot.txt три строки (клавиша 7): и создает Mandelbrot.bmp\n\n![Mandelbrot txt](Mandelbrot.png)\n\n**[Скачать последнюю версию (Windows и Linux)](https://github.com/Divetoxx/Mandelbrot/releases)**\n\n\n## Множество Мандельброта: Математический абсолют\n\nМножество Мандельброта. Оно совершенно - нематериальное происхождение, существующее вне пространства и времени.\nНеважно, кто и где находится наблюдатель, даже инопланетянин на расстоянии ста миллионов световых лет, множество Мандельброта остается неизменным.\nДаже в другом столетии, в другой галактике и даже с совершенно другим мозгом, множество идентично.\nОно превосходит всё, минуя миллиарды световых лет.\n\nЭто не человеческое изобретение, а математическое открытие. Оно принадлежит к категории \u003cвечных истин\u003e,\nкоторые Платон называл Царством Идей. Вот почему оно остается неизменным для любого наблюдателя во Вселенной:\n\n* **Чистая логика**: Оно порождается простой формулой. Правила арифметики универсальны. Любой разум неизбежно придет к одним и тем же фрактальным границам.\n* **Независимость от субстрата**: Для существования этого множества не нужен компьютер или человеческий мозг. Это абстрактная структура, вплетенная в саму логику космоса.\n* **Фрактальная постоянство**: Даже если физические константы в другой галактике будут другими, математическая топология этого объекта останется непоколебимой.\n\nЭто поистине один из немногих объектов, который связывает нас с чем-то абсолютно объективным и бесконечным,\nпревосходящим биологию и историю. Даже если бы вся наша Вселенная и все её атомы исчезли завтра,\nуравнение осталось бы верным. Оно не \u003cнаписано\u003e на звёздах; оно заложено в самой структуре логики.\nЭто делает множество Мандельброта своего рода абсолютом.\n\nЭто классический математический платонизм: идея о том, что математические объекты существуют в реальности, но в нематериальной сфере.\nЕсли бы вся материя исчезла, некому было бы записать формулу или увидеть её визуализацию,\nно соотношение между числами осталось бы верным. Подобно правилу \u003c2 + 2 = 4\u003e, этому правилу не нужны яблоки\nили камни, чтобы быть действительным.\n\nВ этом смысле истина является первостепенной по отношению к физическому миру.\n\nМножество Мандельброта абсолютно предопределено. Каждая его точка была \u003cтам\u003e еще до Большого взрыва. \nНо при этом оно абсолютно непредсказуемо - вы не узнаете, что увидите при следующем зуме, пока не сделаете расчет.\n\nГлядя на фрактал, мы видим невероятную сложность, которая кажется хаотичной. \nНо мы знаем, что в её основе лежит формула из трех символов. Это заставляет задуматься: \nа не является ли весь хаос нашей Вселенной - турбулентность воды, рост облаков, структура \nгалактик - лишь результатом работы очень простого алгоритма, который мы ещё не вычислили?\n\n\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdivetoxx%2Fmandelbrot","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdivetoxx%2Fmandelbrot","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdivetoxx%2Fmandelbrot/lists"}