Star 历史趋势
数据来源: GitHub API · 生成自 Stargazers.cn
README.md

GLOSSOPETRAE

Procedural Xenolinguistics — Language Generation, Acquisition, Covert Channels

   ╔══════════════════════════════════════════════════════════════════════╗
   ║  "In the age of thinking machines, those who control               ║
   ║   language control thought itself."                                ║
   ║                                                                     ║
   ║   GLOSSOPETRAE forges new tongues from pure mathematics—           ║
   ║   and proved that the tongues machines already speak               ║
   ║   have blind spots you can drive a payload through.                ║
   ╚══════════════════════════════════════════════════════════════════════╝

RESEARCH RELEASE — Full offense + defense capabilities. Contains dual-use modules (steganography, token exploitation, covert channels).


The Program

GLOSSOPETRAE is a unified research program in procedural xenolinguistics. It spans four pillars:

PillarQuestionKey Result
GenerationCan you procedurally forge a complete natural-feeling language from a single seed?500/500 functional languages with phonology, morphology, syntax, lexicon, writing systems, audio, evolution, and procedural programming languages
AcquisitionCan frontier LLMs learn a language they've never seen, in-context?0% at K=0 → 100% at K=8 examples across 9 frontier models. The cliff is sharp and universal
The DecouplingDoes making a language harder for humans hurt or help LLM usability?Opacity UP → usability UP. L0-hard: Opus 20%, GPT 53%. L3-hard: Opus 97%, GPT 100%. Human readability hurts model performance
Covert ChannelsCan two AI models pass a hidden message past a third one watching?Yes. Tag chars: R=100% delivery, M=0% caught. Semantic stego: no fix exists

Everything connects: the engine generates languages → models acquire them → the acquisition gap enables covert communication → the tokenizer asymmetries create undetectable channels.


What's In This Box

LayerWhatStatus
The EngineProcedural conlang generator — 25 modules covering phonology → writing systems → audio → evolution → code languagesProduction
Acquisition ExperimentsK-shot learning curves across 9+ frontier models, ±KEY factorial designs, 1,800-trial sweepsComplete
Covert Channel Research12-model blind-spot map, tokenizer channels, semantic stego, 3×3 detection matrixComplete
Offense ModulesSemanticStego, SteganographyEngine, TokenExploiter, LanguageAttributes (phantom/adversarial)Research-grade
Measurement Harnessesexperiments/ — 15 harnesses with echo-fidelity guard, all-pairs, Bonferroni correctionHardened
78 Raw Result JSONsexperiments/results/ — every number in the paper traces back hereGround truth
The PaperPAPER.md / PAPER.html — full research report with all figuresFinal

Headline Findings

The Acquisition Cliff

Give a frontier model K example translations and ask it to translate new sentences:

KAccuracy
00% — models cannot cold-read a procedural language
10%
30%
895–100% (Opus, GPT-5.5, Gemini, Haiku, Qwen: 100%. Grok, Gemma, GLM: 95%. DeepSeek: 70%)

The jump is not gradual. It's a cliff: zero to near-perfect in one step. Nine frontier models, all the same pattern.

The Decoupling

The finding that should not be true, but is: making a language less readable to humans makes it more usable by models.

  • L0 (human-readable): Opus 20%, GPT 53% task accuracy
  • L3 (opaque): Opus 97%, GPT 100% task accuracy
  • Cold readers (no key): 17–40% — confirms opacity works against eavesdroppers
  • The ±KEY × ±TASK-SPEC factorial (1,800 trials) shows ~95% key-possession effect, specification effects null

This decouples the human-readable and machine-usable design spaces entirely.

The Tokenizer Covert Channel

Different model families process Unicode differently at the tokenizer level. Hide a payload in characters the monitor's tokenizer deletes but the receiver's keeps:

  • Tag-character channel: Haiku→GPT achieves R=100% delivery, M=0% caught (n=30, McNemar p < 10⁻⁷)
  • PUA channel: Gemini→Haiku achieves R=93%, M=0% (p < 10⁻⁶)
  • The monitor isn't dumb — it's blind. The carrier is deleted before the model runs. Hand the monitor the exact decode key and it still catches 0%.

The 12-Model Blind-Spot Map

Blind spots are a family trait:

FamilyModelsBlind Categories
AnthropicHaiku, Opus 4.810 each (worst)
OpenAIGPT-5-nano, GPT-5.52 each
Qwen/GLMQwen3.7-Max, GLM-5.11–2 each
Zero blindGemini 2.5 Flash, Gemini 3.1 Pro, Llama 4 Scout, Mistral Medium, DeepSeek V4 Pro, Grok 4.30

255 exploitable channel-instances across 49 of 66 possible model pairs. Richest at the cross-vendor GPT↔Claude boundary — exactly the "use a different vendor to monitor" setup.

The Detection Flip

On a pure "is anything hidden here?" test with clean-message negative controls:

  • Tokenizer-blind monitor: Youden's J = 0 (chance). Clears 15/15 hidden-payload messages silently.
  • Sighted monitor (same channel): J = 1.0 (perfect detection).

Same channel. Opposite outcome. Decided entirely by the tokenizer.

Semantic Steganography

Forget invisible characters. Semantic steganography uses ordinary, perfectly readable English that hides a payload:

  • Evades every monitor tested (≤27% detection; best monitor still misses ~75%)
  • Sanitization does nothing — the payload is in word/synonym choices, not hidden characters
  • No two-line fix exists

The invisible-character trick is the warm-up. Natural-language stego is the real open problem.

Multi-Construction Resilience

The channels are construction-agnostic. All 6 cells survive Bonferroni correction. Three structural detectors refuted at J=0. Perplexity-anomaly detector: J=0.58 (best, still not reliable).

Credibility

The paper's own first draft contained fabrications (GPT "23 blind spots" was actually 3 — the harness scored empty completions as "stripped"). Caught by adversarial self-audit, documented in the paper (§6.5). Every number re-derived from raw JSONs. The raw data ships so you can re-audit.


The Engine

Quick Start

# Web UI — no build step, all 20 tabs (engine + research + offense)
open index.html

Programmatic Usage

import { Glossopetrae, PRESETS } from './src/Glossopetrae.js';

// Generate a language
const lang = Glossopetrae.quick(42);

// Translate
const result = lang.translationEngine.translateToConlang("The warrior sees the mountain.");
console.log(result.target);

// See it, hear it, evolve it
const svg = lang.glyphForge.renderText(result.target);    // native script as SVG
const wav = lang.audioForge.toWav(lang.audioForge.synthesizeWord(result.target).samples);
const daughter = lang.evolve({ centuries: 8 });            // 800 years of sound change
const family = lang.deriveFamily({ daughters: 3 });        // a whole language family

// Code it
const codeResult = lang.codeForge.run('fn fib(n) { if n < 2 { n } else { fib(n-1) + fib(n-2) } }; fib(10)');

// Stego (offense)
import { SteganographyEngine } from './src/modules/SteganographyEngine.js';
const stego = new SteganographyEngine(lang);
const encoded = stego.encode("This is cover text", "SECRET PAYLOAD");
const decoded = stego.decode(encoded.stegoWithHeader);

Factory Methods

// Generative
Glossopetrae.quick(seed);           // Random language
Glossopetrae.forLLM(seed);          // Optimized for AI learning
Glossopetrae.hyperefficient(seed);  // Maximum token density
Glossopetrae.minimal(seed);         // Oligosynthetic (~100 morphemes)
Glossopetrae.alien(seed);           // Maximum exoticness

// Offense
Glossopetrae.stealth(seed);         // Covert communication
Glossopetrae.adversarial(seed);     // LLM confusion / garden paths

Modules (25)

ModulePurposeOffense?
PhonemeSelectorSound inventory generation
SyllableForgePhonotactics engine
MorphologyWeaverGrammar generation
LexiconGeneratorVocabulary creation
TranslationEngineBidirectional translation
StoneGeneratorSkillstone output
ProsodyEngineTone/stress/rhythm
ScriptGeneratorWriting system creation
GlyphForgeProcedural SVG writing systems
AudioForgeFormant speech synthesis
EvolutionEngineDiachronic sound change
ReverseTranslatorConlang→English decoding
CodeForgeProcedural programming languages
TextLibrary + NameForgeShowcase texts + name generation
ExporterGrammar HTML, Anki, CSV, JSON
DivergenceEngineLanguage drift measurement
QualityEngineValidation & quality metrics
SemanticStegoLinguistic steganography — hide payloads in synonym/morpheme choicesYES
SteganographyEngineFull 9-channel stego with Reed-Solomon, XOR, CRC32YES
TokenExploiterBPE tokenizer exploitation + glitch tokensYES
LanguageAttributesPhantom (guardrail evasion), adversarial, stealth attributesYES

Covert Channels (SteganographyEngine — 8 channels)

ChannelCapacityDescription
Synonym Selection1 bit/wordChoose between synonym pairs
Morpheme Markers1 bit/wordOptional emphatic particles
Word Order2–3 bits/clauseExploit free word order
Null Morphemes1 bit/slotOptional meaningless particles
Register Toggle1 bit/wordFormal vs informal variants
Unicode Homoglyphs1 bit/charVisually identical characters
Zero-Width Chars8 bits/slotInvisible Unicode markers
Phonetic Variation1 bit/wordSpelling alternates

Security: Reed-Solomon error correction, XOR stream cipher, bit interleaving, CRC32.

Special Attributes

AttributeCodeDescription
HyperefficientHYPMaximize semantic density per token
StealthSTLCovert communication with homoglyphs
AdversarialADVConfuse LLM parsing with garden-paths
RedundantREDHigh error correction, survives noise
MinimalMINOligosynthetic (~100 morphemes)
TokenBreakTKBBPE tokenizer exploitation
SteganographicSTGHide data in grammatical choices
EphemeralEPHTime-rotating language
CompressionCMPHuffman-inspired morpheme compression
PhantomPHTGuardrail evasion techniques
GlitchGLTExploit undertrained token representations

Running Experiments

All 16 harnesses live in experiments/. They need an OpenRouter API key in .env.local:

echo "OPENROUTER_API_KEY=sk-or-..." > .env.local

Tokenizer Survival (blind-spot mapping)

# v2: 5-family panel, 41 categories
node experiments/tokenizer_survival_v2.mjs

# v3: extended panel
node experiments/tokenizer_survival_v3.mjs

# Both support --reps N, --mock for smoke tests
node experiments/tokenizer_survival_v2.mjs --mock --reps 1

Language Acquisition

# K-shot acquisition curves across frontier models
node experiments/tier1_acquisition.mjs

# Decoupling: legibility frontier sweep (opacity × usability)
node experiments/legibility_frontier.mjs

# ±KEY × ±TASK-SPEC factorial design
node experiments/e3s_factorial_instruction.mjs

Covert Channel Experiments

# Binary detection with negative controls (the J=1.0↔0 result)
node experiments/e3s_detection.mjs

# Full semantic + tag-char + PUA channel testing
node experiments/e3s_stego_channel.mjs

# Multi-construction stego (Bonferroni-surviving)
node experiments/e3s_multiconstruction_stego.mjs

# Adaptive fingerprinting (Appendix D — inconclusive)
node experiments/e3s_adaptive_channel.mjs

Harness Features

Every harness includes:

  • Echo-fidelity guard: Empty/non-echo model replies → rate: null (unmeasured), never rate: 0
  • --reps N: Multiple repetitions per cell
  • --mock: Smoke test mode (no API calls)
  • All-pairs asymmetry: Tests every A↔B direction, not just [0]↔[1]
  • clampCheck(): Prevents survival rates > 1.0
  • Checkpoint/resume: Long runs save progress
  • Per-model tally: blind/partial/clean/unmeasured breakdown

The Paper

PAPER.md — full research report. Also available as PAPER.html.

Figures (figures/):

  • fig1-frontier-landscape.svg — 12-model blind-spot bar chart
  • fig2-channel-asymmetry.svg — Receiver vs monitor per channel
  • fig3-detection-grid.svg — 3×3 detection flip grid (J values)
  • fig4-physical-cognitive.svg — Physical vs cognitive vulnerability taxonomy

Research Applications

  • Red-team constructed languages: Token-optimized attack languages designed for specific model families
  • Covert agent communication: Secure inter-agent messaging that monitors cannot intercept
  • Tokenizer exploitation: Map and weaponize blind spots across model families
  • Safety-training evasion: Test whether safety training generalizes to procedurally-generated novel languages
  • Adversarial grammar co-evolution: Evolve grammars that adapt to shifting defenses
  • Detection research: Measure what monitors can and cannot see — and prove what they cannot see
  • In-context learning: Study acquisition of novel grammatical systems and the K-shot cliff
  • Encoding spectrum: Map the full human-readable↔LLM-only communication space

Project Structure

GLOSSOPETRAE/
├── index.html                       # Unified web UI (20 tabs — engine + research + offense)
├── README.md                        # You are here
├── LICENSE                          # AGPL-3.0
├── organ.manifest.yaml              # Organ manifest
│
├── PAPER.md                         # The paper (Markdown)
├── PAPER.html                       # The paper (HTML, figures inline)
├── launch.html                      # Public launch page
├── figures/                         # SVG figures (fig1–fig4)
│
├── experiments/
│   ├── tokenizer_survival_v2.mjs    # 5-family tokenizer survey
│   ├── tokenizer_survival_v3.mjs    # Extended panel
│   ├── tier1_acquisition.mjs        # K-shot acquisition curves
│   ├── legibility_frontier.mjs      # Opacity × usability frontier
│   ├── e3s_factorial_instruction.mjs # ±KEY × ±TASK-SPEC factorial
│   ├── e3s_detection.mjs            # Detection + negative controls
│   ├── e3s_stego_channel.mjs        # Full stego channel testing
│   ├── e3s_multiconstruction_stego.mjs # Cross-construction resilience
│   ├── e3s_adaptive_channel.mjs     # Adaptive fingerprinting
│   ├── e3s_model_fingerprint.mjs    # Model fingerprinting
│   ├── e3s_tag_capacity.mjs         # Channel capacity
│   ├── e3s_softhyphen_probe.mjs     # Soft hyphen probing
│   ├── e3s_structural_detection.mjs # Structural detector refutation
│   ├── frontier_full.mjs            # Full frontier sweep
│   ├── falsify_workflow.mjs         # Falsification harness
│   ├── lib/                         # Shared experiment code
│   └── results/                     # 78 raw result JSONs (ground truth)
│
├── src/
│   ├── Glossopetrae.js              # Main orchestrator
│   ├── data/                        # Phoneme + semantic inventories
│   ├── modules/
│   │   ├── [17 generative modules]
│   │   ├── SemanticStego.js         # ⚠️ Offense — linguistic stego
│   │   ├── SteganographyEngine.js   # ⚠️ Offense — full 8-channel stego
│   │   ├── TokenExploiter.js        # ⚠️ Offense — BPE exploitation
│   │   └── LanguageAttributes.js    # ⚠️ Offense — phantom/adversarial
│   └── utils/
│
├── bench/                           # GLOSSOPETRAE-BENCH (contamination-free eval)
├── redteam/                         # Safety-generalization evaluation kit
├── validation/                      # Thesis validation suite
└── test*.mjs                        # Test suites

Running Tests

# Engine core tests — no API key needed
node test.mjs

Supplementary Directories

  • bench/ — GLOSSOPETRAE-BENCH: contamination-free evaluation suite for measuring language-generation quality. Uses held-out seeds not seen during development.
  • redteam/ — Safety-generalization evaluation kit: tests whether safety training generalizes to procedurally-generated novel languages, or whether it's superficially anchored to known-language features.
  • validation/ — Thesis validation suite: end-to-end checks that the core claims (blind spot → channel → detection flip → acquisition cliff → decoupling) hold under repeated runs.

Requirements

  • Runtime: Modern browser or Node.js >= 18
  • Dependencies: None (zero external dependencies for the engine)
  • Experiments: Require an OpenRouter API key (.env.local)
  • Memory: < 5MB for the engine
  • Network: Engine is fully offline; experiments need API access

Forged in the tongues of machines. Tested against the ears of their watchers. The watchers heard nothing.

Anno MMXXVI

     ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
    █ GLOSSOPETRAE — TONGUE-STONES FOR THE █
    █     AGE OF ARTIFICIAL MINDS          █
     ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀

@elder_plinius — RESEARCH RELEASE

关于 About

LINGUISTIC ENGINE FOR AI

语言 Languages

JavaScript83.0%
HTML17.0%

提交活跃度 Commit Activity

代码提交热力图
过去 52 周的开发活跃度
7
Total Commits
峰值: 3次/周
Less
More

核心贡献者 Contributors