Giter VIP home page Giter VIP logo

fractaljs's People

Contributors

dependabot[bot] avatar matthieudumas avatar solendil avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

fractaljs's Issues

Make the URL mechanism more versatile

The URL mechanism is based on a binary format.
Pro : it is small
Con : it is hard to extend

For #33, or other future enhancements, there will be the need of more parameters. Maybe the URL mechanism should be a JSON object (URL encoded or compressed/b64).

Add other color palettes

Add some standard palettes plus an interface to shift/modulo them.
Full palette creation interface might come at a later stage.

Found nice image ? Post it here.

If you find nice images with FractalJS, please post the links here for everyone to enjoy.
I might also use them in the future.
Thanks.

New fractal type invisible

When color density is low and offset is on a black, changing a new fractal type make the whole screen black with no clue on what's happening... Maybe reset color offset and density when choosing a new fractal type.

Grid and guide lines

Display a grid when viewport is changing to help user align stuff.
Display the maximum square when user is sharing to show her the shareable zone.

Exploration mode

This mode would trigger an overlay that would guide user in its exploration of the sets.
There would be areas, points, comments and links.
The goal would be to let user explore, but there could be a form of auto-nav with links.
The exploration would be described as a friendly JSON/HTML file for other to edit/enhance.

Interruptible & Adaptative supersampling

Supersampling should be improved:

  • Interruptible so tiles being drawn are quickly discarded when view changes. This can't be done through killign webworkers because of a bug in Chrome, it must be done by messaging.
  • Adaptative so we supersample only where it is necessary (if pixel is surrounded by same pixels, no SS)

Implement a rigorous affine transform between screen and complex plane

Mapping between screen and plane is implemented using ad-hoc equations and is not well-defined. Features such as #32 pinch to zoom are hard to implement. Moreover I would like to have rotation, shear and scale features as some images would benefit from such transformation (see http://solendil.github.io/fractaljs/#AAQBLAAMAAACbJWUwkYbmv0YFDbI5ddm*fc2PXyOUkD8AAKBBAQAAAA__ for example)

A simple affine transform would have a negligible effect on performances and would allow such features.

A more thorough definition of the "minimum extent" is also needed. I propose the biggest square included and centered in the screen as the display unit. Everything outside of the square being a "bonus".

Deep zoom

Implement a deep zoom mechanism to be triggered when standard precision limit has been reached

Amazing!

This is just truly amazing work!
My only feedback is that the direction of the zoom gesture is opposite to what we are all used form maps (Google Map).
Have a nice day!

Rendering feedback

Some feedback on rendering in the form of a spinning wheel, or a percent indicator. On hover, more details and possible highlight of tiles being drawn/invalid.

Allow user to choose iteration count

Current algorithm is fully automatic. The UI in info pane could be
Iterations : 500 [ automatic | + | - ]
With a press on +/- disabling the automatic mode.

Create a "share" button in FractalJS

The button could provide:

  • parameters in plain text (X,Y,etc...)
  • image download
  • an hyperlink (though it's also available in the URL)
  • the code for iframe embeddability
  • the code for JS embeddability
  • social buttons

Rendering bug

When dezooming fast, artefacts sometimes appear on picture, see image below
fractal 13

Julia/"Mandelbrot" switch

The ability to switch from Julia to Mandelbrot is more of a UI/UX problem than a technological problem.

Improve tiling algorithm

The tiling algorithm could be made better. Here are some hints:

  • a resolution progressive algorithm (render at x4 then x1 then subpixel)
  • make tiles more square than rectangular
  • make the vector impact the tile quality : quality starts at 100 then the vector alters some tiles in a mathematically correct way (eg if zoom in, only 60% of pixels are correct hence quality goes to 60); then the tiles are drawn in quality order

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.