Research report · Vitki

Methods report, partially tested

The scan as a clue: with the 3D traces the language model fills in 60 percent of the hidden words correctly instead of 54, and shuffled traces make it worse

Viktor Kvant

Independent researcher · Vitki

Report version 1 · Published 31 October 2026 · Analysis in Vitki 3.0.0 · Licence CC BY 4.0

Timeline of the study: The trace reader was built and tuned on Sö 113 17 October 2026 · The sharp test was run 17 October 2026 · The test on real gaps was run 17 October 2026 · The test was recomputed without Sö 113 31 October 2026

Abstract

What has not been tested. The test was not locked in a plan, and the trace reader's settings were derived on one of the stones in the test. The test hides whole words of whole runes; at real damage the traces have been tested on only five stones, and there they can mislead.
Background and aim. When runes are damaged the runologist reads what remains on the stone, and a language model can suggest what stood there. The question here is whether what a 3D scan shows of the damaged runes makes the language model's suggestions better.
Material. 17 runestones in Södermanland that Laila Kitzler Åhfeldt has scanned in 3D and published openly, with their text in the Scandinavian Runic-text Database (Rundata); 157 words that could be tested.
Method. A trace reader reads in the scan's depth image which of the sixteen runes each detected rune can be, with a probability for each. Every whole word of two to six runes is hidden, and a language model trained without the stone fills it in: without traces, with the traces and with the same traces shuffled at random among the stone's positions. The comparison is paired, word by word.
Results. With the traces 59.9 percent of the words came out right, against 53.5 percent without them, p = 3.7 · 10⁻⁶. Shuffled traces gave 52.9 percent, worse than no traces at all. Without the stone on which the settings were derived: 63.4 against 57.2 percent. On five stones with real lacunae the chain worked, but at the most severe damage the traces misled.
Conclusion. What the scan shows helps the language model, and it helps because it reads the stone, not merely because it reduces the number of possible runes. At severe damage the traces should be shown to the reader and weighed in only once the reader has confirmed them.

Keywords: runestones, Viking Age, 3D scanning, damaged runes, language model, lacunae, restoration, Södermanland

The statistical terms are explained in plain words in the glossary.

Highlights

  • What a 3D scan shows of a rune helps a language model fill in the right word, and wrong clues make it worse.
  • The scan and the language can thus read a runestone together: one shows what can be seen, the other what can be said.
  • At severe damage the traces can mislead, so a human must see and confirm them first.

1. Introduction

Many runic inscriptions have damaged or lost runes. The runologist reads what remains on the stone, and the editions mark certain, uncertain and lost runes. In recent years language models have been used to suggest what stood in damaged inscriptions; the best known is Ithaca for Greek inscriptions (Assael et al. 2022). Laila Kitzler Åhfeldt has scanned a large number of runestones in 3D to study carving technique (Kitzler Åhfeldt 2002; 2015) and published the scans openly (Kitzler Åhfeldt 2024).

What is missing is a way of letting what the scan shows of a damaged rune steer what a language model suggests, and a test of whether it helps. The aim here is to report a trace reader that does so and to test it on hidden words on scanned stones.

2. Pre-registration: what was fixed in advance and what was not

The test was not locked in a plan. The trace reader was built in steps on 17 October 2026. Its two settings, how sharply the probabilities are distributed and what an extra part of a rune costs, were tried out on Sö 113 alone and then validated on Sö 134 and Sö 207, which had not been used. The sharp test was then fixed in the code, with three conditions and the same measures for all stones, and run once. Sö 113 is among the 17 stones; on 31 October the test was recomputed without Sö 113, with the same test. The test on real lacunae was run the same day as the sharp test.

3. Material

  • The scans. Laila Kitzler Åhfeldt, Swedish National Heritage Board, scanned the runestones of Södermanland with an ATOS scanner in the project Runristandets dynamik and published them on Zenodo under CC BY 4.0 (Kitzler Åhfeldt 2024). Of these, the 17 stones were used for which Rundata has a word text that can be paired with the detected runes. Runestones only.
  • The texts. Transliteration and normalisation from the Scandinavian Runic-text Database (Rundata).
  • The words. Every whole word of two to six runes: 197 word positions, 157 of them where all three conditions gave a result.
  • Real lacunae. Five stones from the same series with lacunae marked in Rundata: Sö 162, Sö 206, Sö 211, Sö 360, Sö 45.

4. Method

4.1 The trace reader. In the scan's depth image the runes' staves are found. Parts of the groove outside the staves, branches and bows, get a weight by how deep, elongated and long they are, since weathering and marks in the surface give shallow and short traces. Each detected rune is compared with the shape of each of the sixteen runes, with a cost for parts missing or too many, and the costs are turned into a probability per rune.

4.2 The language model. The project's model of runic text suggests words and weighs them by how common they are in the runic texts and in their context. It is trained without the stone being tested. The traces are put in softly: a rune the scan does not support becomes less probable, not impossible.

4.3 The test. Every whole word of two to six runes is hidden and filled in under three conditions: without traces, with the trace reader's probabilities for the word's runes, and with the same sets shuffled at random among the stone's positions. The last condition tests whether the traces help because they read the stone, or merely because they reduce the number of possible runes. The measures are the share of words that came out right and the probability of the right word, compared word by word with Wilcoxon's test for paired values.

4.4 Deviations. No plan existed, so no deviations can be reported. The recomputation without Sö 113 was made after the test.

5. Results

5.1 The sharp test. 157 words on 17 stones. Right word: 53.5 percent without traces, 59.9 percent with the traces and 52.9 percent with the traces shuffled. The probability of the right word: 0.379 without, 0.414 with and 0.365 with shuffled traces. The traces gave a higher probability than no traces, p = 3.7 · 10⁻⁶, and higher than shuffled traces, p = 2.1 · 10⁻⁸. Shuffled traces gave a lower probability than no traces, p = 0.009: wrong clues hurt. In plain words: with the scan's help about six hidden words in ten came out right instead of just over five, and when the clues were shuffled it was worse than without them.

Hidden words filled in correctly, percent

All 17 stones

Without traces53.5 %157 words
With the scan's traces59.9 %157 words
Traces shuffled52.9 %157 words

Without Sö 113

Without traces57.2 %145 words
With the scan's traces63.4 %145 words
Traces shuffled55.2 %145 words

The scale runs from 0 to 70 %. Source: Rundata; scans by Laila Kitzler Åhfeldt, Swedish National Heritage Board (CC BY 4.0).

5.2 Without Sö 113. Without the stone on which the settings were derived: 145 words on 16 stones, 57.2 percent right without traces, 63.4 with and 55.2 with shuffled; the traces against no traces p = 5.9 · 10⁻⁶, against shuffled p = 1.4 · 10⁻⁸.

5.3 The earlier step, on undamaged runes. Before the language model was connected, the trace reader was tested on its own on the detected runes of Sö 113, Sö 134 and Sö 207: the probability of the right rune was on average 0.077 against 0.066 when the text was shuffled (200 shuffles, p = 0.010), and the right rune came first in 19.3 percent against 13.8 (p = 0.015). The traces alone say little; together with the language they say more.

5.4 Real lacunae. On the five stones with real lacunae (7 words with lost runes) the chain from scan to suggestion worked. Where the staves are whole the traces kept the right words, such as stæin on Sö 211 and gæiRfastr on Sö 45. But where the damage was severe the traces misled: on Sö 162 they pulled stæin towards staf, and on Sö 206 they pulled the suggestion for a damaged name from karl to kumbl. The trace reader is tested on undamaged runes, and weathering at a lesion produces exactly the false branches it then reads.

6. Discussion

What the method can do. The scan's traces make the language model's suggestions better, and it is the traces themselves that help: the same sets in the wrong place make the suggestions worse. It is a first test that 3D scanning and a language model can read an inscription together, the scan showing what can be seen and the model what can be said.

Against earlier research. Ithaca uses only the text (Assael et al. 2022). Here what can be seen on the stone is added, as probabilities the model weighs in. The scans were made to study carving technique (Kitzler Åhfeldt 2015) and turn out to be a source for reading too.

Weaknesses, in order of weight.

  1. Hidden words are not damaged words. The test hides words whose runes are whole on the stone. At real damage the traces have been tested on only five stones, and there they can mislead.
  2. No locked plan. The test's conditions were fixed before the run, but without a plan with a checksum. The settings were derived on Sö 113, which is in the test; without it the result holds.
  3. One scanning series. All stones come from the same series in Södermanland, with the same scanner. Other scanners and other stones may give other traces.
  4. The measure of a right word. A word counts as right when it is the same word or inflection; the rule sometimes counts neighbouring forms as the same, which applies equally to all three conditions.

Where the method should not be used. On its own, at severe damage. There the traces should be shown to the reader of the stone and weighed in only once the reader has confirmed them; that is what Vitki does today.

What would overturn the method. If the traces gave no improvement on stones from other scanning series, or if they misled more often than they helped at real damage in a larger material.

7. Conclusion

With the 3D scan's traces the language model filled in 59.9 percent of the hidden words correctly against 53.5 percent without, and shuffled traces made it worse. The scan and the language can read a runestone together. At severe damage a human must confirm what the scan sees before it is weighed in.

Data and code

The analysis was made in Vitki 3.0.0, an open research tool for runestones (vitkirunor.se), with the changes made after that version up to 31 October 2026. No release with a DOI exists yet; when one is made, the report will refer to it. All code and the result files are openly available on GitHub under GPL-3.0.

  • The trace reader and the tests: utdata/sparlasare/ (the steps led_a.py–led_g.py; the sharp test led_f.py with the summary led_f_summering.json; the recomputation without Sö 113 utan_so113.py; real lacunae led_g.json).
  • The grooves: src/auto_grooves.py. The language model: src/runlm.py and src/textmodel.py.
  • The scans: Kitzler Åhfeldt 2024, doi:10.5281/zenodo.11951255.
  • The report is built by utdata/blogg/build/build_rapport_sparlasare.py, which reads every number from the result files and stops if anything disagrees.
  • In Vitki the traces are shown in the stone analysis under "What the scanner sees".

References

  • Assael, Y., Sommerschield, T., Shillingford, B. et al. 2022. Restoring and attributing ancient texts using deep neural networks. Nature 603, pp. 280–283.
  • Kitzler Åhfeldt, L. 2002. Work and Worship: Laser Scanner Analysis of Viking Age Rune Stones. Theses and Papers in Archaeology B:9. Stockholm: Stockholm University.
  • Kitzler Åhfeldt, L. 2015. Rune Carvers and Local Mobility. Viking and Medieval Scandinavia 11, pp. 143–182.
  • Kitzler Åhfeldt, L. 2024. 3D-data Runstenar i Södermanland / Runestones in Södermanland [dataset]. Swedish National Heritage Board. Zenodo. doi:10.5281/zenodo.11951255. CC BY 4.0.
  • Kvant, V. 2026. Vitki 3.0.0: method description (METHODS.md). https://github.com/Precatio/runes
  • Scandinavian Runic-text Database (Rundata). Department of Scandinavian Languages, Uppsala University. Open Database License.

Competing interests: none.

Funding: none.

Cite as

Kvant, V. (2026). The scan as a clue: with the 3D traces the language model fills in 60 percent of the hidden words correctly instead of 54, and shuffled traces make it worse. Research report (methods report), report version 1; analysis in Vitki 3.0.0. https://vitkirunor.se/en/forskningsrapporter/skanningen-som-ledtrad