Modular Hair System
The Modular Hair System is a Python-based tool for procedurally generating and managing modular hairstyles in Autodesk Maya, built to support large-scale data generation and give users fine-grained control over avatar hairstyles.
Process Overview
Framing the Problem:
  • There are various limitations with traditional, handcrafted 3D hairstyles: they are time-consuming to create, hard to scale, and provide limited variation in options available to users.
  • Given the importance of hair to many individuals, we wanted to create a way to provide more artistic control and procedural variation for both the use of ML training and user customization.
  • Functional Requirements:
  • Split hairstyles into independent Modules, each with its own parameters and constraints.
    • Core modules: Scalp, Crown, and Attachments (Bangs, Strands, Tails).
  • Apply valid parameter combinations per module (length, wave, thickness, etc.).
  • Support equipping and randomizing combinations of Modules and parameters.
  • Export FBX meshes plus JSON annotations describing modules and parameters.
  • System Design
    Modular Hair Model:
  • Module: A mesh “lego piece” representing a hair part, categorized as scalp, crown, bangs, strands, tails.
  • ModularHair: A full hairstyle composed of at most one module per category, plus metadata.
  • Kit: JSON spec listing compatible assets per category and defining valid combinations.
  • Parametrization:
  • Parameters are represented as blendshape targets (e.g., length increase/decrease, wave, thickness).
  • Each Module has its own unique parameters, generated *mostly* procedurally based on the mesh properties. For example:
    • Hair texture is determined based on the normal variation in the hairstyle, and length and volume are determined by the Y-measurement and XZ-measurement, respectively.
    • Assets with curly hair can't simply be stretched out to increase length, and must instead grow in volume thereby growing in different directions.
    • Hair length is parametrized based on the dimensions of the original hairstyle; short hair can have increased length but not decreased length.
  • Results & Impact
    Quantitative Impact:
  • Scale: thousands of assets generated; modular system intended to fill distribution gaps beyond initial 6k exports.
  • Combinatorial space: kits allowing many viable combinations from a limited set of crowns, bangs, and strands.
  • Qualitiative Impact:
  • Enabled designers and ML teams to iterate on hair style categories faster.
  • Reduced manual effort for creating new hairstyles and ensured consistency with Genies’ art style.
  • this website was made with love by me!