/fractalysis

Interactive fractal flame editor

Primary LanguageGLSLMIT LicenseMIT

Fractalysis

An interactive fractal flame editor.

This is an attempt to create a easy-to-use, online editor to create fancy looking images – more accurately, fractal flames.

Goal of this project is to achieve same, and more, as with old Apophysis. Here's some example of what I want this project to be capable of: Apophysis on Google Photos @hkarkk

This project is work in progress! While the basic structure is already there, majority of features are still not there.

How to get started

  1. npm install
  2. npm start

How it works

Basically, there's the shaders that do the heavy lifting. Those shaders can take in some parameters, that affect the outcome. Combine those, and final product is a fractal flame, rendered on a canvas with WebGL.

This platform will provide a set of (composable) shaders, that the user can choose from which to use and how to combine them together. Each shader will have it's own specific set of features and how it affects the outcome.

Each shader has a set of parameters (uniforms), which as well, can affect the outcome. For all those parameters, a configuration panel will be generated so the user can easily change any setting, to adjust the final render.

User may also save their shader selections and configurations to a preset, to come back to them later. It is also possible to render and download an image of the current set.

TODO

  • Consider using https://github.com/hugozap/react-rotary-knob
  • Refactoring: All remaining JS files to TS
  • Refactoring: Clean all the TODOs
  • Controls: Continue on Camera control with mouse
  • Shader composing (e.g. Mandelbrot + Bloom + HDR)

Inspiration

This project draws inspiration from Apophysis and Fractal Lab

This project was bootstrapped with Create React App.

Credits & references

Parts of this application (like shaders, or algorithms) are based on work other people have done. Here's a few:

Big thanks! 🙏

License

Majority of this project is licensed under MIT. If file does not otherwise mention, it's MIT.

Some of the files, or part of them, are 3rd party and licensed under GPL v3. Files that have this licensing, mention it in the comment on top of the file.