In addition to tracing rays, programs are provided for dealing with surfaces, curves, and volumes. Computing normals to surfaces, and creating surfaces from normals are provided by the *PtNorms* programs. Generalized interpolation, extrapolation, and smoothing on grids is provided by the grids2grid and scatterd2grid programs. And translation between various formats and representations are provided.
Methods are provided for tracing rays from depth to time and from time to depth; for creating ray starting positions and directions, and for filtering ray positions and directions according to windows in the parameters and horizontal travel distance. In addition, various utilities for dealing with surfaces and curves are provided. Generalized extrapolation, interpolation, and smoothing on regular grids are provided by the grids2grid program. And irregularly sampled data may be cast onto a regular grid using the scattered2grid program.
The ray tracer has been designed to read through the velocity model ONLY once. Thus all of the rays are traced through each depth level at the same time. This allows various optimizations which may speed up the computation. However, rays that reverse direction would require revisiting previous depth levels and conflict with these optimizations. Therefore these rays are "killed" by the ray tracer. Methods are provided for filtering "dead" rays.