Public landing page | GitHub repository | AI discovery file
Codex for creative coding: a chat-first Studio that helps you turn natural language, sound, and iteration into sketches, shaders, music, video compositions, and other creative-code artifacts.
Finish-line contract: Liminal is a creative cognitive system, not a narrowed proof wedge. See docs/FINISH_LINE.md for the domain, cognitive-organ, self-improvement, and model-assimilation contract.
Liminal is a model-agnostic creative coding system. You describe what you want — "a quiet moonlit garden with blue-green fireflies" or "glitch techno beats with feedback loops" — and Liminal helps choose a medium, generates the artifact, shows an inline/side-panel preview, and keeps the conversation open for revision. It works with any OpenAI-compatible API, Ollama, LM Studio, Anthropic-style providers, and GLM.
Liminal Studio is the artist-facing workbench: clean chat on the left, live preview on the right, and advanced receipts hidden until you ask for them. Bubble Tea remains the keyboard-first operator cockpit for deeper diagnostics and review actions.
Liminal is a model-agnostic creative coding studio for AI-assisted art, music, shaders, sketches, video compositions, and iterative creative systems. It combines a chat-first Studio, CLI, TUI, multi-agent critique, taste learning, creative-code generation, and self-improvement loops.
Public URL: kyanitelabs.github.io/liminal is the front door for search engines, AI assistants, and people evaluating the project before cloning it.
AI discovery: llms.txt provides a compact project summary for AI assistants and search crawlers.
Best-fit searches: AI creative coding studio, generative art agent, creative coding CLI, model-agnostic art generator, p5 GLSL Three.js AI tool, AI music coding, autonomous creative coding system, LLM art workbench.
# Install
pnpm install
# Configure (first time) — sets up ~/.liminal/config.json
liminal --configure
# Or use environment variables:
export LLM_API_KEY=your-key
export LLM_MODEL=MiniMax-M2.7
export LLM_BASE_URL=https://api.minimax.io/anthropic
# Generate
liminal --prompt "Create a calming blue particle system"
# Chat-driven creative session
liminal chat
# Studio — chat-first GUI workbench with same-screen preview
pnpm gui
# or: liminal studio
# Desktop Studio — Electron shell around the same local Studio
pnpm desktop
# package a local macOS app: pnpm desktop:package:mac
# Bubble Tea operator cockpit (requires Go >= 1.21)
pnpm tui
# or: liminal tui
# Read-only self-healing opportunity scan
liminal improve scanUse this path when you want to try Liminal as a product instead of asking an agent to babysit a proof run. It keeps the full creative surface in scope: p5, SVG, GLSL, Three.js, Hydra, Strudel, Tone.js, Revideo, HyperFrames, ASCII, Kinetic, and TextGen.
# 1. Install and build
pnpm install
pnpm build
# 2. Configure a provider (or run liminal --configure)
export LIMINAL_LLM_PROVIDER=glm
export GLM_API_KEY=your-key
# 3. Generate from natural language
liminal "a luminous blue-green particle garden"
# 4. Launch Studio for chat, same-screen preview, revision, and optional details
pnpm gui
# 5. Refresh the live provider receipt used by the market gate
pnpm run proof:live-provider-smoke -- --provider=glm --timeout-ms=120000
# 6. Sweep every creative domain with the active live provider
pnpm exec tsx scripts/proof/creative-copilot-proof.ts --provider=glm --all --timeout-ms=120000 --max-tokens=4096 --out=.omx/proof/market-all-domain-sweep
# 7. Ask the app for the plain answer
liminal market statusExpected current result: liminal market status prints Market readiness: READY after the live smoke receipt exists. The current launch-candidate proof also includes Studio p5 generation, same-screen preview, revision, microphone preview smoke, and permission-denied UX receipts summarized in docs/launch/launch-candidate-2026-04-30.md. Strudel patterns are saved with an external playback link, Tone.js saves playable HTML, HyperFrames saves HTML/GSAP composition artifacts, and Revideo code artifacts are generated; native rendered video/still capture is a separate follow-up.
Core loop: Generate → Evaluate → Iterate → Improve
Each iteration, Liminal:
- Builds an enhanced prompt from artistic knowledge, compost seeds, and archive examples
- Generates creative code in your chosen domain
- Evaluates output on technical and aesthetic dimensions
- Detects stagnation and adapts strategy
- Stops when quality threshold is met or max iterations reached
Key capabilities:
- 12 creative domains — p5.js, SVG, GLSL, Three.js, Hydra, Strudel, Tone.js, Revideo, HyperFrames, ASCII, Kinetic, TextGen
- CreativeBoard critique — 3-agent board (Minimalist / Expressionist / Technician) deliberates on output
- Swarm generation — 5 default runtime personas (Kai / Nova / Rex / Sam / Max) generate in parallel and vote on best
- Compost Mill — Digests past work into reusable creative seeds that improve every generation
- Self-healing harness — Observes failures, detects patterns, and proposes repair, hardening, and optimization work with verification targets
- Music theory engine — Euclidean rhythms, Markov chains, scales, chord progressions
- Voice/audio pipeline — Maps microphone/audio features to visual parameters in real time, with explicit permission-denied UX
- Aesthetic guardrails — Color harmony, layout, typography, and sound quality critics
- Liminal Studio — Chat-first GUI with same-screen preview, revision, optional detail receipts, and an Improve lane tucked behind disclosures
- LiminalCortex — Background executive that perceives system events, manages goals, and proposes improvements
- Emergence evaluation — Novelty scoring, temporal structure analysis, perturbation probes, weighted ensemble critic
- Taste learning + dreaming — Preference-informed generation, cross-modal dream recombinations, motif rehydration
- Autonomous Gardener — Background creative steward that manages taste, dreaming, and emergence automatically
- Model-agnostic — Works with any provider: MiniMax, OpenAI, Anthropic-style endpoints, Ollama, LM Studio, OpenRouter, GLM, Kimi, Moonshot, or a custom OpenAI-compatible endpoint
- Model Assimilation Protocol — Auditions new models by role/domain before promotion; see docs/MODEL_ASSIMILATION_PROTOCOL.md
- Circuit breaker — Automatic provider failover with smart routing
| Mode | Flag | Description |
|---|---|---|
| Single | default | One model generates, evaluates, iterates |
| Swarm | --use-swarm |
Five default personas (Kai, Nova, Rex, Sam, Max) generate in parallel and vote on best |
| Deep Collab | --routing-mode |
Dual-model routing (fast + powerful) |
| Live AV | --mode live-music |
Generate Strudel music + Hydra video-synth code |
| Studio | liminal studio |
Chat-first GUI with same-screen preview, revision, and optional Improve/details drawers |
| Cortex | (in Studio) | Background executive manages goals and improvements |
# Generation
liminal -p "Create a particle system" # Generate with prompt
liminal -p "sketch" -m 10 -o ./output # Custom iterations + output dir
liminal -p "idea" --use-swarm --swarm-mode hybrid # Swarm generation
liminal -p "ambient glitch set" --mode live-music # Live AV mode
# Interactive
pnpm gui # GUI workbench
liminal chat # Conversational creative session
pnpm tui # Bubble Tea operator cockpit
liminal improve scan # Read-only repair/hardening/optimization proposals
liminal improve run <proposal-id> # Run one proposal from an isolated worktree
# Emergence + Evaluation
liminal emergence score <file> # Score emergence dimensions
liminal emergence probe <file> # Run perturbation probes
liminal report provenance <file> # Trace creative lineage
liminal report archive # Archive overview
liminal report garden # Autonomous Gardener status
liminal report cognition # Creative body + cognitive architecture atlas
pnpm proof:cognitive-loop -- --out=.omx/proof/cognitive-loop-dev
pnpm proof:cognitive-loop -- --live --out=.omx/proof/cognitive-loop-live-dev
pnpm proof:model-assimilation -- --out=.omx/proof/model-assimilation-dev
# Compost Mill — creative material digestion
liminal compost add <path> # Feed material to heap
liminal compost digest # Run digestion pipeline
liminal compost soup start # Start evolutionary soup
liminal compost soup stop # Stop soup
liminal compost seeds list # Browse promoted seeds
liminal compost status # Overview
# Self-hosting task ledger
liminal ledger list # List tasks
liminal ledger show <id> # Show task details
liminal ledger run <id> # Execute a task
liminal ledger verify <id> # Verify task result
liminal ledger status # Ledger overview
# Utilities
liminal list # List saved sketches
liminal serve 3456 # Preview server
liminal fix <file|description> # Auto-fix code with LLM
liminal consolidate # Memory consolidation
liminal --configure # Setup config| Flag | Description |
|---|---|
-p, --prompt <text> |
Generation prompt |
-m, --max-iterations <n> |
Max iterations (default: 3) |
-o, --output <path> |
Output directory |
--mode <mode> |
Mode: live-music (Live AV Strudel + Hydra) |
--use-swarm |
Enable swarm generation |
--swarm-mode <mode> |
Swarm strategy: competitive, hybrid, ring, mesh |
--voice |
Use microphone for audio input |
--voice-file <path> |
Use audio file for input |
--aesthetic <preset> |
Guardrail preset: lenient, moderate, strict |
--intuition |
Enable intuition scoring |
-v, --verbose |
Verbose output |
Liminal reads from ~/.liminal/config.json, environment variables, or --configure:
# Environment variables
LLM_API_KEY=your-key
LLM_MODEL=MiniMax-M2.7
LLM_BASE_URL=https://api.minimax.io/anthropic
# Or swap models on the fly
LIMINAL_LLM_MODEL='google/gemini-3.1-pro-preview' liminal bubbleteasrc/
├── core/ Loop engine, validation, domain detection
├── generators/ p5.js, GLSL, Three.js, Strudel, Hydra, Tone.js, etc.
├── harness/ Meta-harness: failure logging, pattern detection, self-improvement
├── llm/ LLM client, provider adapters, circuit breaker
├── brain/ Artistic knowledge, prompt enhancement, creative preferences
├── compost/ Compost Mill pipeline (digest, collide, score, promote, rehydrate)
├── evolution/ MAP-Elites, novelty archive, cross-domain crossover
├── music/ Theory engine, Euclidean rhythms, Markov chains
├── audio/ Audio analysis, pitch detection, visual mapping
├── aesthetic/ Color theory, design tiers, aesthetic critics
├── guardrails/ Multi-layer guardrail system (correctness, hygiene, compliance)
├── ledger/ Self-hosting task ledger (corpus, runner, verifier)
├── chat/ Interview-driven creative sessions
├── collab/ Multi-agent board, swarm, deep collaboration
├── config/ Configuration loading, role-based model selection
├── agent/ StudioAgent — intent routing, autonomy modes, response composition
├── cortex/ LiminalCortex — background executive, perception bus, goal management
├── emergence/ Emergence evaluation — novelty, temporal structure, perturbation probes
├── learning/ Taste learning — preference dataset, model training, runtime scoring
├── dreaming/ Dream recombinations — queue planning, cross-modal transfer
├── autonomy/ Autonomous Gardener — garden health, stagnation detection, policies
├── evaluation/ Evaluation fabric — hybrid judges, holdout critics, scoring engines
├── tui/ Terminal UI utilities, text sanitization, preview safety
├── tui-bridge/ HTTP/SSE bridge for Bubble Tea runtime
├── render/ Rendering pipeline
├── security/ SSRF protection, rate limiting, sandbox
├── sandbox/ Sandboxed code execution
├── embeddings/ Local embedding service (SBERT)
├── quality/ Quality gates and checks
├── product/ Product mode definitions and registry
├── plugins/ Plugin system
└── export/ Output export (files, galleries)
See CONTRIBUTING.md for development setup, code style, and PR process.
See docs/SECURITY.md for the security model.
Business Source License 1.1. Source code is available for viewing, learning, and non-commercial use. Commercial use requires a separate license. Converts to MIT on April 15, 2029. See LICENSE for details.
Liminal — The code evolves. You curate. The system learns.