All Projects → lovasoa → mandelbrot

lovasoa / mandelbrot

Licence: BSD-3-Clause license
A mandelbrot fractal viewer in javascript using svelte

Programming Languages

javascript
184084 projects - #8 most used programming language
HTML
75241 projects
CSS
56736 projects

Projects that are alternatives of or similar to mandelbrot

xirho
xirho is a simple generalized iterated function system plotter.
Stars: ✭ 16 (-46.67%)
Mutual labels:  art, fractal-rendering
graphest
A faithful graphing calculator
Stars: ✭ 42 (+40%)
Mutual labels:  art, mathematics
stack-trace-art
Turning programming exceptions into art
Stars: ✭ 39 (+30%)
Mutual labels:  art
simulate
A collection of simulations and visualizations for all sorts of stuff (Majorly Algorithmic or Mathematical)
Stars: ✭ 82 (+173.33%)
Mutual labels:  mathematics
math
Complex special functions and common mathematical operations in JavaScript
Stars: ✭ 42 (+40%)
Mutual labels:  mathematics
rijksbook
🖼 A basic Flutter app built for educational purposes
Stars: ✭ 37 (+23.33%)
Mutual labels:  art
gt
Source files for my course on Game Theory.
Stars: ✭ 28 (-6.67%)
Mutual labels:  mathematics
creative-prediction
Creative Prediction with Neural Networks
Stars: ✭ 22 (-26.67%)
Mutual labels:  art
C3T
C3T: Crash Course Category Theory - A friendly non-mathematician's approach to beginners of Category Theory. 🐱
Stars: ✭ 26 (-13.33%)
Mutual labels:  mathematics
pyrgg
🔧 Python Random Graph Generator
Stars: ✭ 158 (+426.67%)
Mutual labels:  mathematics
mathcell
Interactive mathematics in the browser
Stars: ✭ 34 (+13.33%)
Mutual labels:  mathematics
LSMLIB
Level Set Method Library
Stars: ✭ 67 (+123.33%)
Mutual labels:  mathematics
book-mdpc
Il cinema tra le righe... di codice!
Stars: ✭ 59 (+96.67%)
Mutual labels:  art
Sand-Table
An open-source platform for building DIY sand tables (like the Sisyphus or ZenXY)
Stars: ✭ 99 (+230%)
Mutual labels:  art
EverythingCrypto
(Still exploring) My cryptography journey: A collection of notebooks covering different algorithms and concepts from cryptography
Stars: ✭ 123 (+310%)
Mutual labels:  mathematics
RandLib
🚀 A library designed to facilitate work with probability, statistics and stochastic calculus
Stars: ✭ 64 (+113.33%)
Mutual labels:  mathematics
timewave z3r0
A public domain version of Terrence Mckenna's Timewave Zero software
Stars: ✭ 69 (+130%)
Mutual labels:  fractals
qmc
A Quasi-Monte-Carlo Integrator Library with CUDA Support
Stars: ✭ 17 (-43.33%)
Mutual labels:  mathematics
glitch-art-bot-ts
Twitter bot that glitches photos on the fly
Stars: ✭ 66 (+120%)
Mutual labels:  art
grafana-monitoring-art
Grafana Monitoring Art datasource
Stars: ✭ 38 (+26.67%)
Mutual labels:  art

Mandelbrot viewer

A svelte application to visualize the mandelbrot set. Try online.

Netlify Status

Screenshots

Screenshot 2019-06-04 at 23 08 55 Screenshot 2019-06-04 at 23 10 12 Screenshot 2019-06-04 at 23 18 36 Screenshot 2019-06-04 at 23 20 41 Screenshot 2019-06-04 at 23 22 21 Screenshot 2019-06-04 at 23 28 11 Screenshot 2019-06-04 at 23 34 01 Screenshot 2019-06-04 at 23 35 46 Screenshot 2019-06-04 at 23 38 48 Screenshot 2019-06-05 at 00 01 02 Screenshot 2019-06-05 at 00 13 24 Screenshot 2019-06-05 at 00 14 13 Screenshot 2019-06-05 at 15 12 08 Screenshot 2019-06-05 at 00 25 14 Screenshot 2019-06-05 at 15 00 42 Screenshot 2019-06-05 at 15 06 02

How to compile

This is a svelte application, it needs to be compiled.

To develop: npm run dev.

To build: npm run build (the resulting files are in the public folder).

Architecture

The fractal is split into square tiles.

Each tile has a position and a zoom level. Together, they determine which part of the fractal appears in the tile. There is a factor two between consecutive zoom levels: if a tile at zoom level 1 represents a square of size 1 in the fractal, then a tile at zoom level 2 represents a square of size 0.5, a tile at level 3 a square of size 0.25, and so on.

When the user zooms in, the set of tiles required to view the fractal in full resolution at the new zoom level is determined,and the computation of these tiles is launched in parallel on all available processor cores. Old tiles are not deleted immediately, instead they are scaled according to the new zoom level (which is fast), and displayed before the new tiles are available. When the number of old tiles grows too high, an heuristic is used to determine which one to delete.

All of this allows for a very smooth scrolling and panning experience, which I have seen in no other web based renderer so far.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].