  Garment modeling is an essential task of the global apparel industry and a
core part of digital human modeling. Realistic representation of garments with
valid sewing patterns is key to their accurate digital simulation and eventual
fabrication. However, little-to-no computational tools provide support for
bridging the gap between high-level construction goals and low-level editing of
pattern geometry, e.g., combining or switching garment elements, semantic
editing, or design exploration that maintains the validity of a sewing pattern.
We suggest the first DSL for garment modeling -- GarmentCode -- that applies
principles of object-oriented programming to garment construction and allows
designing sewing patterns in a hierarchical, component-oriented manner. The
programming-based paradigm naturally provides unique advantages of component
abstraction, algorithmic manipulation, and free-form design parametrization. We
additionally support the construction process by automating typical low-level
tasks like placing a dart at a desired location. In our prototype garment
configurator, users can manipulate meaningful design parameters and body
measurements, while the construction of pattern geometry is handled by garment
programs implemented with GarmentCode. Our configurator enables the free
exploration of rich design spaces and the creation of garments using
interchangeable, parameterized components. We showcase our approach by
producing a variety of garment designs and retargeting them to different body
shapes using our configurator.
  Project page: https://igl.ethz.ch/projects/garmentcode/
