Skip to content

Round-2 of Adobe Gensolve Hackathon'24. It is used to identify, regularize, and beautify curves in 2D Euclidean space.

License

Notifications You must be signed in to change notification settings

veydantkatyal/Curvetopia

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

9 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Curvetopia

Curvetopia is an advanced web application designed to seamlessly create, visualize, and manipulate complex curves and shapes with precision and ease.

Table of Contents

Introduction

Welcome to Curvetopia! This project is a part of the round 2 of Adobe Gensolve Hackathon. It is a cutting edge web application to identify, regularize and beautify curves in 2D Euclidean space.

Problem Statement

View the enclosed PDF for understanding the problem statement PDF

Features

  • Model Training & Prediction: Train machine learning models to predict and manipulate shapes.
  • Interactive Visualization: Use the Streamlit web app to visualize input and output files side by side.
  • Google Colab Integration: Seamlessly work with the provided Google Colab notebook for data processing and model training.
  • Responsive Design: A clean and responsive design for better usability.
  • Integration with Google Drive: Easily link your Google Drive files for input and output.
  • Zoom and Pan: Interactive zoom and pan features for detailed inspection of SVG images.

Installation

Prerequisites

  • Python 3.7+
  • Git
  • Google Drive Account for accessing the dataset.

Setting Up

  1. Clone the Repository

    git clone https://github.com/veydantkatyal/curvetopia.git
    cd curvetopia
  2. Create a Virtual Environment

    python -m venv venv
    source venv/bin/activate  # On Windows use `venv\Scripts\activate`
  3. Install Depedencies

    pip install -r requirements.txt
  4. Run the Streamlit App

    streamlit run app.py

Usage

Google Colab Notebook

Access the Notebook

Open the Curvetopia Colab Notebook to get started.

Follow the Instructions

The notebook is structured with detailed instructions. Follow each cell sequentially to:

  1. Set up the environment.
  2. Load and preprocess data.
  3. Train the model.
  4. Generate predictions.

Saving and Accessing Outputs

Outputs, including generated SVGs, are saved to your Google Drive for easy access and integration with the Streamlit app.

Streamlit Web App

Access the App

Visit the Curvetopia Web App.

Provide Input file Link

Enter the Google Drive link of your input file in the provided text box.

View Results

  • The app will display the input and the expected output from our dataset.
  • Use the visualization tools to zoom and inspect the details.

GitHub Repository for Links

For sample input and output SVGs, refer to the Example Dataset section in the GitHub repository.

Dataset

The dataset comprises pairs of input and output files. Each input file represents an initial shape, and the corresponding output file showcases the expected transformation.

Sample Dataset

Examples

Here are some example pairs you can use to test the application:

Example 1

Example 2

Technologies Used

  • Python 3.7+
  • Streamlit:
  • Google Colab:
  • CairoSVG: SVG to PNG conversion
  • Pillow: Image processing
  • Plotly:
  • gdown: Downloading files from Google Drive
  • GitHub:

Contributing

Contributions are welcome! To contribute:

  1. Fork the Repository

    • Click the 'Fork' button at the top right of the repository page.
  2. Clone Your Fork

     git clone https://github.com/veydantkatyal/curvetopia.git
  3. Create New Branch

    • Click the 'Fork' button at the top right of the repository page.
  4. Make your Changes

  5. Commmit and Push

    git add .
    git commit -m "Add your commit message here"
    git push origin feature/your-feature-name
    
  6. Submit a Pull Request Go to the original repository and click on 'Pull Requests' to submit your changes for review.

License

This project is licensed under the MIT License and Adobe Gensolve Hackathon.

Contact

Author:

  • Veydant Katyal
  • Vinayak Trivedi

Team Name:
Hackstreet Boys

This README was generated with ❤️.

About

Round-2 of Adobe Gensolve Hackathon'24. It is used to identify, regularize, and beautify curves in 2D Euclidean space.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published