A computer-implemented method of route planning for an aerial vehicle, comprising: receiving, at one or more processors, one or more required time-of-arrival, RTA, constraints associated with a plurality of waypoints that define a path the aerial vehicle is to traverse, wherein each RTA constraint of the one or more RTA constraint is associated with a single waypoint of the plurality of waypoints; characterized in that the method further comprises: providing, by the one or more processors, the one or more RTA constraints to a non-linear program solver configured to generate one or more flight plans based on the one or more RTA constraints, the non-linear program solver providing a non-constant altitude variable and a non-constant speed variable; generating, by the one or more processors as an output of the non-linear program solver, at least one flight plan by varying the non-constant altitude variable and the non-constant speed variable in order to reduce a cost to operate the aerial vehicle based at least in part on the one or more RTA constraints; providing, by the one or more processors, the at least one flight plan to at least one computing system of the aerial vehicle, the at least one flight plan including a route traversing the plurality of waypoints; and formulating a non-linear programming problem using the non-linear program solver, the non-linear programming problem configured to reduce the cost of operating the aerial vehicle subject to dynamics of the aerial vehicle, weather data, and the one or more RTA constraints; wherein the non-linear programming problem is further configured to continually vary the non-constant altitude variable and the non-constant speed variable to reduce the cost to operate the aerial vehicle; and the non-linear programming problem is further configured to continually vary one or more additional aircraft variables, the one or more additional aircraft variables comprising aerial vehicle thrust, aerial vehicle climb rate, or aerial vehicle descent rate. receiving, at one or more processors, one or more required time-of-arrival, RTA, constraints associated with a plurality of waypoints that define a path the aerial vehicle is to traverse, wherein each RTA constraint of the one or more RTA constraint is associated with a single waypoint of the plurality of waypoints; characterized in that the method further comprises: providing, by the one or more processors, the one or more RTA constraints to a non-linear program solver configured to generate one or more flight plans based on the one or more RTA constraints, the non-linear program solver providing a non-constant altitude variable and a non-constant speed variable; generating, by the one or more processors as an output of the non-linear program solver, at least one flight plan by varying the non-constant altitude variable and the non-constant speed variable in order to reduce a cost to operate the aerial vehicle based at least in part on the one or more RTA constraints; providing, by the one or more processors, the at least one flight plan to at least one computing system of the aerial vehicle, the at least one flight plan including a route traversing the plurality of waypoints; and formulating a non-linear programming problem using the non-linear program solver, the non-linear programming problem configured to reduce the cost of operating the aerial vehicle subject to dynamics of the aerial vehicle, weather data, and the one or more RTA constraints; wherein the non-linear programming problem is further configured to continually vary the non-constant altitude variable and the non-constant speed variable to reduce the cost to operate the aerial vehicle; and the non-linear programming problem is further configured to continually vary one or more additional aircraft variables, the one or more additional aircraft variables comprising aerial vehicle thrust, aerial vehicle climb rate, or aerial vehicle descent rate.