BerryFractal is a Vue.js-based web application that allows users to generate, customize, and explore fractals. This tool provides an interactive and visually rich experience for creating complex fractal designs, adjusting parameters, and exporting the results as images.
- Generate fractals with customizable parameters
- Adjust parameters to explore different fractal patterns
- Export generated fractals as images
- Visualize fractal patterns in real-time
- Interactive Fractal Generation: Users can select fractal types (e.g., Mandelbrot, Julia, etc.) and modify parameters like iterations, zoom level, and colors.
- Customizable Color Palettes: Choose and design gradient color schemes for fractal visualization.
- Export as Image: Download fractal designs as high-quality PNG images.
- Responsive Design: Optimized for both desktop and mobile devices.
- Vue.js
- TailwindCSS
- Vite
- TypeScript
- WebGL
- Clone the repository:
git clone https://github.com/username/berry-fractal.git
cd berry-fractal
- Install dependencies:
npm install
- Run the development server:
npm run dev
- Open your browser and navigate to
http://localhost:3000
to access the application.
BerryFractal/
βββ public/ # Public assets served by the app
β βββ index.html # Root HTML file
β βββ favicon.ico # App favicon
β βββ assets/ # Public static assets
β βββ fractal-samples/ # Example fractal images
β βββ logo.png # App logo
β βββ gradient-presets.json # Predefined gradients for color schemes
βββ src/ # Main source code for the app
β βββ assets/ # Assets used within the app
β β βββ styles/ # Global and component-specific styles
β β β βββ global.css # Global styles
β β β βββ fractal-styles.css # Fractal-specific styles
β β βββ fonts/ # Custom fonts
β βββ components/ # Reusable Vue components
β β βββ FractalCanvas.vue # Canvas to render fractals
β β βββ ControlsPanel.vue # Sidebar for fractal settings
β β βββ ColorPicker.vue # Component for selecting color palettes
β β βββ Navbar.vue # Navigation bar
β β βββ Footer.vue # Footer section
β βββ pages/ # App pages
β β βββ HomePage.vue # Main landing page
β β βββ AboutPage.vue # About BerryFractal
β β βββ GalleryPage.vue # Gallery of fractal samples
β βββ router/ # Vue Router configuration
β β βββ index.js # App routes
β βββ store/ # Vuex store for state management
β β βββ fractals.js # State for fractal settings
β βββ utils/ # Utility functions
β β βββ fractalGenerator.js # Core logic for generating fractals
β β βββ colorUtils.js # Helper functions for color gradients
β β βββ fileExport.js # Utility for exporting images
β βββ App.vue # Root Vue component
β βββ main.js # App entry point
β βββ shims-vue.d.ts # TypeScript definitions for Vue files
β βββ types/ # TypeScript type definitions
β βββ fractal.d.ts # Types for fractal generation
β βββ color.d.ts # Types for color schemes
βββ tests/ # Unit and end-to-end tests
β βββ components/ # Component tests
β β βββ FractalCanvas.test.js # Tests for fractal canvas
β β βββ ControlsPanel.test.js # Tests for controls panel
β β βββ ColorPicker.test.js # Tests for color picker
β βββ pages/ # Page tests
β βββ utils/ # Utility function tests
βββ .env # Environment variables
βββ .eslintrc.js # ESLint configuration
βββ .prettierrc # Prettier configuration
βββ babel.config.js # Babel configuration
βββ package.json # Project dependencies and scripts
βββ tsconfig.json # TypeScript configuration
βββ vue.config.js # Vue CLI configuration
βββ README.md # Project documentation
- Use the controls to adjust the fractal parameters and observe the changes in the fractal pattern.
- Click the "Generate" button to create a new fractal.
- Use the "Export" button to save the current fractal pattern as an image.
- Explore the fractal properties and patterns by adjusting the parameters.
Contributions are welcome! Please feel free to submit a pull request or open an issue if you have any suggestions or improvements.
This project is open-sourced under the MIT License - see the LICENSE file for details.