OPESCI-FD: Automatic Code Generation Package for Finite Difference Models. In this project, we introduce OPESCI-FD, a Python package built on symbolic mathematics to automatically generate Finite Difference models from a high-level description of the model equations. We investigate applying this framework to generate the propagator program used in seismic imaging. We implement the 3D velocity-stress FD scheme as an example and demonstrate the advantages of usability, flexibility and accuracy of the framework. The design of OPESCI-FD aims to allow rapid development, analysis and optimisation of Finite Difference programs. OPESCI-FD is the foundation for continuing development by the OPESCI project team, building on the research presented in this report. This report concludes by reviewing the further developments that are already under way, as well as the scope for extension to cater for other equations and numerical schemes.