A method for processing sensor input in a system comprising one or more computing systems (100;200;700) and a server, wherein the method performed by at least one of the one or more computing systems comprises: detecting, while the at least one computing system (100;200;700) is in a first state, a first set of sensor inputs from a plurality of first sensors (150;210A,210B,210C); generating a first sensor value array, each of the sensor values in the first sensor value array corresponding to one of the first set of inputs; feeding the first sensor value array as input to a first function; calculating one or more first output values based at least in part on the first function; determining, based at least in part on the one or more first output values, if a first action has occurred; and in response to a determination that a first action has occurred: polling one or more second sensors (150;220) for a second set of sensor inputs; generating a second sensor value array including a second set of sensor values, each of the second set of sensor values corresponding to one of the second set of sensor inputs; feeding the second sensor value array as input to a second function; calculating one or more second output values based at least in part on the second function; and based at least in part on the one or more second output values returned by the second function, exiting the first state, wherein the method by the server comprises: the server comprises a first and second neural network (302, 303) which receive training data from a plurality of mobile devices, wherein the first function is generated by the first neural network and the second function is generated by the second neural network; and J Z wherein the first function and second function are calculated in response to the training data exceeding a predetermined number of samples, and transmitting the first and second function (f0, f1) to the at least one computing system (100;200;700). detecting, while the at least one computing system (100;200;700) is in a first state, a first set of sensor inputs from a plurality of first sensors (150;210A,210B,210C); generating a first sensor value array, each of the sensor values in the first sensor value array corresponding to one of the first set of inputs; feeding the first sensor value array as input to a first function; calculating one or more first output values based at least in part on the first function; determining, based at least in part on the one or more first output values, if a first action has occurred; and in response to a determination that a first action has occurred: polling one or more second sensors (150;220) for a second set of sensor inputs; generating a second sensor value array including a second set of sensor values, each of the second set of sensor values corresponding to one of the second set of sensor inputs; feeding the second sensor value array as input to a second function; calculating one or more second output values based at least in part on the second function; and based at least in part on the one or more second output values returned by the second function, exiting the first state, wherein the method by the server comprises: the server comprises a first and second neural network (302, 303) which receive training data from a plurality of mobile devices, wherein the first function is generated by the first neural network and the second function is generated by the second neural network; and J Z wherein the first function and second function are calculated in response to the training data exceeding a predetermined number of samples, and transmitting the first and second function (f0, f1) to the at least one computing system (100;200;700). polling one or more second sensors (150;220) for a second set of sensor inputs; generating a second sensor value array including a second set of sensor values, each of the second set of sensor values corresponding to one of the second set of sensor inputs; feeding the second sensor value array as input to a second function; calculating one or more second output values based at least in part on the second function; and based at least in part on the one or more second output values returned by the second function, exiting the first state, wherein the method by the server comprises: the server comprises a first and second neural network (302, 303) which receive training data from a plurality of mobile devices, wherein the first function is generated by the first neural network and the second function is generated by the second neural network; and J Z wherein the first function and second function are calculated in response to the training data exceeding a predetermined number of samples, and transmitting the first and second function (f0, f1) to the at least one computing system (100;200;700). the server comprises a first and second neural network (302, 303) which receive training data from a plurality of mobile devices, wherein the first function is generated by the first neural network and the second function is generated by the second neural network; and J Z wherein the first function and second function are calculated in response to the training data exceeding a predetermined number of samples, and transmitting the first and second function (f0, f1) to the at least one computing system (100;200;700).