FableForge
Make a character and walk around a living village, or start writing a branching story with art made for it.

Current status
Live browser RPG and visual novel studio running at fableforge.to with multi-angle character art, town exploration, and no account needed to play.
Overview
Web-native story studio and playable RPG platform at fableforge.to where creators draft branching visual novels, generate consistent multi-angle character portraits, scene backdrops, and battlemaps, and publish games that play instantly in any browser.
Why it was built
Most indie writers have great story ideas but get blocked having to illustrate hundreds of character expressions and scenes or package bulky desktop downloads before anyone can play their game.
Why it helps
Combines branching narrative design, reference-locked character and environment artwork generation, and instant browser playback in one place—while powering The Village RPG with live town exploration, social trust dialogue, and turn-based tactical combat.
What you can do
- Zero-install browser player for branching visual novels with cloud saves and relationship memory
- Playable Village RPG featuring town exploration, social trust dialogue, quests, and turn-based tactical combat
- Reference-locked character turnaround sheets, portrait expressions, scene backdrops, and top-down battlemaps
- Full project export to standard desktop visual novel formats that creators completely own
FFScript v1 Compiler, 8-Surface Visual Studio & The Village RPG Engine
Author branching visual novels in the component-based Puck scene editor or import existing Ren'Py scripts (@renpy/ast), synthesize character sheets and battlemaps across 8 visual surfaces, and explore The Village RPG with turn-based @fableforge/combat.
Ren'Py AST Importer & PixiJS + WebAudio Stage
Parses .rpy visual novel scripts into a typed AST, compiles branching dialogue, state flags, and camera choreography into FFScript v1, and renders layered sprites, weather shaders, and multi-track WebAudio directly in the browser.
Multi-Reference Character Sheets & 5-Axis Vision Critic
Routes character turnaround sheets (google/gemini-nano-banana-2.1 & gemini-3.1-flash-image), 3:4 expression busts, 16:9 widescreen scene paintings (flux-2-pro), and top-down battlemaps through a 5-axis Gemini Vision critic with automatic canonical anchor promotion (>= 0.95).
The Village Overworld, NPC Schedules & Turn-Based Combat
Walk around a living painted town with scheduled NPCs, gossip propagation, and dynamic market trade, then transition into deterministic turn-based tactical encounters powered by @fableforge/combat.
Cloud Saves, Offline PWA & Stripe Primary / NMI Fallback
Real-time Convex cloud saves and offline-capable PWA storage paired with policy-routed Stripe Primary checkout, automatic NMI fallback for Adult/Tier-2 (18+) catalogs, Daily Gacha Streak Ink rewards, and Spark Bank rollover.
Anchor-promoted 8-surface character consistency & FFScript web player vs. drifting prompts
Generating visual novel sprites with standalone text prompts produces a different face, eye color, and jacket on every emotion bust, and desktop builds require bulky downloads.
// Unconditioned per-scene prompt (drifts every call)
generateImage("female detective smiling in rain");
generateImage("female detective angry in office"); // different face & coatFableForge grades turnaround sheets with a 5-axis Gemini Vision critic, promotes >= 0.95 assets to Canonical Reference Anchors (up to 14 refs), and runs branching FFScript v1 + @fableforge/combat live in the browser.
// FableForge 8-Surface Router + Canonical Anchor Lock
const route = resolveVisualRoute({ surface: "character_reference_sheet" });
// 5-axis Vision Critic = 0.96 -> promoted to Canonical Anchor (14 refs)
// Locks identity across vn_portrait_3x4, environment_16x9 & battlemaps0.737 → 0.959 (+0.222 · Sharpness +60% · PSNR 45.07 dB)Negation parity & evidence verifiedInteractive walkthrough
Step through how FableForge works without creating an account or installing local dependencies.
Entry & problem context
Maturity: Live in productionMost indie writers have great story ideas but get blocked having to illustrate hundreds of character expressions and scenes or package bulky desktop downloads before anyone can play their game.
Web-native story studio and playable RPG platform at fableforge.to where creators draft branching visual novels, generate consistent multi-angle character portraits, scene backdrops, and battlemaps, and publish games that play instantly in any browser.
Shared platform architecture sandbox
Test the live cross-language single source of truth shared across TypeScript, Python, and Rust.
~anthropic/claude-sonnet-latestgoogle/gemini-3.1-flash-image (Gemini 3.1 Flash Image)google/gemini-3.1-flash-image → google/gemini-nano-banana-2.1 → openrouter/free0.8499 (effective cost $0.00102/1k)Universal 9-Surface Visual & Image Capability Router (`resolveVisualRoute`)
Routes character turnaround sheets, 3:4 VN busts, 16:9 scenes, top-down battlemaps, 1:1 tokens, typography plates, semiotic brand favicons, WebGPU background removal, and Tier-2 local ComfyUI models.
google/gemini-nano-banana-2.1 via openrouter1:1 · Max ref images: 4 · Fallback: google/gemini-3-pro-image → black-forest-labs/flux-2-pro → comfy_local/illustrious-xlPromoted to canonical anchor (overall 0.958)Standby · Vector guard: 1024d verifiedOff-peak active (50% V3 / 25% R1 cost)Noir detective standing under neon rain in a cyberpunk alley, cinematic volumetric lighting Character anchors: trenchcoat; amber cybernetic eye. Composition & pose guidance: 16:9 widescreen; cinematic keyframes.0.9 (Passes quality gate)Semiotic Brand Identity & Federated SoC Governance
Peircean Brand Mark, Multi-Size Squint Test & 3-Tier SoC Boundary
anvil_quillprivate_commercial (max tier: internal_commercial)100.0% (non-redundant >15%) · Retired symbol trap: Clear (0 retired symbols)Engineering Velocity & Open-Source Hygiene
Synced from @brbrainerd and @vox-foundation via the GitHub GraphQL API (GET /api/github/stats).
Single-file full-stack programming language and Rust compiler that generates database schemas, server routes, and typed clients from one declaration.
Interactive political economy simulator with ECS civic rights, institutional modeling, policy levers, and multi-regime scenarios.
Interactive 3D macaque brain atlas and stereo surgical view planner rendered in browser WebGL.
Single-binary Rust and React kiosk shell for Raspberry Pi digital photo frames with remote mobile upload.