{"id":23683904,"url":"https://github.com/semuadmin/fractal-generator","last_synced_at":"2026-01-06T04:30:13.422Z","repository":{"id":101734047,"uuid":"441509290","full_name":"semuconsulting/fractal-generator","owner":"semuconsulting","description":"Fractal generator implemented in JavaScript, deployable as web site or Electron desktop app.","archived":false,"fork":false,"pushed_at":"2023-02-24T23:57:38.000Z","size":3270,"stargazers_count":0,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"main","last_synced_at":"2024-12-29T20:31:15.652Z","etag":null,"topics":["fractal","javascript","julia-set","mandelbrot-set"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/semuconsulting.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":"CITATION.bib","codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2021-12-24T16:21:10.000Z","updated_at":"2022-12-20T09:49:45.000Z","dependencies_parsed_at":null,"dependency_job_id":"c680b2b9-3ab3-4b16-99c3-a455fec3ae5b","html_url":"https://github.com/semuconsulting/fractal-generator","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/semuconsulting%2Ffractal-generator","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/semuconsulting%2Ffractal-generator/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/semuconsulting%2Ffractal-generator/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/semuconsulting%2Ffractal-generator/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/semuconsulting","download_url":"https://codeload.github.com/semuconsulting/fractal-generator/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":239735864,"owners_count":19688355,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":["fractal","javascript","julia-set","mandelbrot-set"],"created_at":"2024-12-29T20:29:36.873Z","updated_at":"2026-01-06T04:30:13.374Z","avatar_url":"https://github.com/semuconsulting.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Fractal Generator\n\nJust a bit of fun...\n\nA JavaScript implementation of an interactive fractal generator.  It supports both Mandelbrot and Julia modes and 'Standard', 'Burning Ship' and 'Tricorn' variants using a variety of color rendering themes, including user-generated colour palettes and gradients.\n\nThe application also supports basic 'Deep Zoom' and 'Julia Spin' animation.\n\nFractal can be configured via a set of 'quick-set' buttons, or more comprehensively via a manual configuration form which allows specific coordinates to be entered in complex (real/imaginary) notation. \n\n![full app screenshot ubx](/images/screenshot.png)![full app screenshot ubx](/images/screenshot_open.png)\n\n## How to Use\n\nThe instructions can be viewed by clicking on the ![btnHelp](/resources/btnHelp.png) button:\n\n- Click anywhere in the image to zoom in current cursor position by the zoom increment amount..\n- Click, drag and release to zoom into drawn area.\n- Ctrl + Click to zoom out at current cursor position by zoom increment amount.\n- Shift + Click to centre at current cursor position.\n- Alt(Option) + Click to toggle between Mandelbrot and Julia modes at current cursor position (useful points of interest can be found just outside the perimeter of the Mandelbrot set).\n- Press ![btnreset](/resources/btnReset.png) to reset to default settings.\n- Press ![btnZoomIn](/resources/btnZoomIn.png) to zoom in at current coordinates.\n- Press ![btnZoomOut](/resources/btnZoomOut.png) to zoom out at current coordinates.\n- Press ![btnZoomAnimate](/resources/btnZoomAnimate.png) to turn zoom animation on or off. A series of frames will be automatically generated, centered at the current coordinates with the zoom level incremented by the 'zoom increment' amount.\n- Press ![btnMode](/resources/btnMode.png) to cycle through modes (Mandelbrot / Julia).\n- Press ![btnVariant](/resources/btnVariant.png) to cycle through variants (Standard / Burning Ship / Tricorn).  \n- Press ![btnExponent](/resources/btnExponent.png) to cycle exponent (2 - 6).\n- Press ![btnColor](/resources/btnColor.png) to cycle through color themes.\n- Press ![btnColorUp](/resources/btnColorUp.png)/![btnColorDown](/resources/btnColorDown.png) to shift color theme up or down.\n- Press ![btnJuliaUp](/resources/btnJuliaUp.png)/![btnJuliaDown](/resources/btnJuliaDown.png) to rotate Julia Set clockwise or anti-clockwise.\n- Press ![btnJuliaSpin](/resources/btnJuliaSpin.png) to turn Julia spin animation on or off.\n- Press ![btnSave](/resources/btnSave.png) to save image.\n- Press ![btnSettings](/resources/btnSettings.png) to open or close settings panel.\n- Press ![btnHelp](/resources/btnHelp.png) to open or close help panel.\n\n### To create a custom color rendering palette\n\n- Choose a palette depth of 4, 8, 12 or 16 colors.\n- Choose a gradient depth of 16, 32, 64, 128, 256 or 512 levels.\n- Choose the color interpolation method ('None' or 'Linear').\n- Create the palette by picking colors using the color picker widget and applying the selection to each palette slot in turn.\n- Click 'PAINT'. A color gradient will be created dynamically and applied to the displayed fractal. \n- The custom color gradient will also be added to the list of available color rendering themes in the format 'User_x_nnn', where 'x' is an auto-incremented number and 'nnn' is the number of levels.\n\n## How to Deploy\n### To view and deploy as a web page\n\nThe project can be deployed as an Electron (Node.js) desktop application (`index2.html`), or as a stand-alone web site `index.html`.\n\nTo view as a web page, simply open the [index.html](./index.html) file from the project root directory in any web browser. To deploy to a web server, from your command line:\n\n```bash\n# Clone this repository\ngit clone https://github.com/Algol-Variables/fractal-generator\n# Go into the repository\ncd fractal-generator\n# Copy files to required web server directory e.g. /var/www/html/fractal/\ncp {complexlite.js, colorutils.js, fractalutils.js, app.js, index.html, styles.css, resources/*} /var/www/html/fractal\n```\nSee, for example: [fractal-generator](https://www.algolvariables.com/fractals/index.html)\n\n### To build and deploy as a desktop application\n\nTo clone and run this repository you'll need [Git](https://git-scm.com) and [Node.js](https://nodejs.org/en/download/) (which comes with [npm](http://npmjs.com)) installed on your computer. From your command line:\n\n```bash\n# Clone this repository\ngit clone https://github.com/Algol-Variables/fractal-generator\n# Go into the repository\ncd fractal-generator\n# Install dependencies\nnpm install\n# Install electron-forge (if required)\nnpm install --save-dev @electron-forge/cli\nnpx electron-forge import\n# Run the app\nnpm start\n# Create local app executable using electron-forge (if required)\nnpm run make\n# The executable application (.app, .exe, etc.) can be found in the /out/make directory\ncd out/make\n```\n\n## License\n\nCopyright: Algol Variables © 2021\n\n[GPLv3 License](LICENSE)\n\nIcons from [iconmonstr](https://iconmonstr.com/) - [License](https://iconmonstr.com/license/)\n\n## Author Information\n\nadmin@algolvariables.com\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsemuadmin%2Ffractal-generator","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsemuadmin%2Ffractal-generator","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsemuadmin%2Ffractal-generator/lists"}