Adaptive Device Design