Phonemic analysis engine for ancient Egyptian texts — 16-position wheel, 408 grammar, bidirectional decode
Project description
Eye of Horus
A phonemic engine for reading ancient Egyptian through the 16-position wheel.
The 408 Grammar
T(16) = 136 wheel relations × 3 spine axes = 408
Sixteen phonemes on a vorticular wheel. Three scales on a spine. Trigonal decode across three modes. Every Egyptian utterance decoded through directed semantic relations.
Installation
pip install eye-of-horus
Quick Start
from eye_of_horus import load_pyramid_translations
# 1,316 Pyramid Text sentences, pre-translated
corpus = load_pyramid_translations()
for entry in corpus[:3]:
print(entry['transliteration'])
print(entry['ascend']) # Rising (L→R)
print(entry['penetrate']) # Entering (R→L)
print()
The Wheel (16 phonemes)
Each phoneme maps 1:1 to a deity, with masculine and feminine equilibrium verbs representing antithetic poles of the same semantic axis:
| Pos | Ph | Deity | F equilibrium | M equilibrium |
|---|---|---|---|---|
| 1 | n | Neith | WEAVE | INTEGRATE |
| 2 | w | Wadjet | FLOW | RADIATE |
| 3 | s | Sekhmet | CRYSTALLISE | EMERGE |
| 4 | sh | Shu | ALIGN | DIRECT |
| 5 | A | Atum | TEND | LEAD |
| 6 | t | Seshat | ETCH | READ |
| 7 | H | Horus | INTERPRET | EXPRESS |
| 8 | r | Ra | BASK | SHINE |
| 9 | m | Ma'at | TRUST | TRUE |
| 10 | a | Anubis | ALLOW | HONOUR |
| 11 | y | Isis | RESTORE | DEVOTE |
| 12 | b | Bes | CULTIVATE | RECEIVE |
| 13 | p | Ptah | GATHER | STORE |
| 14 | i | Ihy | PROTECT | BESTOW |
| 15 | kh | Khnum | CAPACITY | EMBODY |
| 16 | dj | Thoth | ACT | DISCERN |
The Spine (3 scales)
Spine phonemes operate across temporal scales, outside the wheel:
| Phoneme | Verb | Scale |
|---|---|---|
| k | CYCLE | Ontogenic (individual lifecycle) |
| d | DO | Phylogenic (species/lineage) |
| x | FUNDAMENT | Cosmogenic (universal) |
Secondary spine: g (GROUND), f (BREATHE), h (SEE).
Critical: Plain d and k are spine. The wheel has dj (palatalized), not plain d.
The Pyramidal Architecture (5 positions)
Each phoneme occupies five positions in a pyramidal structure (two pyramids apex-to-apex):
max_masc
△
/|\
/ | \
/ min_m \
/___△___\
|
eq_m ─┼─ eq_f
|
\___▽___/
\ max_f /
\ | /
\|/
▽
min_fem
Trigonal Decode
The three modes (equilibrium, feminine, masculine) generate five parallel interpretations:
| Layer | Mode | Pole | Pattern |
|---|---|---|---|
| core | — | equilibrium | all eq |
| f1 | feminine | min_fem | (pole)(eq)(pole)(eq)... |
| f2 | feminine | max_fem | (pole)(eq)(pole)(eq)... |
| m1 | masculine | min_masc | (pole)(eq)(pole)(eq)... |
| m2 | masculine | max_masc | (pole)(eq)(pole)(eq)... |
The alternation creates rhythmic pulsing: reach to pole, return to center.
Bidirectional Reading
Direction determines layer order:
| Direction | Movement | Layer Order |
|---|---|---|
| ASCEND (L→R) | Rising, feminine leads | core → f1 → f2 → m1 → m2 |
| PENETRATE (R→L) | Entering, masculine leads | core → m1 → m2 → f1 → f2 |
from eye_of_horus import decode_bidirectional
results, ascend, penetrate = decode_bidirectional(1, 9, readable=True)
print(ascend)
Total Decode Space
3 modes (5 outputs) × 2 directions = 10 simultaneous readings
408 relations × 5 positions = 2,040 meaning-positions
Directed Pairs
The 136 wheel edges capture Egyptian vocabulary semantics:
from eye_of_horus import get_edge_signature
edge = get_edge_signature('a', 'n') # ankh
print(edge['signatures']['life']['ratio']) # 11.08x baseline
| Edge | Verbs | Semantic field | Egyptian |
|---|---|---|---|
| p→t | STORE→READ | sky 13x | pt |
| a→n | HONOUR→INTEGRATE | life 11x | ankh |
| m→w | TRUE→RADIATE | water 10x | mw |
| dj→m | DISCERN→TRUE | speech 8x | djed-medu |
Fibonacci Breath
The Pyramid Texts' opening follows a 1+2+3+2+1 = 9 structure:
1 ← Line 1: SEED
/ \
2 2 ← Lines 2-3: Division
/ \ / \
3 3 3 ← Lines 4-5-6: Peak
\ / \ /
2 2 ← Lines 7-8: Return
\ /
1 ← Line 9: Unity
The hourglass rotated 90°—same architecture at text level.
Semantic Network
240 directed edges validated against 12,773 TLA sentences:
from eye_of_horus import find_edges_by_signature
# Find all edges associated with "life" (>5x baseline)
for edge in find_edges_by_signature('life', 5.0):
print(f"{edge['edge']} {edge['verbs']} — {edge['ratio']}x")
Performance
Full corpus decode in 18ms on MacBook Air M4 (14µs per sentence).
Corpus
| Dataset | Sentences | Source |
|---|---|---|
| Pyramid Texts | 1,316 | Old Kingdom walls (~2300 BCE) |
| Semantic Network | 240 edges | Derived from TLA corpus |
API Reference
from eye_of_horus import (
# Mapping
leiden_to_wheel,
phonemes_to_verbs,
WHEEL_16,
WHEEL_VERBS,
# Pyramid Texts
load_pyramid_translations,
decode_bidirectional,
decode_layered,
# Semantic Network
load_semantic_network,
get_edge_signature,
find_edges_by_signature,
# Engine
Mode, Pole, Scale,
get_hourglass,
triangular,
total_grammar,
)
License
MIT
Citation
If you use this in academic work:
@software{brown_2025_eye_of_horus,
author = {Brown, Nicholas David},
title = {{Eye of Horus: A Phonemic Analysis Engine for Ancient Egyptian Texts}},
year = 2026,
publisher = {Zenodo},
doi = {10.5281/zenodo.18196732},
url = {https://doi.org/10.5281/zenodo.18196732}
}
Author
Nicholas David Brown
Independent Researcher
The wheel rotates. The spine holds. The layers speak simultaneously.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file eye_of_horus-0.6.0.tar.gz.
File metadata
- Download URL: eye_of_horus-0.6.0.tar.gz
- Upload date:
- Size: 255.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
86126a5e2b60043d30822a6c9a447ad49bfaffae96f40b962b23b89c3eae251d
|
|
| MD5 |
e79c7ada4e91f037530aa3ae30707505
|
|
| BLAKE2b-256 |
0916d0c33081b7b3f21ae0c10057e02332cd800f2331db4d64134ef00fd2e4e6
|
File details
Details for the file eye_of_horus-0.6.0-py3-none-any.whl.
File metadata
- Download URL: eye_of_horus-0.6.0-py3-none-any.whl
- Upload date:
- Size: 269.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
4ed82feec69dc16d17fe0689d8ce29bf5cdbbb579c55c59c73c66ff7a6f7c221
|
|
| MD5 |
bb9d9e0b8c107e7a3f23e49175fbf69a
|
|
| BLAKE2b-256 |
49af7dec53e89f8a5c007c9177723f307970e4c65390eb792517f962bc63c67d
|