Skip to content

🌈 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. πŸ–ΌοΈπŸ’»

Notifications You must be signed in to change notification settings

scs805/berryfractal

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

10 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

BerryFractal

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.

Features

  • 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.

Tech Stack

  • Vue.js
  • TailwindCSS
  • Vite
  • TypeScript
  • WebGL

Getting Started

  1. Clone the repository:
git clone https://github.com/username/berry-fractal.git
cd berry-fractal
  1. Install dependencies:
npm install
  1. Run the development server:
npm run dev
  1. Open your browser and navigate to http://localhost:3000 to access the application.

Directory Structure

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

Usage

  • 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.

Contributing

Contributions are welcome! Please feel free to submit a pull request or open an issue if you have any suggestions or improvements.

License

This project is open-sourced under the MIT License - see the LICENSE file for details.

About

🌈 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. πŸ–ΌοΈπŸ’»

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published