In recent years, off-the-shelf graphics cards have provided the ability to program the graphics processing unit (GPU) as an alternative to using fixed function pipelines. We believe that this capability can enable a new paradigm in geoscience data visualization. In the past, the geoscience data preparation, interpretation, and simulation were all done by the central processing unit (CPU), and then the generated graphics primitives were fed into a GPU for visualization. This approach was dictated by the constraints imposed by the general-purpose graphics application programming interfaces (APIs). With GPU programming, this front-end processing can be done in the GPU and visualized immediately. After passing the geometry data into the GPU, parameters can be used to control these processes inside the GPU. The different algorithms associated with these processes can be applied at run time by loading a new shading program. To prove this concept, we designed and implemented Java-based shader classes, which operate on top of Cg, a high-level language for graphics programming. These shader classes load Cg shaders to provide a new method for visualizing and interacting with geoscience data. The results from this approach show better visual quality for seismic data display and dramatically improved performance for large 3D seismic data sets. For editing geological surfaces, tests demonstrate performance levels 10 times faster than the typical approach. This paper describes the use of these shaders and presents the results of shader application to geoscience data visualization.