IMUdrape: Generating Garment-Mounted Virtual IMU Data from Text through Physics-Based Cloth Simulation
Organizations: School of Interactive Computing, Georgia Institute of Technology, Atlanta, Georgia, USA
Abstract
Inertial sensors are moving into clothing, from sensorized sportswear to garments instrumented with hundreds of IMUs. Sewn into clothing, a sensor no longer moves rigidly with the body: loose fabric slides, twists and swings, so a garment-mounted sensor records the motion of the fabric as well as that of the body, and this extra motion differs from one garment to the next. Models for such sensors need training data recorded with the deployed garment, yet labeled data are scarce. Virtual IMU data generated from videos or text have eased this scarcity for body-attached sensors, but existing generators attach their virtual sensors rigidly to the body. We present IMUdrape, which generates garment-mounted virtual IMU data from text through physics-based cloth simulation. IMUdrape synthesizes motion from activity descriptions, reconstructs the target garment as a sewing pattern from photographs, places virtual IMUs at the deployment's real sensor positions, and simulates the garment with an intersection-free contact solver, so that every simulation yields paired garment and body signals. On four real datasets with clothing-mounted sensors, IMUdrape improves on existing virtual-data approaches for both activity recognition and full-body pose estimation. With one real subject, its data improve recognition macro-F1 by 7% to 46% over real data alone and by 2% to 11% over body-mounted virtual data from the same motion. When the garment is simulated on recorded motion, the pose error without any real training data falls by 30% to 33% relative to generated motion, and garment data remain 12% more accurate than body data. IMUdrape thus reduces the amount of real data that garment-mounted sensing requires.
Figures & tables
| System | Motion source | Sensor | Garment model | Dynamics | Matched | Tasks |
| IMUTube ( Kwon et al., 2020 ; Kwon et al., 2021b ) | Video | Body | – | – | – | HAR |
| Rey et al. ( Rey et al., 2019 ) | Video | Body | – | – | – | HAR |
| IMUGPT ( Leng et al., 2023b ; Leng et al., 2024 ) | Text | Body | – | – | – | HAR |
| UniMTS ( Zhang et al., 2024b ) | Motion capture | Body | – | – | – | HAR |
| MOSAIC ( Wei et al., 2026 ) | Text | Body | – | – | – | HAR |
| LIP synthetic data ( Zuo et al., 2024 ) | Motion capture | Garment | Learned (TailorNet) | – | – | Pose |
| Training data | LIP | FIP | GarMoCap | MIG |
| Virtual data only | ||||
| IMUGPT | 51.8 2.3 | 16.2 1.0 | 24.3 1.8 | 7.2 0.2 |
| TailorNet | 65.2 2.1 | 20.8 0.8 | 28.7 1.2 | 27.5 1.2 |
| IMUdrape Body | 65.7 3.3 | 18.7 1.7 | 37.7 0.3 | |
| IMUdrape Garment | 58.8 3.1 | 21.4 0.9 | 26.6 1.6 | 43.5 1.0 |
| IMUdrape Body + Garment | 27.6 1.3 | |||
| Angular error ( ∘ ) | Position error (cm) | |||||
| Training data | LIP | FIP | GarMoCap | LIP | FIP | GarMoCap |
| Virtual data only | ||||||
| IMUGPT | 31.4 0.48 | 26.7 0.31 | 22.9 0.17 | 11.3 0.23 | 8.6 0.08 | 10.8 0.08 |
| TailorNet | 29.3 0.27 | 25.5 0.62 | 23.4 0.31 | 10.5 0.14 | 8.6 0.15 | 10.5 0.19 |
| IMUdrape Body | 28.6 0.28 | 25.8 0.21 | 23.5 0.27 | 10.3 0.08 | 8.8 0.11 | 10.3 0.18 |
| IMUdrape Garment | 28.6 0.47 | 9.5 0.15 | ||||
| Real training subjects | |||||
| Virtual data | Amount | None | 1 subject | 2 subjects | All subjects |
| Real data only | – | – | 39.8 2.7 | 49.8 2.2 | 67.3 0.6 |
| IMUdrape Body | 25% | 30.9 2.2 | 47.1 1.0 | 53.6 0.8 | 68.8 0.7 |
| 50% | 33.0 0.5 | 45.9 1.7 | 52.4 2.1 | 69.0 0.2 | |
| 100% | 37.7 0.3 | 48.7 2.1 | 52.6 1.9 | 67.7 1.1 | |
| IMUdrape Garment | 25% | 36.3 2.4 | 47.7 3.7 | 55.7 0.8 | |
| Tight sensor set | Loose sensor set | |||||||
| Training data | None | 1 subject | 2 subjects | All subjects | None | 1 subject | 2 subjects | All subjects |
| Real data only | – | 42.4 3.0 | 53.5 2.9 | 66.8 0.2 | – | 39.8 2.7 | 49.8 2.2 | 67.3 0.6 |
| IMUGPT | 6.7 0.5 | 43.5 1.2 | 54.6 2.7 | 67.1 0.6 | 7.2 0.2 | 34.3 3.9 | 46.9 2.5 | 65.4 1.7 |
| TailorNet | 26.7 2.9 | 48.2 1.4 | 54.9 0.4 | 66.7 1.0 | 27.5 1.2 | 43.7 2.7 | 50.9 2.1 | 68.1 0.8 |
| IMUdrape Body | 32.6 1.9 | 49.0 0.4 | 55.8 2.6 | 67.0 2.0 | 37.7 0.3 | 48.7 2.1 | 52.6 1.9 | 67.7 1.1 |
| IMUdrape Garment | 52.0 1.0 | 53.9 2.7 | 60.0 0.6 | 69.9 0.6 | 43.5 1.0 | |||
| Tight set | Loose set | |||||
| Sensors | Body | Garment | Improvement over Body | Body | Garment | Improvement over Body |
| 1 | 26.2 0.7 | 31.6 0.2 | +20.7% | 25.2 0.2 | 26.5 0.2 | +5.2% |
| 2 | 30.3 0.4 | 42.1 0.3 | +38.9% | 28.5 0.7 | 32.5 0.2 | +14.0% |
| 3 | 30.5 0.7 | 42.0 0.4 | +37.5% | 32.0 0.8 | 37.7 0.7 | +17.7% |
| 4 | 31.6 0.9 | 45.7 0.5 | +44.6% | 33.0 0.4 | 39.1 0.5 | +18.7% |
| 5 | 31.2 0.8 | 48.2 0.8 | +54.9% | 34.5 1.3 | 40.3 0.9 | +16.9% |
| Pose: joint angle error ( ∘ ) | Recognition: macro-F1 (%) | ||||||||
| Training data | None | 1 subject | 2 subjects | All | None | 1 subject | 2 subjects | All | |
| Real data only | – | 13.9 0.59 | 12.4 0.19 | 10.5 0.08 | – | 45.8 2.8 | 56.6 2.6 | 74.8 0.9 | |
| Recorded | IMUdrape Body | 16.8 0.04 | 13.3 0.41 | 12.1 0.12 | 10.5 0.06 | 29.1 1.6 | 52.7 0.5 | 61.4 0.8 | 76.3 0.9 |
| IMUdrape Garment | 14.8 0.12 | 13.0 0.65 | 12.0 0.30 | 10.5 0.05 | 32.1 2.2 | 55.3 2.7 | 63.7 1.1 | ||
| IMUdrape Body + Garment | 76.0 0.8 | ||||||||
| Generated | IMUdrape Body | 23.9 0.09 | 13.9 0.31 | 12.4 0.11 | 10.7 0.10 | 25.0 0.6 | 47.0 0.8 | 57.9 1.3 | 76.0 1.1 |
| Pose: joint angle error ( ∘ ) | Recognition: macro-F1 (%) | ||||||||
| Training data | None | 1 subject | 2 subjects | All | None | 1 subject | 2 subjects | All | |
| Real data only | – | 13.9 0.59 | 12.4 0.19 | – | 45.8 2.8 | 56.6 2.6 | 74.8 0.9 | ||
| Matched | IMUdrape Garment | ||||||||
| Generic | IMUdrape Garment | 15.1 0.17 | 13.3 0.50 | 12.2 0.19 | 10.6 0.01 | 28.1 2.8 | 53.9 1.3 | 63.9 1.3 | 76.7 0.4 |
Appendix figures & tables9 assets
Supplementary material from the paper’s appendix.
Appendix
| Matched dataset | Garment | Real sensors |
| MIG ( Tsukamoto et al., 2023 ) | jacket + trousers | 396 sewn IMUs |
| LIP ( Zuo et al., 2024 ) | loose jacket + trousers | 4 (cuffs, back, low back) |
| FIP ( Zheng et al., 2025 ) | loose hooded jacket + trousers | 4 (forearms, back, waist) |
| GarMoCap ( Fang et al., 2026 ) | loose hooded jacket + trousers | 6 (cuffs, back, hem, ankles) |
| Garment | Shell fabric | Density (g/m 2 ) | ( N m) |
| MIG jacket | Polyester windbreaker taffeta | 90 | 4.7 |
| LIP jacket | Light polyester woven | 112 | 4.6 |
| FIP jacket | Nylon shell with polyester lining | 200 | 11 |
| GarMoCap jacket | Polyester windbreaker taffeta | 90 | 4.7 |
| Trousers (all) | Polyester–cotton twill | 230 | 24 |
| Time step 1/240 s, output 120 Hz; friction coefficient 0.5; stiffness-proportional damping 0.02 s | |||
| Dataset | Subjects | IMUs | Modalities | Activities | Real | Virtual |
| MIG ( Tsukamoto et al., 2023 ) | 12 | 396 (6 used) | Acc., gyro. | Eating a cookie, eating pasta, folding, going downstairs, going upstairs, ironing, jogging, sitting, standing, toothbrushing, typing, vacuuming, walking, writing | 432 | 89 |
| LIP ( Zuo et al., 2024 ) | 5 | 4 | Acc., orientation | Running, walking, jumping, boxing, ping-pong | 118 | 12 |
| FIP ( Zheng et al., 2025 ) | 10 | 4 | Acc., orientation | Walking, running, boxing, jumping rope, chest expansion, lifting weights, dribbling, drumming, crossing hands, ping-pong | 103 | 24 |
| GarMoCap ( Fang et al., 2026 ) | 9 | 6 | Acc., orientation | Basketball, boxing, casual movement, jumping, jumping rope, ping-pong, rotating, running, tennis, walking | 93 | 21 |
| LIP | FIP | |||||
| Training data | DCL | TinyHAR | DCL-Att | DCL | TinyHAR | DCL-Att |
| Virtual data only | ||||||
| IMUGPT | 48.3 1.8 | 59.5 2.5 | 47.7 6.4 | 15.2 1.1 | 17.5 0.9 | 15.8 1.4 |
| TailorNet | 66.9 1.8 | 66.1 2.7 | 62.5 5.5 | 21.1 1.9 | 20.5 1.0 | 20.8 0.5 |
| IMUdrape Body | 65.8 0.9 | 66.0 3.6 | 65.3 9.7 | 16.8 2.6 | 20.5 1.1 | 18.8 1.6 |
| IMUdrape Garment | 54.3 3.9 | 64.4 4.6 | 57.6 4.3 | 20.6 2.0 | 22.9 1.1 | 20.7 2.2 |
| GarMoCap | MIG | |||||
| Training data | DCL | TinyHAR | DCL-Att | DCL | TinyHAR | DCL-Att |
| Virtual data only | ||||||
| IMUGPT | 20.9 1.2 | 30.7 3.7 | 21.3 0.8 | 5.0 0.4 | 11.0 0.6 | 5.7 1.5 |
| TailorNet | 25.1 1.4 | 20.2 2.7 | 39.9 3.7 | 22.4 4.9 | ||
| IMUdrape Body | 33.0 3.6 | 26.3 3.1 | 35.0 0.9 | 44.9 0.4 | 33.3 1.5 | |
| IMUdrape Garment | 24.9 2.9 | 33.5 0.5 | 21.5 1.6 | 40.9 0.8 | 47.1 3.1 | 42.6 0.9 |
| LIP | FIP | GarMoCap | ||||
| Training data | LSTM | TransPose | LSTM | TransPose | LSTM | TransPose |
| Virtual data only | ||||||
| IMUGPT | 33.5 1.24 | 29.2 1.07 | 28.3 0.38 | 25.2 0.49 | 24.2 0.44 | 21.5 0.18 |
| TailorNet | 29.8 0.38 | 28.7 0.16 | 25.4 0.50 | 25.6 0.86 | 24.1 0.77 | 22.7 0.24 |
| IMUdrape Body | 28.7 0.57 | 28.5 0.33 | 26.2 0.53 | 25.5 0.16 | 23.7 0.62 | 23.2 0.30 |
| IMUdrape Garment | 28.8 0.39 | 28.4 0.59 | 21.9 0.29 | |||
| LIP | FIP | GarMoCap | ||||
| Training data | LSTM | TransPose | LSTM | TransPose | LSTM | TransPose |
| Virtual data only | ||||||
| IMUGPT | 12.2 0.61 | 10.4 0.48 | 9.1 0.08 | 8.1 0.23 | 11.6 0.17 | 10.0 0.04 |
| TailorNet | 10.7 0.18 | 10.3 0.12 | 8.6 0.11 | 8.6 0.25 | 10.7 0.40 | 10.3 0.09 |
| IMUdrape Body | 10.4 0.29 | 10.3 0.16 | 8.9 0.21 | 8.6 0.19 | 10.4 0.15 | 10.2 0.33 |
| IMUdrape Garment | 9.9 0.09 | |||||
Synthetic Data Generation
Synthetic data generation creates artificial examples, simulations, and datasets to train, test, or protect machine-learning systems.
See all 636 papers