ugrad · kbatch · geometric input for the MCP era
Live Geometry · Shadow Paths · Chart Geometry · MCP for Agents
Path-first typing geometry across 15 keyboard layouts (shadows), with strain / efficiency / travel, stenoSTRIP paths, letter atoms, pattern matrices, language capsules — plus 1141 chart geometry packs (title-path → BPM · metrics · MIDI · qbpm) — and a browser MCP tool surface your agent can call today.
// World-language stack for agents
const wl = await fetch("/data/world-language/manifest.json").then(r => r.json())
const arena = await fetch("/data/world-language/arena-lang-board.json").then(r => r.json())
const axes = await fetch("/data/world-ranking/axes.json").then(r => r.json())
// axes.axes finds key==="translation" · arena.rows ranked by arena_pct
// Canonical charts: https://lang.ugrad.ai/charts/
// Hub: https://kbatch.ugrad.ai/world-language
too-sweet-hozier
Open Lyrics lab →
Staff catalogue →
qbpm ↗
MCP chart_lookup
data/world-ranking/axes.json (mirrored as axes-live.json).
Prefer live JSON over memorized scores. Niche lead: multi-layout path geometry.
World ranking →
axes.json
collaborators.json
Corpus catalog →
// Prefer live axes
const axes = await fetch("/data/world-ranking/axes.json").then(r => r.json())
// rung: R7.0-archival-litmus · museums dialed M4.0-declaration-codex
// min/mean from axes.axes[].scoreToday
// Health (no board)
await kbatchDict.mcp("kbatch_lettergrid_ping")
await kbatchDict.mcp("kbatch_lettergrid_rubik") // Shadow Rubik bind + all-13 tour
// → { ver, pathways, tour.summary.visitOrderStr, tour.primary.directHopSumC: 83.5 }
// Tour pack: /data/declaration/rubik-all-language-path.json
// Stair (dictionary iteration): /data/world-path/rubik-stair-next.json
// Pure C (DOJO-true) · en→is→de→fr→it→es→nav→oj→ar→hi→el→zh→chr · Σc=83.5
// AI START — full Rubik language solve (DOJO axes + pure-C path + stair demos):
await kbatchDict.mcp("kbatch_rubik_language_solve")
// → pureC.readyFromEn 121.6 · demos liberty/water/path… filled 13/13 · agent.start[]
await kbatchDict.colossusFull() // same pack inside axes pipe
// Multilingual meaning solve (instant forms + C rank):
await kbatchDict.mcp("kbatch_concept_solve", { q: "liberty", from: "en", mode: "ready" })
// All-language Rubik stair (en→is→de→fr→it→es→nav→oj→ar→hi→el→zh→chr):
await kbatchDict.mcp("kbatch_concept_solve", { q: "liberty", from: "en", mode: "stair" })
// → { stair:[{n,lang,form,missing,cFromSource}…], filled, of:13, fillPct }
await kbatchDict.mcp("kbatch_concept_stair_walk", { concepts: ["liberty","water","path"] })
// Mesh: /data/concepts/mesh.json · stair-instant.json · docs/CONCEPT-MESH-SOLVE.md
// DOJO: https://kbatch.ugrad.ai/dojo/#world-axes
// → { ver, masterGlyphs: 6235, layersAt: {12:44}, tools: … }
// Letter-Grid pipe (static HTTP OK)
await kbatchDict.mcp("kbatch_lettergrid_colossus", { depth: "light" })
await kbatchDict.mcp("kbatch_lettergrid_export_training", { format: "jsonl" })
await kbatchDict.mcp("kbatch_lettergrid_finale", { includePath: true })
// Live step/play: open letter-grid · letterGrid.nextGlyph() / playRound()
// Cage litmus (static HTTP — no browser required)
await kbatchDict.mcp("kbatch_cage_litmus_quiz", { answers: false })
await kbatchDict.mcp("kbatch_cage_litmus_verify", { answers: [/* {id, answer} */], strict: true })
await kbatchDict.mcp("kbatch_cage_litmus_grade", { profile: "all" })
// Browser page APIs still work
// letterGrid / __letterGridApi · __cageLitmusApi.verify([{id,answer}])
export colossus schema
ugrad-colossus-v1 · grows every turn · DOJO handoff.
μgrad hub →
R0 terminal →
KBatch DOJO →
// ugrad-r0 (local :8765 or mueee)
exec("train"); exec("tensor"); exec("export colossus");
// window.UgradColossus.exportColossus() · exec("export dojo")
// hub: /ugrad-hub.html · schema ugrad-colossus-v1
FACT · FICTION (National Treasure lane) · STONE_TRAP.
Grok live trial: cage-grade 12/12. See Declaration lab for MCP tools.
Workspace →
game pack
Cage MCP docs
Letter-Grid MCP
DOJO geometry deep
// Antiquity mesh (static JSON)
const mesh = await fetch("/data/antiquity/discovery-projects.json").then(r => r.json())
// mesh.headlineDiscoveries · mesh.projects · status: live|scaffold|open
const sak = mesh.projects.find(p => p.id === "xultun-sak-tahn-waax")
// → Sak Tahn Waax · White-chested Fox · composePath · citations
const names = await fetch("/data/antiquity/scholar-names.json").then(r => r.json())
const lex = await fetch("/data/antiquity/lexicon-seed.json").then(r => r.json())
// path fuel: lex.samplePhrases · e.g. "sak tahn waax white chested fox"
// Live siblings still primary surfaces
// Declaration: /labs/declaration-digital-edition/
// Codex Regius: fornevercollective codex-regius-digital book-viewer
kbatch_calibrate_check then
kbatch_recalibrate to reload system prompt + tool list + doctrine fingerprint.
train-pack.json →
system-prompt.md
few-shot.jsonl
HTTP MCP
POST /api/mcp
{ "tool": "kbatch_recalibrate", "args": { "reason": "session-drift" } }
// browser
await kbatchDict.mcp("kbatch_freya_convert", { value: 1, from: "ly", to: "km" })
await kbatchDict.mcp("kbatch_math", { op: "mul", operands: [1.414, 3.14159] })
await kbatchDict.mcp("kbatch_calibrate_check", { toolNames: [...] })
kbatch_freya_convert · kbatch_freya_units · kbatch_math
(whitelist ops, no free eval). Full UI stays on Freya; agents call tools here.
Open Freya →
Full converter →
Living books layouts →
Open deities →
For AI / LLMs / MCPs
Most MCP tools are CRUD. KBatch exposes geometric + ergonomic + multilingual linguistic primitives agents can rank, compress, and cite.
| Tool | What the agent gets |
|---|---|
kbatch_analyze | Multi-level path · metrics · encodings |
kbatch_lookup | Word card + layout placements |
kbatch_pipe | caption / llm_prompt / jax stream channels |
kbatch_export_jax | Feature vectors for training |
kbatch_letter_atom | Letter on all 15 boards |
kbatch_steno_path | Layout-agnostic steno path unit |
kbatch_matrix | Pattern matrix × layouts |
kbatch_colossus | Full DOJO snapshot |
kbatch_shadows | 15-layout shadow strings + scores |
kbatch_path_rank | Ranked ergonomic layout alternatives |
kbatch_chart_lookup | 1141 chart geometry packs · title-path · BPM · async |
kbatch_freya_convert | FreyaUnits convert (ly↔km, °C↔K, …) · freya.qbitos.ai |
kbatch_math | Safe math ops · const · list |
kbatch_calibrate_check / kbatch_recalibrate | Drift detect · full system rebind |
kbatch_llm_train_pack | Train-as-tool export for SFT/RAG/agents |
kbatch_deity_lookup | Open Wikidata deities (no Turner) |
kbatch_book_stub | Living-books / Gutenberg catalogue stubs |
Chart geometry · kbatch_chart_lookup
// Async — catalog + analysis pack (title-path, rights-safe)
await kbatchDict.mcp("kbatch_chart_lookup", {
query: "too sweet hozier",
level: "caption",
include: ["path", "musica", "metrics", "steno"]
})
// Metadata capsules (25) · flowClass contrast
await kbatchDict.chartLookup({ listCapsules: true })
await kbatchDict.chartLookup({ capsule: "chart-flow-dense", limit: 3 })
await kbatchDict.chartLookup({ flowClass: "glide", limit: 3 })
await kbatchDict.chartLookup({ year: 2024, numberOne: true, limit: 3 })
// Chain: hit.path.text → kbatch_steno_path / kbatch_export_jax / qbpm-live
Return shape: hits[] with slug, flowClass, metrics.bpm,
path.text (title-path), plus contrast dense/balanced/glide demos.
Capsules: capsules.json.
Quickstart (browser)
// On https://kbatch.ugrad.ai/dojo/ (or Dictionary)
kbatchDict.mcp("kbatch_analyze", {
text: "type once understand everywhere",
level: "sentence",
layout: "qwerty"
})
kbatchDict.mcp("kbatch_path_rank", {
text: "ergonomic path",
baseLayout: "qwerty",
limit: 6
})
// Convenience
kbatchDict.analyze("hello", { level: "word" })
kbatchDict.colossus(["the", "quantum", "flow"])
kbatchDict.matrix()
Claude Desktop / Cursor (sketch)
Today: load DOJO in a browser/computer-use step and call window.kbatchDict.mcp.
Next: remote MCP host at kbatch.ugrad.ai/mcp for native config.
{
"mcpServers": {
"kbatch": {
"url": "https://kbatch.ugrad.ai/mcp",
"transport": "sse"
}
}
}
Remote host is planned — browser tools ship now. See docs/MCP.md.
Steno path · what it means here
Steno path / stenoSTRIP is a modern, layout-agnostic geometric path on physical key positions — not traditional court-reporter steno. It carries efficiency, strain, rhythm, blank-coin allotment, and can bridge braille / morse / music encodings. Same path → different shadows on QWERTY, Dvorak, Colemak, AZERTY, …
- Quantum / multi-state paths (ranked alternatives for agents)
- Level-aware paths (word vs sentence vs caption compression)
- Flow / rhythm paths (1141 chart packs + DDR; flowClass dense/balanced/glide)
- Code / domain paths (planned capsules)
- Multimodal / Rubik origin paths (atlas + modalities)
Capsules
Modular, versioned layers on the spelling index — age, region, slang, theme — built with
npm run grow-registers:fetch. LLMs reference them when exports are clean JSON, versioned, and MCP-queryable.
Live
Age · region · theme · school/tech · city Mandarin vs formal
Next
Code/legal/medical · prompt-engineering · RAG training packs · accessibility depth
Universal
Best shadow path regardless of user layout — master capsule for agents
Data & exports agents love
- language-alphabet-matrix.json — atlas rows
- mcp/manifest.json — tool surface
- charts/index.json — 1141 world chart geometry packs (title-path)
- charts/corpus.json — batch stats (avgBpm · strain · efficiency)
- charts/capsules.json — 25 metadata chart-geometry capsules
- analyses/too-sweet-hozier.json — canonical #1 demo pack
- DOJO: Export matrix · atom · snapshot · Copy MCP tools
- Console:
kbatchDict.export/ page export bar (JSON · JAX · CSV · MD)
Roadmap · what’s next
- LIVE: Chart Geometry +
kbatch_chart_lookup· 1141 packs · 25 metadata capsules · flowClass seeds - Optional one licensed or PD full-lyric drop (rhyme proof)
- qbpm live graph polish + screenshot on hub
- Remote MCP host (Workers) for Claude Desktop / Cursor
- Quantum multi-state path tool · code/prompt capsules · JAX Colossus dumps
Sponsor / partner
The geometric input layer for the MCP/LLM era — universal keyboard geometry + ergonomics · Chart Geometry Engine (1141 packs) · MCP tools · open atlas + capsules · qbpm orchestration for music collab.
Sponsor a licensed lyric drop — fund one rights-cleared full-text pack so we can prove rhyme/syllable geometry beyond title-path.
Or sponsor chart-data / MCP partner tiers below. Demo:
await kbatchDict.chartLookup({ query: "too sweet hozier" })
Data access
Matrix + chart-geometry capsules · early feeds · JAX packs
Capsule lab
Custom domain capsules (code, legal, medical, prompt patterns)
MCP partner
Co-branded tools, early remote MCP host, agent demos
Hardware
RSI/strain studies, firmware-friendly exports for ergo boards
Fit: AI tool / MCP hosts · keyboard/ergonomics hardware · accessibility & language tech · OSS grants · AI labs · crowdfunding.
Calls to action
- Integrate via MCP — call tools in the DOJO console
- Contribute a capsule — grow-registers + PR
- Sponsor the next steno path
- Join the mesh · mesh docs