RFour Energy · Field Notes No. 09

Rock Typing Reimagined

Building a Python, agentic AI, Excel, and dashboard framework for modern reservoir characterization. Six methods, one platform, written for engineers who want their core data to do more than sit in a binder.

Rock typing sits at the quiet center of reservoir engineering. Every static model, every dynamic simulation, every reserves estimate, and every completion design eventually depends on how we group rocks into populations that share similar pore-scale architecture and, by extension, similar flow behavior. Yet for all its centrality, the workflow has remained remarkably static for three decades.

Engineers still open the same petrophysical packages, run the same crossplots, hand-pick the same flow unit boundaries, and translate the results into a static report that gets emailed around and slowly forgotten. The numerical work is mature. The interpretive context around the numbers is not.

This is the gap we want to close. The commercial petrophysics tools dominating the industry today — whether high-end interpretation suites, geomodeling platforms, or core analysis packages — share a common limitation: they treat rock typing as a calculation problem rather than a reasoning problem. They give you numbers, but they do not give you the interpretation, the narrative, the implication for field development, or the connection back to production behavior observed in the wells.

At RFour Energy we are building a different kind of tool: a rock typing platform that combines a Python-driven computation pipeline, an Excel-friendly data ingestion layer, an interactive web dashboard, and an agentic AI interpretation layer powered by modern large language models. The platform is designed as a standalone product first, with planned future integration into the broader RFour Energy ecosystem.

This article walks through the conceptual foundation, the six rock typing methods the platform will support, the system architecture, the role of agentic AI, and the phased roadmap we are following to bring it to life. Whether you are a petrophysicist evaluating new workflows, a reservoir engineer wondering how AI fits into your toolkit, or a technical manager scoping a digital transformation initiative, this primer should give you a complete picture of what modern rock typing can look like in 2026.


Pore Throats Are the Story

Before discussing methods, it is worth re-grounding ourselves in what rock typing actually means. The term gets used loosely — sometimes for lithofacies, sometimes for electrofacies, sometimes for hydraulic flow units. The most useful definition for engineering purposes is this: rock typing is the process of classifying reservoir rocks into populations that share similar flow behavior, regardless of their geological labels.

The physical basis is pore throat geometry. Two rocks with identical mineralogy and grain size can have radically different permeability if their pore throats — the narrow constrictions that connect larger pore bodies — are different. Conversely, two rocks of different lithologies can behave identically in flow if their pore throat distributions happen to match. The Kozeny-Carman equation, the theoretical backbone of most modern rock typing methods, formalizes this intuition by linking permeability to porosity, specific surface area, and tortuosity through pore-scale geometry.

Figure 1 · Pore Throat Architecture
MEGAPORT R₃₅ > 10 μm φ ≈ 28% k ≈ 1500 mD MESOPORT 0.5 < R₃₅ ≤ 2 μm φ ≈ 18% k ≈ 15 mD MICROPORT 0.1 < R₃₅ ≤ 0.5 μm φ ≈ 22% k ≈ 0.5 mD Pore throat (highlighted) Grain Pore body
Three rocks at the pore scale. Megaport: a coarse sandstone with large, well-connected pore throats. Mesoport: moderately sized throats in a fine sandstone. Microport: a microporous matrix with only a few isolated connecting throats. Permeability spans four orders of magnitude across the three samples despite porosity varying by less than a factor of two. The pore throat — not the porosity — controls how the rock flows.

This pore-scale insight has profound implications. It means we can never predict permeability from porosity alone — the relationship is mediated by pore throat geometry, which itself depends on depositional environment, diagenesis, mineralogy, and compaction history. It also means that for the same field, different stratigraphic intervals may behave as completely separate reservoirs from a flow perspective, even if they appear geologically continuous. Rock typing is, in essence, the engineering acknowledgment that geology and flow do not always speak the same language.

The downstream applications are everywhere. Volumetric calculations need rock-type-specific cutoffs to define net pay. Permeability prediction in uncored wells requires a rock-type framework to extrapolate from cored intervals. Reservoir simulation grids need rock-type-specific relative permeability and capillary pressure curves. Completion strategies benefit from knowing which rock types will respond to stimulation. A well-built rock typing framework pays for itself many times over across the asset lifecycle.


Six Methods, One Platform

A complete platform should not lock the user into a single method. Different datasets, different reservoir styles, and different decision contexts call for different tools. The platform will support six methods, ranging from the simplest empirical approach to the most data-intensive rigorous formulation, plus a machine learning option that bridges core-based and log-based rock typing.

Method 1

Winland R35 — the empirical workhorse

The Winland method is the simplest and most widely used rock typing technique. Developed by Dale Winland at Amoco in the early 1970s and published by Kolodzie in 1980, it correlates permeability and porosity to estimate the pore throat radius at 35% mercury saturation — the so-called R35 value.

log R₃₅ = 0.732 + 0.588 × log(k) − 0.864 × log(φ)

where R35 is in micrometers, k is air permeability in millidarcies, and φ is porosity in percent. R35 maps to five pore type bins:

Pore typeR₃₅ range
Megaport> 10 μm
Macroport2 — 10 μm
Mesoport0.5 — 2 μm
Microport0.1 — 0.5 μm
Nanoport≤ 0.1 μm
Strengths
Requires only routine core data. Immediately interpretable. No clustering decisions needed. Natural MVP starting point.
Limitations
Empirical correlation calibrated on specific sandstones and carbonates. Accuracy degrades for unconventional lithologies, extreme porosities, or clay-rich rocks. Pittman (1992) published modified versions for R₁₀, R₂₅, R₅₀.
Figure 2 · Winland R35 Crossplot
10⁴ 10³ 10² 10¹ 10⁰ 10⁻¹ 10⁻² 1 5 10 15 20 30 40 POROSITY (%) PERMEABILITY (mD) R₃₅=10 R₃₅=2 R₃₅=0.5 R₃₅=0.1 Megaport Macroport Mesoport Microport Nanoport
Log-log crossplot of porosity vs air permeability with R₃₅ isolines superimposed. Each diagonal line is a constant pore throat radius. Core samples color-coded by pore type populate the regions cleanly when the rock obeys the Winland correlation. Where points stray from their expected band, you have either data quality problems or rocks the correlation was not built for.
Method 2

FZI and the Hydraulic Flow Unit

The Flow Zone Indicator method, introduced by Amaefule and colleagues in 1993, brought theoretical rigor to rock typing. Starting from a generalized form of the Kozeny-Carman equation, the authors derived two normalized parameters that, when plotted against each other, separate rocks into populations called Hydraulic Flow Units (HFUs).

Reservoir Quality Index

RQI (μm) = 0.0314 × √(k / φ)

Normalized porosity

φz = φ / (1 − φ)

Flow Zone Indicator

FZI (μm) = RQI / φz

The elegance of this formulation lies in what happens when we plot log(RQI) against log(φz): rocks with the same FZI fall on a straight line with unit slope, with the intercept being log(FZI). A field with multiple flow units produces a series of parallel lines, each representing a distinct hydraulic flow unit.

Strengths
Theoretical grounding in Kozeny-Carman. Separates flow populations cleanly when data supports it. Natural extension to permeability prediction within an HFU.
Limitations
Sample-size sensitive — clustering with fewer than 30 samples per HFU is unreliable. Choosing the cluster count is partly subjective. Information criteria (BIC/AIC) help automate this.
Figure 3 · FZI / Amaefule Plot
10 1 0.1 0.01 0.01 0.05 0.2 0.5 1.0 φz = φ / (1 − φ) RQI (μm) FZI=5 FZI=1 FZI=0.2 HFU 1 (high) HFU 2 (med) HFU 3 (low)
Log-log plot of RQI versus normalized porosity. Each hydraulic flow unit aligns along a line of unit slope. The vertical separation between the lines is the differentiating power of the FZI framework — three flow units, three populations, three parallel bands. Where points scatter off their expected band, the rock either belongs to a different flow unit or contains a signal the simple framework cannot capture.
Method 3

Pore Geometry and Structure (PGS) — beyond a single parameter

Introduced by Permadi and Susilo (2009) and refined into a more practical rock-type-curve form by Wibowo and Permadi (2013), PGS represents one of the most important rock typing advances of the past two decades. Where FZI separates rocks based on a single composite parameter — essentially reflecting specific surface area — PGS classifies rocks based on pore geometry and pore structure simultaneously. The result is a method that consistently outperforms HFU in grouping capillary pressure curves and in predicting connate water saturation, particularly for carbonates and complex pore systems where diagenesis has reshaped the original depositional fabric.

The formulation begins from the Kozeny-Carman equation but recasts it so pore geometry sits on one axis and pore structure on the other:

Pore geometry — mean hydraulic radius

y = √(k / φ)

Pore structure — shape, tortuosity, connectivity

x = k / φ³

Rock-type curve (per group)

y = a · x^b

where a is an intercept constant linked to the pore shape factor and b is the similarity exponent linked to network complexity. On log-log axes each rock type appears as a straight line with slope b and intercept log(a). Rocks with similar pore architecture cluster along the same line regardless of whether their absolute porosity and permeability values are high or low. The number of rock types is set by how many distinct (a, b) line families are needed to fit the data.

The convention is that lower rock type numbers indicate higher quality rock. RT1 is the cleanest and most connected, with the largest effective pore throats; RT8 (or whatever the bottom of the scale is for a given dataset) is the most complex and tightest. Note this is the opposite convention from some other systems — care is needed when comparing across methodologies.

Why does PGS perform better than HFU? Capillary pressure and connate water saturation depend on both pore body size and pore throat geometry, not on one or the other in isolation. HFU's reliance on a single composite parameter captures part of this physics but cannot fully separate pore size distribution from specific surface area. PGS encompasses both simultaneously. Hakiki and colleagues (2024) provided the first comprehensive physics-guided interpretation of the method, compiling thousands of measurements across sandstones, carbonates, tight rocks, and even soils. Their findings confirmed PGS rock typing is robust across twelve orders of magnitude in permeability and works for both consolidated and unconsolidated geomaterials.

For permeability prediction in uncored intervals, once a well has been classified into PGS rock types, the rock-type curve can be extended to predict permeability from porosity alone, with accuracy typically in the 80–90% range when benchmarked against held-out core data. The y-component of the PGS plot is dimensionally and conceptually linked to the Leverett J-function, providing a clean theoretical bridge between rock typing and reservoir simulation initialization — when you use PGS rock types, you get a coherent classification that flows naturally into Swc prediction, Pc curve assignment, and reservoir model population.

When PGS is cross-validated against thin-section petrographic groups, correlations of 70% or higher are typical — PGS effectively captures the diagenetic processes (cementation, dissolution, dolomitization) that reshape original depositional fabrics in carbonate reservoirs.

Strengths
Uses same input data as Winland and FZI. Outperforms HFU on capillary curves and Swc prediction. Robust across 12 orders of magnitude in permeability. Natural bridge to J-function and simulation initialization. ~70% correlation with petrographic groups.
Limitations
Needs ≥15–20 samples per group for stable power-law fits. Assumes good underlying data quality (Klinkenberg-corrected, properly cleaned cores). Best run alongside FZI as a complementary cross-check.
Figure 4 · PGS Crossplot
10² 10¹ 10⁰ 10⁻¹ 10⁻² 10⁻³ 10⁻¹ 10¹ 10² 10³ 10⁴ 10⁵ PORE STRUCTURE x = k / φ³ PORE GEOMETRY y = √(k/φ) RT1 (best) RT2 RT3 RT4 RT5 (poor) ROCK TYPE CURVES RT1 — cleanest RT2 RT3 RT4 / RT5 — tightest
Log-log plot of pore geometry √(k/φ) versus pore structure k/φ³. Each rock type follows a power law y = a·xb, appearing as a straight line. Rocks with similar pore architecture cluster along the same line regardless of absolute porosity or permeability — a more complete physical basis for grouping than FZI alone. Lower RT numbers = better rock quality, opposite to some other conventions.
Method 4

Modified Lorenz Plot — vertical heterogeneity at a glance

Advanced by Gunter and colleagues in 1997, the Modified Lorenz Plot takes a different approach: rather than classify individual samples, it identifies flow unit boundaries within a continuous depth sequence. It uses two cumulative quantities computed depth-by-depth from shallowest to deepest:

When plotted against each other, the resulting curve has a slope that reflects the local k/φ ratio — essentially the reservoir process speed. Inflection points mark transitions between flow units. A reservoir with three flow units shows three distinct slope segments, and the boundary depths identify where the flow character changes.

Strengths
Excellent for vertical heterogeneity assessment, net pay definition, and identifying thief zones. Intuitive enough for non-specialist audiences — readable at a glance.
Limitations
Operates one well at a time. Requires depth-ordered data. Does not produce a sample classification that can be propagated to other wells.
Figure 5 · Modified Lorenz Plot
45° (homogeneous) FU1 — low flow FU2 — main pay FU3 — thief zone ↓ Boundary 1 ↓ Boundary 2 0 25 50 75 100 CUMULATIVE STORAGE Σφh (%) 0 25 50 75 100 CUMULATIVE FLOW Σkh (%) LORENZ COEFFICIENT 0.62 Heterogeneous (0 = uniform, 1 = max)
Cumulative storage capacity versus cumulative flow capacity, normalized. The further the curve departs from the 45° diagonal, the more heterogeneous the reservoir. Inflection points are flow-unit boundaries. The single Lorenz Coefficient summarizes heterogeneity as one number — useful for sorting wells by complexity at field scale.
Method 5

Leverett J-Function — the rigorous reference

For the most rigorous form of rock typing we turn to capillary pressure. The Leverett J-function, introduced in 1941 and refined many times since, is a dimensionless form of the capillary pressure curve:

J(Sw) = (Pc / (σ × cos θ)) × √(k / φ)

where Pc is capillary pressure, σ is interfacial tension, and θ is the contact angle. For a true rock type, all samples should collapse onto a single J-function curve. Conversely, if J-function curves from a sample population do not overlap, those samples belong to different rock types. This makes the J-function both a powerful classifier and a stringent test of whether a proposed rock type is genuinely homogeneous from a flow perspective.

Strengths
Directly addresses the flow behavior of interest — capillary saturation distribution. Essential for proper reservoir simulation initialization. Stringent independent test of any proposed rock type.
Limitations
Data scarcity. High-quality MICP or SCAL is expensive and available for only a small fraction of samples in most fields. Usually a validation layer, not a primary classifier.
Method 6

Machine Learning on Log Data — the propagation layer

The first four methods all begin with core data. But most wells in any field are uncored, and even cored wells have core over only a fraction of the reservoir interval. To make rock typing actionable at field scale, we need a way to propagate core-based classifications to uncored intervals using log data.

The general workflow:

  1. Train on cored intervals where both logs and core-derived rock types are available
  2. Validate using leave-one-well-out or random hold-out partitioning
  3. Predict rock type at every depth in every well using only log inputs

Feature set typically includes some subset of gamma ray (GR), bulk density (RHOB), neutron porosity (NPHI), sonic travel time (DT), resistivity (RT), and photoelectric factor (PEF). Algorithms range from k-nearest neighbors and decision trees for interpretability, to random forests, gradient boosting, and neural networks for accuracy. Unsupervised methods (Gaussian mixture models, self-organizing maps, hierarchical clustering) are valuable when core data is absent or sparse.

Strengths
Scales to millions of depth points in seconds. Bridges the cored-uncored gap that limits the other four methods.
Limitations
Interpretability cost. Garbage-in-garbage-out risk. Log normalization across vintages and service companies is essential. Must be validated against held-out core ideally from a different well — a 95% training accuracy that drops to 60% on a held-out well is not useful.

Data Scope: a Pyramid, Not a List

Real rock typing projects rarely fit into a single data category. The most useful framework is a pyramid.

Figure 6 · Data Integration Pyramid
MICP / SCAL Pore throat distributions Pc curves, relperm 5–20 samples per field ROUTINE CORE ANALYSIS Porosity, permeability, grain density 100–500 plugs per field WIRELINE LOGS / LWD GR · NPHI · RHOB · DT · RT · PEF Continuous coverage, every well, every foot Abundant, indirect RICH DATA TRAINS SPARSE DATA MODELS SPARSE DATA VALIDATES RICH DATA RESULTS EACH LAYER FEEDS BOTH WAYS — DATA RICH ABOVE, DATA ABUNDANT BELOW
Three data layers that feed rock typing. The platform integrates all three. The most rigorous workflow uses MICP and routine core analysis to define rock types in cored intervals, then trains a log-based classifier to extrapolate those rock types to the entire field. Sparse data validates rich data; rich data trains sparse-data models.

The platform integrates all three layers. The most rigorous workflow uses MICP and routine core analysis to define rock types in the cored intervals, then trains a log-based classifier to extrapolate those rock types to the entire field. This is the same general philosophy behind modern integrated reservoir characterization workflows, with two critical differences: the entire pipeline is automated and reproducible through Python notebooks, and the interpretation of each rock type is augmented by agentic AI rather than left to manual report writing.


The Architecture — Five Layers, No Hype

The platform follows a deliberately minimalist philosophy. We have learned from building production surveillance systems at RFour Energy that the most resilient tools are those built on stable, portable components. Adding more infrastructure does not improve a tool; it just increases the maintenance burden.

Figure 7 · Platform Architecture
INPUT Excel Multi-sheet core data PIPELINE Python Methods + clustering STORAGE Database Results + metadata FRONTEND Dashboard Single HTML Vanilla JS AGENTIC AI LLM Agent Interpretation + narrative interactive query Raw core data never leaves the source workbook. Only processed metrics persist.
Five layers, left to right: Excel input, Python pipeline, cloud storage, single-file HTML dashboard, agentic AI interpretation. Each layer is replaceable. The frontend and AI layers exchange queries bidirectionally — users ask, the AI reasons against the stored numerical results and responds with grounded narrative.

What each layer does

Excel input layer. Geoscientists and engineers live in Excel. Forcing them into a new data format or a clunky web upload form is a guaranteed way to ensure the tool is never used. The platform accepts multi-sheet Excel workbooks with a documented but flexible structure, similar to the daily Excel parsing pattern used in our production systems.

Python computation layer. All numerical work happens in Python: data validation, Klinkenberg and overburden corrections, the six rock typing methods, clustering, and validation statistics. The pipeline is delivered as a Jupyter notebook that runs on a free cloud notebook environment, so no local installation is required. For users who prefer a hosted experience, the same notebook logic is exposed through an API endpoint.

Storage layer. Processed results — rock type assignments per depth per well, summary statistics per rock type, model metadata — are stored in a lightweight cloud database. Raw core data remains in the original Excel workbook; only computed outputs are persisted. This separation respects data ownership: users retain full control of their primary data and only share processed metrics with the platform.

Frontend dashboard. The dashboard is a single HTML file with vanilla JavaScript. No frameworks, no build step, no dependencies that can break. It renders the crossplots, depth tracks, summary tables, and what-if controls. Users can adjust the number of HFUs, change cutoff values, and see results update interactively. The same file works on any modern browser and can be deployed anywhere.

Agentic AI layer. The layer that makes the platform genuinely different from existing tools. The next section is dedicated to it.


Where Agentic AI Earns Its Place

Calculation is the easy part. Interpretation is hard. Anyone who has built a rock typing dashboard knows that the value is not in the crossplots themselves — it is in answering the questions that emerge when someone looks at the crossplots: Why does Rock Type 3 have such a wide spread? Should we have included those high-permeability outliers? What does this mean for the planned infill program?

These are the questions the agentic AI layer is built to address. Powered by a modern large language model with access to the underlying numerical results, the AI can:

The architecture is deliberately agentic rather than purely conversational. The AI does not just answer questions; it reasons, calls computational tools, retrieves specific data points, and constructs evidence-based interpretations.

This is the same general pattern implemented in our other RFour Energy products, and it has proven significantly more useful than simpler chatbot integrations.

A key design consideration is cost control. Large language model calls are not free, and unbounded usage creates unpredictable expenses. The platform implements per-user usage caps with prepaid top-up options for external users, ensuring AI features remain sustainable as the user base grows.


From MVP to Full Platform — a Four-Phase Roadmap

A platform of this scope cannot be built in a single sprint. We are following a four-phase roadmap that lets us deliver value early while progressively expanding capability.

Figure 8 · Phased Roadmap
PHASE 1 Months 1–2 Winland R35 MVP • End-to-end pipeline • Excel ingestion • Basic dashboard • AI interpretation skeleton → Validate stack PHASE 2 Months 3–4 FZI + PGS Multi-Well • Clustering engine • Side-by-side HFU/PGS • Auto cluster count • Multi-well compare • Anomaly detection → Field-scale ready PHASE 3 Months 5–7 Logs + Lorenz • Log-based classifier • Modified Lorenz • Vertical heterogeneity • Uncored well support → Asset-level value PHASE 4 Months 8–12 MICP + Ecosystem • Pc / MICP module • J-function classifier • Advanced ML • Integration with RFour ecosystem → Full capability
Four phases, twelve months. The first two phases must work flawlessly before complexity gets added. The last two phases add power but only deliver value if the foundation is solid. Conservative on the front end, aggressive on the back end.

Phase 1 — MVP with Winland R35. Validates the end-to-end pipeline with the simplest possible method. Users upload an Excel workbook with porosity and permeability columns; the system computes R35, classifies each sample into one of five pore types, renders the Winland crossplot, and provides an AI-generated interpretation. No clustering, no parameter tuning, no log data. The point is to prove the architecture works.

Phase 2 — FZI/HFU, PGS, and Multi-Well. Adds the clustering machinery needed for FZI/HFU and PGS classification with automatic cluster count selection via information criteria. Both methods run side by side so users can compare classifications and identify where the two methods agree (high confidence) versus where they diverge (worth investigating). Multi-well analysis becomes possible, with the dashboard showing how rock type populations vary across the field. The AI layer expands to include cross-well comparisons, anomalous-distribution flagging, and an automatic PGS-vs-HFU agreement narrative.

Phase 3 — Log Integration and Lorenz Plot. Brings log data into the platform. The Modified Lorenz Plot is implemented for vertical heterogeneity analysis, and a log-based classifier is trained to extend rock typing to uncored intervals. This is where the platform becomes useful for field-scale work rather than well-scale analysis.

Phase 4 — Full Capability and Ecosystem Integration. Adds the most data-intensive features: MICP ingestion, J-function classification, advanced ML methods (random forests, gradient boosting, neural networks for log-based rock typing), and integration with the broader RFour Energy product ecosystem at rfourenergy.com. Users with accounts on other RFour Energy platforms will be able to flow rock typing results directly into downstream workflows.


Pitfalls Worth Avoiding

A platform is only as useful as its outputs are trustworthy. Several practical considerations shape how to build well and how users should approach rock typing in general.

Data quality is non-negotiable. Permeability measurements should be Klinkenberg-corrected for gas slip. Both porosity and permeability should be overburden-corrected when in-situ values matter. Routine core analysis often contains outliers from damaged or unrepresentative samples; statistical outlier detection should be part of every workflow.

Resist the temptation to over-classify. It is tempting to add rock types until every sample fits perfectly. This is overfitting. A useful rock typing scheme typically has between three and seven rock types for most fields. More than ten is almost always a sign that the methodology is breaking down or that the data contains noise that should not drive classifications.

Validate against dynamic data when possible. A rock typing scheme that does not correlate with production behavior is not necessarily wrong, but it is suspect. Where possible, compare the rock type distribution of high-producing wells to that of poor producers. If there is no signal, the rock typing is probably not capturing the flow controls that matter.

Remember the depositional context. Rock typing is a flow-based classification, not a geological one. The two often align, but not always. Carbonate reservoirs in particular can have rock types that cut across depositional facies because diagenesis can reshape pore networks regardless of original lithology. The interpretation should respect both perspectives.

Beware of black-box ML. Machine learning methods for log-based rock typing are powerful, but their outputs must be validated against held-out core data, ideally from wells not used in training. A model scoring 95% accuracy on the training set but 60% on held-out wells is not useful, no matter how impressive the headline number looks.


Closing

Rock typing has been a core reservoir engineering workflow for half a century. What has changed in the last few years is not the underlying physics — pore throats still control permeability, the Kozeny-Carman equation still applies, and the Leverett J-function is still the most rigorous capillary pressure framework available — but the tools available to operationalize that physics at scale.

The combination of Python notebooks for transparent computation, Excel for accessible data ingestion, single-file HTML dashboards for portable visualization, and agentic AI for interpretation creates a new kind of platform. It is not a replacement for petrophysical expertise; it is a multiplier for it. A petrophysicist using this platform can do in an hour what previously took a week, and they can carry a richer interpretation into the conversation with the rest of the asset team.

It is not a replacement for petrophysical expertise. It is a multiplier for it.

At RFour Energy we are committed to building these tools in the open, sharing both methodology and results with the broader engineering community. Future articles in this series will dive deeper into individual methods, share validation case studies on anonymized field data, and document the lessons we learn as the platform matures.

The platform discussed here is currently in Phase 1 development. Updates and access to the beta will be announced through the RFour Energy channels. If you are interested in being an early user, in contributing case studies, or in collaborating on validation, please reach out through the website.

References

Amaefule, J.O., Altunbay, M., Tiab, D., Kersey, D.G., Keelan, D.K. (1993). Enhanced reservoir description: using core and log data to identify hydraulic (flow) units and predict permeability in uncored intervals/wells. SPE 26436.
Permadi, P., Susilo, A. (2009). Permeability prediction and characteristics of pore structure and geometry as inferred from core data. SPE 125350.
Wibowo, A.S., Permadi, P. (2013). A type curve for carbonates rock typing. IPTC 16663.
Hakiki, F., et al. (2024). Physics-guided interpretation of pore geometry and structure (PGS) rock typing across twelve orders of magnitude in permeability. SPE / industry conference proceedings.
Kolodzie, S. Jr. (1980). Analysis of pore throat size and use of the Waxman-Smits equation to determine OOIP in Spindle Field, Colorado. SPE 9382.
Pittman, E.D. (1992). Relationship of porosity and permeability to various parameters derived from mercury injection-capillary pressure curves for sandstone. AAPG Bulletin, 76(2), 191–198.
Gunter, G.W., Finneran, J.M., Hartmann, D.J., Miller, J.D. (1997). Early determination of reservoir flow units using an integrated petrophysical method. SPE 38679.
Leverett, M.C. (1941). Capillary behavior in porous solids. Transactions of the AIME, 142(1), 152–169.
Carman, P.C. (1937). Fluid flow through granular beds. Transactions of the Institution of Chemical Engineers, 15, 150–166.
Kozeny, J. (1927). Über kapillare Leitung des Wassers im Boden. Sitzungsberichte der Akademie der Wissenschaften in Wien, 136, 271–306.
Tiab, D., Donaldson, E.C. (2015). Petrophysics: Theory and Practice of Measuring Reservoir Rock and Fluid Transport Properties, 4th ed. Gulf Professional Publishing.
Klinkenberg, L.J. (1941). The permeability of porous media to liquids and gases. API Drilling and Production Practice, 200–213.
Hartmann, D.J., Beaumont, E.A. (1999). Predicting reservoir system quality and performance. In Treatise of Petroleum Geology / Handbook of Petroleum Geology: Exploring for Oil and Gas Traps, AAPG.

Coming Soon — Phase 1 Beta

Rock Typing Platform

Excel ingestion · Python pipeline · Single-file dashboard · Agentic AI interpretation. Starting with Winland R35; FZI/HFU, PGS, Lorenz, J-function, and ML to follow.

Launch Rock Typing →
← Back to rfourenergy.com © 2026 RFour Energy