Sketch2Code: Evaluating Vision-Language Models for Interactive Web Design Prototyping

Ryan Li, Yanzhe Zhang, Diyi Yang
10/21/2024
cs.CLcs.AI

No official code found. Best implementation: SALT-NLP/Sketch2Code (42 stars, MIT, last commit 2024-10-29).

Abstract

Sketches are a natural and accessible medium for UI designers to conceptualize early-stage ideas. However, existing research on UI/UX automation often requires high-fidelity inputs like Figma designs or detailed screenshots, limiting accessibility and impeding efficient design iteration. To bridge this gap, we introduce Sketch2Code, a benchmark that evaluates state-of-the-art Vision Language Models (VLMs) on automating the conversion of rudimentary sketches into webpage prototypes. Beyond end-to-end benchmarking, Sketch2Code supports interactive agent evaluation that mimics real-world design workflows, where a VLM-based agent iteratively refines its generations by communicating with a simulated user, either passively receiving feedback instructions or proactively asking clarification questions. We comprehensively analyze ten commercial and open-source models, showing that Sketch2Code is challenging for existing VLMs; even the most capable models struggle to accurately interpret sketches and formulate effective questions that lead to steady improvement. Nevertheless, a user study with UI/UX experts reveals a significant preference for proactive question-asking over passive feedback reception, highlighting the need to develop more effective paradigms for multi-turn conversational agents.

View on arXivView PDF

Code Implementations(1)

MIT

Code for the paper: Sketch2Code: Evaluating Vision-Language Models for Interactive Web Design Prototyping

428PythonOct 21, 20241 years agoMIT
design2codegpt-4ollmsketch2codesketching+1 more

Similar Papers

Cite this paper

@article{li2024sketchcode,
  title  = {Sketch2Code: Evaluating Vision-Language Models for Interactive Web Design Prototyping},
  author = {Ryan Li and Yanzhe Zhang and Diyi Yang},
  year   = {2024},
  eprint = {2410.16232},
  archivePrefix = {arXiv},
  url    = {http://arxiv.org/abs/2410.16232v1}
}

Add a badge to your README

Shows whether official code is linked for this paper.

Code of Paper badge
[![Code of Paper](https://codeofpaper.com/badge/2410.16232.svg)](https://codeofpaper.com/paper/2410.16232)

Discussion