FlexPDE is a ”scripted finite element model builder and numerical solver”. By this we mean that from a script written by the user, FlexPDE performs the operations necessary to turn a description of a partial differential equations system into a finite element model, solve the system, and present graphical and tabular output of the results. FlexPDE is also a ”problem solving environment”. It performs the entire range of functions necessary to solve partial differential equation systems: an editor for preparing scripts, a mesh generator for building finite element meshes, a finite element solver to find solutions, and a graphics system to plot results. The user can edit the script, run the problem and observe the output, then re-edit and re-run repeatedly without leaving the FlexPDE application environment. FlexPDE has no pre-defined problem domain or equation list. The choice of partial differential equations is totally up to the user. The FlexPDE scripting language is a ”natural” language. It allows the user to describe the mathematics of his partial differential equations system and the geometry of his problem domain in a format similar to the way he might describe it to a co-worker.