https://github.com/veydantkatyal/curvetopia
Round-2 of Adobe Gensolve Hackathon'24. It is used to identify, regularize, and beautify curves in 2D Euclidean space.
https://github.com/veydantkatyal/curvetopia
curve-detection curve-fitting
Last synced: 3 months ago
JSON representation
Round-2 of Adobe Gensolve Hackathon'24. It is used to identify, regularize, and beautify curves in 2D Euclidean space.
- Host: GitHub
- URL: https://github.com/veydantkatyal/curvetopia
- Owner: veydantkatyal
- License: mit
- Created: 2024-07-28T15:03:57.000Z (11 months ago)
- Default Branch: main
- Last Pushed: 2025-02-16T18:58:32.000Z (4 months ago)
- Last Synced: 2025-03-07T17:31:40.762Z (4 months ago)
- Topics: curve-detection, curve-fitting
- Language: Jupyter Notebook
- Homepage: https://curvetopia.onrender.com/
- Size: 2.97 MB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# 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](#introduction)
- [Problem Statement](#problem-statement)
- [Features](#features)
- [Installation](#installation)
- [Prerequisites](#prerequisites)
- [Setting Up](#setting-up)
- [Usage](#usage)
- [Google Colab Notebook](#google-colab-notebook)
- [Streamlit Web App](#streamlit-web-app)
- [Dataset](#dataset)
- [Examples](#examples)
- [Technologies Used](#technologies-used)
- [Contributing](#contributing)
- [License](#license)
- [Contact](#contact)## 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](https://drive.google.com/file/d/1SLqlw6CdDyNZARHDdFShJlumgSMbRN2h/view?usp=sharing)## 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**
```bash
git clone https://github.com/veydantkatyal/curvetopia.git
cd curvetopia
2. **Create a Virtual Environment**```bash
python -m venv venv
source venv/bin/activate # On Windows use `venv\Scripts\activate`
3. **Install Depedencies**```bash
pip install -r requirements.txt
4. **Run the Streamlit App**```bash
streamlit run app.py
## Usage### Google Colab Notebook
#### Access the Notebook
Open the [Curvetopia Colab Notebook](https://colab.research.google.com/drive/1Wu4HmXblaEB24dGmTsX60mRvWZUq3PEC?usp=sharing) 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](https://curvetopia.onrender.com).
### 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](https://github.com/veydantkatyal/Curvetopia).
## 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
- **Input Files:** [Google Drive Input Folder](https://drive.google.com/drive/folders/1HhsnrRtZZQ7e0KAz_QcvUpWCMAI_gBXU?usp=sharing)
- **Output Files:** [Google Drive Output Folder](https://drive.google.com/drive/folders/1Uyq27oWASkiqtjSkbdl_wGH_zr6uL791?usp=sharing)### Examples
Here are some example pairs you can use to test the application:
**Example 1**
- **Input:** [Input](https://drive.google.com/file/d/1MLtwF0Hsq9RuVKbzuT649tQKda0frdDz/view?usp=sharin)
- **Output:**[Output](https://drive.google.com/file/d/1kJ3lMqjE74Eg9YAaamyhqet_nP0NdpMX/view?usp=sharing)**Example 2**
- **Input:** [Input](https://drive.google.com/file/d/1U4hl7m-KPMvqShjwvkqS-9t_85u-_QHd/view?usp=sharing)
- **Output:** [Output](https://drive.google.com/file/d/1L76izM3jr-g_qMYKzk6NtbXL2KbuGoA-/view?usp=sharing)## 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**
```bash
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**
4. **Commmit and Push**
```bash
git add .
git commit -m "Add your commit message here"
git push origin feature/your-feature-name5. 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 BoysThis README was generated with ❤️.