A computer implemented method for producing a composite laminate, comprising: (a) selecting design variable values for a design of a steered-fiber ply; (b) computing a stream function parameterized by tensor product polynomial splines for the ply directly in accordance with the selected design variable values; (c) computing a fiber angle distribution of the ply based on the stream function for the ply; (d) computing a thickness buildup of the ply based on the stream function for the ply; (e) analyzing a simulated structure of a laminate comprising the ply simulated by the results of the foregoing computing steps and additional plies; (f) computing one or more measures of merit for the simulated structure; (g) iterating steps (a) through (f) until an optimum value of one or more of the measures of merit is obtained; (h) determining a computer program for controlling a machine to lay courses along paths defined by the stream function which resulted in the optimum value of one or more of the measures of merit being obtained; and (i) automatically laying courses (50, 52) on a composite laminate in process in accordance with said computer program, wherein the composite laminate has a first ply and a second ply, and step (a) comprises selecting design variable values that specify: courses (50, 52) having steered fibers of radius greater than a lower limit, whereby the lower limit is calculated to avoid fiber wrinkling; and stress or strain distributions for a given loaded structure with the steered fibers that redirect applied loads towards edges of the first and the second plies to avoid cutout regions of the first and second plies where stress concentrations are critical for a given load. (a) selecting design variable values for a design of a steered-fiber ply; (b) computing a stream function parameterized by tensor product polynomial splines for the ply directly in accordance with the selected design variable values; (c) computing a fiber angle distribution of the ply based on the stream function for the ply; (d) computing a thickness buildup of the ply based on the stream function for the ply; (e) analyzing a simulated structure of a laminate comprising the ply simulated by the results of the foregoing computing steps and additional plies; (f) computing one or more measures of merit for the simulated structure; (g) iterating steps (a) through (f) until an optimum value of one or more of the measures of merit is obtained; (h) determining a computer program for controlling a machine to lay courses along paths defined by the stream function which resulted in the optimum value of one or more of the measures of merit being obtained; and (i) automatically laying courses (50, 52) on a composite laminate in process in accordance with said computer program, courses (50, 52) having steered fibers of radius greater than a lower limit, whereby the lower limit is calculated to avoid fiber wrinkling; and stress or strain distributions for a given loaded structure with the steered fibers that redirect applied loads towards edges of the first and the second plies to avoid cutout regions of the first and second plies where stress concentrations are critical for a given load.