Curvetopia is an advanced web application designed to seamlessly create, visualize, and manipulate complex curves and shapes with precision and ease.
- Introduction
- Problem Statement
- Features
- Installation
- Usage
- Dataset
- Examples
- Technologies Used
- Contributing
- License
- Contact
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.
View the enclosed PDF for understanding the problem statement PDF
- 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.
- Python 3.7+
- Git
- Google Drive Account for accessing the dataset.
-
Clone the Repository
git clone https://github.com/veydantkatyal/curvetopia.git cd curvetopia
-
Create a Virtual Environment
python -m venv venv source venv/bin/activate # On Windows use `venv\Scripts\activate`
-
Install Depedencies
pip install -r requirements.txt
-
Run the Streamlit App
streamlit run app.py
Open the Curvetopia Colab Notebook to get started.
The notebook is structured with detailed instructions. Follow each cell sequentially to:
- Set up the environment.
- Load and preprocess data.
- Train the model.
- Generate predictions.
Outputs, including generated SVGs, are saved to your Google Drive for easy access and integration with the Streamlit app.
Visit the Curvetopia Web App.
Enter the Google Drive link of your input file in the provided text box.
- The app will display the input and the expected output from our dataset.
- Use the visualization tools to zoom and inspect the details.
For sample input and output SVGs, refer to the Example Dataset section in the GitHub repository.
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.
- Input Files: Google Drive Input Folder
- Output Files: Google Drive Output Folder
Here are some example pairs you can use to test the application:
Example 1
Example 2
- Python 3.7+
- Streamlit:
- Google Colab:
- CairoSVG: SVG to PNG conversion
- Pillow: Image processing
- Plotly:
- gdown: Downloading files from Google Drive
- GitHub:
Contributions are welcome! To contribute:
-
Fork the Repository
- Click the 'Fork' button at the top right of the repository page.
-
Clone Your Fork
git clone https://github.com/veydantkatyal/curvetopia.git
-
Create New Branch
- Click the 'Fork' button at the top right of the repository page.
-
Make your Changes
-
Commmit and Push
git add . git commit -m "Add your commit message here" git push origin feature/your-feature-name
-
Submit a Pull Request Go to the original repository and click on 'Pull Requests' to submit your changes for review.
This project is licensed under the MIT License and Adobe Gensolve Hackathon.
Author:
- Veydant Katyal
- Vinayak Trivedi
Team Name:
Hackstreet Boys
This README was generated with ❤️.