A seismic velocity model is almost always a voxel grid or a spline mesh, and that choice carries three costs that have nothing to do with the geology. Resolution is fixed at inversion time. Querying between nodes requires interpolation, which invents structure that no datum supports. Memory scales with the cube of resolution, which is what makes fine 3-D models expensive to hold at all.
An implicit neural representation removes all three by changing what is stored. A coordinate network f(x, y, z) returning local Vs holds the model as weights rather than as values on a lattice [1,2]. The model becomes continuous, so any point at any scale is one forward pass. Storage becomes the weight count, independent of the resolution anyone later queries at. And because the field is differentiable, sensitivity kernels come from automatic differentiation exactly, instead of from finite-difference bookkeeping around a grid.
What the representation actually changes
Three properties follow from the swap, and they are worth separating because only the first is about compression.
A ray can be sampled anywhere along its path without interpolating between stored voxels, because there are no voxels. Rendering a depth slice is a batch of forward passes on a plane of coordinates. The gradients needed for gradient-based tomography, both the spatial derivatives of Vs and the derivatives of the data misfit with respect to the weights, are autograd outputs of the same object.
Anisotropy fits this shape naturally. Extra output heads carry the additional parameters, whether Thomsen-style ε, δ and γ [4] or the orientation of a hexagonal symmetry axis, so one continuous object holds the whole 3-D anisotropic model rather than a stack of co-registered grids that have to be kept consistent by hand.
The bandwidth to represent a sharp gradient, a Moho or a lithosphere-asthenosphere boundary, is not automatic. It comes from positional encoding [3] or from periodic activations [2], and that choice turns out to carry a cost that is not usually stated alongside it.
Two purchases that are easy to confuse
- Prior-led share of the slice
- 0%
- Discontinuity recovered
- 29%
- Error against the synthetic truth
- 0.14
- Plain MLP, sparse to dense
- 13%, 12%, 12%
| coverage | parameterisation | prior-led share | discontinuity recovered | error |
|---|---|---|---|---|
| sparse | plain | 0% | 13% | 0.212 |
| sparse | encoded | 28% | 32% | 0.148 |
| sparse | siren | 57% | 71% | 0.115 |
| moderate | plain | 0% | 12% | 0.212 |
| moderate (shown) | encoded | 0% | 29% | 0.14 |
| moderate | siren | 6% | 88% | 0.063 |
| dense | plain | 0% | 12% | 0.212 |
| dense | encoded | 0% | 29% | 0.136 |
| dense | siren | 0% | 94% | 0.024 |
Set the parameterisation to a plain coordinate MLP and move the coverage control across its whole range, from one constraint every 7 nodes to one every 2. The recovered discontinuity does not move: 13%, then 12%, then 12%, and the error against the synthetic truth sits at 0.212 at every coverage. This is the first thing the exhibit is for. Constraints cannot buy a frequency the field has no way to represent, so a programme that responds to a blurred Moho by acquiring more data is answering a question the model was not asking.
Now switch to periodic activations and leave the coverage sparse. The discontinuity jumps to 71% recovered. The image gets visibly, satisfyingly sharper. At the same moment 57% of the queried slice turns amber, which is the share of nodes whose value the network's prior supplied rather than the data.
That is the trade, and it is the reason to be careful with a rendered slice. A field that can hold high frequencies generalises a shorter distance from each constraint, so the parameterisation that finally resolves the discontinuity is also the one that hands the largest fraction of the volume to its own prior. Sharpest-looking and most-invented are the same setting, and nothing in the rendering distinguishes them: the amber ground in the exhibit is drawn exactly as solidly as the aqua, because that is what a query returns. Only the canopy over it, which no rendered slice carries, shows where each constraint stops reaching.
The honest reading of a slice therefore needs a second number beside it. Not a smoothness parameter and not a training loss, but the share of the queried region where the prior, rather than a datum, set the value. It is computable for any coordinate field, from the same constraint geometry the inversion already knows.
Limitations worth stating in the paper, not the appendix
The smoothness bias is the first one. Without positional encoding or periodic activations, first-order discontinuities are over-smoothed, and the exhibit puts a number on how badly. Expressiveness is bounded by capacity and encoding bandwidth, so very sharp, thin layers may need targeted encodings rather than more of the same.
Interpretability falls. The model lives in weights, not in values on a grid, so quality control and comparison against legacy models mean re-querying to a grid anyway, which returns some of the ground the representation was meant to take.
Training is per-model. Unlike an amortised operator that has learned a family, a field fitted to one dataset is one object, and the next dataset starts again. And physical constraints such as positivity, or velocity increasing monotonically with depth, do not come free: they have to be enforced by how the outputs are parameterised.
Pairing the field with an explicit learned prior, as the model parameterisation a diffusion sampler denoises, is the direction that addresses the largest of these, because it replaces an implicit spectral prior nobody chose with an explicit one that can be examined and argued with.
Key takeaways
- Storing a velocity model as the weights of a coordinate network makes it continuous, memory-independent of query resolution, and differentiable for exact autograd sensitivity kernels.
- Encoding bandwidth and data coverage are separate purchases. A plain coordinate MLP recovers about 12% of a first-order discontinuity whatever the coverage, because constraints cannot buy a frequency the field cannot represent.
- The parameterisation sharp enough to hold the discontinuity generalises a shorter distance from its data: at sparse coverage it recovers 71% of the jump while 57% of the queried slice is set by the prior.
- A queried slice renders prior-led and data-led values with identical apparent confidence, so sharpness is not evidence of support.
- Report the prior-led share of a queried region beside any rendered slice. It is computable from the constraint geometry the inversion already has.
- Anisotropy fits the representation cleanly through extra output heads, giving one continuous object instead of co-registered grids kept consistent by hand.
References
- B. Mildenhall, P. P. Srinivasan, M. Tancik, et al. NeRF: Representing Scenes as Neural Radiance Fields for View Synthesis. ECCV 2020. arXiv:2003.08934
- V. Sitzmann, J. N. P. Martel, A. W. Bergman, et al. Implicit Neural Representations with Periodic Activation Functions (SIREN). NeurIPS 2020. arXiv:2006.09661
- M. Tancik, P. P. Srinivasan, B. Mildenhall, et al. Fourier Features Let Networks Learn High Frequency Functions in Low Dimensional Domains. NeurIPS 2020. arXiv:2006.10739
- L. Thomsen. Weak elastic anisotropy. Geophysics, 1986. doi:10.1190/1.1442051
- J. J. Park, P. Florence, J. Straub, et al. DeepSDF: Learning Continuous Signed Distance Functions for Shape Representation. CVPR 2019. arXiv:1901.05103




