Skip to content

Operator

An Operator is executable logic with an explicit contract.

That contract defines:

  • what asset family or runtime scope it accepts
  • what inputs and bindings it needs
  • what parameters it accepts
  • what output family it produces
  • what provenance and evidence must be recorded

Built-in Rust operators and external packages should feel like one operator system to the user.

Ophiolite does not model every computation as one flat list. Operators are grouped by family so validation, composition, runtime execution, and derived-output semantics stay explicit.

Current and planned families include:

FamilyTypical inputsOutput shapeMaturity
Log/curvelog assets, semantic curve bindingsderived log or curve assetsImplemented for the deepest current slice
Wellbore geometrytrajectories, depth references, coordinate transformsderived geometry or resolved trajectory outputsPartly implemented through typed wellbore assets
Seismic trace-local/gatherpost-stack traces, gather-native stores, compatible trace matricesderived traces, volumes, gathers, previews, or analysis resultsImplemented for selected trace-local, crop, gather, and velocity-scan paths
Rock physics/AVOelastic log sets, layer definitions, angle samplingresponse, crossplot, or derived analysis outputsPreview design with selected examples
Horizon/surfaceinterpreted horizons, grids, survey contextsurface assets, residuals, or resolved display payloadsEmerging
Model-buildingauthored models, wells, horizons, control points, trendscompiled runtime fields or reusable model assetsPlanned and intentionally separate from generic processing
Import/preflight adapterssource files, vendor projects, external storesevidence reports, normalized source assets, or import candidatesImplemented in selected import paths and widening
Display/view resolversproject assets plus view intentfrontend-safe DTOs and resolved scene payloadsImplemented for focused app-boundary views

An operator chain should preserve family meaning. A same-geometry trace filter, a gather-native analysis, a horizon-guided model build, and a display resolver may all be executable, but they do not have the same contract or persistence rules.

When Ophiolite exposes composition, it should tell the builder:

  • which family owns the operator
  • whether the step materializes a derived asset or returns an analysis/view result
  • which inputs are canonical assets versus temporary bindings
  • what evidence and provenance will be persisted
  • whether the runtime supports preview, materialization, or both