karanchahal/DoodleMaster
“Don’t code your UI, Draw it !”
repo name | karanchahal/DoodleMaster |
repo link | https://github.com/karanchahal/DoodleMaster |
homepage | |
language | JavaScript |
size (curr.) | 26773 kB |
stars (curr.) | 2453 |
created | 2017-11-11 |
license | |
Doodle Master
The Doodle Master seeks to turn your UI mockups into real code. Currently this repository just serves to demonstrate a Proof Of Concept of Artificially Intelligent Design Tools.
The demo supports the detection of 4 classes of UI components
- TextViews
- Headers
- ImageViews
- Buttons
One can view the different doodles that this software supports for classification in the classes
directory. Note that the classifier is slightly overfit towards the text view, training again with greater regularization can help solve this problem.
This type of tool can be useful in a big organisation which adheres to a consistent design guide and has several reusable components on variety of platforms such as mobile and the web. For example a button on the Airbnb website follows the same styling across all platforms. This tool can simultaneously generate the same UI for Android and the Web.
Demo
Technologies
This demo uses a simple CNN for the classification of the doodles made. The software is able to localise the UI element through a combination of geometric techniques and simple mouse/finger position detection. Frameworks used are:
- Deep Learning Model = Pytorch
- UI = HTML/CSS
This demo was inspired by Airbnb’s work on Sketching Interfaces. This demo was made while I was a frontend developer. I was inspired to make this as I saw a lot of developers spending time on coding the UI from the mockups, this time could be better spent in coding the functionality behind the UI. Doodle master seeks to build a painless and natural way of prototyping interfaces. This tool can be used by designers and developers alike to showcase ideas quickly in the form of real code.
Instructions for Building and Running
This project uses Python3.
- Download the weights from here and create a folder
weights
in the root of the repo, paste the file inside thisweights
folder. - Build the project with these commands:
conda create -n doodle python=3.6
conda activate doodle
sh ./setup.sh
- Start the server with the command :
python3 server.py
- Goto
localhost:5000
to view the Doodle Master. - Output HTML file is generated at the
output
folder
Note
This is not a prodution worthy piece of software, it is only meant for demo purposes. Please don’t hesitate to contact me for more details on this project. This project sparked an interesting discussion on HackerNews on the advantages and disadvantages of “Codeless UI”, one can read more about in this thread
Contributors
- Karanbir Chahal (@karanchahal)
- Rahul Kanojia (@KaANO-8)
- Satvik Khurana
- Himmat Yadav