CodeMorph uses advanced machine learning techniques to evolve functions which fit training data sets using an easy-to-use interface. CodeMorph devises mathematical models from data with a minimal amount of configuration. Its takes as input a set of training data and a grammar which describes the rules whereby the output functions are formed. Multi-variable and multi-output functions are fully supported. Various parameters allow for controlling the evolutionary process such as the solution population, solution depth/complexity, mutation rate, selection criteria, and more. The plotting panel shows the progress of the evolutionary process as it runs. CodeMorph takes advantage of multiple processors/cores to push your machine to its full potential. The system uses MML (Meta Modeling Language), a full-featured programming language to allow not only functions but larger blocks of code to be generated and allows the mathematical portions of this code to be simplified. CodeMorph 2.0 introduces a new project type Code Generation for generating code embedded within a larger MML program. This is a flexible system whereby the MML program can use the generated code in any way it chooses and programmatically determines its error metric which is passed back to the evolutionary process.