Chengan He'2*
·
Jorge Alejandro Amador Herrera'3*
·
Yi Zhou1*†
·
Zhixin Shu1
·
Xin Sun1
·
Yao Feng4,5
·
Sören Pirk6
·
Dominik L. Michels3
·
Meng Zhang7
·
Tuanfeng Y. Wang1
·
Holly Rushmeier2
1 Adobe Research | 2 Yale University | 3 KAUST | 4 Max Planck Institute for Intelligent Systems | 5 ETH Zürich | 6 Kiel University | 7 Nanjing University of Science and Technology
* Equal contribution † Corresponding author ' Previous Adobe Research Intern
|
- In our live demo at SIGGRAPH Asia 2024, we include renderings based on Adobe in-house data, with all visual content subject to copyright regulations. For this code release, we have replaced the in-house data with renderings from USC-HairSalon, a dataset containing less diversity and complexity that may affect the performance of our program.
- Due to license issues, we could not include our head mesh in this repo. Please download it from this link (created by AVATAR NEO), rename it to
head.obj, and put it underdata/meshesbefore compiling our program.
See INSTALL.
We provide a quick walkthrough in INSTALL, covering text-guided hair generation (copilot) and AI rendering. Meanwhile, all the hairstyles can be interactively simulated and groomed. These operations are supported by Digital Salon with the following keybindings (you need to press S to start simulation first):
| Operation | Keybinding |
|---|---|
| Start simulation | S |
| Reset framework | R |
| Zoom in and zoom out | Scroll Wheel |
| Change camera position | Right Button |
| Change light position | ALT + mouse |
| Drag head with simulated hair | Left Button + A |
| Select triangles | Left Button + B |
| Deselect triangles | Left Button + N |
| Generate hair on selected triangles | G |
| Cut hair | Right Button + A |
| Reset particles' positions | D |
Detailed physical parameters can be tuned within the provided GUI. Recordings of all supported operations are available on our project page.
In text-guided hair generation, some special sentences are reserved for wind field generation, including:
"create some wind?","add some wind?","blow some wind?","create strong wind?", and"add strong wind?".
- Our default hairstyle (Jewfro) is adopted from CT2Hair. We aligned it with our head mesh and resampled it to ~10k strands.
If you found this code useful, please consider citing:
@article{he2025digital,
author={He, Chengan and Amador Herrera, Jorge Alejandro and Shu, Zhixin and Sun, Xin and Feng, Yao and Pirk, S\"{o}ren and Michels, Dominik L. and Zhang, Meng and Wang, Tuanfeng Y. and Dorsey, Julie and Rushmeier, Holly, and Zhou, Yi},
title={Digital Salon: An AI and Physics-Driven Tool for 3D Hair Grooming and Simulation},
journal={arXiv preprint arXiv:2507.07387},
year={2025}
}
@inproceedings{digitalsalon,
author = {He, Chengan and Amador Herrera, Jorge Alejandro and Zhou, Yi and Shu, Zhixin and Sun, Xin and Feng, Yao and Pirk, S\"{o}ren and Michels, Dominik L. and Zhang, Meng and Wang, Tuanfeng Y. and Rushmeier, Holly},
title = {Digital Salon: An AI and Physics-Driven Tool for 3D Hair Grooming and Simulation},
year = {2024},
booktitle = {SIGGRAPH Asia 2024 Real-Time Live!},
articleno = {4},
numpages = {1},
location = {Tokyo, Japan},
series = {SA Real-Time Live! '24}
}If you run into any problems or have questions, please create an issue or contact [email protected].
