# Level-Set-Gravity-Inversion-Software: a binary tool for salt dome imaging from gravity data

> The repository ships a compiled application and a test dataset, not a library. It inverts vertical gravity acceleration into mass anomaly boundaries with the level-set method, and it is aimed at structures with distinct interfaces such as submarine salt domes.

**Multiphysics-Imaging-Shenzhen/Level-Set-Gravity-Inversion-Software** — Software that employs the level-set method for inverse gravimetry

- Repository: https://github.com/Multiphysics-Imaging-Shenzhen/Level-Set-Gravity-Inversion-Software
- Stars: 403 · Forks: 0
- Language: Unknown
- License: not declared
- Published: 2026-09-17 · Updated: 2026-09-17 · Language: en
- Canonical page: https://hysenlabs.com/projects/multiphysics-imaging-shenzhen-level-set-gravity-inversion-software

## What inverse gravimetry with a level set actually solves

Gravity data gives you a field at the surface. It does not tell you where the mass is, how it is shaped, or how dense it is. Inverse gravimetry is the problem of going from measured vertical gravity acceleration back to a subsurface mass distribution, and it is ill-posed: many different bodies produce nearly the same field. The README states the software "inverts the distribution of mass anomalies using vertical gravity acceleration data, and characterizes the shape boundaries of these anomalies via the level set method." That second clause is the design decision. Instead of solving for a density value at every cell, the code represents the boundary between two media as the zero contour of a level-set function and moves that contour during the inversion. The stated target is structures with a clear interface, with submarine salt domes named as the example. This is a narrow audience by intent. If your target has gradational density, no sharp contact, or several nested interfaces, the level-set representation is the wrong parameterization and you should look at voxel or stochastic inversion instead.

## How the level-set parameterization changes the inversion

The README points to two papers for the method: Li, Lu and Qian in Geophysics (2016) 81(2): G27-G40, on imaging salt structures using gravity data, and Li and Qian in Inverse Problems and Imaging (2021) 15(3): 387-413, on simultaneously recovering both domain and varying density. Read together, they describe two levels of ambition. The 2016 work recovers the shape of a salt body; the 2021 work also lets the density inside the recovered domain vary rather than holding it constant. The repository itself gives no equations, no discretization details, no solver settings and no convergence criteria. Everything about the numerical scheme is behind the executable or behind the paywalled papers. That is a real constraint on evaluation: you cannot inspect the iteration, the regularization, or the stopping rule from the repository. What you can inspect is the test data. The README says the test dataset "includes a salt dome model and a circular demonstration model." The circular model is the sanity check you run first, because a circular anomaly has a boundary you already know. If the recovered contour matches the synthetic circle, the pipeline from data to level-set update is working before you touch the salt dome case.

## Downloading the executable and running the salt dome test

There is no install procedure in the README. The project is distributed as a compiled application, not as a package you build. The README gives one instruction for obtaining it: "Please download the software executable and the test dataset from the Releases page." The only listed release is V1.0 (LevelSetGraInv_V1.0), dated 2026-06-03. So the first step is manual, and there is no registry, no package manager and no build command to quote here.

After launching the software, the README says to click Help at the top of the control panel to view the detailed instructions. That panel is the real documentation. Nothing in the repository substitutes for it, so budget time to read it before loading data.

The test dataset ships with the release. The README describes it as containing a salt dome model and a circular demonstration model. A sensible first run is the circular demonstration model, because its geometry is known and you can judge the recovered boundary directly. The salt dome model is the second run, and it is the case the software was written for.

```bash
# No install command is documented.
# Obtain the executable and test dataset from the Releases page:
#   V1.0 (LevelSetGraInv_V1.0)
# Then launch the application and open Help from the control panel.
```

The repository contains only README.md at the top level. There is no source tree, no build script, no example input file and no sample command line. If you need to see how a run is configured, the Help panel is the only place the project says that information lives.

## What the repository does not tell you

The README is short and it is a pointer, not a manual. It does not document the input data format, the units expected for the gravity field, the grid spacing, or how the observed data are tied to a reference model. It does not describe how the level-set function is initialized, how many iterations a typical run takes, or how the user judges convergence. It does not state a supported operating system, a minimum memory requirement, or whether the executable is a graphical application only. It does not describe rollback, versioning between releases, or how a V1.0 result would be reproduced on a later build. There is no API, no CLI and no library interface documented, so the tool cannot be scripted into a batch pipeline from what the repository shows. There is also no licence file and no license identifier in the repository. The README lists a Chinese software registration, 2025SR1661337, credited to Wenbin Li and Xingyu Deng, but a registration certificate is not a grant of rights to redistribute or modify the software. If you need to embed this in a commercial product or ship it to a third party, that is a question for the rights holders, not something the repository answers.

## Where a voxel or stochastic inversion is the better choice

The level-set approach assumes a boundary. A voxel-based inversion makes the opposite assumption: it discretizes the subsurface into cells and solves for a density or susceptibility value in each one, usually with a smoothness or compactness constraint to tame the non-uniqueness. That approach handles gradational density and diffuse contacts, and it produces a volume you can interrogate cell by cell. It also tends to produce smeared boundaries, which is exactly the weakness the level-set method is designed to avoid. Stochastic inversion goes further and returns an ensemble of models with a spread, which is useful when you need to quantify uncertainty rather than pick a single boundary. So the choice is not about which method is stronger. It is about whether your geological target has a sharp interface. The README is explicit that this software suits "structures with distinct interfaces, such as submarine salt dome imaging." Salt against sediment is a sharp contact, which is why the method fits. A compact ore body in a gradational host, or a sedimentary sequence with gradual compaction, is a different problem and a different tool.

## Maintenance, releases and the cost of upgrading

The repository is not archived, and the last push was on 2026-06-03, the same date as the V1.0 release. That is recent enough that the project has not been abandoned, but there is only one release and no history of upgrades to reason about. The practical upgrade cost is unknown, because the README documents no changelog, no migration notes and no version compatibility statement. If a V1.1 appears, nothing in the repository tells you whether your V1.0 inputs would still load or whether results would shift. That matters in a field where a reproduced inversion is part of the evidence. A conservative approach is to archive the exact V1.0 executable and test dataset you used, alongside the outputs, so a later release does not silently change what you can reproduce. On licensing, the repository carries no licence file and the README gives only the Chinese registration number. Redistribution, modification and commercial use are therefore unstated. Treat that as an open question to resolve with the authors before you build anything on top of the binary.

## Conclusion

Adopt it if you work on interface-style inverse gravimetry, especially salt structures, and you want the published level-set formulation as a runnable executable rather than a paper to reimplement. Do not adopt it if you need a scriptable library, a source build, or a documented command line. Before you commit, download the V1.0 archive from Releases, open the Help panel, and confirm that the salt dome test model reproduces a boundary you can compare against your own data.

## FAQ

### What is inversion of gravity?

It is the process of going from measured gravity data back to a subsurface mass distribution. This software performs that step on vertical gravity acceleration data and represents the resulting mass anomalies as boundaries rather than as a density value per cell.

### What does "gravity inversion" mean?

Gravity inversion means solving for subsurface mass or density from an observed gravity field. Because many mass distributions produce nearly the same field, the problem is ill-posed and needs a constraint; here the constraint is that anomalies have a distinct interface, represented by a level set.

### What is density inversion?

Density inversion recovers how density varies in the subsurface from measured data. The README cites a paper by Li and Qian on simultaneously recovering both domain and varying density in inverse gravimetry, which is the version of this problem where the density inside the recovered body is not held constant.

### What is inversion modelling in geophysics?

It is the practice of fitting a subsurface model to observed geophysical measurements. In this project the measurement is vertical gravity acceleration and the model is a level-set boundary separating the mass anomaly from its surroundings.

## Sources

- [Issues](https://github.com/Multiphysics-Imaging-Shenzhen/Level-Set-Gravity-Inversion-Software/issues)
- [Multiphysics-Imaging-Shenzhen/Level-Set-Gravity-Inversion-Software on GitHub](https://github.com/Multiphysics-Imaging-Shenzhen/Level-Set-Gravity-Inversion-Software)
- [README](https://github.com/Multiphysics-Imaging-Shenzhen/Level-Set-Gravity-Inversion-Software/blob/main/README.md)
- [Releases](https://github.com/Multiphysics-Imaging-Shenzhen/Level-Set-Gravity-Inversion-Software/releases)

---

Hysen Labs editorial analysis, written from the project's own repository and release notes. Cite the canonical page: https://hysenlabs.com/projects/multiphysics-imaging-shenzhen-level-set-gravity-inversion-software
