A computer-implemented method of inferring the aircraft intent of an aircraft from an observed trajectory of the aircraft, the method comprising: obtaining the observed trajectory of the aircraft; determining the type of the aircraft and retrieving from memory aircraft performance data relating to that type of aircraft; retrieving data regarding the atmospheric conditions along the observed trajectory; generating an initial set of candidate aircraft intents wherein each aircraft intent comprises a set of threads, wherein each thread comprises one or more instructions that defines a degree of freedom of the aircraft, the set of threads together defining all degrees of freedom of the aircraft from the start of the trajectory to the end of the trajectory, thereby closing all degrees of freedom of the aircraft throughout the observed trajectory; providing as inputs to a computer system the initial set of candidate aircraft intents, the aircraft performance data and the atmospheric conditions data; calculating from the inputs a calculated trajectory defined by each candidate aircraft intent by solving a set of equations of motion of the aircraft; obtaining for each calculated trajectory a cost function value from a multi-objective cost function that characterises the difference between a calculated trajectory and the observed trajectory, and retaining the initial candidate aircraft intents with the best cost function values; using an evolutionary algorithm to evolve the set of best initial candidate aircraft intents into an evolved set of candidate aircraft intents by evolving the instructions of the candidate aircraft intents and repeating iterations of the evolutionary algorithm to evolve further the candidate aircraft intents of the evolved set, wherein the evolutionary algorithm uses the multi-objective cost function to obtain a cost function value for the calculated trajectory obtained for each the candidate aircraft intents of the evolved set; and providing one or more candidate aircraft intents with the best cost function value or values respectively. obtaining the observed trajectory of the aircraft; determining the type of the aircraft and retrieving from memory aircraft performance data relating to that type of aircraft; retrieving data regarding the atmospheric conditions along the observed trajectory; generating an initial set of candidate aircraft intents wherein each aircraft intent comprises a set of threads, wherein each thread comprises one or more instructions that defines a degree of freedom of the aircraft, the set of threads together defining all degrees of freedom of the aircraft from the start of the trajectory to the end of the trajectory, thereby closing all degrees of freedom of the aircraft throughout the observed trajectory; providing as inputs to a computer system the initial set of candidate aircraft intents, the aircraft performance data and the atmospheric conditions data; calculating from the inputs a calculated trajectory defined by each candidate aircraft intent by solving a set of equations of motion of the aircraft; obtaining for each calculated trajectory a cost function value from a multi-objective cost function that characterises the difference between a calculated trajectory and the observed trajectory, and retaining the initial candidate aircraft intents with the best cost function values; using an evolutionary algorithm to evolve the set of best initial candidate aircraft intents into an evolved set of candidate aircraft intents by evolving the instructions of the candidate aircraft intents and repeating iterations of the evolutionary algorithm to evolve further the candidate aircraft intents of the evolved set, wherein the evolutionary algorithm uses the multi-objective cost function to obtain a cost function value for the calculated trajectory obtained for each the candidate aircraft intents of the evolved set; and providing one or more candidate aircraft intents with the best cost function value or values respectively.