๐ค AI Summary
Existing exploratory programming tools prioritize code generation over design decision-making, limiting the diversity and complexity of prototypes. This paper introduces DynEx, a design-matrix-driven dynamic code synthesis framework that models the design space via structured prompt engineering, enabling systematic exploration of alternatives before generating frontend prototypes. DynEx employs modular, stepwise LLM-based code generation coupled with interactive feedback mechanisms to support โtestable and approvableโ iterative development, thereby bridging the gap between design thinking and LLM-powered implementation. To our knowledge, this is the first work to establish a design-matrix-guided paradigm for structured design-space exploration. A user study demonstrates that DynEx significantly outperforms the Claude Artifact baseline, increasing design exploration breadth by +42% and depth by +37%. Expert users successfully constructed frontend prototypes exhibiting greater complexity and diversity.
๐ Abstract
Recent advancements in large language models have significantly expedited the process of generating front-end code. This allows users to rapidly prototype user interfaces and ideate through code, a process known as exploratory programming. However, existing LLM code generation tools focus more on technical implementation details rather than finding the right design given a particular problem. We present DynEx, an LLM-based method for design exploration in accelerated exploratory programming. DynEx introduces a technique to explore the design space through a structured Design Matrix before creating the prototype with a modular, stepwise approach to LLM code generation. Code is generated sequentially, and users can test and approve each step before moving onto the next. A user study of 10 experts found that DynEx increased design exploration and enabled the creation of more complex and varied prototypes compared to a Claude Artifact baseline. We conclude with a discussion of the implications of design exploration for exploratory programming.