Skip to content

GSoC 2020

Anurag Aggarwal edited this page Aug 25, 2020 · 10 revisions

Google Summmer of Code 2020

Support for arbitrary precision and export of high quality output

Along with the great mentorship of @kovzol Zoltán Kovács , I implemented multiple functionalities to XaoS and fixed some existing crashes. We have implemented these changes and successfully released two subversion of XaoS during this time.

Release 4.1 and 4.2 list these changes as:

New Features

  • Palette editor, save/load palettes, storing user palettes in the .xpf file. PR #194 #195 #197

  • The option 'User formulas' maintains a history of recently used formulas. PR #202

  • Fractal info in the Help menu.

  • Batch rendering. PR #184

  • Enabled panning in rotate mode. PR #189

  • Unified Open and Open Image option. Save Image option moved to Save as. PR #191

  • Added option to show Cartesian coordinate grid. PR #171

  • Custom palette helps visualizing palette before applying changes through slider selectable values now. PR #168

  • PNGs exported using 'Save Image' option can be imported back and users can continue zooming on it. PR #166 #180

Bug Fixes

  • Fixed crash on recording XaoS animations. PR #156

  • Fixed crash on rendering using command line. - PR #159

  • Only error messages are shown on incorrect commands - PR #160

  • & other small bug fixes (Memory Leaks, Segmentation Faults).

Changes in XaoSJs

  1. One Screen View for XaoSJs - https://github.com/xaos-project/XaoSjs/commit/6899d1dc67bc426421ddb1a924358909c4f6e7e7

  2. Touch Zoom Support for XaoSJs - https://github.com/xaos-project/XaoSjs/commit/9272033b8c679da813d7b47dbc2cb30ede136490

Unfinished Work

  1. Support for arbitrary precision:
  • XaoS doesn't support very deep zooms because of 80 bit floating point arithmetic being used, use of MPFR Library or Perturbation theory was to be investigated to be helpful in producing arbitrary precision for very deep zooms. Further decisions can be taken by bench-marking different method and using the fastest one.
Clone this wiki locally