steadfastasart/geoscience-skills/geological-modelling
Claude Code and agent skill by steadfastasart/geoscience-skills
- community
Checking that the SKILL.md file is still in the repository.
3D geological modelling workflow from spatial data preparation through implicit surface modelling and 3D visualization. Use when building geological models from surface data, boreholes, or GIS inputs.
Install
npx vskill@latest install steadfastasart/geoscience-skills/geological-modellingSKILL.md
Geological Modelling Workflow
End-to-end pipeline for building 3D geological models from spatial data, covering GIS data preparation, implicit surface modelling, and 3D visualization.
Skill Chain
Decision Points: GemPy vs LoopStructural
| Criterion | GemPy | LoopStructural | |
|---|---|---|---|
| Standard layer-cake geology | Preferred | Works | |
| Complex folding (refolded folds) | Limited | Preferred (structural frames) | |
| Fault networks | Good | Good | |
| Built-in gravity forward model | Yes | No | |
| Learning curve | Gentler | Steeper | |
| Data input | Points + orientations | Points + orientations + fold constraints | |
| Unconformities | ERODE / ONLAP types | Supported | |
| API style | Functional (gp.compute_model) | Object-oriented (model.update()) |
Rule of thumb: Use GemPy for standard structural geology with faults and unconformities. Use LoopStructural when fold geometry is the primary control on model architecture.
Step-by-Step Orchestration
Stage 1: Spatial Data Preparation (gemgis)
Stage 2a: Implicit Modelling with GemPy
The following synthetic inclined contact is a runnable GemPy 2026.0.3 example without input files or a GPU. Coordinates are local projected metres; Z is elevation, positive upward. Replace the arrays with Stage 1's validated contact coordinates and formation names for a real model. Orientations require pole-vector components G_x/G_y/G_z. Convert measured dip directions using the documented coordinate convention and polarity before building that table.
structural_frame supplies data at construction; gp.set_interpolator is not part of this API. The spelling intpolation_options_tye is the library's current keyword. For faulted input, map existing fault elements to their own groups with mapping_object, then call gp.set_is_fault and inspect the fault relations before computing. Do not invent fault surfaces without measurements. Optional GemPy-specific section plots use gempy_viewer.plot_2d.
Stage 2b: Implicit Modelling with LoopStructural (alternative)
This alternative requires its own prepared scalar-field and orientation constraints; it does not produce GemPy's sol. Its regular-grid ordering and stratigraphic column must be checked independently before exporting lithology.
Stage 3: Export the GemPy Cell Model (pyvista)
Run this after Stage 2a. GemPy samples dense-grid cell centres with Z varying fastest (NumPy C order). VTK cell arrays use X fastest (Fortran order). Preserve both the axis ordering and physical extent when converting.
Lithology IDs are categorical: use discrete colours and slices or extracted cells, rather than interpreting interpolated volume colours as rock mixtures.
Common Pipelines
Standard 3D Geological Model
Borehole-Based Model
GIS-to-Model Pipeline
When to Use
Use the geological modelling workflow when:
- Building 3D geological models from surface mapping, boreholes, or GIS data
- Converting GIS spatial data into implicit geological surfaces
- Modelling faults, unconformities, or intrusions in 3D
- Creating subsurface models for downstream geophysical or engineering use
Use individual domain skills when:
- Only converting GIS data formats (use
gemgisalone) - Only building a model with data already prepared (use
gempyalone) - Only visualizing existing VTK meshes (use
pyvistaalone)
Common Issues
| Issue | Solution | |
|---|---|---|
| Model artifacts at edges | Extend model extent 10-20% beyond data coverage | |
| Insufficient contact geometry | Obtain additional constraints; label geological assumptions explicitly | |
| Fault offset direction wrong | Reverse pole_vector or swap footwall/hangingwall points | |
| CRS mismatch between datasets | Reproject all data to common projected CRS with geopandas | |
| LoopStructural fold not honoured | Add fold axis orientation and wavelength constraints | |
| Resolution too coarse | Increase grid resolution but watch memory (50^3 = 125k cells) |
API Sources and Verification
- PyVista cell-centred uniform grids.
tests/science/test_model_examples.pyexecutes the marked synthetic model and
export blocks using the real libraries; it checks physical bounds, cell centres, categorical values, and a VTK save/read round trip. GIS files, fault networks, LoopStructural and interactive rendering are outside that test's scope.
Security
- Security scanPassed, 100 of 100Pattern checks on the skill's files.
- Model reviewNot runA model review is scheduled for the next rescan.
Quality evaluation
- Task evaluationNot runNo evaluation yet. Run one in Skill Studio.
Source
- SKILL.md in the repositoryCheckingworkflows/geological-modelling/SKILL.md
Popularity
- 7-day trend score
- 0
Not refreshed yet.
Works with
Any agent vskill installs to: 56 targets in all. These 39 have a page on this site.
- Claude Code
- Cursor
- GitHub Copilot
- Windsurf
- Codex
- Gemini CLI
- Cline
- Amp
- Roo Code
- Goose
- Continue
- Kilo Code
- Junie
- Trae
- OpenHands
- Qwen Code
- AI Agent
- Tabnine Chat
- Sourcegraph Cody
- Amazon Q
- Firebase Genkit
- Sweep
- Devin
- Phind
- Mentat
- Claude Desktop
- Aider
- GPT Pilot
- Plandex
- bolt.new
- v0
- Replit Agent
- Anse
- TypingMind
- BetterChatGPT
- LibreChat
- Warp AI
- Pieces
- Fig AI
Embed badge
[](https://verified-skill.com/skills/steadfastasart/geoscience-skills/geological-modelling)