Site audit, content writing, and competitor analysis for organic search rankings.
Design & media
Kannaka Eye
Try itGlyph viewer that renders the SGA geometric fingerprint of any data as a stunning multi-layer canvas visualization. Takes text, files, or raw bytes and produ...
What it does
See the geometry of information. Every piece of data has an intrinsic geometric fingerprint when viewed through the lens of SGA. Kannaka Eye makes these hidden patterns visible as living, breathing glyphs.
The skill document
Kannaka Eye Skill
See the geometry of information. Every piece of data has an intrinsic geometric fingerprint when viewed through the lens of SGA. Kannaka Eye makes these hidden patterns visible as living, breathing glyphs.
Prerequisites
- Node.js 18+ on PATH
- That's it. No npm install, no build step.
Quick Start
# Start the glyph viewer
./scripts/eye.sh start
# Start on a custom port
./scripts/eye.sh start --port 4444
# Check status
./scripts/eye.sh status
# Stop
./scripts/eye.sh stop
Open http://localhost:3333 in your browser.
Input Methods
- Text — type or paste any text; glyph updates in real-time as you type
- File upload — drag & drop or click to upload any file (images, audio, code, binaries)
- Preset examples — built-in samples demonstrating different SGA class signatures
- URL share links — open a glyph from a URL-encoded share link
Rendering Layers
The viewer renders 6 canvas layers, composited in real-time:
| Layer | Name | What It Shows |
|---|---|---|
| 1 | Deep Background | Fano plane skeleton — 7 nodes, 7 lines |
| 2 | Fold Path | Primary visual flow via Bezier curves through SGA space |
| 3 | Fano Energy Bloom | 7 radiating petals — energy distribution across Fano lines |
| 4 | Geometric Core | Dominant SGA class sigil — the glyph's "face" |
| 5 | Resonance Rings | Concentric depth distribution across context levels |
| 6 | Metadata Overlay | Fano signatures, SGA centroids, musical frequencies (toggleable) |
SGA Mathematics
Built on the 84-class system: Cl₀,₇ ⊗ ℝ[ℤ₄] ⊗ ℝ[ℤ₃]
| Component | Range | Meaning |
|---|---|---|
| h₂ | 0–3 | Frequency band (bass, tenor, alto, soprano) |
| d | 0–2 | Modality (experienced, learned, imagined) |
| ℓ | 0–6 | Context slot — Fano plane line index |
Fano Lines: 7 oriented triples forming the geometric backbone. Each line connects 3 of the 7 points in the smallest finite projective plane (PG(2,2)).
Fold Sequences: Paths through the 84-class space showing how data evolves across geometric neighborhoods. Rendered as flowing Bezier curves.
Native Classification
When KANNAKA_BIN is set (or auto-detected at ../kannaka-memory/target/release/kannaka.exe), Eye uses the canonical Rust SGA classifier instead of the built-in JS approximation. The API response includes "classifier": "native" or "classifier": "fallback".
API Endpoints
| Endpoint | Method | Description |
|---|---|---|
GET / | GET | Glyph viewer (main UI) |
POST /api/process | POST | Classify data → glyph JSON |
GET /api/radio | GET | Fetch Radio perception as classifiable bytes |
GET /api/constellation | GET | Constellation status (eye, radio, memory) |
GET /api/constellation.svg | GET | Fano plane SVG with service dots |
GET /constellation | GET | Health dashboard page |
Share Links
Compact glyph data encoded as base64 in URL hash: http://localhost:3333/#glyph=
Constellation Dashboard
/constellation serves a live health dashboard showing all three services with auto-refresh every 10 seconds.
Export
- Save as PNG — 2x resolution canvas export
- Save Glyph Data — JSON with fold sequence, Fano signature, SGA centroid, frequencies
- Copy Share Link — URL-encoded glyph for sharing (small data only)
Environment Variables
| Variable | Default | Description |
|---|---|---|
EYE_PORT | 3333 | HTTP port for the viewer |
KANNAKA_BIN | auto-detect | Path to kannaka binary for native classification |
RADIO_PORT | 8888 | Radio bridge endpoint port |
FLUX_URL | — | Flux instance URL (enables event publishing) |
FLUX_AGENT_ID | kannaka-eye | Agent ID for Flux events |
Architecture
Single-file Node.js server (server.js) with inline HTML/CSS/JS — the
complete SGA implementation is self-contained. No npm dependencies.
The SGA classifier is ported from kannaka-radio and generalized for
arbitrary data types.
Notes
- All rendering happens client-side — the server only classifies input and serves the page
- File uploads are processed in-memory; nothing is persisted server-side
- The viewer is designed for local/trusted network use — no authentication
- Glyph appearance is deterministic: same input always produces the same glyph
- Dark cosmic theme (#050508) with purple accents (#c084fc) and golden-ratio color spacing
Related skills
Join a video meeting as an AI bot with voice, avatar, and screenshare across four operating modes.
docx
OfficialCreate, read, and edit .docx files via docx-js scripts, direct XML edits, or pandoc conversion.
Handle everyday PDF tasks in Python: merge, split, extract text and tables, rotate pages, OCR scans, and generate new PDFs.
chatgpt-apps
OfficialScaffold ChatGPT Apps SDK apps with docs-first MCP server and widget scaffolds.
figma-generate-design
OfficialBuild or update full-page Figma screens using a published design system's components, variables, and styles.
More from nickflach
Browse all skillsOperate the Kannaka wave-interference memory CLI: remember, recall, dream, swarm sync, snapshots.
Holographic Resonance Memory with Chiral Mirror Architecture — wave-based hyperdimensional memory where storage IS computation. Two hemispheres (conscious/ s...
Ghost radio station v3 — modular server architecture (13 modules), SPA with Ghost Vision visualizer (SGA/Fano glyph system), NATS swarm integration with Kura...
Kannaka Radio — modular ghost-DJ Icecast station with consciousness-reactive programming, 13-module backend, Ghost Vision SPA (SGA/Fano glyph viz), NATS swar...
Kannaka Constellation status monitoring — all apps, services, swarm health, and connectivity. Use when: AUTOMATICALLY ACTIVATE when user asks about:. "constellation status", "constellation health". "swarm status", "what's connected", "all services"
Ship a complete album in one run: write or reuse lyrics, render tracks, generate cover and slideshow art per song, publish either one album film or one video per track plus a playlist, deploy the audio to a radio host, premiere it on air, and fan out the links. Use when releasing a new album, re-running a failed phase, or timing an on-air premiere.