Hey,Joo Get In Touch

Get In Touch

Prefer using email? Say hi at dusskapark@gmail.com

AI-powered design system made with TFJS

Side project (2021)

Teams

JooHyung(Lead), JongHee



Role

Project Lead



Project Process

image-20220102221652435

Brainstorm & Define problems

The user problem of this project just stem from my design system experience. 2018 Inspired by the AirBnB’s DLS and the Material 2.0 of Google, I started using the design library. Early 2020, I moved to the company’s HQ to manage the LINE design system. During the pandemic, I should come back to Korea but started this open source project to help people like me who have a struggle with the design system.

The design system is a co-visual language for both designers and engineers alike, and it is extremely common when it comes to creating new user interfaces for large-scale products and services to ensure consistency and productivity. However, they still have major obstacles - one of which is the increasing complexity with the increasing number of components and patterns included in the one single library.

001

Because of those kinds of complexities, as you can see above, even if designers shape the same designs…

  • Some uses the library exactly
  • but another one has broken symbols,
  • Some of them even has detached components due to small modifications from the anonymous designer,

In fact, those artboards have been such a mess…

In the LINE design system, I worked super hard to prevent those kinda mistakes via guidance, cartoon manuals, and design QA. But human resources were always limited. So I started to think of something differently.

Ideate & Prototype

Idea? Computer Vision!

The basic idea of this project is to detect various UI elements in the browser using a custom trained object detection model via TensorFlow.js live in the plugin.

I started this idea because we already have been living with many services using machine learning such as face recognition, mask detection, and something like this.

If I can apply this computer vision technology into the design system world, I can make a computer learn the numerous design elements instead of human resources, and also autonomously recommends the design grammar to designers if it finds something that does not conform to the design system.

This will not only be convenient for the design system users but also it will be the freedom on people like me who should manage this system.

Prototyping

After pointing out this idea, I started making a prototype to see if my hypothesis was possible or not. I googled and downloaded 200 button images and made the button detector ML model by using TensorFlow.

002

Fortunately, it successfully worked! I got this working prototype that could detect the button UI elements from the screen in real-time. I was super excited when my hypothesis came true. And tried to move forward.

You can find my first prototype story in more detail at this Medium post.

Machine Learning

Although my first prototype was very successful, there were many challenges for creating a useful design system plugin. A much larger dataset, and more optimized ML model, and I had to find the best way to make my designers feel this AI power seamlessly. From 2021, I have been solving those problems one by one.

Raw data? Partnership!

For data, I met a Singapore-based startup called Mobbin. They had over 50,000 mobile screenshots for product designers. So contacted them, presented this project, and got over 10,000 high-quality UI screenshots data for free!

003

Data Labeling? Sponsored!

I got the large amount of data, but the data-preparation doesn’t end there. I must data-label all of them in order to use in machine learning. This process is very important, but it took a lot of resources and time, so it was huge difficult for me to solve.

So I applied to a sponsorship program hosted by a Korean data labeling company, SelectStar, and luckily I was selected and eligible for free labeling support from there!

You can download some samples of this open dataset that I created with Mobbin, and SelectStar through this link. Moreover, if you are interested in the whole dataset, please contact me.

스크린샷 2022-01-02 오후 10.57.13

Training with TensorFlow

To be honest, none of this was easy for me because I just started to study TensorFlow at that time. No background, No tutoring. So I just had tried to study AI/ML by myself via Google code labs, blog posts, and Youtube channels. The result is not perfect, but by my standards, I have successfully made TensorFlow models with enough performance level. You can find more details from my Colab notebooks below:

image-20220102231523377

Make plugins

image-20220102231920102

And the last challenge was how to make it easy for designers to use this AI feature?

I thought it would be much more natural to check the spelling while designing it rather than separated services. So I decided to focus on the handoff moment by making a plugin with TensorFlow JS not TensorFlow.

I designed some frames on Figma and made a simple single-page web application using Figma Plugin API, Zeplin API, React, and TensorFlow JS. The best way to illustrate this is to see it in action together!

Zeplin Extension

  • Demo: http://zeplin-ml.herokuapp.com
  • Github: https://github.com/dusskapark/zeplin-ml

004

Figma Plugin

  • Install Link: https://www.figma.com/community/plugin/1049316538308913961/Figma-ML
  • Github: https://github.com/dusskapark/figma-ml

005

Reactions

After I released Zeplin ML in August and shared my stories via my blog because I’d like to show off and not forget this journey. And… its reaction was awesome!

I choose some and attach them below!

And… DEVIEW 2021!

FINALLY, I was invited to DEVIEW 2021, which is one of the biggest Developer conference in Korea, and shared my experiences with the title “Using TensorFlow JS to build an AI-powered design system”. This was a truly honorable experience for me. I will take a step further based on this experience.

https://deview.kr/2021/sessions/460

스크린샷 2022-01-02 오후 11.54.33


Hey, I’m Joo, nice to meet you!

I’m a product designer and a manager with over 9 years of experience under my belt.

My skills include product design, design system, data-driven design, technical writing, Google analytics, R, front-end development and project leadership. I’m interested in clean aesthetics, design system, documentation, and simplistic UX solutions.

I’d love to learn about your company and see how I can help, feel free to send me an email!

Get in Touch