TetraScope manual
The basalt tetrahedron of Yoder & Tilley (1962) and the CMAS projections of O'Hara (1968): the science behind them, what the program computes, and how far its results have been checked.
1. Quick start
- Enter an analysis in weight per cent oxides (or load an example, or an analysis from Yoder & Tilley's Table 2). Give FeO and Fe2O3 separately if you have them; otherwise enter total iron as FeO* and choose the Fe3+/ΣFe ratio.
- Read where it sits (right-hand panel): its Yoder & Tilley normative group, its CMAS subvolume, and which side of each dividing plane it lies on.
- Choose a projection: a preset reproducing one of O'Hara's figures, or your own (one projection phase and three target vertices for a triangle; two phases and two vertices for a binary section).
- Read the result: weight-per-cent coordinates, the plotted position, the amount of the projection phase added or removed, warnings, and every assumption applied.
- Plot data sets (CSV upload, Table 2, your saved collection), then export the diagram (SVG/PNG) and coordinates (CSV), or share a link that reproduces the whole state.
2. Why a basalt tetrahedron?
A basalt crystallises mainly to olivine, pyroxenes and plagioclase, with Fe-Ti oxides; a few percent of the oxides govern which of these appear. Yoder & Tilley (1962) showed that the essential variety of basalts can be represented in a simple basalt system of four components, diopside–forsterite–nepheline–silica (Di–Fo–Ne–SiO2), in which albite lies on the Ne–SiO2 edge (NaAlSi3O8 = NaAlSiO4 + 2 SiO2) and enstatite on the Fo–SiO2 edge (Mg2Si2O6 = Mg2SiO4 + SiO2).
For natural rocks they generalised this to a normative tetrahedron with vertices clinopyroxene (Cpx), olivine (Ol), nepheline (Ne) and quartz (Qz), grouping the iron end members with their magnesian equivalents and treating albite–anorthite as a single plagioclase (Pl). Orthopyroxene and plagioclase lie inside it. A rock's CIPW norm places it at a point in this volume.
Four components need three dimensions, which is why diagrams of this system are either 3-D sketches or projections onto a plane — the subject of O'Hara's method.
3. Dividing planes and the five basalt groups
Two planes inside the tetrahedron divide basalts into chemically distinct groups (Yoder & Tilley 1962, p. 352):
- the critical plane of silica undersaturation, Cpx–Ol–Pl (in the simple system Di–Fo–Ab), which separates nepheline-normative (alkalic) compositions from the rest;
- the plane of silica saturation, Cpx–Opx–Pl (Di–En–Ab), which separates quartz-normative from olivine-normative compositions.
| group | normative minerals | position |
|---|---|---|
| 1. tholeiite (oversaturated) | quartz + hypersthene | beyond the plane of silica saturation |
| 2. tholeiite (saturated; hypersthene basalt) | hypersthene, no Qz, no Ol | on the plane of silica saturation |
| 3. olivine tholeiite (undersaturated) | hypersthene + olivine | between the two planes |
| 4. olivine basalt | olivine, no Hy, no Ne | on the critical plane |
| 5. alkali basalt | olivine + nepheline | beyond the critical plane |
Groups 2 and 4 are planes, not volumes: a real analysis almost never lies exactly on them, so in practice they mark compositions very close to a plane. TetraScope reports both the group read from the norm and the exact side of each plane computed geometrically (§10); near a plane these can legitimately disagree by a fraction of a per cent of a normative mineral, as they do for two of Yoder & Tilley's own analyses (§12).
Rocks with normative larnite, leucite or kalsilite (melilite-bearing types and strongly undersaturated potassic rocks) cannot be represented inside the tetrahedron at all; TetraScope flags them.
4. Thermal divides and the role of pressure
The planes matter because at low pressure the critical plane of silica undersaturation behaves as a thermal divide: joins such as albite–forsterite and diopside–albite behave, in Yoder & Tilley's words, as "equilibrium thermal divides", so a liquid on one side cannot cross to the other by crystallising olivine, pyroxene and plagioclase. Yoder & Tilley therefore argued that alkali basalt and tholeiite magmas cannot be derived from one another by low-pressure fractional crystallisation, and looked to high pressure — where the phases change and the divides move or vanish — for the origin of the two series.
O'Hara (1968) opens his review with this point: following Yoder & Tilley there was general realisation of the severe limitations that such divides place on petrogenetic theories. His Fig. 4 shows how the crystalline phases coexisting with olivine and liquid change with pressure: from 1 atm to 15 kbar the orthopyroxene field extends into nepheline-normative compositions (extensively so at 15 kbar); the clinopyroxene field expands to 10 kbar, is diminished at 15 kbar and recedes once garnet becomes stable; and between 20 and 30 kbar orthopyroxene withdraws into the hypersthene-normative region. Lherzolite residua might form by partial melting of garnet peridotite at 20 kbar, but garnet-harzburgite residua form at 30 kbar. Whether a partially melting peridotite leaves a lherzolite or a harzburgite residue therefore depends on the pressure, and liquids formed at depth may cross low-pressure divides on their way up. The projections in TetraScope are the tool with which such arguments are made: they let one see where a liquid or rock lies relative to the phase boundaries and control planes of the synthetic system.
5. O'Hara's CMAS reduction
Most experimental phase equilibria relevant to basalt and peridotite were determined in the synthetic system CaO–MgO–Al2O3–SiO2 (CMAS). To compare natural rocks with them, O'Hara (1968, caption to Fig. 4) reduced an analysis to four components C, M, A, S, computed from molecular proportions and converted back to the weight of the equivalent simple oxide:
C = (CaO − 10/3 P2O5 + 2 Na2O + 2 K2O) × 56.08 M = (MgO + FeO + MnO + NiO − TiO2) × 40.31 A = (Al2O3 + Cr2O3 + Fe2O3 + Na2O + K2O + TiO2) × 101.96 S = (SiO2 − 2 Na2O − 2 K2O) × 60.09
Each term has a mineralogical meaning. One Na2O unit forms two albite, Na2O·Al2O3·6SiO2; adding 2 CaO and 1 Al2O3 and removing 2 SiO2 turns it into two anorthite, so albite plots as anorthite. The same terms turn jadeite and aegirine into Ca-Tschermak's molecule. Subtracting TiO2 from M and adding it to A turns ulvöspinel (2FeO·TiO2) into spinel; Fe2O3 and Cr2O3 go to A, so magnetite and chromite become spinel; FeO, MnO and NiO count as MgO, so every olivine becomes forsterite and every garnet falls on the grossular–pyrope join. Apatite is removed with 10/3 CaO per P2O5.
| natural phase | plots in CMAS as | checked by |
|---|---|---|
| albite, orthoclase | anorthite, CAS2 | exact molar ratios, tests/test_validation.py |
| jadeite, aegirine | Ca-Tschermak's molecule, CAS | |
| ulvöspinel, magnetite, chromite | spinel, MA | |
| fayalite and all olivines | forsterite, M2S | |
| almandine and all garnets | pyrope–grossular join |
What is lost. The reduction deliberately discards the Fe/Mg ratio (all iron behaves as MgO) and the effect of alkalis on phase relations, and it depends on how iron is split between FeO and Fe2O3. It is a device for comparing phase relations, not a full chemical description.
6. What a projection is — and why project from olivine
In a four-component system every composition is a point in a tetrahedron. Projecting from a phase P onto a plane means drawing the straight line from P through the composition X and plotting where it meets the plane. Because compositions mix linearly (the lever rule), every point on that line is X plus or minus some amount of P. The projected point therefore ignores how much P the rock contains and records only the proportions of everything else.
This is exactly what one wants for olivine-bearing basalts. Primitive basalt liquids are saturated in olivine over much of their crystallisation interval, and olivine is the phase most easily added (accumulation) or removed (fractionation). In a projection from olivine, olivine fractionation and accumulation do not move a point at all, while the phase boundaries of olivine-saturated liquids appear as lines separating the fields of the other phases that crystallise with olivine (plagioclase, clinopyroxene, orthopyroxene, spinel, garnet). O'Hara's Fig. 4 shows such boundaries at pressures from 1 atm to 30 kbar in the projection from olivine into CS–MS–A.
The same logic gives the other projections: from orthopyroxene for melting of orthopyroxene-bearing peridotite (Figs 5, 10), from diopside (Fig. 11), and from plagioclase, silica or two phases at once for the gabbroic and eclogitic assemblages.
7. The mathematics
Let x be the composition as a 4-vector (C, M, A, S in weight units, or Di, Ol, Ne, Qz). A projection from one phase P onto the plane through B1, B2, B3 solves
x = a·P + b1·B1 + b2·B2 + b3·B3
— four equations in four unknowns. The bi are amounts of the vertices in formula units; multiplied by each vertex's formula weight and normalised to 100 they give the weight-per-cent coordinates that O'Hara plots. Plotting the bi themselves would give molecular coordinates, which is a different diagram (§12 shows the difference is large).
- The coefficient a is how much of P lies between the composition and the plane. Positive: P must be subtracted to reach the plane; negative: P must be added. A basalt projected from olivine usually has a small negative a, because it is displaced from CS–MS–A towards silica.
- Negative coordinates mean the point lies outside the triangle. This is legitimate: spinel projected from olivine, for instance, lies beyond the MS corner (MA = M2S − MS + A).
- Validity. The system has a unique solution unless P lies in the target plane (then the whole plane is seen edge-on and the projection is undefined). TetraScope judges this with the condition number of the column-normalised system: above 1010 the projection is refused; above 103 (analytical errors amplified more than 1000-fold) it is flagged. All presets have condition numbers below 20.
- Double projections. With two projection phases and two target vertices the same equation gives one ratio — a point on a binary join.
- Edge-on planes. If P lies in some plane, everything in that plane projects onto one line. O'Hara notes this for Fig. 10: enstatite lies in CS–MS–A, so from enstatite the diopside–pyrope join and natural clinopyroxene–garnet pairs project on top of each other. TetraScope reproduces this exactly (a test checks it).
Plane sides. The side of the plane through three end members E1, E2, E3 on which x lies is the sign of det[E1 E2 E3 x] relative to that of a reference vertex, computed on unit-length vectors so that it does not depend on units or scale.
8. Reading each preset diagram
Positions below are the engine's values for pure phases (weight per cent); those marked ✓ were also measured on O'Hara's own printed figures (§12).
From olivine into CS–MS–A (O'Hara Figs 4, 9)
The workhorse basalt diagram. Clinopyroxene lies on the CS–MS join (diopside at CS 53.6, MS 46.4 ✓), orthopyroxene at the MS corner, garnet on the MS–A edge (pyrope at A 25.3 ✓), plagioclase inside (anorthite at CS 27.7, MS 47.9, A 24.3). Olivine-saturated liquids lie in the region bounded by these phases; the diopside–pyrope mixtures of O'Hara & Yoder plot on the straight line between them ✓.
From orthopyroxene into M2S–C2S3–A2S3 (Figs 5, 10)
For peridotite melting. The triangle contains the olivine–diopside–pyrope plane: diopside lies on the M2S–C2S3 edge (C2S3 67.5 ✓), pyrope on the M2S–A2S3 edge (A2S3 47.7 ✓), olivine at the apex. C2S3 and A2S3 are pseudo-components (CaO·1.5SiO2 and Al2O3·1.5SiO2) chosen so that the plane passes through these phases.
From diopside into C3A–SiO2–MgO (Fig. 11)
Diopside lies in the low-pressure thermal-divide plane diopside–anorthite–forsterite, so from diopside that plane is seen edge-on: in O'Hara's words it "appears as the line olivine–anorthite" (TetraScope reproduces this collinearity exactly). The view therefore shows how close a liquid lies to the plane of critical silica undersaturation. O'Hara also notes that the plane olivine–E″–H″ (the face shared by the lherzolite + liquid and garnet-harzburgite + liquid assemblages at the start of melting) is virtually coplanar with C3A–S–M, and uses the figure for the garnet lherzolites and mantle models.
Sub-projections and binary sections
From plagioclase into olivine–diopside–silica (the usual low-pressure gabbro pseudo-ternary); from diopside into olivine–anorthite–silica; from olivine into diopside–anorthite–silica; from silica into olivine–diopside–anorthite; and double projections giving the CS/A ratio after removing olivine and orthopyroxene, or the Di/SiO2 ratio after removing olivine and plagioclase.
In the normative tetrahedron (Yoder & Tilley)
From each vertex onto the opposite face, and from albite (plagioclase) onto Di–Ol–Qz, which shows the critical plane face-on. Albite lies at Ne + 2Qz and hypersthene at Ol + Qz on the edges.
Your own projection
Any end member of the space can be a projection point or a vertex. Choices where the projection point lies in the target plane are refused with an explanation.
9. The CIPW norm route
To place a rock in the Di–Ol–Ne–Qz tetrahedron TetraScope calculates a classic weight CIPW norm (Cross, Iddings, Pirsson & Washington), the recalculation of an analysis into standard anhydrous minerals that Yoder & Tilley used:
- apatite (10/3 CaO per P2O5), chromite, ilmenite, magnetite, hematite;
- orthoclase, albite, anorthite, corundum;
- diopside, wollastonite (excess CaO), hypersthene; the rest of the silica is quartz;
- if silica is short: hypersthene → olivine, albite → nepheline, orthoclase → leucite, leucite → kalsilite, wollastonite → larnite, diopside → larnite + olivine, in that order.
The norm is then recast into the four vertices with Yoder & Tilley's identities (Ab = Ne + 2Qz, Hy = Ol + Qz). Anorthite and orthoclase have no place in Di–Ol–Ne–Qz; by default the composition is projected from plagioclase (An, Ab and Or removed — the geometrically exact operation), or, optionally, Ab is recast as Ne + 2Qz and An and Or are omitted. The Fe-Ti oxides, apatite and the minerals outside the tetrahedron are excluded and listed.
Phosphorus beyond what the CaO can take up, and Na or K in excess of Al (peralkaline rocks), are left unallocated with a warning rather than forced — so no normative mineral can go negative.
10. Automatic classification
Every result states (a) the Yoder & Tilley group, read from which of Qz, Hy, Ol and Ne are present in the norm; (b) the CMAS subvolume — nepheline-normative, olivine-hypersthene-normative or quartz-normative — from the sides of the critical plane Di–Ol–An and the plane of silica saturation Di–Hy–An in CMAS; and (c) the side of three further control planes (orthopyroxene–anorthite–diopside, olivine–garnet–orthopyroxene, olivine–plagioclase–orthopyroxene). The two routes, (a) through the norm and (b) through CMAS, use different reductions of the same analysis and normally agree; near a plane they may not, and the difference is informative.
11. Input rules and assumptions
- Oxide names are strict. A typo such as
Si02stops the calculation with a suggestion ("did you mean SiO2?"). Oxides the model does not use (SrO, BaO, SO3, F, Cl, ZrO2 …) are accepted and listed. Descriptive CSV columns (label, rock, locality, total, …) are skipped. "Lenient import" ignores unknown columns deliberately. - Values must be finite, non-negative numbers; negative, non-numeric and infinite values are rejected with the oxide named.
- Totals outside 97–102 wt% (anhydrous) are accepted with a warning: all calculations use ratios.
- Iron. With total iron, the Fe3+/ΣFe ratio (atomic, 0–1; default 0.15) splits it. The choice moves points: Fe2O3 goes to A and FeO to M in CMAS, and magnetite in the norm consumes FeO.
- Every assumption is listed with the result (e.g. "albite recast as the equivalent weight of anorthite", "normative hypersthene recast as olivine + silica").
12. How the results are validated
Three independent layers, all run by python run_tests.py and, in part, in the Validation tab of the workbench.
A. Algebra and stoichiometry
Hand calculations from mineral formulas: e.g. CAS2 + M2S = CS + 2 MS + A puts anorthite at CS 27.73 / MS 47.93 / A 24.34 in the olivine projection; every consequence of O'Hara's reduction listed in §5 is checked as an exact molar ratio.
B. Yoder & Tilley (1962), Table 2
All 25 analyses and printed norms were transcribed (with a per-cell provenance record) and reproduce every printed total. The computed norms agree with the printed ones to within a few tenths of a per cent for most minerals (largest difference 1.4 wt% in the Di–Hy–Ol split of one analysis); the normative group agrees for 23 of 25 analyses, and the other two lie on the critical plane, with the deciding mineral below 1 wt% in both norms. The comparison also exposed an erratum in the original: for analyses 10–13 the printed magnetite and ilmenite values are transposed.
C. O'Hara's own figures
Points were digitised from Figs 4A, 4C, 5, 9, 10 and 11. Each figure was calibrated from its own printed tick marks only; the plotted points were then read in O'Hara's coordinates and compared with TetraScope. Two kinds of point were used: pure phases and O'Hara & Yoder's diopside–pyrope mixtures (exact compositions), which test the geometry; and natural basalts — the rocks O'Hara labels 1921, PB, KA, MK, ML, ML 87, E1 and E2 — whose analyses were traced to Yoder & Tilley (1962) and to Tilley, Yoder & Schairer (1963, 1964). The natural rocks also test O'Hara's full reduction of Na, K, Ti, P, Cr and Fe3+: in effect, they compare TetraScope with the output of O'Hara's own 1968 computer program.
| figure | projection | points (natural) | mean |Δ| (wt%) | max |Δ| (wt%) |
|---|---|---|---|---|
| 4A | from olivine into CS–MS–A | 8 (6) | 0.19 | 0.53 |
| 4C | from olivine into CS–MS–A | 3 (2) | 0.25 | 0.25 |
| 5 | from orthopyroxene into M2S–C2S3–A2S3 | 5 (3) | 0.21 | 0.24 |
| 9 | from olivine into CS–MS–A | 12 | 0.17 | 0.33 |
| 10 | from enstatite into M2S–C2S3–A2S3 | 12 | 0.23 | 0.45 |
| 11 | from diopside into C3A–SiO2–MgO | 4 | 0.16 | 0.17 |
All 44 points agree within 0.53 wt%, and the 11 natural-rock points within 0.25 wt%. The differences have mixed signs and are about the size of hand-plotting on a 1968 figure (0.5 wt% is roughly 1.3 mm on the printed page). Two controls show the comparison discriminates: plotting in molecular instead of weight units misses by 11 wt% on average, and a reduction without O'Hara's alkali, Ti, P and Fe3+ terms misses every natural rock by far more than the tolerance.
Other natural points in these figures (Green & Ringwood's experimental compositions, the 1955 Kilauea lavas, kimberlite nodules and mantle models) come from sources that are not openly accessible, and are not yet compared.
Engines
The browser and the Python package share one definitions file and are compared on 848 cases × 15 projections, including malformed input; browser workflows (CSV upload, sharing, export, collection, offline use) are tested in Chromium.
13. Good practice and limitations
- Liquids versus rocks. Phase boundaries describe liquids. A porphyritic lava or a cumulate is a mixture of liquid and crystals; its projected position is real, but it is not a liquid composition. Aphyric glasses and quenched run products are the safest comparison with experiments.
- Alteration. Weathering, spilitisation and high LOI change Na, K, Ca and the iron oxidation state; the normative group of an altered basalt can be spurious.
- Iron oxidation. Report the Fe3+/ΣFe you used; it can move a composition across the plane of silica saturation.
- Pressure. Boundaries shift strongly with pressure (§4); compare with experiments at the relevant pressure.
- Near a plane, treat the side as uncertain: an analytical error of a few tenths of a per cent in SiO2 or Na2O can move a composition across it.
- CMAS is a projection of chemistry, too. Fe/Mg and alkali effects on phase relations are not represented.
- Not validated yet: the natural points in O'Hara's figures whose analyses are not openly accessible (§12).
14. Datasets, sharing and export
- CSV: start from the CSV template (also under Dataset → Download CSV
template). One analysis per row, header row of oxide names in wt%; a
labelcolumn names the points; descriptive columns (rock, locality, notes, total …) are ignored; give either FeO + Fe2O3 or total iron asFeOT; blank = not analysed. Quoted fields and semicolon- or tab-separated files work. Rows that fail are listed with their line numbers; the rest are plotted. - Built-in data: Yoder & Tilley's Table 2 and a set of reference compositions and end members.
- My collection keeps compositions in this browser; export it as CSV. Where the site offers it, Sign in with a Google account keeps the collection in your account as well, so it follows you to other browsers (and to RockMin ID if it uses the same account). Signing in is optional; see Docs → Privacy for what it shares.
- Share creates a link containing the composition, options and diagram after the
#, which browsers do not send to servers. Untick "include the composition" to share only the diagram choice. - Export: SVG and PNG of the diagram; CSV of coordinates, condition numbers and groups.
- Offline: once loaded over http(s), TetraScope works without a connection and can be installed as an app.
- Command line (Python):
ohara --oxides "SiO2=48.5,..."orohara --csv file.csv; seeohara --help.
15. Glossary
- CMAS
- The system CaO–MgO–Al2O3–SiO2; in O'Hara's notation C, M, A, S, with compounds written as combinations (e.g. CMS2 = diopside, CAS2 = anorthite, M2S = forsterite).
- Projection (from a phase)
- Mapping a composition onto a plane along the line through the projection phase; equivalent to adding or removing that phase.
- Weight-per-cent projection
- Coordinates are weights of the vertex compounds, normalised to 100 — the convention of O'Hara's figures.
- Normative mineral / norm
- A standard anhydrous mineral calculated from the analysis (CIPW), not necessarily present in the rock.
- Critical plane of silica undersaturation
- Cpx–Ol–Pl; separates nepheline-normative from hypersthene-normative compositions.
- Plane of silica saturation
- Cpx–Opx–Pl; separates quartz-normative from olivine-normative compositions.
- Thermal divide
- A join or plane with a temperature maximum that liquids cannot cross by crystallisation.
- Control plane
- A plane through phases that a liquid or residue is saturated in; compositions controlled by those phases move within it.
- Residuum (lherzolite, harzburgite)
- The solid left after partial melting: olivine + two pyroxenes (± spinel/garnet) for lherzolite, olivine + orthopyroxene for harzburgite.
- Pseudo-component
- A convenient composition such as C2S3 or A2S3 used as a triangle vertex, not a mineral.
- Condition number
- How strongly a projection amplifies analytical errors; large when the projection point is close to the target plane.
16. References
- Cross, W., Iddings, J. P., Pirsson, L. V. & Washington, H. S. (1902). A quantitative chemico-mineralogical classification and nomenclature of igneous rocks. Journal of Geology 10, 555–690.
- O'Hara, M. J. (1968). The bearing of phase equilibria studies in synthetic and natural systems on the origin and evolution of basic and ultrabasic rocks. Earth-Science Reviews 4, 69–133.
- Tilley, C. E., Yoder, H. S. & Schairer, J. F. (1963). Melting relations of basalts. Carnegie Institution of Washington Year Book 62, 77–84.
- Tilley, C. E., Yoder, H. S. & Schairer, J. F. (1964). New relations on melting of basalts. Carnegie Institution of Washington Year Book 63, 92–97.
- O'Hara, M. J. & Yoder, H. S. (1967). Formation and fractionation of basic magmas at high pressures. Scottish Journal of Geology 3, 67–117.
- Yoder, H. S. & Tilley, C. E. (1962). Origin of basalt magmas: an experimental study of natural and synthetic rock systems. Journal of Petrology 3, 342–532.
This manual describes TetraScope as distributed with its test suite; the numbers quoted in §§8 and 12 are produced by that suite.
Created by Kishan Tiwari (ORCID 0000-0003-0014-914X).