Skip to content

Releases: philthompson/visualize-primes

v0.10.0

09 May 13:24
a0c015f
Compare
Choose a tag to compare

This release adds the BLA (bivariate linear approximation) algorithm for the Mandelbrot set. As of this release, BLA is still considered experimental and is not active for the default auto algorithm.

  • Add arbitrary precision square root (used for period-finding)
  • Implement ball arithmetic and Newton's method for period- and root-finding
  • Implement BLA, with binary tree BLA merging
  • Re-use BLA ref. orbit if on-screen
  • Use test points to auto-find a good BLA epsilon
  • Add "automatic with BLA" algorithm option
  • Allow BLA epsilon to be set with the "algo" string parameter
  • Improve the speed of infNumTruncateToLen() with a new function
    • this mainly makes reference orbit and period-finding computation faster, which are the main places arbitrary precision math is used
  • Refactor unit tests in several files

A blog post discussing the implementation of BLA, and showing performance at example locations, is here: https://philthompson.me/2023/Faster-Mandelbrot-Set-Rendering-with-BLA-Bivariate-Linear-Approximation.html

This release is live at https://philthompson.me/very-plotter/

v0.9.0

16 Mar 03:06
7709110
Compare
Choose a tag to compare

This release adds stripe average coloring for the Mandelbrot set viewer, and some smaller improvements:

  • Add stripe average coloring for the floating point escape time Mandelbrot set algorithm
  • Add stripe average coloring for the floating point perturbation theory Mandelbrot set algorithm
  • Allow chunk ordering to be changed on the fly
  • If the URL-set gradient is not a preset, save as the "custom" gradient

A blog post showing example stripe average coloring images generated with Very Plotter is here: https://philthompson.me/2023/Stripe-Average-Coloring.html

This release is live at https://philthompson.me/very-plotter/

v0.8.2

13 Mar 03:13
612a3c2
Compare
Choose a tag to compare

This is a small release:

  • add "-mod100" to default gradient, which applies to the default Mandelbrot set plot that's displayed when the page is visited without any URL parameters
  • add more tips, and a link to a new tips/FAQs page, to the help content shown when the "?" button is clicked

This release is live at https://philthompson.me/very-plotter/

v0.8.1

15 Feb 15:40
d95064d
Compare
Choose a tag to compare
  • activated smooth colors and slope shading for non-worker browsers (iOS, desktop Safari)
  • other minor fixes and improvements

This release is live at https://philthompson.me/very-plotter/

v0.8

13 Feb 15:50
b1de02e
Compare
Choose a tag to compare

This release brings smooth gradients and slope shading for the Mandelbrot set plot, as well as a number of other improvements.

For all plots, the mouse can now be used to draw a box to zoom into: hold the Alt key (Option on Mac) and drag the mouse.

Sequence plots can now be viewed as an animation, with play/pause/rewind/reset buttons.

A more complete list of changes:

  • smooth gradients is now the default for the Mandelbrot set plot
  • added "slope shading" effect that applies simple 3D "lighting" based on comparing the iteration count of each pixel to its neighboring pixels
  • new "smooth and slope" controls pane
    • adjust lighting direction and slope "depth"
    • when Mandelbrot set is calculated with "large bailout" the smooth effect can be toggled without re-calculating the image
  • hold Alt (Option on Mac) key and use mouse to draw "zoom box" for easy, controlled zooming
  • added "window lock" icon, displayed when active
    • use Shift-Alt-L (Shift-Option-L on Mac) to toggle window lock (or use checkbox in controls menu)
  • new animations with control buttons for sequence plots
    • displays step-by-step "turtle graphics" drawing for these plots
    • new "animation options" controls pane
  • added "chunk ordering" controls pane
  • legend (with T key) improvements, especially for sequence plots
  • removed 3n+1 plot until it can be sufficiently improved

This release is live at https://philthompson.me/very-plotter/

v0.7.3

26 Jan 01:50
fc0c636
Compare
Choose a tag to compare
  • revert the v0.7.2 changes, for now

This release is live at https://philthompson.me/very-plotter/

v0.7.2

25 Jan 21:59
a5c7a75
Compare
Choose a tag to compare
  • use URL hash location, not query parameters
    • this was a bit tricky to get working but is the more conventional way to handle page parameters, and should make better use of the local browser cache

This release is live at https://philthompson.me/very-plotter/

v0.7.1

25 Jan 20:07
70f2456
Compare
Choose a tag to compare
  • minor bug fixes relating to gradients

This release is live at https://philthompson.me/very-plotter/

v0.7

25 Jan 17:26
a99e720
Compare
Choose a tag to compare

This release adds features for better control of render size, a render download button, and performance and gradient improvements for the Mandelbrot set plot.

  • performance improvements for quick renders (like the default Mandelbrot set view, which uses "basic-float" algorithm)
  • performance improvements for high-scale deep Mandelbrot set locations
    • the position of each pixel is no longer calculated to full arbitrary precision, instead, only the delta (offset from reference point) is used, since all points are calculated with perturbation theory
    • removed feature of caching all points, which for deep locations wasn't useful and was affecting performance
  • performance improvements for synchronous preview image rendering at small-scale shallow Mandelbrot set locations
  • added render size control
    • allows scaling the view by 0.5x, 1x (default), 2x, 4x, or 8x
    • use new "Save Image" button to download the full-scaled size image
    • works for both window plots (Mandelbrot, 3n+1) and sequence plots (primes, trapped knight, etc.)
  • new "mod" gradients, for Mandelbrot set, perform better and are easier to adjust than the old percentage-based gradients
    • especially at high-iteration locations, this new gradient type allows smaller (fewer color stops) and thus faster gradients to be used
    • this new gradient type allows adjusting the number of iterations at a location without changing the color of all pixels
    • fine-tuning the colors is possible by incrementing the "-mod" and "-offset" options by as little as 1 iteration
  • add color picker control for adding custom colors to gradients
  • allows 6 hex digits to be used for custom colors in gradients
    • previously, a custom gray color would be "G~90.90.90" where now it can be "G.5a5a5a"
  • changes "auto resize" to "window lock" and also turns off all keyboard and mouse interaction with the render window
    • this makes it much harder to accidentally interrupt a long-running render
  • added 3n+1 plot
  • many other small fixes and improvements

This release is live at https://philthompson.me/very-plotter/

v0.6

13 Jan 15:40
8eed3a1
Compare
Choose a tag to compare

This release brings series approximation (SA) to Very Plotter's Mandelbrot set plot, along with many smaller improvements, including:

  • it's now much faster to apply a large, complex gradient to an image
  • changing gradients does not interrupt or restart an ongoing calculation
  • a new "auto-resize" checkbox in the controls menu, which, when unchecked, allows long-running calculations to continue uninterrupted when the browser fires window resize events. this allows long-running calculations to continue when, like in my case, my monitor is switched off, or when changing the size of the final image with the browser's page zoom feature
  • allow the algorithm to be overridden with user-set parameters (for tweaking the number of SA terms, or SA test points, turning off SA, etc)
  • a new "magnification" parameter is used, along with window size, to determine scale. this means shared URLs will display roughly the same thing, regardless of window size
  • improvements to the number of significant digits used at various scales to avoid blocky precision problems, though more work is needed in this area

SA is performed with an arbitrary number of terms and test points. For certain locations, SA may overskip or underskip, or distort the image, so manual tweaking may be tried for more experienced users.

There was also a lot of refactoring done to allow long-running tasks (reference orbit calculation, and SA coefficients calculations) to report this incremental progress and to be halted.

SA is not active for non-worker (iOS mobile) browsers.

This release is live at https://philthompson.me/very-plotter/